/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/obchod-samsung.cz/sass/product-posts.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
 */
@media (min-width: 768px) {
  .default-post *:not(header) .container, .default-post__header h1, .default-post__header--meta {
    max-width: 848px;
    margin-inline: auto;
  }
  .default-post__header h1, .default-post__header--meta {
    padding-inline: calc(var(--bs-gutter-x) * 0.5);
    width: 100%;
  }
}
.default-post__header h1 {
  text-wrap: balance;
}
.default-post__header--meta {
  margin-top: 2rem;
}
.default-post__header--date {
  display: inline-block;
}
.default-post__header--date:not(:last-child) {
  margin-right: 1em;
}
.default-post__header--tags {
  display: inline-flex;
  flex-wrap: wrap;
}
.default-post__header--tags > a ~ a {
  margin-left: 0.3em;
}
.default-post .post-item__date {
  display: inline-block;
}
.default-post--index .default-page__header h1 {
  display: grid;
  align-items: baseline;
  grid-template-columns: 1fr auto;
}
.default-post--index .default-page__header + .canvas .default-post__content--tags {
  margin-top: -1.5rem;
}
.default-post__content--tags {
  margin-bottom: 5rem;
}
.default-post__content--tags .container {
  display: grid;
  gap: clamp(10px, 5vw, 2rem);
  align-items: baseline;
}
@media (min-width: 480px) {
  .default-post__content--tags .container {
    grid-template-columns: auto 1fr;
  }
}
.default-post__content--tags .container h2 {
  margin: 0;
}
.default-post__content--tags .container ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 15px;
}
.default-post__posts--grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: clamp(10px, 5vw, 3rem);
}
.default-post__posts--grid .post-item {
  margin: 0;
  max-width: none;
}
.default-post__posts--grid + .pagination {
  margin-block-start: clamp(10px, 5vw, 3rem);
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLm9iY2hvZC1zYW1zdW5nLmN6LmFzZ2FyZC5wcm9kdWN0LXBvc3RzLjZkZWRkMjlkZGNiNzY4ZGQyZjA3LmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFHQTs7Ozs7RUFBQTtBQWlCQTs7Ozs7O0VBQUE7QUMrUEE7O0VBQUE7QUErSEE7O0VBQUE7QUNuVkk7RUMzREk7SUFHSTtJQUNBO0VDZVY7RURaTTtJQUVJO0lBQ0E7RUNhVjtBQUNGO0FEVFE7RUFDSTtBQ1daO0FEUEk7RUFDSTtBQ1NSO0FETkk7RUFDSTtBQ1FSO0FETlE7RUFDSTtBQ1FaO0FESkk7RUFDSTtFQUNBO0FDTVI7QURKUTtFQUNJO0FDTVo7QURGSTtFQUNJO0FDSVI7QURDWTtFQUNJO0VBQ0E7RUFDQTtBQ0NoQjtBREdnQjtFQUNJO0FDRHBCO0FET0k7RUFDSTtBQ0xSO0FET1E7RUFDSTtFQUNBO0VBQ0E7QUNMWjtBRkhJO0VDS0k7SUFNUTtFQ0pkO0FBQ0Y7QURNWTtFQUNJO0FDSmhCO0FET1k7RUFDSTtFQUNBO0VBQ0E7QUNMaEI7QURVSTtFQUNJO0VBQ0E7RUFDQTtBQ1JSO0FEVVE7RUFDSTtFQUNBO0FDUlo7QURXUTtFQUNJO0FDVFosQyIsInNvdXJjZXMiOlsid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvb2JjaG9kLXNhbXN1bmcuY3ovc2Fzcy9hcHAvYWJzdHJhY3RzL19mbnMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL29iY2hvZC1zYW1zdW5nLmN6L3Nhc3MvYXBwL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2RlZmF1bHQvc2Fzcy9wb3N0cy9fcG9zdHMtZGVmYXVsdC5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvb2JjaG9kLXNhbXN1bmcuY3ovc2Fzcy9wcm9kdWN0LXBvc3RzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50IGZyb20gdGhlIGdpdmVuIGJyZWFrcG9pbnQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGJyZWFrcG9pbnQgZm9yIHdoaWNoIHRvIGZpbmQgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LlxuICogQHJldHVybiB7U3RyaW5nfG51bGx9IC0gVGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LCBvciBudWxsIGlmIG5vIHNtYWxsZXIgYnJlYWtwb2ludCBpcyBhdmFpbGFibGUuXG4gKi9cbkBmdW5jdGlvbiBnZXQtc21hbGxlci1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgJGtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJGtleXMsICRicmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJGluZGV4IG9yICRpbmRleCA9PSAxIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIEByZXR1cm4gbGlzdC5udGgoJGtleXMsICRpbmRleCAtIDEpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBsYXJnZXIgYnJlYWtwb2ludCBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXAuXG4gKlxuICogQGZ1bmN0aW9uIGdldC1iaWdnZXItYnJlYWtwb2ludFxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGN1cnJlbnQgYnJlYWtwb2ludCB0byBmaW5kIHRoZSBuZXh0IGxhcmdlciBvbmUgZm9yLlxuICogQHJldHVybiB7U3RyaW5nIHwgbnVsbH0gLSBUaGUgbmV4dCBsYXJnZXIgYnJlYWtwb2ludCBvciBudWxsIGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgdGhlIGxhcmdlc3Qgb3Igbm90IGZvdW5kLlxuICovXG5AZnVuY3Rpb24gZ2V0LWxhcmdlci1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgJGtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJGtleXMsICRicmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJGluZGV4IG9yICRpbmRleCA9PSBsaXN0Lmxlbmd0aCgkYnJlYWtwb2ludCkge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgQHJldHVybiBsaXN0Lm50aCgka2V5cywgJGluZGV4ICsgMSk7XG59XG4iLCJAdXNlICdzYXNzOmNvbG9yJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5cbi8vICogVmlzdWFscyBmb3Igc21hbGwgYmxvY2tzIHdpdGggYSBob3ZlciAvIGZvY3VzLXdpdGhpbiBlZmZlY3QgaW5jbHVkZWRcbi8vICogVG8gbW9kaWZ5IGRlZmF1bHQgdmFsdWVzLCB5b3UgY291bGQgdXNlIEBpbmNsdWRlIHNtYWxsLWJsb2NrLWNvbXBvbmVudChtYXAuc2V0KCRjb25maWcsICdyYWRpdXMnLCAyMHB4KSlcbkBtaXhpbiBzbWFsbC1ibG9jay1jb21wb25lbnQoXG4gICAgJHJhZGl1czogMTBweCxcbiAgICAkYmFja2dyb3VuZC1zdGFydDogY29sb3IuYWRqdXN0KG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1saWdodCksICRhbHBoYTogLTEpLFxuICAgICRiYWNrZ3JvdW5kLWVuZDogY29sb3IuYWRqdXN0KG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1saWdodCksICRhbHBoYTogMCksXG4gICAgJGJveC1zaGFkb3ctc3RhcnQ6IDAgNHB4IDIwcHggMCAjMDAwMDAwMTQsXG4gICAgJGJveC1zaGFkb3ctZW5kOiAwIDRweCA0cHggMCAjMDAwMDAwMTQsXG4gICAgJHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAwLjE1cywgYm94LXNoYWRvdyBsaW5lYXIgMC4xNXMnXG4pIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXN0YXJ0O1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXN0YXJ0O1xuICAgIHRyYW5zaXRpb246ICN7JHRyYW5zaXRpb259O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWVuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctZW5kO1xuICAgIH1cbn1cblxuQG1peGluIHdpZGUtY2FyZCgkYnJlYWtwb2ludDogJ3hsJykge1xuICAgICRzbWFsbGVyLWJyZWFrcG9pbnQ6IGdldC1sYXJnZXItYnJlYWtwb2ludCgkYnJlYWtwb2ludCk7XG5cbiAgICAucHJvZHVjdC1jYXJkIHtcbiAgICAgICAgLS10aHVtYm5haWwtd2lkdGg6IDIwMHB4O1xuICAgICAgICAtLWZsYWctZm9udC1zaXplOiAxLjJyZW07XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IDAgcmdiKDAsIDAsIDAsIDAuMDcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHNtYWxsZXItYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRzbWFsbGVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAtLXRodW1ibmFpbC13aWR0aDogMjgwcHg7XG4gICAgICAgICAgICAgICAgLS1mbGFnLWZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS10aHVtYm5haWwtd2lkdGgpIDFmciBhdXRvO1xuICAgICAgICAgICAgICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cmVtO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3JlbSA0cmVtIDNyZW0gMDtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ByaW1hcnksXG4gICAgICAgICAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS10aHVtYm5haWwtd2lkdGgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogYXV0bztcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI0MHB4O1xuICAgICAgICAgICAgICAgICAgICBpbnNldDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdmFyaWFudHMge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wZXJleCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcGFyYW1ldGVycyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA1O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLmNhcmQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDAgMS42cmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgICZfX2Z1bGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBkYXJrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2Rpc2NvdW50LFxuICAgICAgICAgICAgICAgICAgICAmX19zYXZpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2ZsYWdzIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTEzcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBwbGFjZS1zZWxmOiBzdGFydCBlbmQ7XG4gICAgICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG5cbiAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX2l0ZW0nXSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMjJlbSAwLjYzZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mbGFnLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzKj0nX190ZXh0J10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNDAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19hZGQge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gKiBBZGQgaW52ZXJ0ZWQgYm9yZGVyIHJhZGl1cyBjb3JuZXJzXG4vLyAqIG1hc2sgdmFsdWVzIGFyZSBpbiB0aGUgb3JkZXIgdGwgLyB0ciAvIGJyIC8gYmxcbi8vICogTm90ZSB0aGF0IGFsbCB1bml0cyBzaG91bGQgYmUgaW4gcHhcbi8vICogQHBhcmFtIHtsaXN0fSAtIHNwZWNpZmljIGJvcmRlciBjb3JuZXJzICRjb3JuZXJzIChhbGx8dGx8dHJ8Ymx8YnIpXG5AbWl4aW4gaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cygkY29ybmVyczogJ2FsbCcpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAkdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXM6IFsnYWxsJywgJ3RsJywgJ3RyJywgJ2JsJywgJ2JyJywgJ3QnLCAncicsICdiJywgJ2wnXTtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci10cjogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItYnI6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAwcHg7XG5cbiAgICAtLWludmVydGVkLWJvcmRlci1ncmFkaWVudDogIzAwMDAgOTglLCAjMDAwO1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1czogI3skaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1c307XG5cbiAgICBAaWYgbm90IGxpc3QuaW5kZXgoJHZhbGlkLWJvcmRlci1yYWRpdXMtcGFyYW1zLCAkY29ybmVycykge1xuICAgICAgICBAZXJyb3IgXCIjeyRjb3JuZXJzfSBpcyBub3QgYSB2YWxpZCBzaWRlLiBFeHBlY3RlZCBvbmUgb2YgI3skdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXN9LlwiO1xuICAgIH1cblxuICAgIEBpZiAkY29ybmVycyA9PSAnYWxsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3RsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3RyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2JyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2JsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3QnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3InIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2InIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2wnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bDogI3skaW52ZXJ0ZWQtYm9yZGVyLXRsfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHI6ICN7JGludmVydGVkLWJvcmRlci10cn07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyOiAjeyRpbnZlcnRlZC1ib3JkZXItYnJ9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibDogI3skaW52ZXJ0ZWQtYm9yZGVyLWJsfTtcblxuICAgIG1hc2s6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSBhdCAwIDAsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDAgMCxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIGF0IDEwMCUgMCwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMTAwJSAwLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgYXQgMCAxMDAlLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAwIDEwMCUsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSBhdCAxMDAlIDEwMCUsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDEwMCUgMTAwJTtcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1hc2stc2l6ZTogNTElIDUxJTtcblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbiAgICAvLyBEaXNhYmxlIGZvciBvbGRlciBTYWZhcmkgYnJvd3NlcnMgYXMgdGhlIGxheW91dCBicmVha3MgdGhlcmUgd2l0aCBtYXNrXG4gICAgQHN1cHBvcnRzIChiYWNrZ3JvdW5kOiAtd2Via2l0LW5hbWVkLWltYWdlKGkpKSB7XG4gICAgICAgIG1hc2s6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gV2UgY2Fubm90IGNoZWNrIGZvciBAc3VwcG9ydHMgKGNsaXAtcGF0aDogc2hhcGUoKSkgYmVjYXVzZSwgd2hpbGUgRmlyZWZveCBzdXBwb3J0cyB0aGUgcnVsZSwgaXQgZG9lcyBub3Qgd29yayAtIHlldCAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMDMyOClcbiAgICAvLyBCdXQsIGFzIHNoYXBlKCkgY2FuIGJlIHVzZWQgaW4gYW5pbWF0aW9uIHBhdGhzLCBhbmQgQ2hyb21lIGFuZCBjdXJyZW50IFNhZmFyaSBzdXBwb3J0IHRoaXMgaW1wbGVtZW50YXRpb24uXG4gICAgLy8gTk9URTogV2Ugc2hvdWxkIHN0aWxsIGNoZWNrIHRvIHNlZSB3aGVuIGNsaXAtcGF0aDogc2hhcGUoKSBpcyBmdWxseSBlbmFibGVkIGluIEZpcmVmb3gsIGJ1dCBpbiB0aGUgbWVhbnRpbWUsIG1hc2tpbmcgd29ya3MgbmljZWx5IHRoZXJlXG4gICAgQHN1cHBvcnRzIChvZmZzZXQtcGF0aDogc2hhcGUoZnJvbSB0b3AgbGVmdCwgY3VydmUgdG8gNTAlIDUwJSB3aXRoIDI1JSAxMDAlKSkge1xuICAgICAgICBtYXNrOiBub25lO1xuICAgICAgICBjbGlwLXBhdGg6IHNoYXBlKFxuICAgICAgICAgICAgZnJvbSAwIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpLFxuICAgICAgICAgICAgYXJjIGJ5IHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpIGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgKiAtMSkgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCksXG4gICAgICAgICAgICBsaW5lIHRvIGNhbGMoMTAwJSAtIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpKSAwLFxuICAgICAgICAgICAgYXJjIGJ5IHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpLFxuICAgICAgICAgICAgbGluZSB0byAxMDAlIGNhbGMoMTAwJSAtIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpKSxcbiAgICAgICAgICAgIGFyYyBieSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpICogLTEpIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpLFxuICAgICAgICAgICAgbGluZSB0byB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAxMDAlLFxuICAgICAgICAgICAgYXJjIGJ5IGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgKiAtMSkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAqIC0xKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSxcbiAgICAgICAgICAgIGxpbmUgdG8gMCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKVxuICAgICAgICApO1xuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbn1cblxuLy8gTGFiZWwgaXMgc2hpZnRlZCB3aGVuIC1cbi8vIGlucHV0IGlzIGZvY3VzZWRcbi8vIGhhcyB2YWx1ZSBwcm9wIGJ1dCBub3QgcGxhY2Vob2xkZXIgc2hvd24gKGhhcHBlbmRzIHdoZW4gcHJlZmlsbGVkIGlucHV0IGlzIG1hbnVhbGx5IGNsZWFyZWQpXG4vLyBoYXMgc29tZSB0ZXh0IHBsYWNlaG9sZGVyXG4vLyBpcyBhdXRvZmlsbGVkXG5AbWl4aW4gZm9ybS1pbnB1dC1sYWJlbC1zZWxlY3RvcnMge1xuICAgICY6aGFzKDp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6bm90KDp3aGVyZSg6cGxhY2Vob2xkZXItc2hvd24pKTppcyg6d2hlcmUoOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKSwgOndoZXJlKDpub3QoW3BsYWNlaG9sZGVyPScnXSwgW3BsYWNlaG9sZGVyPScgJ10pKSwgOm5vdChbdmFsdWU9JyddKSwgOi13ZWJraXQtYXV0b2ZpbGwsIDphdXRvZmlsbCwgOmZvY3VzKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCksXG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTppcyg6d2hlcmUoOnBsYWNlaG9sZGVyLXNob3duOm5vdChbcGxhY2Vob2xkZXI9JyddLCBbcGxhY2Vob2xkZXI9JyAnXSkpKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCksXG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTppcyg6Zm9jdXMpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXNldCBpU3BhY2UgY3VzdG9tIGZvcm0gaW5wdXQgc3R5bGVzIHRvIGJlIGFibGUgdG8gZGVzaWduIHNwZWNpYWwgaW5wdXRzIG1vcmUgZWFzaWx5XG4gKi9cbkBtaXhpbiByZXNldC1mb3JtLWlucHV0IHtcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPSdjaGVja2JveCddLCBbdHlwZT0ncmFkaW8nXSksIHRleHRhcmVhLCBzZWxlY3QpKSB7XG4gICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IGluaXRpYWw7XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgcGFkZGluZzogaW5pdGlhbDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIDp3aGVyZSguZm9ybS1maWVsZCA+ICopIHtcbiAgICAgICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkX19pbnB1dCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoLmVycm9ycykge1xuICAgICAgICAgICAgLS1pbnB1dC1iZzogaW5pdGlhbDtcblxuICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICAgICAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaXRpYWw7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiBpbml0aWFsO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKC5mb3JtLWZpZWxkLS1zbSkge1xuICAgICAgICAgICAgLmZvcm0taW5wdXRfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6bm90KDp3aGVyZSg6Zm9jdXMtd2l0aGluLCBbZGlzYWJsZWRdKSkge1xuICAgICAgICAgICAgICAgICY6d2hlcmUoOm5vdCg6aGFzKC5lcnJvcnMpKSkge1xuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aGFzKC5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWxhYmVsLXNlbGVjdG9ycyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogU3R5bGVzIHRvIGhpZGUgdGhlIHNjcm9sbGJhciBidXQgc3RpbGwgYWxsb3cgc2Nyb2xsaW5nXG4gKi9cbkBtaXhpbiBzY3JvbGwtd2l0aG91dC1zY3JvbGxiYXIge1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBJRSBhbmQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuXG4gICAgLyogQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gQWx0ZXJuYXRpdmUgZGlzYy1saWtlIHN0eWxpbmcgZm9yIHJhZGlvIGFuZCBjaGVja2JveCBpbnB1dHNcbkBtaXhpbiBpbnB1dC1kaXNjIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMCAxMHB4IDAgYXV0bztcbiAgICBtYXJnaW4tYmxvY2s6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgZmxleDogMCAwIDE1cHg7IC8vIGluIGNhc2UgaXQncyBwYXJ0IG9mIGEgZmxleCBsYXlvdXRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYigwLCAwLCAwLCAwLjEpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcbn1cblxuLy8gY2FyZCBib3hlcyBhcmUgdHlwaWNhbGx5IHVzZWQgb24gcHJvZHVjdCBkZXRhaWwgc2VydmljZXMsIGNoZWNrb3V0IHRyYW5zcG9ydC9wYXltZW50IG9wdGlvbnMsXG4vLyBBTkQgcHJlLWNoZWNrb3V0IHBhZ2VcbkBtaXhpbiBjYXJkLWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktOTAwJyk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGlucHV0LCBib3JkZXItY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTRweCAzMHB4IDE0cHggMjBweDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMXB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIFt0eXBlPSdjaGVja2JveCddLFxuICAgIFt0eXBlPSdyYWRpbyddIHtcbiAgICAgICAgQGluY2x1ZGUgaW5wdXQtZGlzYztcbiAgICB9XG5cbiAgICAmOmhhcyg6Y2hlY2tlZCksXG4gICAgJltjbGFzcyo9J3NlbGVjdGVkJ10ge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KC5maXgtc3BlY2lmaWNpdHkpLFxuICAgICAgICBbdHlwZT0ncmFkaW8nXTpub3QoLmZpeC1zcGVjaWZpY2l0eSkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSxcbiAgICAmOmZvY3VzLXdpdGhpbjpub3QoOmhhcyhbZGlzYWJsZWRdKSkge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS00MDApO1xuXG4gICAgICAgIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCksXG4gICAgICAgIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aGFzKFtkaXNhYmxlZF0pOm5vdCguZml4LXNwZWNpZmljaXR5KSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgbGlnaHQpO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5cbi5kZWZhdWx0LXBvc3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgICAgKjpub3QoaGVhZGVyKSAuY29udGFpbmVyLFxuICAgICAgICAmX19oZWFkZXIgaDEsXG4gICAgICAgICZfX2hlYWRlci0tbWV0YSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDg0OHB4O1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRlciBoMSxcbiAgICAgICAgJl9faGVhZGVyLS1tZXRhIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLWJzLWd1dHRlci14KSAqIDAuNSk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlci0tbWV0YSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgJl9faGVhZGVyLS1kYXRlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlci0tdGFncyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgPiBhIH4gYSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4zZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucG9zdC1pdGVtX19kYXRlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICYtLWluZGV4IHtcbiAgICAgICAgLmRlZmF1bHQtcGFnZV9faGVhZGVyIHtcbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICArIC5jYW52YXMge1xuICAgICAgICAgICAgICAgIC5kZWZhdWx0LXBvc3RfX2NvbnRlbnQtLXRhZ3Mge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQtLXRhZ3Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuXG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdhcDogY2xhbXAoMTBweCwgNXZ3LCAycmVtKTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIGdhcDogNXB4IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3N0cy0tZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiBjbGFtcCgxMHB4LCA1dncsIDNyZW0pO1xuXG4gICAgICAgIC5wb3N0LWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgKyAucGFnaW5hdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNsYW1wKDEwcHgsIDV2dywgM3JlbSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQgZnJvbSB0aGUgZ2l2ZW4gYnJlYWtwb2ludC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgYnJlYWtwb2ludCBmb3Igd2hpY2ggdG8gZmluZCB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQuXG4gKiBAcmV0dXJuIHtTdHJpbmd8bnVsbH0gLSBUaGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQsIG9yIG51bGwgaWYgbm8gc21hbGxlciBicmVha3BvaW50IGlzIGF2YWlsYWJsZS5cbiAqL1xuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5leHQgbGFyZ2VyIGJyZWFrcG9pbnQgZnJvbSB0aGUgJGdyaWQtYnJlYWtwb2ludHMgbWFwLlxuICpcbiAqIEBmdW5jdGlvbiBnZXQtYmlnZ2VyLWJyZWFrcG9pbnRcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIFRoZSBjdXJyZW50IGJyZWFrcG9pbnQgdG8gZmluZCB0aGUgbmV4dCBsYXJnZXIgb25lIGZvci5cbiAqIEByZXR1cm4ge1N0cmluZyB8IG51bGx9IC0gVGhlIG5leHQgbGFyZ2VyIGJyZWFrcG9pbnQgb3IgbnVsbCBpZiB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIHRoZSBsYXJnZXN0IG9yIG5vdCBmb3VuZC5cbiAqL1xuLyoqXG4gKiBSZXNldCBpU3BhY2UgY3VzdG9tIGZvcm0gaW5wdXQgc3R5bGVzIHRvIGJlIGFibGUgdG8gZGVzaWduIHNwZWNpYWwgaW5wdXRzIG1vcmUgZWFzaWx5XG4gKi9cbi8qKlxuICogU3R5bGVzIHRvIGhpZGUgdGhlIHNjcm9sbGJhciBidXQgc3RpbGwgYWxsb3cgc2Nyb2xsaW5nXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZGVmYXVsdC1wb3N0ICo6bm90KGhlYWRlcikgLmNvbnRhaW5lciwgLmRlZmF1bHQtcG9zdF9faGVhZGVyIGgxLCAuZGVmYXVsdC1wb3N0X19oZWFkZXItLW1ldGEge1xuICAgIG1heC13aWR0aDogODQ4cHg7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgfVxuICAuZGVmYXVsdC1wb3N0X19oZWFkZXIgaDEsIC5kZWZhdWx0LXBvc3RfX2hlYWRlci0tbWV0YSB7XG4gICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tYnMtZ3V0dGVyLXgpICogMC41KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmRlZmF1bHQtcG9zdF9faGVhZGVyIGgxIHtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuLmRlZmF1bHQtcG9zdF9faGVhZGVyLS1tZXRhIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cbi5kZWZhdWx0LXBvc3RfX2hlYWRlci0tZGF0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kZWZhdWx0LXBvc3RfX2hlYWRlci0tZGF0ZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4uZGVmYXVsdC1wb3N0X19oZWFkZXItLXRhZ3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmRlZmF1bHQtcG9zdF9faGVhZGVyLS10YWdzID4gYSB+IGEge1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG59XG4uZGVmYXVsdC1wb3N0IC5wb3N0LWl0ZW1fX2RhdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZGVmYXVsdC1wb3N0LS1pbmRleCAuZGVmYXVsdC1wYWdlX19oZWFkZXIgaDEge1xuICBkaXNwbGF5OiBncmlkO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG59XG4uZGVmYXVsdC1wb3N0LS1pbmRleCAuZGVmYXVsdC1wYWdlX19oZWFkZXIgKyAuY2FudmFzIC5kZWZhdWx0LXBvc3RfX2NvbnRlbnQtLXRhZ3Mge1xuICBtYXJnaW4tdG9wOiAtMS41cmVtO1xufVxuLmRlZmF1bHQtcG9zdF9fY29udGVudC0tdGFncyB7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07XG59XG4uZGVmYXVsdC1wb3N0X19jb250ZW50LS10YWdzIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IGNsYW1wKDEwcHgsIDV2dywgMnJlbSk7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuZGVmYXVsdC1wb3N0X19jb250ZW50LS10YWdzIC5jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG4gIH1cbn1cbi5kZWZhdWx0LXBvc3RfX2NvbnRlbnQtLXRhZ3MgLmNvbnRhaW5lciBoMiB7XG4gIG1hcmdpbjogMDtcbn1cbi5kZWZhdWx0LXBvc3RfX2NvbnRlbnQtLXRhZ3MgLmNvbnRhaW5lciB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA1cHggMTVweDtcbn1cbi5kZWZhdWx0LXBvc3RfX3Bvc3RzLS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzAwcHgsIDFmcikpO1xuICBnYXA6IGNsYW1wKDEwcHgsIDV2dywgM3JlbSk7XG59XG4uZGVmYXVsdC1wb3N0X19wb3N0cy0tZ3JpZCAucG9zdC1pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4uZGVmYXVsdC1wb3N0X19wb3N0cy0tZ3JpZCArIC5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjbGFtcCgxMHB4LCA1dncsIDNyZW0pO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/