/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./data/www/templates/asgard/eshop.setos.cz/sass/search-suggest.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Retrieves the next smaller breakpoint from the given breakpoint.
 *
 * @param {String} $breakpoint - The breakpoint for which to find the next smaller breakpoint.
 * @return {String|null} - The next smaller breakpoint, or null if no smaller breakpoint is available.
 */
/**
 * Retrieves the next larger breakpoint from the $grid-breakpoints map.
 *
 * @function get-bigger-breakpoint
 * @param {String} $breakpoint - The current breakpoint to find the next larger one for.
 * @return {String | null} - The next larger breakpoint or null if the current breakpoint is the largest or not found.
 */
/**
 * Reset iSpace custom form input styles to be able to design special inputs more easily
 */
/**
 * Styles to hide the scrollbar but still allow scrolling
 */
/**
 * Special version of the card-box() layout for the B2B shop
 */
/**
 * card-box list layout for the B2B shop
 */
:root {
  --search-suggest-minimum-product-item-width: 266px;
  --search-suggest-main-background: rgb(255, 255, 255, 0);
  --search-suggest-secondary-background: rgb(255, 255, 255, 0);
  --search-suggest-border-color: #f3f3f3;
  --search-suggest-divider-border-color: #dedede;
  --search-suggest-product-select-border: "";
  --search-suggest-product-select-background-color: #f3f3f3;
  --search-suggest-sidebar-width: 25%;
}

.search__field-container {
  position: static;
}

.suggest-wrapper {
  overflow: visible;
  position: static !important;
}
.suggest-thumb img {
  mix-blend-mode: multiply;
}

.suggestions {
  border: none;
  box-sizing: border-box;
  display: block !important;
  position: absolute;
  opacity: 0;
}
.suggestions:not(:empty) {
  animation: search-fade-in 0.15s linear 0s 1 normal forwards;
}
@media (min-width: 768px) {
  .suggestions {
    transform: translateX(-50%);
    left: 50%;
    top: 100%;
    width: 100%;
    z-index: 1060;
  }
  .suggestions[style*=none], .suggestions[style*=none]:not(:empty), .suggestions:empty {
    max-height: 0;
    z-index: -100;
    overflow: clip;
  }
}
@media (min-width: 1200px) {
  .suggestions {
    top: calc(100% - 1rem + 1px);
  }
}
@media (max-width: 1199.98px) {
  .suggestions__inner {
    overflow: auto;
    max-height: calc(98dvh - var(--promo-height, 0px) - 8rem - 5.5rem);
    overscroll-behavior: none;
  }
  .suggestions__inner::-webkit-scrollbar {
    width: 4px;
  }
  .suggestions__inner::-webkit-scrollbar-track {
    background: transparent;
  }
  .suggestions__inner::-webkit-scrollbar-thumb {
    background: #333372;
    border-radius: 2px;
  }
  .suggestions__inner::-webkit-scrollbar-thumb:hover {
    background: #333372;
  }
}
@media (max-width: 767.98px) {
  .suggestions {
    top: 100% !important;
    left: 0;
    width: 100%;
  }
}
.suggestions__inner {
  background-color: #fff;
  filter: drop-shadow(0 3px 5px rgba(0, 0, 0, 0.15));
  padding: 0 3rem 3rem;
  gap: 0 3rem;
}
@media (max-width: 767.98px) {
  .suggestions__inner {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 768px) {
  .suggestions__inner {
    border: 1px solid var(--search-suggest-border-color);
  }
  .suggestions__inner:has(.suggest-section:not(.suggest-products)) {
    grid-template-columns: calc(var(--search-suggest-sidebar-width) - 2rem) 1fr;
    display: grid;
    background-image: linear-gradient(to right, var(--search-suggest-secondary-background) 0, var(--search-suggest-secondary-background) var(--search-suggest-sidebar-width), var(--search-suggest-main-background) var(--search-suggest-sidebar-width), var(--search-suggest-main-background) 100%);
  }
  .suggestions__inner:has(.suggest-section:not(.suggest-products))::after {
    background-color: var(--search-suggest-divider-border-color);
    content: "";
    display: block;
    position: absolute;
    left: var(--search-suggest-sidebar-width);
    top: 0;
    bottom: 0;
    width: 1px;
  }
}
.suggestions__inner .suggest-section {
  padding-block-start: 3rem;
}
@media (max-width: 767.98px) {
  .suggestions__inner .suggest-section:first-child {
    padding-block-start: 2rem;
  }
  .suggestions__inner .suggest-section:first-child .suggest-section-head {
    padding-inline-end: 1rem;
  }
}
.suggestions__inner .suggest-section-head {
  font-size: 1.75rem;
  margin-block-end: 1rem;
}
.suggestions__inner .suggest-section .suggest-item__link {
  text-decoration: none;
}
.suggestions__inner .suggest-section .suggest-item__link:hover .suggest-name, .suggestions__inner .suggest-section .suggest-item__link:focus .suggest-name, .suggestions__inner .suggest-section .suggest-item__link:active .suggest-name {
  color: #333372;
  text-decoration: underline;
}
@media (min-width: 768px) {
  .suggestions__inner .suggest-section:not(.suggest-products) {
    grid-column: 1;
    padding-inline-end: 1rem;
  }
}
.suggestions__inner .suggest-section:not(.suggest-products) .suggest-item a {
  display: flex;
  padding-block: 0.5rem;
}
.suggestions__inner .suggest-section:not(.suggest-products) .suggest-thumb {
  height: 2.4rem;
  margin-block-start: -0.25rem;
  margin-inline-end: 0.5rem;
  width: 40px;
  display: flex;
  justify-content: center;
  order: -1;
}
.suggestions__inner .suggest-section:not(.suggest-products) .suggest-thumb img {
  max-height: 100%;
  object-fit: contain;
}
.suggestions__inner .suggest-section:not(.suggest-products) .suggest-name {
  order: -1;
}
.suggestions__inner .suggest-section.suggest-products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(var(--search-suggest-minimum-product-item-width), 100%), 1fr));
  grid-auto-rows: max-content;
  gap: 2rem;
}
@media (min-width: 768px) {
  .suggestions__inner .suggest-section.suggest-products {
    grid-column: 2;
    grid-row: 1/span 10;
  }
}
.suggestions__inner .suggest-section.suggest-products .suggest-section-head {
  margin-block-end: -0.5rem;
}
@media (min-width: 768px) {
  .suggestions__inner .suggest-section.suggest-products:first-child:nth-last-child(2) {
    background: #fff;
    grid-column: 1/span 2;
    z-index: 2;
  }
}
.suggestions__inner .suggest-section.suggest-products .suggest-section-head.suggest-section-head {
  grid-column: 1/-1;
}
.suggestions__inner .suggest-section.suggest-products .suggest-item__link {
  height: 100%;
  display: grid;
  grid-template-columns: 80px 1fr;
  grid-auto-rows: auto 1fr;
  gap: 0.2rem 1.5rem;
  align-items: start;
  position: relative;
}
.suggestions__inner .suggest-section.suggest-products .suggest-item__link > * {
  position: relative;
}
.suggestions__inner .suggest-section.suggest-products .suggest-item__link::before {
  content: "";
  display: block;
  opacity: 0;
  position: absolute;
  inset: -1rem;
  transition: opacity 0.15s linear;
  background-color: var(--search-suggest-product-select-background-color);
  border: var(--search-suggest-product-select-border);
}
.suggestions__inner .suggest-section.suggest-products .suggest-item__link:hover::before, .suggestions__inner .suggest-section.suggest-products .suggest-item__link:focus::before, .suggestions__inner .suggest-section.suggest-products .suggest-item__link:active::before {
  opacity: 0.8;
}
.suggestions__inner .suggest-section.suggest-products .suggest-thumb {
  box-sizing: border-box;
  grid-column: 1;
  grid-row: span 2;
}
.suggestions__inner .suggest-section.suggest-products .suggest-thumb picture {
  display: flex;
  align-items: center;
  justify-content: center;
}
.suggestions__inner .suggest-section.suggest-products .suggest-thumb img {
  max-height: 96%;
  max-width: 96%;
}
.suggestions__inner .suggest-section.suggest-products .suggest-thumb ~ * {
  box-sizing: border-box;
}
.suggestions__inner .suggest-section.suggest-products .suggest-name {
  grid-column: 2;
}
@media (max-width: 767.98px) {
  .suggestions__inner .suggest-section.suggest-products .suggest-name {
    font-size: 1.6rem;
  }
}
.suggestions__inner .suggest-section.suggest-products .suggest-price {
  grid-column: 2;
  grid-row: 2;
}
.suggestions__inner .suggest-section.suggest-products .suggest-price__discount {
  color: #747474;
  font-size: 1.2rem;
}
.suggestions__inner .suggest-section.suggest-products .suggest-price__selling {
  display: block;
  font-size: 1.6rem;
  font-weight: bold;
}
.suggestions__inner .suggest-section.suggest-categories:not(.suggest-products) {
  order: -1;
}
.suggestions__inner .suggest-section.suggest-categories:not(.suggest-products) .suggest-description {
  display: none;
}
.suggestions__inner .suggest-ajaxsearchall {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block-start: 3rem;
}
.suggestions__inner .suggest-ajaxsearchall a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.suggestions__inner .suggest-ajaxsearchall:is(:first-child) + .suggest-close {
  display: none;
}
.suggestions__inner .suggest-section-head.suggest-section-head {
  background: none;
  border: none;
}
.suggestions__inner .suggest-item a {
  border: none;
  box-sizing: border-box;
}
.suggestions__inner .suggest-item a:hover .suggest-name, .suggestions__inner .suggest-item a:focus .suggest-name, .suggestions__inner .suggest-item a:active .suggest-name {
  text-decoration: underline;
}
.suggestions__close {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  border-left: none;
}
@media (max-width: 767.98px) {
  .suggestions__close {
    top: 0;
    right: 0;
    height: 4rem;
    width: 4rem;
  }
}
.suggestions__close-icon {
  height: 3rem;
  width: 3rem;
  pointer-events: none;
}
@media (min-width: 768px) {
  .suggestions__close {
    height: 3rem;
    width: 3rem;
    top: 1.1rem;
    right: 1.1rem;
  }
}

@keyframes search-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.suggestions__inner .suggest-section.suggest-products .suggest-price__selling {
  font-weight: normal;
  font-variation-settings: "wght" 600;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmVzaG9wLnNldG9zLmN6LmFzZ2FyZC5zZWFyY2gtc3VnZ2VzdC5mNDI2MjRjZjhhOTY2MDEyZGRlOC5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7O0VBQUE7QUFpQkE7Ozs7OztFQUFBO0FDOFBBOztFQUFBO0FBK0hBOztFQUFBO0FBZUE7O0VBQUE7QUFtR0E7O0VBQUE7QUNuZ0JBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQzBCSjs7QUR0Qkk7RUFDSTtBQ3lCUjs7QURwQkk7RUFDSTtFQUNBO0FDdUJSO0FEbkJRO0VBQ0k7QUNxQlo7O0FEaEJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQ21CSjtBRGpCSTtFQUNJO0FDbUJSO0FDTUk7RUZqQ0o7SUFZUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VDbUJOO0VEakJNO0lBR0k7SUFDQTtJQUNBO0VDaUJWO0FBQ0Y7QUNSSTtFRmpDSjtJQTRCUTtFQ2lCTjtBQUNGO0FDQUk7RUZiUTtJR3JEUjtJSHdEWTtJQUNBO0VDZWQ7RUV0RUU7SUFJUTtFRnFFVjtFRWpFRTtJQUNJO0VGbUVOO0VFaEVFO0lBQ0ksbUJDK0xVO0lEOUxWO0VGa0VOO0VFL0RFO0lBQ0ksbUJDMExVO0VIekhoQjtBQUNGO0FDcEJJO0VGOUNKO0lBMkNRO0lBQ0E7SUFDQTtFQzJCTjtBQUNGO0FEekJJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUMyQlI7QUNqQ0k7RUZFQTtJQU9RO0VDNEJWO0FBQ0Y7QUNuREk7RUZlQTtJQVdRO0VDNkJWO0VEM0JVO0lBQ0k7SUFDQTtJQUNBO0VDNkJkO0VEckJjO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQ3VCbEI7QUFDRjtBRG5CUTtFQUNJO0FDcUJaO0FDN0RJO0VGMkNZO0lBQ0k7RUNxQmxCO0VEbkJrQjtJQUNJO0VDcUJ0QjtBQUNGO0FEakJZO0VBQ0ksa0JJNUZEO0VKNkZDO0FDbUJoQjtBRGZnQjtFQUNJO0FDaUJwQjtBRFp3QjtFQUNJO0VBQ0E7QUNjNUI7QUM3Rkk7RUZxRlE7SUFFUTtJQUNBO0VDVWxCO0FBQ0Y7QURSZ0I7RUFDSTtFQUNBO0FDVXBCO0FEUGdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUNTcEI7QURQb0I7RUFDSTtFQUNBO0FDU3hCO0FETGdCO0VBQ0k7QUNPcEI7QURIWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FDS2hCO0FDN0hJO0VGb0hRO0lBT1E7SUFDQTtFQ01sQjtBQUNGO0FESmdCO0VBQ0k7QUNNcEI7QUN0SUk7RUZtSVk7SUFFUTtJQUNBO0lBQ0E7RUNLdEI7QUFDRjtBREZnQjtFQUNJO0FDSXBCO0FEQW9CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUNFeEI7QURBd0I7RUFDSTtBQ0U1QjtBREN3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7QUNENUI7QURPNEI7RUFDSTtBQ0xoQztBRFdnQjtFQUNJO0VBQ0E7RUFDQTtBQ1RwQjtBRFdvQjtFQUNJO0VBQ0E7RUFDQTtBQ1R4QjtBRFlvQjtFQUNJO0VBQ0E7QUNWeEI7QURhb0I7RUFDSTtBQ1h4QjtBRGVnQjtFQUNJO0FDYnBCO0FDaExJO0VGNExZO0lBSVE7RUNadEI7QUFDRjtBRGVnQjtFQUNJO0VBQ0E7QUNicEI7QURlb0I7RUFDSTtFQUNBO0FDYnhCO0FEZ0JvQjtFQUNJO0VBQ0E7RUFDQTtBQ2R4QjtBRG9CWTtFQUNJO0FDbEJoQjtBRG9CZ0I7RUFDSTtBQ2xCcEI7QUR1QlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDckJaO0FEdUJZO0VBQ0k7RUFDQTtFQUNBO0FDckJoQjtBRHdCWTtFQUNJO0FDdEJoQjtBRDBCUTtFQUNJO0VBQ0E7QUN4Qlo7QUQ0Qlk7RUFDSTtFQUNBO0FDMUJoQjtBRCtCb0I7RUFDSTtBQzdCeEI7QURvQ0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDbENSO0FDek9JO0VGc1FBO0lBUVE7SUFDQTtJQUNBO0lBQ0E7RUNqQ1Y7QUFDRjtBRG1DUTtFQUNJO0VBQ0E7RUFDQTtBQ2pDWjtBQ25RSTtFRm1SQTtJQXFCUTtJQUNBO0lBQ0E7SUFDQTtFQ2pDVjtBQUNGOztBRHFDQTtFQUNJO0lBQ0k7RUNsQ047RURxQ0U7SUFDSTtFQ25DTjtBQUNGO0FBeFVvQjtFQUNJO0VBQ0E7QUEwVXhCLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2VzaG9wLnNldG9zLmN6L3Nhc3MvYXBwL2Fic3RyYWN0cy9fZm5zLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2FwcC9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZGVmYXVsdC9zYXNzL3NlYXJjaC1zdWdnZXN0L19hbGwuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2VzaG9wLnNldG9zLmN6L3Nhc3Mvc2VhcmNoLXN1Z2dlc3Quc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZGVmYXVsdC9zYXNzL2FwcC9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZXNob3Auc2V0b3MuY3ovc2Fzcy9fdGhlbWUtdmFyaWFibGVzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50IGZyb20gdGhlIGdpdmVuIGJyZWFrcG9pbnQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGJyZWFrcG9pbnQgZm9yIHdoaWNoIHRvIGZpbmQgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LlxuICogQHJldHVybiB7U3RyaW5nfG51bGx9IC0gVGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LCBvciBudWxsIGlmIG5vIHNtYWxsZXIgYnJlYWtwb2ludCBpcyBhdmFpbGFibGUuXG4gKi9cbkBmdW5jdGlvbiBnZXQtc21hbGxlci1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgJGtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJGtleXMsICRicmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJGluZGV4IG9yICRpbmRleCA9PSAxIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIEByZXR1cm4gbGlzdC5udGgoJGtleXMsICRpbmRleCAtIDEpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBsYXJnZXIgYnJlYWtwb2ludCBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXAuXG4gKlxuICogQGZ1bmN0aW9uIGdldC1iaWdnZXItYnJlYWtwb2ludFxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGN1cnJlbnQgYnJlYWtwb2ludCB0byBmaW5kIHRoZSBuZXh0IGxhcmdlciBvbmUgZm9yLlxuICogQHJldHVybiB7U3RyaW5nIHwgbnVsbH0gLSBUaGUgbmV4dCBsYXJnZXIgYnJlYWtwb2ludCBvciBudWxsIGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgdGhlIGxhcmdlc3Qgb3Igbm90IGZvdW5kLlxuICovXG5AZnVuY3Rpb24gZ2V0LWxhcmdlci1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgJGtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJGtleXMsICRicmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJGluZGV4IG9yICRpbmRleCA9PSBsaXN0Lmxlbmd0aCgkYnJlYWtwb2ludCkge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgQHJldHVybiBsaXN0Lm50aCgka2V5cywgJGluZGV4ICsgMSk7XG59XG4iLCJAdXNlICdzYXNzOmNvbG9yJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5cbi8vICogVmlzdWFscyBmb3Igc21hbGwgYmxvY2tzIHdpdGggYSBob3ZlciAvIGZvY3VzLXdpdGhpbiBlZmZlY3QgaW5jbHVkZWRcbi8vICogVG8gbW9kaWZ5IGRlZmF1bHQgdmFsdWVzLCB5b3UgY291bGQgdXNlIEBpbmNsdWRlIHNtYWxsLWJsb2NrLWNvbXBvbmVudChtYXAuc2V0KCRjb25maWcsICdyYWRpdXMnLCAyMHB4KSlcbkBtaXhpbiBzbWFsbC1ibG9jay1jb21wb25lbnQoXG4gICAgJHJhZGl1czogMTBweCxcbiAgICAkYmFja2dyb3VuZC1zdGFydDogY29sb3IuYWRqdXN0KG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1saWdodCksICRhbHBoYTogLTEpLFxuICAgICRiYWNrZ3JvdW5kLWVuZDogY29sb3IuYWRqdXN0KG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1taWQpLCAkYWxwaGE6IDApLFxuICAgICRib3gtc2hhZG93LXN0YXJ0OiAwIDRweCAyMHB4IDAgIzAwMDAwMDE0LFxuICAgICRib3gtc2hhZG93LWVuZDogMCA0cHggNHB4IDAgIzAwMDAwMDE0LFxuICAgICR0cmFuc2l0aW9uOiAnYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgMC4xNXMsIGJveC1zaGFkb3cgbGluZWFyIDAuMTVzJ1xuKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1zdGFydDtcbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1zdGFydDtcbiAgICB0cmFuc2l0aW9uOiAjeyR0cmFuc2l0aW9ufTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1lbmQ7XG4gICAgICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWVuZDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aWRlLWNhcmQoJGJyZWFrcG9pbnQ6ICd4bCcpIHtcbiAgICAkc21hbGxlci1icmVha3BvaW50OiBnZXQtbGFyZ2VyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpO1xuXG4gICAgLnByb2R1Y3QtY2FyZCB7XG4gICAgICAgIC0tdGh1bWJuYWlsLXdpZHRoOiAyMDBweDtcbiAgICAgICAgLS1mbGFnLWZvbnQtc2l6ZTogMS4ycmVtO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgbGlnaHQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCAwIHJnYigwLCAwLCAwLCAwLjA3KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHNtYWxsZXItYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRzbWFsbGVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAtLXRodW1ibmFpbC13aWR0aDogMjgwcHg7XG4gICAgICAgICAgICAgICAgLS1mbGFnLWZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS10aHVtYm5haWwtd2lkdGgpIDFmciBhdXRvO1xuICAgICAgICAgICAgICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cmVtO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3JlbSA0cmVtIDNyZW0gMDtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ByaW1hcnksXG4gICAgICAgICAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS10aHVtYm5haWwtd2lkdGgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogYXV0bztcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI0MHB4O1xuICAgICAgICAgICAgICAgICAgICBpbnNldDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdmFyaWFudHMge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wZXJleCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcGFyYW1ldGVycyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA1O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLmNhcmQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDAgMS42cmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgICZfX2Z1bGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBkYXJrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2Rpc2NvdW50LFxuICAgICAgICAgICAgICAgICAgICAmX19zYXZpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2ZsYWdzIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTEzcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBwbGFjZS1zZWxmOiBzdGFydCBlbmQ7XG4gICAgICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG5cbiAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX2l0ZW0nXSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMjJlbSAwLjYzZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mbGFnLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzKj0nX190ZXh0J10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNDAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19hZGQge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gKiBBZGQgaW52ZXJ0ZWQgYm9yZGVyIHJhZGl1cyBjb3JuZXJzXG4vLyAqIG1hc2sgdmFsdWVzIGFyZSBpbiB0aGUgb3JkZXIgdGwgLyB0ciAvIGJyIC8gYmxcbi8vICogTm90ZSB0aGF0IGFsbCB1bml0cyBzaG91bGQgYmUgaW4gcHhcbi8vICogQHBhcmFtIHtsaXN0fSAtIHNwZWNpZmljIGJvcmRlciBjb3JuZXJzICRjb3JuZXJzIChhbGx8dGx8dHJ8Ymx8YnIpXG5AbWl4aW4gaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cygkY29ybmVyczogJ2FsbCcpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAkdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXM6IFsnYWxsJywgJ3RsJywgJ3RyJywgJ2JsJywgJ2JyJywgJ3QnLCAncicsICdiJywgJ2wnXTtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci10cjogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItYnI6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAwcHg7XG5cbiAgICAtLWludmVydGVkLWJvcmRlci1ncmFkaWVudDogIzAwMDAgOTglLCAjMDAwO1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1czogI3skaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1c307XG5cbiAgICBAaWYgbm90IGxpc3QuaW5kZXgoJHZhbGlkLWJvcmRlci1yYWRpdXMtcGFyYW1zLCAkY29ybmVycykge1xuICAgICAgICBAZXJyb3IgXCIjeyRjb3JuZXJzfSBpcyBub3QgYSB2YWxpZCBzaWRlLiBFeHBlY3RlZCBvbmUgb2YgI3skdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXN9LlwiO1xuICAgIH1cblxuICAgIEBpZiAkY29ybmVycyA9PSAnYWxsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3RsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3RyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2JyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2JsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3QnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3InIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2InIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2wnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bDogI3skaW52ZXJ0ZWQtYm9yZGVyLXRsfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHI6ICN7JGludmVydGVkLWJvcmRlci10cn07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyOiAjeyRpbnZlcnRlZC1ib3JkZXItYnJ9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibDogI3skaW52ZXJ0ZWQtYm9yZGVyLWJsfTtcblxuICAgIG1hc2s6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSBhdCAwIDAsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDAgMCxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIGF0IDEwMCUgMCwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMTAwJSAwLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgYXQgMCAxMDAlLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAwIDEwMCUsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSBhdCAxMDAlIDEwMCUsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDEwMCUgMTAwJTtcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1hc2stc2l6ZTogNTElIDUxJTtcblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbiAgICAvLyBEaXNhYmxlIGZvciBvbGRlciBTYWZhcmkgYnJvd3NlcnMgYXMgdGhlIGxheW91dCBicmVha3MgdGhlcmUgd2l0aCBtYXNrXG4gICAgQHN1cHBvcnRzIChiYWNrZ3JvdW5kOiAtd2Via2l0LW5hbWVkLWltYWdlKGkpKSB7XG4gICAgICAgIG1hc2s6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gV2UgY2Fubm90IGNoZWNrIGZvciBAc3VwcG9ydHMgKGNsaXAtcGF0aDogc2hhcGUoKSkgYmVjYXVzZSwgd2hpbGUgRmlyZWZveCBzdXBwb3J0cyB0aGUgcnVsZSwgaXQgZG9lcyBub3Qgd29yayAtIHlldCAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMDMyOClcbiAgICAvLyBCdXQsIGFzIHNoYXBlKCkgY2FuIGJlIHVzZWQgaW4gYW5pbWF0aW9uIHBhdGhzLCBhbmQgQ2hyb21lIGFuZCBjdXJyZW50IFNhZmFyaSBzdXBwb3J0IHRoaXMgaW1wbGVtZW50YXRpb24uXG4gICAgLy8gTk9URTogV2Ugc2hvdWxkIHN0aWxsIGNoZWNrIHRvIHNlZSB3aGVuIGNsaXAtcGF0aDogc2hhcGUoKSBpcyBmdWxseSBlbmFibGVkIGluIEZpcmVmb3gsIGJ1dCBpbiB0aGUgbWVhbnRpbWUsIG1hc2tpbmcgd29ya3MgbmljZWx5IHRoZXJlXG4gICAgQHN1cHBvcnRzIChvZmZzZXQtcGF0aDogc2hhcGUoZnJvbSB0b3AgbGVmdCwgY3VydmUgdG8gNTAlIDUwJSB3aXRoIDI1JSAxMDAlKSkge1xuICAgICAgICBtYXNrOiBub25lO1xuICAgICAgICBjbGlwLXBhdGg6IHNoYXBlKFxuICAgICAgICAgICAgZnJvbSAwIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpLFxuICAgICAgICAgICAgYXJjIGJ5IHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpIGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgKiAtMSkgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCksXG4gICAgICAgICAgICBsaW5lIHRvIGNhbGMoMTAwJSAtIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpKSAwLFxuICAgICAgICAgICAgYXJjIGJ5IHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpLFxuICAgICAgICAgICAgbGluZSB0byAxMDAlIGNhbGMoMTAwJSAtIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpKSxcbiAgICAgICAgICAgIGFyYyBieSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpICogLTEpIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpLFxuICAgICAgICAgICAgbGluZSB0byB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAxMDAlLFxuICAgICAgICAgICAgYXJjIGJ5IGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgKiAtMSkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAqIC0xKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSxcbiAgICAgICAgICAgIGxpbmUgdG8gMCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKVxuICAgICAgICApO1xuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbn1cblxuLy8gTGFiZWwgaXMgc2hpZnRlZCB3aGVuIC1cbi8vIGlucHV0IGlzIGZvY3VzZWRcbi8vIGhhcyB2YWx1ZSBwcm9wIGJ1dCBub3QgcGxhY2Vob2xkZXIgc2hvd24gKGhhcHBlbmRzIHdoZW4gcHJlZmlsbGVkIGlucHV0IGlzIG1hbnVhbGx5IGNsZWFyZWQpXG4vLyBoYXMgc29tZSB0ZXh0IHBsYWNlaG9sZGVyXG4vLyBpcyBhdXRvZmlsbGVkXG5AbWl4aW4gZm9ybS1pbnB1dC1sYWJlbC1zZWxlY3RvcnMge1xuICAgICY6aGFzKDp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6bm90KDp3aGVyZSg6cGxhY2Vob2xkZXItc2hvd24pKTppcyg6d2hlcmUoOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKSwgOndoZXJlKDpub3QoW3BsYWNlaG9sZGVyPScnXSwgW3BsYWNlaG9sZGVyPScgJ10pKSwgOm5vdChbdmFsdWU9JyddKSwgOi13ZWJraXQtYXV0b2ZpbGwsIDphdXRvZmlsbCwgOmZvY3VzKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCksXG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTppcyg6d2hlcmUoOnBsYWNlaG9sZGVyLXNob3duOm5vdChbcGxhY2Vob2xkZXI9JyddLCBbcGxhY2Vob2xkZXI9JyAnXSkpKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCksXG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTppcyg6Zm9jdXMpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXNldCBpU3BhY2UgY3VzdG9tIGZvcm0gaW5wdXQgc3R5bGVzIHRvIGJlIGFibGUgdG8gZGVzaWduIHNwZWNpYWwgaW5wdXRzIG1vcmUgZWFzaWx5XG4gKi9cbkBtaXhpbiByZXNldC1mb3JtLWlucHV0IHtcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPSdjaGVja2JveCddLCBbdHlwZT0ncmFkaW8nXSksIHRleHRhcmVhLCBzZWxlY3QpKSB7XG4gICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IGluaXRpYWw7XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgcGFkZGluZzogaW5pdGlhbDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIDp3aGVyZSguZm9ybS1maWVsZCA+ICopIHtcbiAgICAgICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkX19pbnB1dCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoLmVycm9ycykge1xuICAgICAgICAgICAgLS1pbnB1dC1iZzogaW5pdGlhbDtcblxuICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICAgICAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaXRpYWw7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiBpbml0aWFsO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKC5mb3JtLWZpZWxkLS1zbSkge1xuICAgICAgICAgICAgLmZvcm0taW5wdXRfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6bm90KDp3aGVyZSg6Zm9jdXMtd2l0aGluLCBbZGlzYWJsZWRdKSkge1xuICAgICAgICAgICAgICAgICY6d2hlcmUoOm5vdCg6aGFzKC5lcnJvcnMpKSkge1xuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aGFzKC5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWxhYmVsLXNlbGVjdG9ycyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogU3R5bGVzIHRvIGhpZGUgdGhlIHNjcm9sbGJhciBidXQgc3RpbGwgYWxsb3cgc2Nyb2xsaW5nXG4gKi9cbkBtaXhpbiBzY3JvbGwtd2l0aG91dC1zY3JvbGxiYXIge1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBJRSBhbmQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuXG4gICAgLyogQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyoqXG4gKiBTcGVjaWFsIHZlcnNpb24gb2YgdGhlIGNhcmQtYm94KCkgbGF5b3V0IGZvciB0aGUgQjJCIHNob3BcbiAqL1xuQG1peGluIGNhcmQtYm94LWNoZWNrb3V0IHtcbiAgICBAaW5jbHVkZSBjYXJkLWJveDtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGRhcmspO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd29yZC1icmVhazogbm9ybWFsO1xuXG4gICAgJjpoYXMoaW5wdXQ6Y2hlY2tlZCksXG4gICAgJi5zZWxlY3RlZC1wYXltZW50LXNoaXBwaW5nLW1ldGhvZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbWQnKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWRhcmspO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5mb3JtLWJsb2NrLWRpc2FibGVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNhcmQtYm94LWNoZWNrb3V0LWNvbXBvbmVudHMoJGlzLW1pbmltYWw6IGZhbHNlKSB7XG4gICAgQGlmICRpcy1taW5pbWFsIHtcbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICYtbGFiZWwsXG4gICAgICAgICYtaW5mbyxcbiAgICAgICAgJi1wcmljZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaWYgJGlzLW1pbmltYWwge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyg6Y2hlY2tlZCksXG4gICAgICAgICY6aGFzKFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJhZGlvIHtcbiAgICAgICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgICAgICB0b3A6IC0xNnB4OyAvLyBjb25zaWRlciB0aGUgMTRweCBwYWRkaW5nIChleHRyYSAycHggZm9yIGJvcmRlcilcblxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZDpub3QoOmRpc2FibGVkKTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICBAaWYgJGlzLW1pbmltYWwge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBjYXJkLWJveCBsaXN0IGxheW91dCBmb3IgdGhlIEIyQiBzaG9wXG4gKi9cbkBtaXhpbiBjYXJkLWJveC1saXN0LWNoZWNrb3V0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIGdhcDogMC44cmVtO1xuICAgIHRyYW5zaXRpb246IGdhcCAwLjNzO1xufVxuXG4vLyBBbHRlcm5hdGl2ZSBkaXNjLWxpa2Ugc3R5bGluZyBmb3IgcmFkaW8gYW5kIGNoZWNrYm94IGlucHV0c1xuQG1peGluIGlucHV0LWRpc2Mge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwIDEwcHggMCBhdXRvO1xuICAgIG1hcmdpbi1ibG9jazogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBmbGV4OiAwIDAgMTVweDsgLy8gaW4gY2FzZSBpdCdzIHBhcnQgb2YgYSBmbGV4IGxheW91dFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xufVxuXG4vLyBjYXJkIGJveGVzIGFyZSB0eXBpY2FsbHkgdXNlZCBvbiBwcm9kdWN0IGRldGFpbCBzZXJ2aWNlcywgY2hlY2tvdXQgdHJhbnNwb3J0L3BheW1lbnQgb3B0aW9ucyxcbi8vIEFORCBwcmUtY2hlY2tvdXQgcGFnZVxuQG1peGluIGNhcmQtYm94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS05MDAnKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWFwLmdldCgkaW5wdXQsIGJvcmRlci1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNHB4IDMwcHggMTRweCAyMHB4O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IC0xcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgW3R5cGU9J2NoZWNrYm94J10sXG4gICAgW3R5cGU9J3JhZGlvJ10ge1xuICAgICAgICBAaW5jbHVkZSBpbnB1dC1kaXNjO1xuICAgIH1cblxuICAgICY6aGFzKDpjaGVja2VkKSxcbiAgICAmW2NsYXNzKj0nc2VsZWN0ZWQnXSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBbdHlwZT0nY2hlY2tib3gnXTpub3QoLmZpeC1zcGVjaWZpY2l0eSksXG4gICAgICAgIFt0eXBlPSdyYWRpbyddOm5vdCguZml4LXNwZWNpZmljaXR5KSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXI6bm90KDpoYXMoW2Rpc2FibGVkXSkpLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCk7XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSxcbiAgICAgICAgW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoW2Rpc2FibGVkXSk6bm90KC5maXgtc3BlY2lmaWNpdHkpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiOnJvb3Qge1xuICAgIC0tc2VhcmNoLXN1Z2dlc3QtbWluaW11bS1wcm9kdWN0LWl0ZW0td2lkdGg6IDI2NnB4O1xuICAgIC0tc2VhcmNoLXN1Z2dlc3QtbWFpbi1iYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSwgMCk7XG4gICAgLS1zZWFyY2gtc3VnZ2VzdC1zZWNvbmRhcnktYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUsIDApO1xuICAgIC0tc2VhcmNoLXN1Z2dlc3QtYm9yZGVyLWNvbG9yOiAje21hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktMTAwJyl9O1xuICAgIC0tc2VhcmNoLXN1Z2dlc3QtZGl2aWRlci1ib3JkZXItY29sb3I6ICN7bWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0yMDAnKX07XG4gICAgLS1zZWFyY2gtc3VnZ2VzdC1wcm9kdWN0LXNlbGVjdC1ib3JkZXI6ICcnOyAvLyAxcHggc29saWQgI3ttYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTQwMCcpfTtcbiAgICAtLXNlYXJjaC1zdWdnZXN0LXByb2R1Y3Qtc2VsZWN0LWJhY2tncm91bmQtY29sb3I6ICN7bWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0xMDAnKX07XG4gICAgLS1zZWFyY2gtc3VnZ2VzdC1zaWRlYmFyLXdpZHRoOiAyNSU7XG59XG5cbi5zZWFyY2gge1xuICAgICZfX2ZpZWxkLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxufVxuXG4uc3VnZ2VzdCB7XG4gICAgJi13cmFwcGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLXRodW1iIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN1Z2dlc3Rpb25zIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgIGFuaW1hdGlvbjogc2VhcmNoLWZhZGUtaW4gMC4xNXMgbGluZWFyIDBzIDEgbm9ybWFsIGZvcndhcmRzO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ21kJykge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTA2MDtcblxuICAgICAgICAmW3N0eWxlKj0nbm9uZSddLFxuICAgICAgICAmW3N0eWxlKj0nbm9uZSddOm5vdCg6ZW1wdHkpLFxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRoZWFkZXItbmF2LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSAxcmVtICsgMXB4KTtcbiAgICB9XG5cbiAgICBAaWYgJGhlYWRlci1maXhlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkaGVhZGVyLW5hdi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY3VzdG9tLXNjcm9sbGJhci1jb250YWluZXI7XG5cbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDk4ZHZoIC0gdmFyKC0tcHJvbW8taGVpZ2h0LCAwcHgpIC0gOHJlbSAtICN7JGhlYWRlci1uYXYtaGVpZ2h0fSk7XG4gICAgICAgICAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbWQnKSB7XG4gICAgICAgIHRvcDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0Jyk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAzcHggNXB4IHJnYigwLCAwLCAwLCAwLjE1KSk7XG4gICAgICAgIHBhZGRpbmc6IDAgM3JlbSAzcmVtO1xuICAgICAgICBnYXA6IDAgM3JlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ21kJykge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdtZCcpIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlYXJjaC1zdWdnZXN0LWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgICAgICY6aGFzKC5zdWdnZXN0LXNlY3Rpb246bm90KC5zdWdnZXN0LXByb2R1Y3RzKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogY2FsYyh2YXIoLS1zZWFyY2gtc3VnZ2VzdC1zaWRlYmFyLXdpZHRoKSAtIDJyZW0pIDFmcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLXNlYXJjaC1zdWdnZXN0LXNlY29uZGFyeS1iYWNrZ3JvdW5kKSAwLFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1zZWFyY2gtc3VnZ2VzdC1zZWNvbmRhcnktYmFja2dyb3VuZCkgdmFyKC0tc2VhcmNoLXN1Z2dlc3Qtc2lkZWJhci13aWR0aCksXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLXNlYXJjaC1zdWdnZXN0LW1haW4tYmFja2dyb3VuZCkgdmFyKC0tc2VhcmNoLXN1Z2dlc3Qtc2lkZWJhci13aWR0aCksXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLXNlYXJjaC1zdWdnZXN0LW1haW4tYmFja2dyb3VuZCkgMTAwJVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlYXJjaC1zdWdnZXN0LWRpdmlkZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLXNlYXJjaC1zdWdnZXN0LXNpZGViYXItd2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3VnZ2VzdC1zZWN0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDNyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbWQnKSB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDJyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgLnN1Z2dlc3Qtc2VjdGlvbi1oZWFkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1oZWFkIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbGc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN1Z2dlc3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3VnZ2VzdC1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaW5rKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnN1Z2dlc3QtcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdtZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc3VnZ2VzdC1pdGVtIGEge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnN1Z2dlc3QtdGh1bWIge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMS42cmVtICogMS41KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAtMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnN1Z2dlc3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuc3VnZ2VzdC1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heChtaW4odmFyKC0tc2VhcmNoLXN1Z2dlc3QtbWluaW11bS1wcm9kdWN0LWl0ZW0td2lkdGgpLCAxMDAlKSwgMWZyKSk7XG4gICAgICAgICAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IG1heC1jb250ZW50O1xuICAgICAgICAgICAgICAgIGdhcDogMnJlbTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ21kJykge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDEwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zdWdnZXN0LXNlY3Rpb24taGVhZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ21kJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zdWdnZXN0LXNlY3Rpb24taGVhZC5zdWdnZXN0LXNlY3Rpb24taGVhZCB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnN1Z2dlc3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWF1dG8tcm93czogYXV0byAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDAuMnJlbSAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2V0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzdWFsbHkgb25lIG9yIHRoZSBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlYXJjaC1zdWdnZXN0LXByb2R1Y3Qtc2VsZWN0LWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogdmFyKC0tc2VhcmNoLXN1Z2dlc3QtcHJvZHVjdC1zZWxlY3QtYm9yZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zdWdnZXN0LXRodW1iIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiBzcGFuIDI7XG5cbiAgICAgICAgICAgICAgICAgICAgcGljdHVyZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDk2JTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogOTYlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfiAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc3VnZ2VzdC1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCdtZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnN1Z2dlc3QtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZGlzY291bnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktNjAwJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX3NlbGxpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpbmNyZWFzZSBzcGVjaWZpY2l0eSB0byBtYXRjaCA6bm90KCkgcHNldWRvIHNlbGVjdG9yXG4gICAgICAgICAgICAmLnN1Z2dlc3QtY2F0ZWdvcmllczpub3QoLnN1Z2dlc3QtcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAuc3VnZ2VzdC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1Z2dlc3QtYWpheHNlYXJjaGFsbCB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAzcmVtO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmlzKDpmaXJzdC1jaGlsZCkgKyAuc3VnZ2VzdC1jbG9zZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWdnZXN0LXNlY3Rpb24taGVhZC5zdWdnZXN0LXNlY3Rpb24taGVhZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN1Z2dlc3QtaXRlbSB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIC5zdWdnZXN0LW5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbWQnKSB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogNHJlbTtcbiAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdtZCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgdG9wOiAxLjFyZW07XG4gICAgICAgICAgICByaWdodDogMS4xcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlYXJjaC1mYWRlLWluIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQGltcG9ydCAndGhlbWUtdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJztcbkBpbXBvcnQgJ2FwcC9hYnN0cmFjdHMvYWxsJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9zZWFyY2gtc3VnZ2VzdC9hbGwnO1xuXG4uc3VnZ2VzdGlvbnMge1xuICAgICZfX2lubmVyIHtcbiAgICAgICAgLnN1Z2dlc3Qtc2VjdGlvbiB7XG4gICAgICAgICAgICAmLnN1Z2dlc3QtcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIC5zdWdnZXN0LXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgJl9fc2VsbGluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA2MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbkBtaXhpbiBzcXVhcmUoJHNpemUpIHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbn1cblxuQG1peGluIGN1c3RvbS1zY3JvbGxiYXItY29udGFpbmVyKCRpcy12ZXJ0aWNhbDogZmFsc2UpIHtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgQGlmICRpcy12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzY3JvbGxiYXItY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzY3JvbGxiYXItY29sb3I7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9kYWwtdmFyaWFibGVzIHtcbiAgICAtLWJzLW1vZGFsLXdpZHRoOiBtYXgtY29udGVudDtcbiAgICAtLWJzLW1vZGFsLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLS1icy1tb2RhbC1tYXgtaGVpZ2h0OiA5OGR2aDtcbiAgICAtLWJzLW1vZGFsLXdpZHRoLW5hcnJvdzogNTAwcHg7XG4gICAgLS1icy1tb2RhbC13aWR0aC1kZWZhdWx0OiA4NTBweDtcbiAgICAtLWJzLW1vZGFsLXdpZHRoLXdpZGU6IDExMDBweDtcbiAgICAtLW1vZGFsLXBhZGRpbmctYmxvY2s6IGNsYW1wKDFyZW0sIDR2dywgMi41cmVtKTtcbiAgICAtLW1vZGFsLXBhZGRpbmctaW5saW5lOiBjbGFtcCgxcmVtLCA1dncsIDNyZW0pO1xuICAgIC0tYnMtbW9kYWwtcGFkZGluZzogdmFyKC0tbW9kYWwtcGFkZGluZy1ibG9jaykgdmFyKC0tbW9kYWwtcGFkZGluZy1pbmxpbmUpO1xuICAgIC0tYnMtbW9kYWwtbWFyZ2luOiAwO1xuICAgIC0tYnMtbW9kYWwtaGVhZGVyLWZvbnQtc2l6ZTogI3skaDMtZm9udC1zaXplfTtcbiAgICAtLW1vZGFsLWluLW1vZGFsLWJhY2tkcm9wLWNvbG9yOiAje3JnYmEoJG1vZGFsLWJhY2tkcm9wLWJnLCAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSl9O1xufVxuXG5AbWl4aW4gYm94ZXMoJHF1YW50aXR5OiAzLCAkZ2FwOiAxcmVtLCAkY2VudGVyLWdhcDogY2xhbXAoMXJlbSwgNSUsIDRyZW0pLCAkY2VudGVyLWJsb2NrOiBmYWxzZSkge1xuICAgICRnYXAtd2l0aC11bml0OiBpZihtYXRoLmlzLXVuaXRsZXNzKCRnYXApLCAkZ2FwICogMXJlbSwgJGdhcCk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpZiAkY2VudGVyLWJsb2NrIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogJGNlbnRlci1nYXA7XG5cbiAgICAgICAgPiAqOndoZXJlKGltZykge1xuICAgICAgICAgICAgaGVpZ2h0OiByZXZlcnQtbGF5ZXI7XG4gICAgICAgICAgICB3aWR0aDogcmV2ZXJ0LWxheWVyO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGdhcDogJGdhcC13aXRoLXVuaXQ7XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgQGlmICRxdWFudGl0eSB7XG4gICAgICAgICAgICAvLyBGWUk6IGNhbGN1bGF0ZSB0aGUgJSB3aWR0aCAtIChudW1iZXIgb2YgZ2FwcyAvIHF1YW50aXR5KVxuICAgICAgICAgICAgLS1mbGV4LWJhc2lzOiBjYWxjKCN7bWF0aC5kaXYoMTAwLCAkcXVhbnRpdHkpICogMSV9IC0gI3skZ2FwLXdpdGgtdW5pdCAqIChtYXRoLmRpdigoJHF1YW50aXR5IC0gMSksICRxdWFudGl0eSkpfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vICogc2NyZWVuLXJlYWRlciBvbmx5XG4vLyAqIEBwYXJhbSBjb25maWcgLSBudWxsIHwgc3RyaW5nICgndW5kbycpIC0gcmVzZXRzIGEgcHJldmlvdXMgc3Itb25seSBydWxlc2V0XG5AbWl4aW4gc3Itb25seSgkY29uZmlnOiBudWxsKSB7XG4gICAgQGlmICRjb25maWcgPT0gJ3VuZG8nIHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LW5vLWRlcHJlY2F0ZWRcbiAgICAgICAgY2xpcDogdW5zZXQ7XG4gICAgICAgIGNsaXAtcGF0aDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIG92ZXJmbG93OiB1bnNldDtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgICB3aGl0ZS1zcGFjZTogdW5zZXQ7XG4gICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LW5vLWRlcHJlY2F0ZWRcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgIH1cbn1cblxuLy8gTW9kaWZpZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgZGVza3RvcCBzdWJtZW51IHdoZW4gdGhlcmUgYXJlIGZld2VyIHRoYW4gLyRtZW51LXN1Ym1lbnUtc2luZ2xlLWNvbHVtbi1taW4vIGl0ZW1zLFxuLy8gQU5ELCB3aGVuIHRoZXJlIGFyZSBubyBzdWItc3ViY2F0ZWdvcnkgaXRlbXNcbkBtaXhpbiBkZXNrdG9wLW5hdmlnYXRpb24tbmFycm93IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRoZWFkZXItbmF2LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gTk9URTogc2xpZ2h0bHkgb2xkZXIgRmlyZWZveCBzdXBwb3J0cyA6aGFzKGVsZW1lbnQpIGJ1dCBub3QgOmhhcyhlbGVtZW50ICsgZWxlbWVudClcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvb3BlcmF0b3Itbm8tdW5zcGFjZWRcbiAgICAgICAgQHN1cHBvcnRzIHNlbGVjdG9yKDpoYXMoKyAqKSkge1xuICAgICAgICAgICAgLmhlYWRlciAubmF2IHtcbiAgICAgICAgICAgICAgICAubWVudSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi1tYWluOm5vdCg6aGFzKC5zdWJtZW51LS1tYWluIHVsIHVsKSk6bm90KDpoYXMoLnN1Ym1lbnUtLW1haW4gPiAubWVudS0tbmVzdGVkID4gLm1lbnVfX2l0ZW0tLW5lc3RlZDpudGgtY2hpbGQoI3skbWVudS1zdWJtZW51LXNpbmdsZS1jb2x1bW4tbWlufSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBzdGlja3ktc2lkZWJhcigkbWVkaWEtcXVlcnktbWluLXdpZHRoOiAnbGcnKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbWVkaWEtcXVlcnktbWluLXdpZHRoKSB7XG4gICAgICAgIC0tdG9wLXBvc2l0aW9uOiBjYWxjKCh2YXIoLS1oZWlnaHQtZGlmZiwgMHB4KSAqIC0xKSArIDFyZW0pO1xuXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogdmFyKC0tdG9wLXBvc2l0aW9uKTtcbiAgICB9XG59XG5cbi8vLyBBZGRzIGEgc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCBkZWNsYXJhdGlvbiB0byB0aGUgY3VycmVudCBzZWxlY3RvclxuLy8vIChzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0IGlzIHRoZSBkZWZhdWx0IHByb3BlcnR5KVxuLy8vICRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCB2YWx1ZXMgYXJlIHNldCBpbiB2YXJpYWJsZXMgZmlsZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSAtICdtYXJnaW4nIG9yICdwYWRkaW5nJ1xuQG1peGluIHNldC1zY3JvbGwtYmxvY2stc3RhcnQoJHR5cGU6ICdtYXJnaW4nKSB7XG4gICAgQGlmIG1ldGEudmFyaWFibGUtZXhpc3RzKCdoZWFkZXItZml4ZWQtYWRkaXRpb25hbCcpIHtcbiAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItbW9iaWxlKSBvciBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1tb2JpbGUpIHtcbiAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogJyc7XG5cbiAgICAgICAgICAgIEBpZiBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgaGVhZGVyLW1vYmlsZSkge1xuICAgICAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogJHNjcm9sbC1zaXplICsgdmFyKC0taGVhZGVyLWhlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAkc2Nyb2xsLXNpemU6IGNhbGMoI3skc2Nyb2xsLXNpemV9ICsgdmFyKC0tcHJvbW8taGVpZ2h0LCAwcHgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7bWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIG1vYmlsZS1icmVha3BvaW50LXVwKSAtIDFweH0pIHtcbiAgICAgICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxuICAgICAgICAgICAgICAgIHNjcm9sbC0jeyR0eXBlfS1ibG9jay1zdGFydDogI3skc2Nyb2xsLXNpemV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItZGVza3RvcCkgb3IgbWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIHRvcC1iYW5uZXItZGVza3RvcCkge1xuICAgICAgICAgICAgJHNjcm9sbC1zaXplOiAnJztcblxuICAgICAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItZGVza3RvcCkge1xuICAgICAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogJHNjcm9sbC1zaXplICsgdmFyKC0taGVhZGVyLWhlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1kZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgJHNjcm9sbC1zaXplOiBjYWxjKCN7JHNjcm9sbC1zaXplfSArIHZhcigtLXByb21vLWhlaWdodCwgMHB4KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAje21hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBtb2JpbGUtYnJlYWtwb2ludC11cCl9KSB7XG4gICAgICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICBzY3JvbGwtI3skdHlwZX0tYmxvY2stc3RhcnQ6ICN7JHNjcm9sbC1zaXplfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gY2FyZCBib3hlcyBhcmUgdHlwaWNhbGx5IHVzZWQgb24gcHJvZHVjdCBkZXRhaWwgc2VydmljZXMsIGNoZWNrb3V0IHRyYW5zcG9ydC9wYXltZW50IG9wdGlvbnMsXG4vLyBBTkQgcHJlLWNoZWNrb3V0IHBhZ2VcbkBtaXhpbiBjYXJkLWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktOTAwJyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWFwLmdldCgkaW5wdXQsIGJvcmRlci1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMXB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KDpoYXMoW2Rpc2FibGVkXSkpLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCk7XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSxcbiAgICAgICAgW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoW2Rpc2FibGVkXSk6bm90KC5maXgtc3BlY2lmaWNpdHkpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTEwMCk7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0xMDApO1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTYwMCk7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZW1wdHktbGluZS1iZWZvcmVcbi8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG91YmxlLXNsYXNoLWNvbW1lbnQtZW1wdHktbGluZS1iZWZvcmVcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJyBhcyBhc2dhcmQtdmFyaWFibGVzO1xuXG4vLyBib290c3RyYXAgdmFyaWFibGVzXG4vLyBsYXlvdXRcbiRncmlkLWJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kZ3JpZC1icmVha3BvaW50cyxcbiAgICAoXG4gICAgICAgIGRlc2t0b3A6IDE2NTBweCxcbiAgICAgICAgZnVsbGhkOiAxOTIwcHgsXG4gICAgICAgIDJrOiAyNTAwcHhcbiAgICApXG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRjb250YWluZXItbWF4LXdpZHRocyxcbiAgICAoXG4gICAgICAgIGxnOiAxMDI0cHgsXG4gICAgICAgIHhsOiAxMTQwcHgsXG4gICAgICAgIHh4bDogMTY4NXB4XG4gICAgKVxuKTtcblxuLy8gc3BhY2luZ1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6IDNyZW07XG4kY2FudmFzLXBhZGRpbmcteTogNHJlbTtcbiRjYW52YXMtcGFkZGluZy15LW1kOiA2cmVtO1xuJGNhbnZhcy1wYWRkaW5nLXkteHhsOiA3cmVtO1xuXG4vLyBmb250XG4kZm9udC1zaXplLXJvb3Q6IDYyLjUlO1xuJGZvbnQtc2l6ZS1iYXNlOiAxLjRyZW07XG4kbGluZS1oZWlnaHQtYmFzZTogMS42O1xuJGZvbnQtZmFtaWx5LWJhc2U6ICdQbHVzIEpha2FydGEgU2FucycsICdQbHVzIEpha2FydGEgU2Fucy1mYWxsYmFjaycsICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4kZm9udC1zaXplLXNtOiAxLjJyZW07XG4kZm9udC1zaXplLWxnOiAkZm9udC1zaXplLWJhc2UgKiAxLjI1O1xuJGZvbnQtc2l6ZS1sYXJnZXI6ICRmb250LXNpemUtYmFzZSAqIDEuNTsgLy8gJGg0LWZvbnQtc2l6ZTtcbiRmb250LXNpemUtbGFyZ2VzdDogJGZvbnQtc2l6ZS1iYXNlICogMjsgLy8gJGgyLWZvbnQtc2l6ZTtcblxuJGxlZ2VuZC1mb250LXNpemU6IDJyZW07XG4kbGVnZW5kLW1hcmdpbi1ib3R0b206IDJyZW07XG4kbGVnZW5kLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbi8vIHR5cG9cbiRoZWFkaW5ncy1tYXJnaW4tYm90dG9tOiAxZW07XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6IDcwMDtcblxuLy8gY29sb3JzXG4kcHJpbWFyeTogIzMzMzM3MjtcbiRwcmltYXJ5LWRhcms6ICMyMzIzNTI7XG4kcHJpbWFyeS1taWQ6ICNlOGU4ZmQ7XG4kcHJpbWFyeS1saWdodDogI2ViZWJmMTtcbiRwcmltYXJ5LWdyYXk6ICNmMWYxZjE7XG4kcHJpbWFyeS1yZWQ6ICNhZjMyMzI7XG4kc2Vjb25kYXJ5OiAjMjMyMzUyO1xuJGxpZ2h0OiAjZmZmO1xuJGRhcms6ICMwMDA7XG4kYm9keS1iZzogI2Y4ZjlmYztcblxuJGdyZWVuOiAjMDU4ODAyO1xuJGdyZWVuLWRhcms6ICMxODgwMzg7XG4kZ3JlZW4tc3A6IHJnYigzLCAxODEsIDApO1xuJGdyZWVuLWRhcmstc2VtaS10cmFuc3A6IHJnYigyNCwgMTI4LCA1NiwgMC4xKTtcblxuJHRoZW1lLWNvbG9yczogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHRoZW1lLWNvbG9ycyxcbiAgICAoXG4gICAgICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgICAgICBwcmltYXJ5LWRhcms6ICRwcmltYXJ5LWRhcmssXG4gICAgICAgIHByaW1hcnktbWlkOiAkcHJpbWFyeS1taWQsXG4gICAgICAgIHByaW1hcnktbGlnaHQ6ICRwcmltYXJ5LWxpZ2h0LFxuICAgICAgICBwcmltYXJ5LWdyYXk6ICRwcmltYXJ5LWdyYXksXG4gICAgICAgIHByaW1hcnktcmVkOiAkcHJpbWFyeS1yZWQsXG4gICAgICAgIHByaW1hcnktZ3JlZW46ICRncmVlbixcbiAgICAgICAgc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5LFxuICAgICAgICBsaWdodDogJGxpZ2h0LFxuICAgICAgICBkYXJrOiAkZGFyayxcbiAgICAgICAgZGFyay1zZW1pLXRyYW5zcDogcmdiKDAsIDAsIDAsIDAuMSksXG4gICAgICAgIGJhc2UtYmc6ICRsaWdodCxcbiAgICAgICAgYmFzZS10ZXh0OiAkZGFyayxcbiAgICAgICAgbGluazogJHByaW1hcnksXG4gICAgICAgIHN1Y2Nlc3M6ICM4ZWQ2MDksXG4gICAgICAgIHN1Y2Nlc3MtYmc6ICNlOGYxZDksXG4gICAgICAgIHN1Y2Nlc3MtdGV4dDogJGRhcmssXG4gICAgICAgIGluZm86ICM5Y2I1ZTEsXG4gICAgICAgIGluZm8tYmc6ICNkZGVkZjMsXG4gICAgICAgIGluZm8tdGV4dDogJGRhcmssXG4gICAgICAgIHdhcm5pbmc6ICMyMzliYzgsXG4gICAgICAgIHdhcm5pbmctYmc6ICM5Y2I1ZTEsXG4gICAgICAgIHdhcm5pbmctdGV4dDogJGRhcmssXG4gICAgICAgIGRhbmdlcjogI2UyNjk2OSxcbiAgICAgICAgZGFuZ2VyLWJnOiAjZjZkZmRmLFxuICAgICAgICBkYW5nZXItdGV4dDogJGRhcmssXG4gICAgICAgIHN0YXItcmF0aW5nLWJnOiAjZmIwLFxuICAgICAgICBpbi1zdG9jazogJGdyZWVuLFxuICAgICAgICBvdXQtb2Ytc3RvY2s6ICNlMjY5NjksXG4gICAgICAgIHByZW9yZGVyOiAjZWFiMDAwLFxuICAgICAgICAvLyAxMCUgb2YgaW4tc3RvY2sgY29sb3VyXG4gICAgICAgIGluLXN0b2NrLWJnOiByZ2IoNSwgMTM2LCAyLCAwLjEpLFxuICAgICAgICBncmF5LTEwMDogI2YzZjNmMyxcbiAgICAgICAgZ3JheS0yMDA6ICNkZWRlZGUsXG4gICAgICAgIGdyYXktMzAwOiAjZDBkMGQwLFxuICAgICAgICBncmF5LTQwMDogI2IxYjFiMSxcbiAgICAgICAgZ3JheS02MDA6ICM3NDc0NzQsXG4gICAgICAgIGdyYXktNzAwOiAjNGQ0ZDRkLFxuICAgICAgICBncmF5LTgwMDogIzM4MzgzOCxcbiAgICAgICAgZ3JheS05MDA6ICMyNjI2MjYsXG4gICAgICAgIGdyYXktc2VtaS10cmFuc3A6IHJnYigyMCwgOTIsIDEyOCwgMC4xKSxcbiAgICAgICAgc2F2aW5nLWNvbG9yOiByZ2IoMjQsIDEyOCwgNTYsIDEpLFxuICAgICAgICBzYXZpbmctY29sb3ItYmc6ICRncmVlbi1kYXJrLXNlbWktdHJhbnNwLFxuICAgICAgICB2b3VjaGVyLWJnOiAjZDhlZGY3XG4gICAgKVxuKTtcbi8vIGJvb3RzdHJhcCB2YXJpYWJsZXMgZW5kXG5cbiR0aGVtZS1ncmFkaWVudHM6IChcbiAgICAncHJpbWFyeS1iZyc6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeS1kYXJrJyksIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnknKSlcbik7XG5cbiRsYWJlbC1naWZ0LWNvbG9yOiAjMDBhZWEzO1xuJGxhYmVsLXVzZWQtcHJvZHVjdC1jb2xvcjogI2VhYjAwMDtcbiRsYWJlbC1naWZ0LWJnLWNvbG9yOiAjZTZmYmYzO1xuXG4vLyBzaG9waW8gdmFyaWFibGVzXG4kZm9udC1wYXRoOiAnL2Fzc2V0cy9lc2hvcC5zZXRvcy5jei9mb250JztcblxuJGgxLWZvbnQtc2l6ZTogY2xhbXAoM3JlbSwgNnZ3LCA0cmVtKTsgLy8gJGZvbnQtc2l6ZS1iYXNlICogMi41O1xuJGgyLWZvbnQtc2l6ZTogMy42cmVtOyAvLyBDdXN0b20gZm9udCBzaXplIGJ5IGRlc2lnblxuJGgzLWZvbnQtc2l6ZTogMnJlbTsgLy8gJGZvbnQtc2l6ZS1iYXNlICogMS43NTtcbiRoNC1mb250LXNpemU6IDEuOHJlbTtcbiRoNS1mb250LXNpemU6IDEuNnJlbTtcbiRoNi1mb250LXNpemU6IDEuNnJlbTtcblxuJGJ0bjogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGJ0bixcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5JyksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBob3Zlci1iZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeS1kYXJrJyksXG4gICAgICAgIGhvdmVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtXG4gICAgKVxuKTtcblxuJGJ0bi1kaXNhYmxlZDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGJ0bi1kaXNhYmxlZCxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktMjAwKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2Jhc2UtdGV4dCcpLFxuICAgICAgICBob3Zlci1iZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTIwMCksXG4gICAgICAgIGhvdmVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdiYXNlLXRleHQnKVxuICAgIClcbik7XG5cbiRidG4tZGFyazogKFxuICAgIGJnLWNvbG9yOiAkZGFyayxcbiAgICBjb2xvcjogI2ZmZixcbiAgICBob3Zlci1iZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTkwMCksXG4gICAgaG92ZXItY29sb3I6ICNmZmZcbik7XG5cbiRpbnB1dDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGlucHV0LFxuICAgIChcbiAgICAgICAgYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0JyksXG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0yMDAnKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2RhcmsnKSxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMFxuICAgIClcbik7XG5cbiRjaGVja2JveC1jaGVjazogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcXFxuICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXFxcbiAgICBmaWxsPVwibm9uZVwiXFxcbiAgICBzdHJva2U9XCIje3JnYmEoJGxpZ2h0LCAxKX1cIlxcXG4gICAgc3Ryb2tlLXdpZHRoPVwiM1wiPlxcXG4gICAgPHBvbHlsaW5lIHBvaW50cz1cIjIwIDYgOSAxNyA0IDEyXCI+PC9wb2x5bGluZT5cXFxuICAgIDwvc3ZnPicpO1xuXG4kcGFzc3dvcmQtc2hvdzogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDU3NiA1MTJcIj5cXFxuICAgIDxwYXRoIGQ9XCJNMjg4IDgwYy02NS4yIDAtMTE4LjggMjkuNi0xNTkuOSA2Ny43Qzg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOCAzNjQuM2M0MS4yIDM4LjEgOTQuOCA2Ny43IDE2MCA2Ny43czExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NmMtMTMuNi0zMC00MC4yLTcyLjUtNzguNi0xMDguM0M0MDYuOCAxMDkuNiAzNTMuMiA4MCAyODggODB6TTk1LjQgMTEyLjZDMTQyLjUgNjguOCAyMDcuMiAzMiAyODggMzJzMTQ1LjUgMzYuOCAxOTIuNiA4MC42YzQ2LjggNDMuNSA3OC4xIDk1LjQgOTMgMTMxLjEgMy4zIDcuOSAzLjMgMTYuNyAwIDI0LjYtMTQuOSAzNS43LTQ2LjIgODcuNy05MyAxMzEuMUM0MzMuNSA0NDMuMiAzNjguOCA0ODAgMjg4IDQ4MHMtMTQ1LjUtMzYuOC0xOTIuNi04MC42QzQ4LjYgMzU2IDE3LjMgMzA0IDIuNSAyNjguM2MtMy4zLTcuOS0zLjMtMTYuNyAwLTI0LjZDMTcuMyAyMDggNDguNiAxNTYgOTUuNCAxMTIuNnpNMjg4IDMzNmM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGgtMmMxLjMgNS4xIDIgMTAuNSAyIDE2IDAgMzUuMy0yOC43IDY0LTY0IDY0LTUuNSAwLTEwLjktLjctMTYtMnYyYzAgNDQuMiAzNS44IDgwIDgwIDgwem0wLTIwOGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6XCIvPlxcXG4gICAgPC9zdmc+Jyk7XG5cbiRhbmdsZS1yaWdodDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMzIwIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cXFxuICAgIDxwYXRoIGZpbGw9XCIje3JnYmEobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KSwgMC45OTkpfVwiXFxcbiAgICBkPVwiTTI3OC42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMTAuNyAyNTYgNzMuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwelwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kZGlhZ29uYWwtbGluZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiPlxcXG4gICAgPGxpbmUgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZT1cIiN7cmdiYShtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktNDAwKSwgMC45OTkpfVwiXFxcbiAgICB4MT1cIjBcIiB5MT1cIjBcIiB4Mj1cIjEwMFwiIHkyPVwiMTAwXCIgdmVjdG9yLWVmZmVjdD1cIm5vbi1zY2FsaW5nLXN0cm9rZVwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kYnJlYWRjcnVtYnM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRicmVhZGNydW1icyxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTEwMCcpLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS04MDAnKSxcbiAgICAgICAgYWN0aXZlLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJylcbiAgICApXG4pO1xuXG4vLyBoZWFkZXJcbiRoZWFkZXItbmF2LWhlaWdodDogNS41cmVtOyAvLyBoZWlnaHQgb24gc21hbGwgc2NyZWVuc1xuJGhlYWRlci1uYXYtZGVza3RvcC1oZWlnaHQ6IDE0LjVyZW07IC8vIGhlaWdodCBvbiBiaWdnZXIgc2NyZWVuc1xuJGhlYWRlci10b3AtbmF2LWRlc2t0b3AtaGVpZ2h0OiAxNC41cmVtOyAvLyBoZWlnaHQgb24gYmlnZ2VyIHNjcmVlbnNcbiRoZWFkZXItbmF2LWJyZWFrcG9pbnQ6ICd4bCc7IC8vIGJyZWFrcG9pbnQgd2hlbiBuYXYgY2hhbmdlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wXG4kaGVhZGVyLXNlYXJjaC1kZXNrdG9wLWhlaWdodDogNXJlbTtcbiRoZWFkZXItc2VhcmNoLWRlc2t0b3Atd2lkdGg6IDEwMCU7XG5cbiRzY3JvbGxiYXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnknKTtcblxuLy8gbWVudVxuJG1lbnUtaXRlbS1kZXNrdG9wLXBhZGRpbmc6IDFyZW07XG4kbWVudS1zZWNvbmRhcnktbGlua3MtYmc6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0Jyk7XG4kbWVudS1zdWJtZW51LXNpbmdsZS1jb2x1bW4tbWluOiA5O1xuXG4vLyBmb290ZXJcbiRmb290ZXItYmxvY2stY29sbGFwc2VkLWhlaWdodDogNi41cmVtO1xuXG4vLyB2b3VjaGVyIFBERlxuLy8gTk9URTogaWYgdGhlIGZvbnRzIHVzZWQgaGVyZSBhcmUgbm9uLXN0YW5kYXJkLCB0aGVuIHRoZXkgbmVlZCB0byBiZSB1cGxvYWRlZCBhbmQgc3BlY2lmaWVkIHNlcGFyYXRlbHkgaW4gdGhlXG4vLyBtUERGIGluaXRpYWxpemF0aW9uIChzZWUgdXNhZ2UgaW4gU0Qgb3Igc3BlYWsgd2l0aCBEQiA6KSlcbiR2b3VjaGVyOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kdm91Y2hlcixcbiAgICAoXG4gICAgICAgIHByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICAgICAgcHJpbWFyeS1jb2xvcjogIzQ0NCxcbiAgICAgICAgc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICNkZGQsXG4gICAgICAgIHNlY29uZGFyeS1jb2xvcjogIzQ0NCxcbiAgICAgICAgYmxvY2staGlnaGxpZ2h0LWJhY2tncm91bmQtY29sb3I6ICNmMGYwZjAsXG4gICAgICAgIGJsb2NrLWhpZ2hsaWdodC1jb2xvcjogIzQ0NCxcbiAgICAgICAgYmFzZS1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSxcbiAgICAgICAgYmFzZS1saW5lLWhlaWdodDogMS41LFxuICAgICAgICBoZWFkaW5nLWZvbnQ6ICRmb250LWZhbWlseS1iYXNlLFxuICAgICAgICBib2R5LWZvbnQ6ICRmb250LWZhbWlseS1iYXNlLFxuICAgICAgICBsb2dvLW1heC1oZWlnaHQ6IDEwbW1cbiAgICApXG4pO1xuXG4vLyBGdWxsLXdpZHRoIHNsaWRlciBpbWFnZSBkaW1lbnNpb25zIChhcHBsaWVzIHRvIGRlc2t0b3Agb25seSlcbi8vIGltYWdlLXdpZHRoOiBpbWFnZSBzaXplXG4vLyBpbWFnZS1jb250ZW50LWFyZWEtd2lkdGg6IHdoZXJlIHdlIGNhbiBzYWZlbHkgY3JvcCAoZnJvbSB0aGUgZnVsbCBzaXplIGltYWdlKVxuJHNsaWRlci1kZXNrdG9wOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kc2xpZGVyLWRlc2t0b3AsXG4gICAgKFxuICAgICAgICBpbWFnZS13aWR0aDogMTkwMHB4LFxuICAgICAgICBpbWFnZS1jb250ZW50LWFyZWEtd2lkdGg6IDEyMDBweFxuICAgIClcbik7XG4vLyBzaG9waW8gdmFyaWFibGVzIGVuZFxuXG4vLyBDU1MgdmFyaWFibGVzXG4vLyBtb3ZlIHRvIGFwcC5zY3NzXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9*/