/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/category.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
 */
.category {
  --category-desktop-min: 20rem;
  --category-desktop-ideal: 20vw;
  --category-desktop-max: 27rem;
  position: relative;
}
.category__title + .category__text {
  margin-top: 1em;
}
.category__title + .category__text:last-child {
  margin-bottom: 2rem;
}
.category__description + .promo-d {
  margin-top: 3rem;
}
@media (max-width: 991.98px) {
  .category {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }
  .category__detail, .category__sidebar {
    order: -1;
  }
}
.category__detail .embla {
  display: grid;
  grid-template-rows: auto auto;
}
.category__detail .embla__viewport, .category__detail .embla__controls {
  grid-column: 1;
}
.category__detail .embla__viewport {
  grid-row: 1;
}
.category__detail .embla__controls {
  pointer-events: none;
  grid-row: 1/span 2;
  display: grid;
  grid-template-rows: 1fr auto;
  grid-template-rows: subgrid;
}
.category__detail .embla__buttons {
  grid-row: 1;
  position: relative;
}
.category__detail .embla__button {
  pointer-events: all;
  filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.6));
}
.category__detail .embla__button--prev {
  transform: translate(calc(100% + 10px), -50%);
}
.category__detail .embla__button--next {
  transform: scaleX(-1) translate(calc(100% + 10px), -50%);
}
.category__detail .embla__pagination {
  text-align: center;
  pointer-events: all;
  grid-row: 2;
  margin-block: 20px 0;
}
@media (min-width: 992px) {
  .category {
    display: grid;
    column-gap: 3rem;
    grid-template-columns: clamp(var(--category-desktop-min), var(--category-desktop-ideal), var(--category-desktop-max)) 1fr;
    grid-template-rows: max-content max-content 1fr;
  }
  .category > * {
    grid-column: 2/3;
  }
  .category__sidebar {
    grid-column: 1/2;
    grid-row: 1/4;
  }
  .category__filters {
    margin-bottom: 1.5rem;
  }
}
@media (min-width: 1366px) {
  .category {
    column-gap: 7.6rem;
  }
}

@media (max-width: 991.98px) {
  .category-page:has(.time-limited-offers) #mainContent {
    overflow-x: hidden;
  }
}

.category {
  --category-desktop-ideal: 22vw;
  --category-desktop-max: 32.5rem;
  --category-desktop-clamp: clamp(var(--category-desktop-min), var(--category-desktop-ideal), var(--category-desktop-max));
}
@media (max-width: 991.98px) {
  .category {
    gap: 3rem;
  }
}
@media (min-width: 992px) {
  .category {
    column-gap: 2.5rem;
    grid-template-columns: var(--category-desktop-clamp) calc(100% - var(--category-desktop-clamp) - 2.5rem);
    grid-template-rows: max-content max-content max-content 1fr;
  }
  .category__detail {
    z-index: 1;
  }
}
@media (min-width: 1366px) {
  .category {
    column-gap: 2.5rem;
  }
}
@media (max-width: 991.98px) {
  .category__detail {
    order: -5;
  }
}
.category__detail .embla__buttons {
  position: absolute;
}
.category__detail .embla__button--prev {
  transform: translateY(0);
}
.category__detail .embla__button--next {
  transform: scaleX(-1) translateY(0);
}
.category__title ~ * + .category__text {
  margin-block-start: 1.5rem;
}
@media (min-width: 992px) {
  .category__title ~ * + .category__text {
    margin-block-start: 3rem;
  }
}
@media (max-width: 991.98px) {
  .category .time-limited-offers {
    order: -4;
  }
  .category .filter-current {
    margin-top: -21px;
  }
  .category .js-sticky-category-filters {
    order: -2;
  }
  .category__sort {
    order: -1;
  }
}
.category__sidebar {
  display: flex;
  flex-direction: column;
}
@media (max-width: 991.98px) {
  .category__sidebar {
    display: contents;
  }
}
@media (min-width: 992px) {
  .category__sidebar {
    grid-row: 1/5;
  }
}
.category__sidebar .time-limited-offers {
  padding: 50px;
  margin: -50px;
  overflow: hidden;
  flex: auto 0 0;
}
@media (min-width: 992px) {
  .category__sidebar .time-limited-offers {
    margin-bottom: -20px;
  }
}
.category__sidebar .time-limited-offers .product-card__perex {
  display: none;
}
@media (min-width: 992px) {
  .category__sidebar .time-limited-offers .product-card {
    text-align: center;
    padding: 20px;
    box-shadow: 0 10px 50px 0 rgba(0, 0, 0, 0.13);
    background-color: #fff;
    border-radius: 8px;
  }
  .category__sidebar .time-limited-offers .product-card__thumbnail {
    /* stylelint-disable-next-line length-zero-no-unit */
    --thumbnail-padding: 0px;
    margin: 0;
    max-height: 215px;
  }
  .category__sidebar .time-limited-offers .product-card__heading {
    font-size: 2rem;
    margin-top: 1.5rem;
  }
  .category__sidebar .time-limited-offers .product-card__inner {
    gap: 2.5rem;
  }
  .category__sidebar .time-limited-offers .product-card .card-price {
    justify-content: center;
    gap: 0 1.3rem;
  }
  .category__sidebar .time-limited-offers .product-card .card-price__full {
    color: #000;
  }
  .category__sidebar .time-limited-offers .product-card .card-price__discount, .category__sidebar .time-limited-offers .product-card .card-price__saving {
    font-size: 1.4rem;
  }
}
.category__sidebar .time-limited-offers__offer--details {
  padding-bottom: 100px;
  margin-bottom: -100px;
  width: calc(100% - 2px);
  margin-left: 1px;
}
.category__sidebar .time-limited-offers__offer--wrapper {
  max-height: max-content;
}
.category__filters {
  border-radius: 8px;
  left: 0;
  right: 0;
}
@media (min-width: 992px) {
  .category__filters {
    background-color: #ebebf1;
    padding: 2rem;
  }
}
@media (min-width: 992px) {
  .category__text {
    padding-block-end: 0;
    transition: 0s padding 0.05s;
  }
  .category__text:has(p:last-of-type[style*=center] + .collapsed) {
    text-align: center;
  }
  .category__text p:last-of-type:has(+ .collapsed) {
    display: inline;
  }
  .category__text:has(> .collapsed) {
    padding-block-end: clamp(1.8rem, 3vw, 2.4rem);
  }
}
.category__text .btn-link[data-toggle=collapse] {
  display: none;
  font-weight: normal;
  font-variation-settings: "wght" 700;
}
.category__text .btn-link[data-toggle=collapse].collapsed {
  display: inline-block;
}
@media (max-width: 991.98px) {
  .category__text .btn-link[data-toggle=collapse] {
    color: currentcolor;
    background-color: #f3f3f3;
    border-radius: 8px;
    padding: 0.2rem 1rem;
    margin-top: 1rem;
    margin-bottom: 1.8rem;
  }
}
@media (min-width: 992px) {
  .category__text .btn-link[data-toggle=collapse] {
    color: #333372;
    text-decoration: underline;
    margin: 0;
    transition: color 0.15s linear;
  }
  .category__text .btn-link[data-toggle=collapse]:hover {
    color: currentcolor;
    text-decoration: none;
  }
}
.category__text .btn-link[data-toggle=collapse]::after {
  content: " ";
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  border: 2px solid currentcolor;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg);
  margin-left: 0.5rem;
  margin-bottom: 0.4rem;
}
.category__description {
  overflow: hidden;
  transition: height 0.25s ease-in;
}
.category__description p:first-child {
  margin-top: clamp(1.8rem, 3vw, 2.4rem);
}
.category__description.collapse:not(.in) {
  height: 0;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmVzaG9wLnNldG9zLmN6LmFzZ2FyZC5jYXRlZ29yeS5kYzY2MzJhYTA3N2Q2NWY5MGNiMS5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7O0VBQUE7QUFpQkE7Ozs7OztFQUFBO0FDOFBBOztFQUFBO0FBK0hBOztFQUFBO0FBZUE7O0VBQUE7QUFtR0E7O0VBQUE7QUNuZ0JBO0VBQ0k7RUFDQTtFQUNBO0VBRUE7QUN5Qko7QUR2Qkk7RUFDSTtBQ3lCUjtBRHZCUTtFQUNJO0FDeUJaO0FEcEJRO0VBQ0k7QUNzQlo7QUNxQ0k7RUY1RUo7SUFzQlE7SUFDQTtJQUNBO0VDcUJOO0VEbkJNO0lBRUk7RUNvQlY7QUFDRjtBRGhCUTtFQUNJO0VBQ0E7QUNrQlo7QURoQlk7RUFFSTtBQ2lCaEI7QURkWTtFQUNJO0FDZ0JoQjtBRGJZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQ2VoQjtBRFpZO0VBQ0k7RUFDQTtBQ2NoQjtBRFhZO0VBQ0k7RUFDQTtBQ2FoQjtBRFZnQjtFQUVJO0FDV3BCO0FEUmdCO0VBRUk7QUNTcEI7QURMWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FDT2hCO0FDdkJJO0VGL0RKO0lBcUZRO0lBQ0EsZ0JHNURjO0lINkRkLHlIQUNJO0lBRUo7RUNHTjtFRERNO0lBQ0k7RUNHVjtFREFNO0lBQ0k7SUFDQTtFQ0VWO0VEQ007SUFDSTtFQ0NWO0FBQ0Y7QUN6Q0k7RUYvREo7SUEyR1E7RUNDTjtBQUNGOztBQ2pDSTtFRG5FSTtJQUNJO0VBd0dWO0FBQ0Y7O0FBcEdBO0VBQ0k7RUFDQTtFQUNBO0FBdUdKO0FDN0NJO0VEN0RKO0lBTVE7RUF3R047QUFDRjtBQy9ESTtFRGhESjtJQVVRO0lBQ0E7SUFDQTtFQXlHTjtFQXZHTTtJQUNJO0VBeUdWO0FBQ0Y7QUN6RUk7RURoREo7SUFvQlE7RUF5R047QUFDRjtBQ2pFSTtFRHRDQTtJQUVRO0VBeUdWO0FBQ0Y7QUF0R1k7RUFDSTtBQXdHaEI7QUFwR2dCO0VBQ0k7QUFzR3BCO0FBbkdnQjtFQUNJO0FBcUdwQjtBQTlGUTtFQUNJO0FBZ0daO0FDL0ZJO0VERkk7SUFJUTtFQWlHZDtBQUNGO0FDdkZJO0VETEk7SUFDSTtFQStGVjtFQTVGTTtJQUVJO0VBNkZWO0VBMUZNO0lBQ0k7RUE0RlY7RUF6Rk07SUFDSTtFQTJGVjtBQUNGO0FBeEZJO0VBQ0k7RUFDQTtBQTBGUjtBQ3pHSTtFRGFBO0lBS1E7RUEyRlY7QUFDRjtBQzNISTtFRDBCQTtJQVNRO0VBNEZWO0FBQ0Y7QUExRlE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtBQTJGWjtBQ3RJSTtFRHNDSTtJQVFRO0VBNEZkO0FBQ0Y7QUF6RmdCO0VBQ0k7QUEyRnBCO0FDOUlJO0VEaURRO0lBTVE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQTJGbEI7RUF6RmtCO0lBQ0k7SUFDQTtJQUVBO0lBQ0E7RUEwRnRCO0VBdkZrQjtJQUNJO0lBQ0E7RUF5RnRCO0VBdEZrQjtJQUNJO0VBd0Z0QjtFQXJGa0I7SUFDSTtJQUNBO0VBdUZ0QjtFQXJGc0I7SUFDSTtFQXVGMUI7RUFwRnNCO0lBRUk7RUFxRjFCO0FBQ0Y7QUFoRlk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWtGaEI7QUEvRVk7RUFDSTtBQWlGaEI7QUEzRUk7RUFFSTtFQUNBO0VBQ0E7QUE0RVI7QUM1TEk7RUQ0R0E7SUFPUTtJQUNBO0VBNkVWO0FBQ0Y7QUNsTUk7RUR3SEE7SUFFUTtJQUNBO0VBNEVWO0VBdkVVO0lBQ0k7RUF5RWQ7RUFyRVU7SUFDSTtFQXVFZDtFQXBFVTtJQUNJO0VBc0VkO0FBQ0Y7QUFuRVE7RUFDSTtFQUNBO0VBQ0E7QUFxRVo7QUFuRVk7RUFDSTtBQXFFaEI7QUM1TUk7RURpSUk7SUFVUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFxRWQ7QUFDRjtBQ25PSTtFRDhJSTtJQW1CUTtJQUNBO0lBQ0E7SUFDQTtFQXNFZDtFQXBFYztJQUNJO0lBQ0E7RUFzRWxCO0FBQ0Y7QUFuRVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXFFaEI7QUFoRUk7RUFDSTtFQUNBO0FBa0VSO0FBaEVRO0VBQ0k7QUFrRVo7QUEvRFE7RUFDSTtBQWlFWixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2FwcC9hYnN0cmFjdHMvX2Zucy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZXNob3Auc2V0b3MuY3ovc2Fzcy9hcHAvYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2RlZmF1bHQvc2Fzcy9jYXRlZ29yeS9fYWxsLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9lc2hvcC5zZXRvcy5jei9zYXNzL2NhdGVnb3J5LnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2VzaG9wLnNldG9zLmN6L3Nhc3MvX3RoZW1lLXZhcmlhYmxlcy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuZXh0IHNtYWxsZXIgYnJlYWtwb2ludCBmcm9tIHRoZSBnaXZlbiBicmVha3BvaW50LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIFRoZSBicmVha3BvaW50IGZvciB3aGljaCB0byBmaW5kIHRoZSBuZXh0IHNtYWxsZXIgYnJlYWtwb2ludC5cbiAqIEByZXR1cm4ge1N0cmluZ3xudWxsfSAtIFRoZSBuZXh0IHNtYWxsZXIgYnJlYWtwb2ludCwgb3IgbnVsbCBpZiBubyBzbWFsbGVyIGJyZWFrcG9pbnQgaXMgYXZhaWxhYmxlLlxuICovXG5AZnVuY3Rpb24gZ2V0LXNtYWxsZXItYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICRrZXlzOiBtYXAua2V5cygkZ3JpZC1icmVha3BvaW50cyk7XG4gICAgJGluZGV4OiBsaXN0LmluZGV4KCRrZXlzLCAkYnJlYWtwb2ludCk7XG5cbiAgICBAaWYgbm90ICRpbmRleCBvciAkaW5kZXggPT0gMSB7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBAcmV0dXJuIGxpc3QubnRoKCRrZXlzLCAkaW5kZXggLSAxKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5leHQgbGFyZ2VyIGJyZWFrcG9pbnQgZnJvbSB0aGUgJGdyaWQtYnJlYWtwb2ludHMgbWFwLlxuICpcbiAqIEBmdW5jdGlvbiBnZXQtYmlnZ2VyLWJyZWFrcG9pbnRcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIFRoZSBjdXJyZW50IGJyZWFrcG9pbnQgdG8gZmluZCB0aGUgbmV4dCBsYXJnZXIgb25lIGZvci5cbiAqIEByZXR1cm4ge1N0cmluZyB8IG51bGx9IC0gVGhlIG5leHQgbGFyZ2VyIGJyZWFrcG9pbnQgb3IgbnVsbCBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIHRoZSBsYXJnZXN0IG9yIG5vdCBmb3VuZC5cbiAqL1xuQGZ1bmN0aW9uIGdldC1sYXJnZXItYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICRrZXlzOiBtYXAua2V5cygkZ3JpZC1icmVha3BvaW50cyk7XG4gICAgJGluZGV4OiBsaXN0LmluZGV4KCRrZXlzLCAkYnJlYWtwb2ludCk7XG5cbiAgICBAaWYgbm90ICRpbmRleCBvciAkaW5kZXggPT0gbGlzdC5sZW5ndGgoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIEByZXR1cm4gbGlzdC5udGgoJGtleXMsICRpbmRleCArIDEpO1xufVxuIiwiQHVzZSAnc2Fzczpjb2xvcic7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOmxpc3QnO1xuXG4vLyAqIFZpc3VhbHMgZm9yIHNtYWxsIGJsb2NrcyB3aXRoIGEgaG92ZXIgLyBmb2N1cy13aXRoaW4gZWZmZWN0IGluY2x1ZGVkXG4vLyAqIFRvIG1vZGlmeSBkZWZhdWx0IHZhbHVlcywgeW91IGNvdWxkIHVzZSBAaW5jbHVkZSBzbWFsbC1ibG9jay1jb21wb25lbnQobWFwLnNldCgkY29uZmlnLCAncmFkaXVzJywgMjBweCkpXG5AbWl4aW4gc21hbGwtYmxvY2stY29tcG9uZW50KFxuICAgICRyYWRpdXM6IDEwcHgsXG4gICAgJGJhY2tncm91bmQtc3RhcnQ6IGNvbG9yLmFkanVzdChtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktbGlnaHQpLCAkYWxwaGE6IC0xKSxcbiAgICAkYmFja2dyb3VuZC1lbmQ6IGNvbG9yLmFkanVzdChtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktbWlkKSwgJGFscGhhOiAwKSxcbiAgICAkYm94LXNoYWRvdy1zdGFydDogMCA0cHggMjBweCAwICMwMDAwMDAxNCxcbiAgICAkYm94LXNoYWRvdy1lbmQ6IDAgNHB4IDRweCAwICMwMDAwMDAxNCxcbiAgICAkdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgbGluZWFyIDAuMTVzLCBib3gtc2hhZG93IGxpbmVhciAwLjE1cydcbikge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtc3RhcnQ7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctc3RhcnQ7XG4gICAgdHJhbnNpdGlvbjogI3skdHJhbnNpdGlvbn07XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtZW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1lbmQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lkZS1jYXJkKCRicmVha3BvaW50OiAneGwnKSB7XG4gICAgJHNtYWxsZXItYnJlYWtwb2ludDogZ2V0LWxhcmdlci1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgICAtLXRodW1ibmFpbC13aWR0aDogMjAwcHg7XG4gICAgICAgIC0tZmxhZy1mb250LXNpemU6IDEuMnJlbTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggMCByZ2IoMCwgMCwgMCwgMC4wNyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzbWFsbGVyLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkc21hbGxlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgLS10aHVtYm5haWwtd2lkdGg6IDI4MHB4O1xuICAgICAgICAgICAgICAgIC0tZmxhZy1mb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tdGh1bWJuYWlsLXdpZHRoKSAxZnIgYXV0bztcbiAgICAgICAgICAgICAgICBncmlkLWF1dG8tcm93czogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAyNHJlbTtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gNHJlbSAzcmVtIDA7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wcmltYXJ5LFxuICAgICAgICAgICAgJl9fc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tdGh1bWJuYWlsLXdpZHRoKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgICAgICAgICAgICBncmlkLWFyZWE6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ZhcmlhbnRzIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9faGVhZGluZyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcGVyZXgge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3BhcmFtZXRlcnMge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2F2YWlsYWJpbGl0eSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIC5jYXJkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAwIDEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgICAgICAmX19mdWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZGFyayk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19kaXNjb3VudCxcbiAgICAgICAgICAgICAgICAgICAgJl9fc2F2aW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19mbGFncyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogLTEwcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xM3B4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgcGxhY2Utc2VsZjogc3RhcnQgZW5kO1xuICAgICAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuXG4gICAgICAgICAgICAgICAgW2NsYXNzKj0nX19pdGVtJ10ge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjIyZW0gMC42M2VtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZmxhZy1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcyo9J19fdGV4dCddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDQwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYWRkIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMztcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgJi1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vICogQWRkIGludmVydGVkIGJvcmRlciByYWRpdXMgY29ybmVyc1xuLy8gKiBtYXNrIHZhbHVlcyBhcmUgaW4gdGhlIG9yZGVyIHRsIC8gdHIgLyBiciAvIGJsXG4vLyAqIE5vdGUgdGhhdCBhbGwgdW5pdHMgc2hvdWxkIGJlIGluIHB4XG4vLyAqIEBwYXJhbSB7bGlzdH0gLSBzcGVjaWZpYyBib3JkZXIgY29ybmVycyAkY29ybmVycyAoYWxsfHRsfHRyfGJsfGJyKVxuQG1peGluIGludmVydGVkLWJvcmRlci1yYWRpdXMoJGNvcm5lcnM6ICdhbGwnKSB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgJHZhbGlkLWJvcmRlci1yYWRpdXMtcGFyYW1zOiBbJ2FsbCcsICd0bCcsICd0cicsICdibCcsICdicicsICd0JywgJ3InLCAnYicsICdsJ107XG4gICAgJGludmVydGVkLWJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgJGludmVydGVkLWJvcmRlci10bDogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItdHI6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci1ibDogMHB4O1xuXG4gICAgLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQ6ICMwMDAwIDk4JSwgIzAwMDtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXM6ICN7JGludmVydGVkLWJvcmRlci1yYWRpdXN9O1xuXG4gICAgQGlmIG5vdCBsaXN0LmluZGV4KCR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtcywgJGNvcm5lcnMpIHtcbiAgICAgICAgQGVycm9yIFwiI3skY29ybmVyc30gaXMgbm90IGEgdmFsaWQgc2lkZS4gRXhwZWN0ZWQgb25lIG9mICN7JHZhbGlkLWJvcmRlci1yYWRpdXMtcGFyYW1zfS5cIjtcbiAgICB9XG5cbiAgICBAaWYgJGNvcm5lcnMgPT0gJ2FsbCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICd0bCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICd0cicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICdicicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICdibCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICd0JyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICdyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICdiJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9IEBlbHNlIGlmICRjb3JuZXJzID09ICdsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGw6ICN7JGludmVydGVkLWJvcmRlci10bH07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRyOiAjeyRpbnZlcnRlZC1ib3JkZXItdHJ9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icjogI3skaW52ZXJ0ZWQtYm9yZGVyLWJyfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmw6ICN7JGludmVydGVkLWJvcmRlci1ibH07XG5cbiAgICBtYXNrOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgYXQgMCAwLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAwIDAsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRyKSBhdCAxMDAlIDAsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDEwMCUgMCxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpIGF0IDAgMTAwJSwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMCAxMDAlLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgYXQgMTAwJSAxMDAlLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAxMDAlIDEwMCU7XG4gICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXNrLXNpemU6IDUxJSA1MSU7XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1pbnZhbGlkLXBvc2l0aW9uLWRlY2xhcmF0aW9uXG4gICAgLy8gRGlzYWJsZSBmb3Igb2xkZXIgU2FmYXJpIGJyb3dzZXJzIGFzIHRoZSBsYXlvdXQgYnJlYWtzIHRoZXJlIHdpdGggbWFza1xuICAgIEBzdXBwb3J0cyAoYmFja2dyb3VuZDogLXdlYmtpdC1uYW1lZC1pbWFnZShpKSkge1xuICAgICAgICBtYXNrOiBub25lO1xuICAgIH1cblxuICAgIC8vIFdlIGNhbm5vdCBjaGVjayBmb3IgQHN1cHBvcnRzIChjbGlwLXBhdGg6IHNoYXBlKCkpIGJlY2F1c2UsIHdoaWxlIEZpcmVmb3ggc3VwcG9ydHMgdGhlIHJ1bGUsIGl0IGRvZXMgbm90IHdvcmsgLSB5ZXQgKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTAzMjgpXG4gICAgLy8gQnV0LCBhcyBzaGFwZSgpIGNhbiBiZSB1c2VkIGluIGFuaW1hdGlvbiBwYXRocywgYW5kIENocm9tZSBhbmQgY3VycmVudCBTYWZhcmkgc3VwcG9ydCB0aGlzIGltcGxlbWVudGF0aW9uLlxuICAgIC8vIE5PVEU6IFdlIHNob3VsZCBzdGlsbCBjaGVjayB0byBzZWUgd2hlbiBjbGlwLXBhdGg6IHNoYXBlKCkgaXMgZnVsbHkgZW5hYmxlZCBpbiBGaXJlZm94LCBidXQgaW4gdGhlIG1lYW50aW1lLCBtYXNraW5nIHdvcmtzIG5pY2VseSB0aGVyZVxuICAgIEBzdXBwb3J0cyAob2Zmc2V0LXBhdGg6IHNoYXBlKGZyb20gdG9wIGxlZnQsIGN1cnZlIHRvIDUwJSA1MCUgd2l0aCAyNSUgMTAwJSkpIHtcbiAgICAgICAgbWFzazogbm9uZTtcbiAgICAgICAgY2xpcC1wYXRoOiBzaGFwZShcbiAgICAgICAgICAgIGZyb20gMCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSxcbiAgICAgICAgICAgIGFyYyBieSB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpICogLTEpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpLFxuICAgICAgICAgICAgbGluZSB0byBjYWxjKDEwMCUgLSB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRyKSkgMCxcbiAgICAgICAgICAgIGFyYyBieSB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRyKSB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRyKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRyKSxcbiAgICAgICAgICAgIGxpbmUgdG8gMTAwJSBjYWxjKDEwMCUgLSB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSksXG4gICAgICAgICAgICBhcmMgYnkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSAqIC0xKSB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSxcbiAgICAgICAgICAgIGxpbmUgdG8gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgMTAwJSxcbiAgICAgICAgICAgIGFyYyBieSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpICogLTEpIGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgKiAtMSkgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCksXG4gICAgICAgICAgICBsaW5lIHRvIDAgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bClcbiAgICAgICAgKTtcbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBuby1pbnZhbGlkLXBvc2l0aW9uLWRlY2xhcmF0aW9uXG59XG5cbi8vIExhYmVsIGlzIHNoaWZ0ZWQgd2hlbiAtXG4vLyBpbnB1dCBpcyBmb2N1c2VkXG4vLyBoYXMgdmFsdWUgcHJvcCBidXQgbm90IHBsYWNlaG9sZGVyIHNob3duIChoYXBwZW5kcyB3aGVuIHByZWZpbGxlZCBpbnB1dCBpcyBtYW51YWxseSBjbGVhcmVkKVxuLy8gaGFzIHNvbWUgdGV4dCBwbGFjZWhvbGRlclxuLy8gaXMgYXV0b2ZpbGxlZFxuQG1peGluIGZvcm0taW5wdXQtbGFiZWwtc2VsZWN0b3JzIHtcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOm5vdCg6d2hlcmUoOnBsYWNlaG9sZGVyLXNob3duKSk6aXMoOndoZXJlKDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSksIDp3aGVyZSg6bm90KFtwbGFjZWhvbGRlcj0nJ10sIFtwbGFjZWhvbGRlcj0nICddKSksIDpub3QoW3ZhbHVlPScnXSksIDotd2Via2l0LWF1dG9maWxsLCA6YXV0b2ZpbGwsIDpmb2N1cykpIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpLFxuICAgICY6aGFzKDp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6aXMoOndoZXJlKDpwbGFjZWhvbGRlci1zaG93bjpub3QoW3BsYWNlaG9sZGVyPScnXSwgW3BsYWNlaG9sZGVyPScgJ10pKSkpIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpLFxuICAgICY6aGFzKDp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6aXMoOmZvY3VzKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogUmVzZXQgaVNwYWNlIGN1c3RvbSBmb3JtIGlucHV0IHN0eWxlcyB0byBiZSBhYmxlIHRvIGRlc2lnbiBzcGVjaWFsIGlucHV0cyBtb3JlIGVhc2lseVxuICovXG5AbWl4aW4gcmVzZXQtZm9ybS1pbnB1dCB7XG4gICAgJjpoYXMoOndoZXJlKGlucHV0Om5vdChbdHlwZT0nY2hlY2tib3gnXSwgW3R5cGU9J3JhZGlvJ10pLCB0ZXh0YXJlYSwgc2VsZWN0KSkge1xuICAgICAgICB6LWluZGV4OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiBpbml0aWFsO1xuXG4gICAgICAgIDp3aGVyZSguZm9ybS1maWVsZC1jb250YWluZXIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IGluaXRpYWw7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQgPiAqKSB7XG4gICAgICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIDp3aGVyZSguZm9ybS1maWVsZF9faW5wdXQpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKC5lcnJvcnMpIHtcbiAgICAgICAgICAgIC0taW5wdXQtYmc6IGluaXRpYWw7XG5cbiAgICAgICAgICAgIC5mb3JtLWZpZWxkLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgICAgIC5mb3JtLWZpZWxkLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIC5mb3JtLWZpZWxkLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5pdGlhbDtcbiAgICAgICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbml0aWFsO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogaW5pdGlhbDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyguZm9ybS1maWVsZC0tc20pIHtcbiAgICAgICAgICAgIC5mb3JtLWlucHV0X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIDp3aGVyZSguZm9ybS1maWVsZC1jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOm5vdCg6d2hlcmUoOmZvY3VzLXdpdGhpbiwgW2Rpc2FibGVkXSkpIHtcbiAgICAgICAgICAgICAgICAmOndoZXJlKDpub3QoOmhhcyguZXJyb3JzKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhhcyguZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1maWVsZC1jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1sYWJlbC1zZWxlY3RvcnMge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFN0eWxlcyB0byBoaWRlIHRoZSBzY3JvbGxiYXIgYnV0IHN0aWxsIGFsbG93IHNjcm9sbGluZ1xuICovXG5AbWl4aW4gc2Nyb2xsLXdpdGhvdXQtc2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIG92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtbm9uZTsgLyogRmlyZWZveCAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUgYW5kIEVkZ2UgKi9cbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC8qIEZpcmVmb3ggKi9cblxuICAgIC8qIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYSAqL1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qKlxuICogU3BlY2lhbCB2ZXJzaW9uIG9mIHRoZSBjYXJkLWJveCgpIGxheW91dCBmb3IgdGhlIEIyQiBzaG9wXG4gKi9cbkBtaXhpbiBjYXJkLWJveC1jaGVja291dCB7XG4gICAgQGluY2x1ZGUgY2FyZC1ib3g7XG5cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBkYXJrKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcblxuICAgICY6aGFzKGlucHV0OmNoZWNrZWQpLFxuICAgICYuc2VsZWN0ZWQtcGF5bWVudC1zaGlwcGluZy1tZXRob2Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWRhcmspO1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWRhcmspO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ21kJykge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZm9ybS1ibG9jay1kaXNhYmxlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjYXJkLWJveC1jaGVja291dC1jb21wb25lbnRzKCRpcy1taW5pbWFsOiBmYWxzZSkge1xuICAgIEBpZiAkaXMtbWluaW1hbCB7XG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmLWxhYmVsLFxuICAgICAgICAmLWluZm8sXG4gICAgICAgICYtcHJpY2Uge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGlmICRpcy1taW5pbWFsIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoOmNoZWNrZWQpLFxuICAgICAgICAmOmhhcyhbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5yYWRpbyB7XG4gICAgICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTZweDsgLy8gY29uc2lkZXIgdGhlIDE0cHggcGFkZGluZyAoZXh0cmEgMnB4IGZvciBib3JkZXIpXG5cbiAgICAgICAgICAgICAgICAmOmNoZWNrZWQ6bm90KDpkaXNhYmxlZCk6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXRleHQge1xuICAgICAgICAgICAgQGlmICRpcy1taW5pbWFsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogY2FyZC1ib3ggbGlzdCBsYXlvdXQgZm9yIHRoZSBCMkIgc2hvcFxuICovXG5AbWl4aW4gY2FyZC1ib3gtbGlzdC1jaGVja291dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICBnYXA6IDAuOHJlbTtcbiAgICB0cmFuc2l0aW9uOiBnYXAgMC4zcztcbn1cblxuLy8gQWx0ZXJuYXRpdmUgZGlzYy1saWtlIHN0eWxpbmcgZm9yIHJhZGlvIGFuZCBjaGVja2JveCBpbnB1dHNcbkBtaXhpbiBpbnB1dC1kaXNjIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMCAxMHB4IDAgYXV0bztcbiAgICBtYXJnaW4tYmxvY2s6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgZmxleDogMCAwIDE1cHg7IC8vIGluIGNhc2UgaXQncyBwYXJ0IG9mIGEgZmxleCBsYXlvdXRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYigwLCAwLCAwLCAwLjEpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcbn1cblxuLy8gY2FyZCBib3hlcyBhcmUgdHlwaWNhbGx5IHVzZWQgb24gcHJvZHVjdCBkZXRhaWwgc2VydmljZXMsIGNoZWNrb3V0IHRyYW5zcG9ydC9wYXltZW50IG9wdGlvbnMsXG4vLyBBTkQgcHJlLWNoZWNrb3V0IHBhZ2VcbkBtaXhpbiBjYXJkLWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktOTAwJyk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGlucHV0LCBib3JkZXItY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTRweCAzMHB4IDE0cHggMjBweDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMXB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIFt0eXBlPSdjaGVja2JveCddLFxuICAgIFt0eXBlPSdyYWRpbyddIHtcbiAgICAgICAgQGluY2x1ZGUgaW5wdXQtZGlzYztcbiAgICB9XG5cbiAgICAmOmhhcyg6Y2hlY2tlZCksXG4gICAgJltjbGFzcyo9J3NlbGVjdGVkJ10ge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KC5maXgtc3BlY2lmaWNpdHkpLFxuICAgICAgICBbdHlwZT0ncmFkaW8nXTpub3QoLmZpeC1zcGVjaWZpY2l0eSkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSxcbiAgICAmOmZvY3VzLXdpdGhpbjpub3QoOmhhcyhbZGlzYWJsZWRdKSkge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS00MDApO1xuXG4gICAgICAgIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCksXG4gICAgICAgIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aGFzKFtkaXNhYmxlZF0pOm5vdCguZml4LXNwZWNpZmljaXR5KSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgbGlnaHQpO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jYXRlZ29yeSB7XG4gICAgLS1jYXRlZ29yeS1kZXNrdG9wLW1pbjogMjByZW07XG4gICAgLS1jYXRlZ29yeS1kZXNrdG9wLWlkZWFsOiAyMHZ3O1xuICAgIC0tY2F0ZWdvcnktZGVza3RvcC1tYXg6IDI3cmVtO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJl9fdGl0bGUgKyAmX190ZXh0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICArIC5wcm9tby1kIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJyZW07XG5cbiAgICAgICAgJl9fZGV0YWlsLFxuICAgICAgICAmX19zaWRlYmFyIHtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RldGFpbCB7XG4gICAgICAgIC5lbWJsYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG5cbiAgICAgICAgICAgICZfX3ZpZXdwb3J0LFxuICAgICAgICAgICAgJl9fY29udHJvbHMge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX192aWV3cG9ydCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2NvbnRyb2xzIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBzdWJncmlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19idXR0b25zIHtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxcHggcmdiKDAsIDAsIDAsIDAuNikpO1xuXG4gICAgICAgICAgICAgICAgLy8gb3ZlcmxheSBidXR0b25zXG4gICAgICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgMTBweCBmcm9tIHRoZSBsZWZ0IGVkZ2VcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygxMDAlICsgMTBweCksIC01MCUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgICAgICAvLyBtb3ZlIDEwcHggZnJvbSB0aGUgcmlnaHQgZWRnZVxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgdHJhbnNsYXRlKGNhbGMoMTAwJSArIDEwcHgpLCAtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3BhZ2luYXRpb24ge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMjBweCAwOyAvLyBiZXR0ZXIgdmlzdWFsIGJhbGFuY2UuLi5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBjb2x1bW4tZ2FwOiAkY29udGFpbmVyLXBhZGRpbmcteDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxuICAgICAgICAgICAgY2xhbXAodmFyKC0tY2F0ZWdvcnktZGVza3RvcC1taW4pLCB2YXIoLS1jYXRlZ29yeS1kZXNrdG9wLWlkZWFsKSwgdmFyKC0tY2F0ZWdvcnktZGVza3RvcC1tYXgpKVxuICAgICAgICAgICAgMWZyO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1heC1jb250ZW50IG1heC1jb250ZW50IDFmcjtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2lkZWJhciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICAgICAgICBncmlkLXJvdzogMSAvIDQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWx0ZXJzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGMoJGNvbnRhaW5lci1wYWRkaW5nLXggLyAyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ3h4bCcpIHtcbiAgICAgICAgY29sdW1uLWdhcDogNy42cmVtO1xuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6Y29sb3InO1xuQGltcG9ydCAndGhlbWUtdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJztcbkBpbXBvcnQgJ2FwcC9hYnN0cmFjdHMvYWxsJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9jYXRlZ29yeS9hbGwnO1xuXG4uY2F0ZWdvcnktcGFnZTpoYXMoLnRpbWUtbGltaXRlZC1vZmZlcnMpIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAjbWFpbkNvbnRlbnQge1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2F0ZWdvcnkge1xuICAgIC0tY2F0ZWdvcnktZGVza3RvcC1pZGVhbDogMjJ2dztcbiAgICAtLWNhdGVnb3J5LWRlc2t0b3AtbWF4OiAzMi41cmVtO1xuICAgIC0tY2F0ZWdvcnktZGVza3RvcC1jbGFtcDogY2xhbXAodmFyKC0tY2F0ZWdvcnktZGVza3RvcC1taW4pLCB2YXIoLS1jYXRlZ29yeS1kZXNrdG9wLWlkZWFsKSwgdmFyKC0tY2F0ZWdvcnktZGVza3RvcC1tYXgpKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgIGdhcDogM3JlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgY29sdW1uLWdhcDogMi41cmVtO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNhdGVnb3J5LWRlc2t0b3AtY2xhbXApIGNhbGMoMTAwJSAtIHZhcigtLWNhdGVnb3J5LWRlc2t0b3AtY2xhbXApIC0gMi41cmVtKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudCAxZnI7XG5cbiAgICAgICAgJl9fZGV0YWlsIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCd4eGwnKSB7XG4gICAgICAgIGNvbHVtbi1nYXA6IDIuNXJlbTtcbiAgICB9XG5cbiAgICAmX19kZXRhaWwge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAgICAgb3JkZXI6IC01O1xuICAgICAgICB9XG5cbiAgICAgICAgLmVtYmxhIHtcbiAgICAgICAgICAgICZfX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLy8gdXNlIGlzcGFjZSBkZWZhdWx0IHN0eWxlIGhlcmVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyAvLyB1c2UgaXNwYWNlIGRlZmF1bHQgc3R5bGUgaGVyZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgdHJhbnNsYXRlWSgwKTsgLy8gdXNlIGlzcGFjZSBkZWZhdWx0IHN0eWxlIGhlcmVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIH4gKiArIC5jYXRlZ29yeV9fdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCdsZycpIHtcbiAgICAgICAgLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICAgICAgICAgb3JkZXI6IC00O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpbHRlci1jdXJyZW50IHtcbiAgICAgICAgICAgIC8vIENhdGVnb3J5IGhlYWRlciBoYXMgZ2FwIG9mIDMwcHggc28gd2UgbmVlZCB0byBhZGp1c3QgbWFyZ2luXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMjFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5qcy1zdGlja3ktY2F0ZWdvcnktZmlsdGVycyB7XG4gICAgICAgICAgICBvcmRlcjogLTI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zb3J0IHtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NpZGViYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDEgLyA1O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICAgICAgICAgLy8gbmVnYXRpdmUgbWFyZ2luIG5lZWRlZCBmb3Igb3ZlcmZsb3dpbmcgc2hhZG93XG4gICAgICAgICAgICBwYWRkaW5nOiA1MHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAtNTBweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBmbGV4OiBhdXRvIDAgMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgICAgICAgICAgICZfX3BlcmV4IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNTBweCAwIGNvbG9yLm1peChtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksIHRyYW5zcGFyZW50LCAxMyUpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0ICovXG4gICAgICAgICAgICAgICAgICAgICAgICAtLXRodW1ibmFpbC1wYWRkaW5nOiAwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faGVhZGluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jYXJkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAwIDEuM3JlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJl9fZnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2RhcmsnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJl9fZGlzY291bnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAmX19zYXZpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19vZmZlci0tZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0xMDBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMnB4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19vZmZlci0td3JhcHBlciB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBfX2ZpbHRlcnMgcG9zaXRpb24gY29udHJvbGxlZCBieSBKUyAoc2Nyb2xsKSBhbmQgcG9zc2libHkgYmUgYWJzb2x1dGUuXG4gICAgJl9fZmlsdGVycyB7XG4gICAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktbGlnaHQnKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIHBhZGRpbmcgMC4wNXM7IC8vIGRlbGF5IHRoZSByZW1vdmFsIG9mIHRoZSBwYWRkaW5nIHNsaWdodGx5IHRvIHByZXZlbnQgc3VkZGVuICdqb2x0J1xuXG4gICAgICAgICAgICAvLyB3ZSB3YW50IHRoZSAnbW9yZScgYnV0dG9uIHRvICdydW4tb24nIGZyb20gdGhlIGxhc3QgcGFyYWdyYXBoIHRleHQgc28gd2UgbXVzdC4uLlxuICAgICAgICAgICAgLy8gYSkgY2hlY2sgd2hldGhlciB0ZXh0LWFsaWduOmNlbnRlciBoYXMgYmVlbiBhZGRlZCBpbiBhZG1pbiBhbmQgd2hldGhlciB3ZSBoYXZlIGEgc2hvdyBtb3JlIGJ1dHRvbiBhZnRlciBpdC5cbiAgICAgICAgICAgIC8vICAgIElmIHNvLCBtYWtlIHRoZSAqY29udGFpbmVyKiBjZW50ZXItYWxpZ24gdGhlIHRleHRcbiAgICAgICAgICAgICY6aGFzKHA6bGFzdC1vZi10eXBlW3N0eWxlKj0nY2VudGVyJ10gKyAuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiKSBvbmx5IHVzZSB0aGUgaW5saW5lIHZhbHVlIHdoZW4gdGhlIGJ1dHRvbiBoYXMgbm90IHlldCBiZWVuIGFjdGl2YXRlZFxuICAgICAgICAgICAgcDpsYXN0LW9mLXR5cGU6aGFzKCsgLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoPiAuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jay1lbmQ6IGNsYW1wKDEuOHJlbSwgM3Z3LCAyLjRyZW0pOyAvLyBhZGQgPHA+LWVxdWl2YWxlbnQgcGFkZGluZyB0byBibG9jayB3aHJuICdtb3JlJyBsaW5rIGlzIHZpc2libGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tbGlua1tkYXRhLXRvZ2dsZT0nY29sbGFwc2UnXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNzAwO1xuXG4gICAgICAgICAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjdXJyZW50Y29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0xMDAnKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC4ycmVtIDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjhyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5Jyk7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY3VycmVudGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC44cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC44cmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRjb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGVhc2UtaW47XG5cbiAgICAgICAgcDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBjbGFtcCgxLjhyZW0sIDN2dywgMi40cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY29sbGFwc2U6bm90KC5pbikge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwgeHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0LCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWVtcHR5LWxpbmUtYmVmb3JlXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvdWJsZS1zbGFzaC1jb21tZW50LWVtcHR5LWxpbmUtYmVmb3JlXG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi8uLi9kZWZhdWx0L3Nhc3MvYXNnYXJkLXZhcmlhYmxlcycgYXMgYXNnYXJkLXZhcmlhYmxlcztcblxuLy8gYm9vdHN0cmFwIHZhcmlhYmxlc1xuLy8gbGF5b3V0XG4kZ3JpZC1icmVha3BvaW50czogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGdyaWQtYnJlYWtwb2ludHMsXG4gICAgKFxuICAgICAgICBkZXNrdG9wOiAxNjUwcHgsXG4gICAgICAgIGZ1bGxoZDogMTkyMHB4LFxuICAgICAgICAyazogMjUwMHB4XG4gICAgKVxuKTtcblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kY29udGFpbmVyLW1heC13aWR0aHMsXG4gICAgKFxuICAgICAgICBsZzogMTAyNHB4LFxuICAgICAgICB4bDogMTE0MHB4LFxuICAgICAgICB4eGw6IDE2ODVweFxuICAgIClcbik7XG5cbi8vIHNwYWNpbmdcbiRjb250YWluZXItcGFkZGluZy14OiAzcmVtO1xuJGNhbnZhcy1wYWRkaW5nLXk6IDRyZW07XG4kY2FudmFzLXBhZGRpbmcteS1tZDogNnJlbTtcbiRjYW52YXMtcGFkZGluZy15LXh4bDogN3JlbTtcblxuLy8gZm9udFxuJGZvbnQtc2l6ZS1yb290OiA2Mi41JTtcbiRmb250LXNpemUtYmFzZTogMS40cmVtO1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuNjtcbiRmb250LWZhbWlseS1iYXNlOiAnUGx1cyBKYWthcnRhIFNhbnMnLCAnUGx1cyBKYWthcnRhIFNhbnMtZmFsbGJhY2snLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2l6ZS1zbTogMS4ycmVtO1xuJGZvbnQtc2l6ZS1sZzogJGZvbnQtc2l6ZS1iYXNlICogMS4yNTtcbiRmb250LXNpemUtbGFyZ2VyOiAkZm9udC1zaXplLWJhc2UgKiAxLjU7IC8vICRoNC1mb250LXNpemU7XG4kZm9udC1zaXplLWxhcmdlc3Q6ICRmb250LXNpemUtYmFzZSAqIDI7IC8vICRoMi1mb250LXNpemU7XG5cbiRsZWdlbmQtZm9udC1zaXplOiAycmVtO1xuJGxlZ2VuZC1tYXJnaW4tYm90dG9tOiAycmVtO1xuJGxlZ2VuZC1mb250LXdlaWdodDogNzAwO1xuXG4vLyB0eXBvXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogMWVtO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbi8vIGNvbG9yc1xuJHByaW1hcnk6ICMzMzMzNzI7XG4kcHJpbWFyeS1kYXJrOiAjMjMyMzUyO1xuJHByaW1hcnktbWlkOiAjZThlOGZkO1xuJHByaW1hcnktbGlnaHQ6ICNlYmViZjE7XG4kcHJpbWFyeS1ncmF5OiAjZjFmMWYxO1xuJHByaW1hcnktcmVkOiAjYWYzMjMyO1xuJHNlY29uZGFyeTogIzIzMjM1MjtcbiRsaWdodDogI2ZmZjtcbiRkYXJrOiAjMDAwO1xuJGJvZHktYmc6ICNmOGY5ZmM7XG5cbiRncmVlbjogIzA1ODgwMjtcbiRncmVlbi1kYXJrOiAjMTg4MDM4O1xuJGdyZWVuLXNwOiByZ2IoMywgMTgxLCAwKTtcbiRncmVlbi1kYXJrLXNlbWktdHJhbnNwOiByZ2IoMjQsIDEyOCwgNTYsIDAuMSk7XG5cbiR0aGVtZS1jb2xvcnM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiR0aGVtZS1jb2xvcnMsXG4gICAgKFxuICAgICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgICAgcHJpbWFyeS1kYXJrOiAkcHJpbWFyeS1kYXJrLFxuICAgICAgICBwcmltYXJ5LW1pZDogJHByaW1hcnktbWlkLFxuICAgICAgICBwcmltYXJ5LWxpZ2h0OiAkcHJpbWFyeS1saWdodCxcbiAgICAgICAgcHJpbWFyeS1ncmF5OiAkcHJpbWFyeS1ncmF5LFxuICAgICAgICBwcmltYXJ5LXJlZDogJHByaW1hcnktcmVkLFxuICAgICAgICBwcmltYXJ5LWdyZWVuOiAkZ3JlZW4sXG4gICAgICAgIHNlY29uZGFyeTogJHNlY29uZGFyeSxcbiAgICAgICAgbGlnaHQ6ICRsaWdodCxcbiAgICAgICAgZGFyazogJGRhcmssXG4gICAgICAgIGRhcmstc2VtaS10cmFuc3A6IHJnYigwLCAwLCAwLCAwLjEpLFxuICAgICAgICBiYXNlLWJnOiAkbGlnaHQsXG4gICAgICAgIGJhc2UtdGV4dDogJGRhcmssXG4gICAgICAgIGxpbms6ICRwcmltYXJ5LFxuICAgICAgICBzdWNjZXNzOiAjOGVkNjA5LFxuICAgICAgICBzdWNjZXNzLWJnOiAjZThmMWQ5LFxuICAgICAgICBzdWNjZXNzLXRleHQ6ICRkYXJrLFxuICAgICAgICBpbmZvOiAjOWNiNWUxLFxuICAgICAgICBpbmZvLWJnOiAjZGRlZGYzLFxuICAgICAgICBpbmZvLXRleHQ6ICRkYXJrLFxuICAgICAgICB3YXJuaW5nOiAjMjM5YmM4LFxuICAgICAgICB3YXJuaW5nLWJnOiAjOWNiNWUxLFxuICAgICAgICB3YXJuaW5nLXRleHQ6ICRkYXJrLFxuICAgICAgICBkYW5nZXI6ICNlMjY5NjksXG4gICAgICAgIGRhbmdlci1iZzogI2Y2ZGZkZixcbiAgICAgICAgZGFuZ2VyLXRleHQ6ICRkYXJrLFxuICAgICAgICBzdGFyLXJhdGluZy1iZzogI2ZiMCxcbiAgICAgICAgaW4tc3RvY2s6ICRncmVlbixcbiAgICAgICAgb3V0LW9mLXN0b2NrOiAjZTI2OTY5LFxuICAgICAgICBwcmVvcmRlcjogI2VhYjAwMCxcbiAgICAgICAgLy8gMTAlIG9mIGluLXN0b2NrIGNvbG91clxuICAgICAgICBpbi1zdG9jay1iZzogcmdiKDUsIDEzNiwgMiwgMC4xKSxcbiAgICAgICAgZ3JheS0xMDA6ICNmM2YzZjMsXG4gICAgICAgIGdyYXktMjAwOiAjZGVkZWRlLFxuICAgICAgICBncmF5LTMwMDogI2QwZDBkMCxcbiAgICAgICAgZ3JheS00MDA6ICNiMWIxYjEsXG4gICAgICAgIGdyYXktNjAwOiAjNzQ3NDc0LFxuICAgICAgICBncmF5LTcwMDogIzRkNGQ0ZCxcbiAgICAgICAgZ3JheS04MDA6ICMzODM4MzgsXG4gICAgICAgIGdyYXktOTAwOiAjMjYyNjI2LFxuICAgICAgICBncmF5LXNlbWktdHJhbnNwOiByZ2IoMjAsIDkyLCAxMjgsIDAuMSksXG4gICAgICAgIHNhdmluZy1jb2xvcjogcmdiKDI0LCAxMjgsIDU2LCAxKSxcbiAgICAgICAgc2F2aW5nLWNvbG9yLWJnOiAkZ3JlZW4tZGFyay1zZW1pLXRyYW5zcCxcbiAgICAgICAgdm91Y2hlci1iZzogI2Q4ZWRmN1xuICAgIClcbik7XG4vLyBib290c3RyYXAgdmFyaWFibGVzIGVuZFxuXG4kdGhlbWUtZ3JhZGllbnRzOiAoXG4gICAgJ3ByaW1hcnktYmcnOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktZGFyaycpLCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5JykpXG4pO1xuXG4kbGFiZWwtZ2lmdC1jb2xvcjogIzAwYWVhMztcbiRsYWJlbC11c2VkLXByb2R1Y3QtY29sb3I6ICNlYWIwMDA7XG4kbGFiZWwtZ2lmdC1iZy1jb2xvcjogI2U2ZmJmMztcblxuLy8gc2hvcGlvIHZhcmlhYmxlc1xuJGZvbnQtcGF0aDogJy9hc3NldHMvZXNob3Auc2V0b3MuY3ovZm9udCc7XG5cbiRoMS1mb250LXNpemU6IGNsYW1wKDNyZW0sIDZ2dywgNHJlbSk7IC8vICRmb250LXNpemUtYmFzZSAqIDIuNTtcbiRoMi1mb250LXNpemU6IDMuNnJlbTsgLy8gQ3VzdG9tIGZvbnQgc2l6ZSBieSBkZXNpZ25cbiRoMy1mb250LXNpemU6IDJyZW07IC8vICRmb250LXNpemUtYmFzZSAqIDEuNzU7XG4kaDQtZm9udC1zaXplOiAxLjhyZW07XG4kaDUtZm9udC1zaXplOiAxLjZyZW07XG4kaDYtZm9udC1zaXplOiAxLjZyZW07XG5cbiRidG46IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRidG4sXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeScpLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktZGFyaycpLFxuICAgICAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbVxuICAgIClcbik7XG5cbiRidG4tZGlzYWJsZWQ6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRidG4tZGlzYWJsZWQsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTIwMCksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdiYXNlLXRleHQnKSxcbiAgICAgICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApLFxuICAgICAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnYmFzZS10ZXh0JylcbiAgICApXG4pO1xuXG4kYnRuLWRhcms6IChcbiAgICBiZy1jb2xvcjogJGRhcmssXG4gICAgY29sb3I6ICNmZmYsXG4gICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS05MDApLFxuICAgIGhvdmVyLWNvbG9yOiAjZmZmXG4pO1xuXG4kaW5wdXQ6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRpbnB1dCxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktMjAwJyksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBcbiAgICApXG4pO1xuXG4kY2hlY2tib3gtY2hlY2s6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXFxcbiAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxcXG4gICAgZmlsbD1cIm5vbmVcIlxcXG4gICAgc3Ryb2tlPVwiI3tyZ2JhKCRsaWdodCwgMSl9XCJcXFxuICAgIHN0cm9rZS13aWR0aD1cIjNcIj5cXFxuICAgIDxwb2x5bGluZSBwb2ludHM9XCIyMCA2IDkgMTcgNCAxMlwiPjwvcG9seWxpbmU+XFxcbiAgICA8L3N2Zz4nKTtcblxuJHBhc3N3b3JkLXNob3c6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1NzYgNTEyXCI+XFxcbiAgICA8cGF0aCBkPVwiTTI4OCA4MGMtNjUuMiAwLTExOC44IDI5LjYtMTU5LjkgNjcuN0M4OS42IDE4My41IDYzIDIyNiA0OS40IDI1NiA2MyAyODYgODkuNiAzMjguNSAxMjggMzY0LjNjNDEuMiAzOC4xIDk0LjggNjcuNyAxNjAgNjcuN3MxMTguOC0yOS42IDE1OS45LTY3LjdDNDg2LjQgMzI4LjUgNTEzIDI4NiA1MjYuNiAyNTZjLTEzLjYtMzAtNDAuMi03Mi41LTc4LjYtMTA4LjNDNDA2LjggMTA5LjYgMzUzLjIgODAgMjg4IDgwek05NS40IDExMi42QzE0Mi41IDY4LjggMjA3LjIgMzIgMjg4IDMyczE0NS41IDM2LjggMTkyLjYgODAuNmM0Ni44IDQzLjUgNzguMSA5NS40IDkzIDEzMS4xIDMuMyA3LjkgMy4zIDE2LjcgMCAyNC42LTE0LjkgMzUuNy00Ni4yIDg3LjctOTMgMTMxLjFDNDMzLjUgNDQzLjIgMzY4LjggNDgwIDI4OCA0ODBzLTE0NS41LTM2LjgtMTkyLjYtODAuNkM0OC42IDM1NiAxNy4zIDMwNCAyLjUgMjY4LjNjLTMuMy03LjktMy4zLTE2LjcgMC0yNC42QzE3LjMgMjA4IDQ4LjYgMTU2IDk1LjQgMTEyLjZ6TTI4OCAzMzZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBoLTJjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDM1LjMtMjguNyA2NC02NCA2NC01LjUgMC0xMC45LS43LTE2LTJ2MmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMC0yMDhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2elwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kYW5nbGUtcmlnaHQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XFxcbiAgICA8cGF0aCBmaWxsPVwiI3tyZ2JhKG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSksIDAuOTk5KX1cIlxcXG4gICAgZD1cIk0yNzguNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjEwLjcgMjU2IDczLjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHpcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGRpYWdvbmFsLWxpbmU6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj5cXFxuICAgIDxsaW5lIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2U9XCIje3JnYmEobWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCksIDAuOTk5KX1cIlxcXG4gICAgeDE9XCIwXCIgeTE9XCIwXCIgeDI9XCIxMDBcIiB5Mj1cIjEwMFwiIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGJyZWFkY3J1bWJzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kYnJlYWRjcnVtYnMsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0xMDAnKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktODAwJyksXG4gICAgICAgIGFjdGl2ZS1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZGFyaycpXG4gICAgKVxuKTtcblxuLy8gaGVhZGVyXG4kaGVhZGVyLW5hdi1oZWlnaHQ6IDUuNXJlbTsgLy8gaGVpZ2h0IG9uIHNtYWxsIHNjcmVlbnNcbiRoZWFkZXItbmF2LWRlc2t0b3AtaGVpZ2h0OiAxNC41cmVtOyAvLyBoZWlnaHQgb24gYmlnZ2VyIHNjcmVlbnNcbiRoZWFkZXItdG9wLW5hdi1kZXNrdG9wLWhlaWdodDogMTQuNXJlbTsgLy8gaGVpZ2h0IG9uIGJpZ2dlciBzY3JlZW5zXG4kaGVhZGVyLW5hdi1icmVha3BvaW50OiAneGwnOyAvLyBicmVha3BvaW50IHdoZW4gbmF2IGNoYW5nZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcFxuJGhlYWRlci1zZWFyY2gtZGVza3RvcC1oZWlnaHQ6IDVyZW07XG4kaGVhZGVyLXNlYXJjaC1kZXNrdG9wLXdpZHRoOiAxMDAlO1xuXG4kc2Nyb2xsYmFyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5Jyk7XG5cbi8vIG1lbnVcbiRtZW51LWl0ZW0tZGVza3RvcC1wYWRkaW5nOiAxcmVtO1xuJG1lbnUtc2Vjb25kYXJ5LWxpbmtzLWJnOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpO1xuJG1lbnUtc3VibWVudS1zaW5nbGUtY29sdW1uLW1pbjogOTtcblxuLy8gZm9vdGVyXG4kZm9vdGVyLWJsb2NrLWNvbGxhcHNlZC1oZWlnaHQ6IDYuNXJlbTtcblxuLy8gdm91Y2hlciBQREZcbi8vIE5PVEU6IGlmIHRoZSBmb250cyB1c2VkIGhlcmUgYXJlIG5vbi1zdGFuZGFyZCwgdGhlbiB0aGV5IG5lZWQgdG8gYmUgdXBsb2FkZWQgYW5kIHNwZWNpZmllZCBzZXBhcmF0ZWx5IGluIHRoZVxuLy8gbVBERiBpbml0aWFsaXphdGlvbiAoc2VlIHVzYWdlIGluIFNEIG9yIHNwZWFrIHdpdGggREIgOikpXG4kdm91Y2hlcjogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHZvdWNoZXIsXG4gICAgKFxuICAgICAgICBwcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgICAgIHByaW1hcnktY29sb3I6ICM0NDQsXG4gICAgICAgIHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjZGRkLFxuICAgICAgICBzZWNvbmRhcnktY29sb3I6ICM0NDQsXG4gICAgICAgIGJsb2NrLWhpZ2hsaWdodC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwLFxuICAgICAgICBibG9jay1oaWdobGlnaHQtY29sb3I6ICM0NDQsXG4gICAgICAgIGJhc2UtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UsXG4gICAgICAgIGJhc2UtbGluZS1oZWlnaHQ6IDEuNSxcbiAgICAgICAgaGVhZGluZy1mb250OiAkZm9udC1mYW1pbHktYmFzZSxcbiAgICAgICAgYm9keS1mb250OiAkZm9udC1mYW1pbHktYmFzZSxcbiAgICAgICAgbG9nby1tYXgtaGVpZ2h0OiAxMG1tXG4gICAgKVxuKTtcblxuLy8gRnVsbC13aWR0aCBzbGlkZXIgaW1hZ2UgZGltZW5zaW9ucyAoYXBwbGllcyB0byBkZXNrdG9wIG9ubHkpXG4vLyBpbWFnZS13aWR0aDogaW1hZ2Ugc2l6ZVxuLy8gaW1hZ2UtY29udGVudC1hcmVhLXdpZHRoOiB3aGVyZSB3ZSBjYW4gc2FmZWx5IGNyb3AgKGZyb20gdGhlIGZ1bGwgc2l6ZSBpbWFnZSlcbiRzbGlkZXItZGVza3RvcDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHNsaWRlci1kZXNrdG9wLFxuICAgIChcbiAgICAgICAgaW1hZ2Utd2lkdGg6IDE5MDBweCxcbiAgICAgICAgaW1hZ2UtY29udGVudC1hcmVhLXdpZHRoOiAxMjAwcHhcbiAgICApXG4pO1xuLy8gc2hvcGlvIHZhcmlhYmxlcyBlbmRcblxuLy8gQ1NTIHZhcmlhYmxlc1xuLy8gbW92ZSB0byBhcHAuc2Nzc1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==*/