/* z-indexes are large due to the fact that things might change
 * in the future. In order to account for scalability, this gives
 * room to make changes and not break the entire site, meaning 
 * we won't have to go in and refactor a lot of our code.
 */
/*  ----------------------------------------------------
    INPUTS
  ----------------------------------------------------- */
/*  ----------------------------------------------------
    CONTAINERS
  ----------------------------------------------------- */
/* -------------------
	Base result styles
-------------------- */
/* -------------------
	Variations
-------------------- */
/* -----------------------------------------------------
  Base styling
----------------------------------------------------- */
/* -----------------------------------------------------
  With secondary section
----------------------------------------------------- */
/* -----------------------------------------------------
  Checkbox tags
----------------------------------------------------- */
/* -----------------------------------------------------
  States
----------------------------------------------------- */
body.heatsinkshome scroll-bar {
  margin-top: var(--spacer1);
}
body.heatsinkshome scroll-bar .slide {
  min-height: 350px;
}

scroll-bar {
  --breakpoint-mobile: 650px;
  --slide-margin: var(--gap-y);
  --article-top-spacing: 0px;
  max-width: 1200px;
  grid-column: 2;
  grid-row: 1/span 3;
  height: -moz-fit-content;
  height: fit-content;
  transition: opacity 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
  z-index: 1100;
}
scroll-bar.loading {
  opacity: 0;
}
scroll-bar .slide-container {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(225px, 1fr));
  grid-gap: calc(var(--gap) * 2);
  overflow-x: auto;
}
@media (min-width: 500px) {
  scroll-bar .slide-container {
    grid-template-columns: repeat(auto-fit, minmax(225px, 1fr) minmax(225px, 1fr));
  }
}
@media (min-width: 1500px) {
  scroll-bar .slide-container {
    grid-template-columns: repeat(4, 1fr);
  }
}
scroll-bar .slide {
  position: relative;
  transition: all 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  overflow: hidden;
  flex-shrink: 0;
}
scroll-bar .slide .learn-more {
  --font-colour: #FFFFFF;
  position: absolute;
  bottom: 0;
  right: 0;
  width: auto;
  backdrop-filter: blur(4px);
  background-color: #DF3035;
  text-transform: uppercase;
  opacity: 1;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), text-decoration-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
scroll-bar .slide .learn-more::after {
  content: "0" attr(data-index);
  position: absolute;
  bottom: 0;
  right: 0;
  font-weight: 800;
  font-size: 3.2em;
  line-height: 1;
  opacity: 0.2;
}
scroll-bar .slide .slide-image {
  width: 100%;
  height: 100%;
  display: block;
}
scroll-bar .slide .slide-image a {
  width: 100%;
  height: 100%;
  display: block;
}
scroll-bar .slide .slide-image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
scroll-bar .slide .slide-image::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 30%, rgba(19, 31, 107, 0.65) 100%);
}
scroll-bar .slide .slide-drawer {
  --heading-colour: #FFFFFF;
  --font-colour: #FFFFFF;
  position: absolute;
  top: 100%;
  width: 100%;
  height: 100%;
  padding: 2rem;
  backdrop-filter: blur(4px);
  background-color: rgba(255, 0, 0, 0.6);
  transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
scroll-bar .slide .slide-drawer h3 {
  text-transform: uppercase;
  margin-bottom: 2rem;
}
scroll-bar .slide .slide-drawer::after {
  content: "0" attr(data-index);
  position: absolute;
  top: -10px;
  right: 0;
  font-weight: 800;
  font-size: 5em;
  line-height: 1;
  color: #FFFFFF;
  opacity: 0.1;
}
scroll-bar .slide .slide-body {
  display: none;
}
scroll-bar .slide .polygon {
  background: red;
  clip-path: polygon(100% 0, 0, 40%);
}
@media (hover: hover) {
  scroll-bar .slide:not(.active):hover .learn-more {
    opacity: 0;
    pointer-events: none;
  }
  scroll-bar .slide:hover .slide-drawer {
    transform: translateY(-100%);
  }
}
scroll-bar .slide:not(.active) {
  cursor: pointer;
}
scroll-bar .slide.active {
  --article-top-spacing: calc(-1 * var(--slide-margin));
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
  width: 500px;
  height: 100%;
}
scroll-bar .slide.active::after {
  content: "0" attr(data-index);
  position: absolute;
  top: 3rem;
  right: 6rem;
  font-weight: 800;
  font-size: 8em;
  line-height: 1;
  opacity: 0.4;
  color: #FFFFFF;
}
scroll-bar .slide.active .slide-drawer {
  display: none;
}
scroll-bar .slide.active .slide-image {
  height: 52%;
}
scroll-bar .slide.active .slide-body {
  display: grid;
  grid-template-rows: auto;
  position: relative;
  place-content: start;
  height: 100%;
  padding: calc(var(--gap) * 2) calc(var(--gap) * 2) 200px;
  background: #FFFFFF;
  overflow: hidden;
}
scroll-bar .slide.active .slide-body .subheading,
scroll-bar .slide.active .slide-body .heading {
  text-transform: uppercase;
}
scroll-bar .slide.active .slide-body .subheading {
  order: 1;
  color: #DF3035;
}
scroll-bar .slide.active .slide-body .heading {
  order: 2;
  font-size: 3.125em;
  font-size: clamp(2.5em, 5vw, 3.125em);
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
}
scroll-bar .slide.active .slide-body .heading a {
  color: #131f6b;
}
@media (hover: hover) {
  scroll-bar .slide.active .slide-body .heading a:hover {
    text-decoration: underline;
  }
}
scroll-bar .slide.active .slide-body .content {
  order: 3;
  margin-top: calc(var(--gap) * 2);
  color: #1E1A1A;
}
scroll-bar .slide.active .learn-more {
  bottom: 10%;
  background-color: #DF3035;
  padding-right: 2rem;
}
scroll-bar .slide.active .learn-more::after {
  content: none;
}
scroll-bar .slide .hide {
  display: none;
}
scroll-bar .slide .transition {
  opacity: 0;
}
scroll-bar .slide .fade {
  transition: 0.6s opacity 0s;
}

scroll-bar.deactivated {
  --article-top-spacing: 0 !important;
  grid-row: 3;
  position: relative;
  left: 0;
  display: flex;
  grid-gap: var(--gutter2);
  width: 100%;
  height: 100%;
  padding-bottom: var(--gap-y);
}
scroll-bar.deactivated .slide-container {
  flex-wrap: wrap;
  height: -moz-fit-content;
  height: fit-content;
  padding: 0;
  margin-bottom: 0;
}

@media (max-width: 650px) {
  scroll-bar {
    --cell-min-width: 100%;
    max-width: unset;
    padding-bottom: 0;
  }
  scroll-bar .slide:not(.active) {
    width: 100%;
    height: unset;
    aspect-ratio: 16/9;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9zY3JvbGwtYmFyLnNjc3MiLCJfbGliL2NyZWF0ZS9fdW5pdHMuc2NzcyIsImNvbXBvbmVudHMvc2Nyb2xsLWJhci5jc3MiLCJfZWxlbWVudHMvcGFnZS1hcnRpY2xlLnNjc3MiLCJfaGVscGVycy9taXNjLnNjc3MiLCJfdmFyaWFibGVzL2NvbG91cnMuc2NzcyIsIl9saWIvY3JlYXRlL19wYWxldHRlLnNjc3MiLCJfbGliL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsIl9saWIvY29sbGVjdGlvbnMvc3R5bGluZy9faG92ZXIuc2NzcyIsIl9saWIvaGVscGVycy9fYnJlYWsuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQUFBO0FDYUE7O3lEQUFBO0FBbURBOzt5REFBQTtBQzVEQTs7c0JBQUE7QUF1RUE7O3NCQUFBO0FDMURBOzt1REFBQTtBQStCQTs7dURBQUE7QUF5QkE7O3VEQUFBO0FBMkJBOzt1REFBQTtBQzlGRTtFQUNFLDBCQ2tHTztBQzFFWDtBRnZCSTtFQUNFLGlCQUFBO0FFeUJOOztBRnBCQTtFQUNFLDBCQUFBO0VBQ0EsNEJBQUE7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0VBT0EsY0FBQTtFQUNBLGtCQUFBO0VBRUEsd0JBQUE7RUFBQSxtQkFBQTtFQUVBLDREQUFBO0VBRUEsYUpwQjBCO0FNa0M1QjtBRlpFO0VBQ0UsVUFBQTtBRWNKO0FGWEU7RUFDRSxXQUFBO0VBQ0EsYUFBQTtFQUNBLDJEQUFBO0VBQ0EsOEJDVUk7RURUSixnQkFBQTtBRWFKO0FGWEk7RUFQRjtJQVFJLDhFQUFBO0VFY0o7QUFDRjtBRlhJO0VBWkY7SUFhSSxxQ0FBQTtFRWNKO0FBQ0Y7QUZWRTtFQUNFLGtCQUFBO0VBQ0EsdURBQUE7RUduREYsZ0JBQUE7RUFDQSxjQUFBO0FEZ0VGO0FDOURFO0VBQ0Usc0JBQUE7RUFFQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLFVBQUE7RUFDQSw0UUFBQTtBRCtESjtBQzdESTtFQUNFLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBRCtETjtBQzNERTtFQzNCRCxXRDRCbUI7RUMzQm5CLFlEMkJtQjtFQUNoQixjQUFBO0FEOERKO0FDNURJO0VDL0JILFdEZ0NxQjtFQy9CckIsWUQrQnFCO0VBQ2hCLGNBQUE7QUQrRE47QUM1REk7RUFDRSxjQUFBO0VDckNMLFdEc0NxQjtFQ3JDckIsWURxQ3FCO0VBQ2hCLG9CQUFBO0tBQUEsaUJBQUE7QUQrRE47QUM1REk7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdHQXBEZ0I7QURrSHRCO0FDMURFO0VBQ0UseUJBQUE7RUFDQSxzQkFBQTtFQUVBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDBCQUFBO0VBQ0Esc0NBQUE7RUFDQSwrREFBQTtBRDJESjtBQ3pESTtFQUNFLHlCQUFBO0VBQ0EsbUJBQUE7QUQyRE47QUN4REk7RUFDRSw2QkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0EsY0VoRGM7RUZpRGQsWUFBQTtBRDBETjtBQ3RERTtFQUNFLGFBQUE7QUR3REo7QUNyREU7RUFDRSxlQUFBO0VBQ0Esa0NBQUE7QUR1REo7QUNwREU7RUFFSTtJQUFnQixVQUFBO0lBQVksb0JBQUE7RUR1RGhDO0VDcERJO0lBQWdCLDRCQUFBO0VEdURwQjtBQUNGO0FGbkdJO0VBQ0UsZUFBQTtBRXFHTjtBRmxHSTtFQUNFLHFEQUFBO0VBRUEsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBRW1HTjtBRmpHTTtFQUNFLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsY01oQ1E7QUptSWhCO0FGaEdNO0VBQ0UsYUFBQTtBRWtHUjtBRi9GTTtFQUNFLFdBQUE7QUVpR1I7QUY5Rk07RUFDRSxhQUFBO0VBQ0Esd0JBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsWUFBQTtFQUNBLHdEQUFBO0VBQ0EsbUJNbERRO0VObURSLGdCQUFBO0FFZ0dSO0FGOUZROztFQUVFLHlCQUFBO0FFZ0dWO0FGN0ZRO0VBQ0UsUUFBQTtFQUNBLGNLdkZVO0FIc0xwQjtBRjVGUTtFQUNFLFFBQUE7RU9TUixrQkFBQTtFQUdFLHFDQUFBO0VBUUUsZ0JBNUVjO0VQMERWLGdCQUFBO0VBQ0EseUJBQUE7QUVnR1Y7QUY5RlU7RUFDRSxjS3ZHUTtBSHVNcEI7QU1wTkU7RUFDRTtJUnNIVSwwQkFBQTtFRWlHWjtBQUNGO0FGN0ZRO0VBQ0UsUUFBQTtFQUNBLGdDQy9FRjtFRGdGRSxjS2hHVTtBSCtMcEI7QUYzRk07RUFDRSxXQUFBO0VBQ0EseUJLbEhZO0VMbUhaLG1CQUFBO0FFNkZSO0FGM0ZRO0VBQ0UsYUFBQTtBRTZGVjtBRnpGSTtFQUNFLGFBQUE7QUUyRk47QUZ6Rkk7RUFDRSxVQUFBO0FFMkZOO0FGekZJO0VBQ0UsMkJBQUE7QUUyRk47O0FGdEZBO0VBQ0UsbUNBQUE7RUFFQSxXQUFBO0VBRUEsa0JBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtFQUNBLHdCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtBRXVGRjtBRnJGRTtFQUNFLGVBQUE7RUFDQSx3QkFBQTtFQUFBLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0FFdUZKOztBTzNQRTtFVHlLQTtJQUNFLHNCQUFBO0lBQ0EsZ0JBQUE7SUFFQSxpQkFBQTtFRXFGRjtFRm5GRTtJQUNFLFdBQUE7SUFDQSxhQUFBO0lBQ0Esa0JBQUE7RUVxRko7QUFDRiIsImZpbGUiOiJjb21wb25lbnRzL3Njcm9sbC1iYXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogei1pbmRleGVzIGFyZSBsYXJnZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0aGluZ3MgbWlnaHQgY2hhbmdlXG4gKiBpbiB0aGUgZnV0dXJlLiBJbiBvcmRlciB0byBhY2NvdW50IGZvciBzY2FsYWJpbGl0eSwgdGhpcyBnaXZlc1xuICogcm9vbSB0byBtYWtlIGNoYW5nZXMgYW5kIG5vdCBicmVhayB0aGUgZW50aXJlIHNpdGUsIG1lYW5pbmcgXG4gKiB3ZSB3b24ndCBoYXZlIHRvIGdvIGluIGFuZCByZWZhY3RvciBhIGxvdCBvZiBvdXIgY29kZS5cbiAqL1xuXG4kcGFnZS1iYWNrZ3JvdW5kICAgICAgICAgIDogNTAwO1xuXG4kbmF2aWdhdGlvbi1iYXIgICAgICAgICAgIDogMTUwMDtcbiRuYXZpZ2F0aW9uLWJhci1jb250YWluZXIgOiAkbmF2aWdhdGlvbi1iYXI7XG4kZ2xvYmFsLXNlYXJjaC1tb2JpbGUgICAgIDogLTE7XG5cbiRzY3JvbGwtYmFyICAgICAgICAgICAgICAgOiAxMTAwO1xuXG4kbWFpbiAgICAgICAgICAgICAgICAgICAgIDogMTAwMDtcbiRoZWFkZXIgICAgICAgICAgICAgICAgICAgOiAxMDAwO1xuJHNpZGUtYmFyICAgICAgICAgICAgICAgICA6IDE3NTA7XG5cbiRtb2RhbCAgICAgICAgICAgICAgICAgICAgOiAxMDAwMDsiLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuQHVzZSAnLi4vX2hlbHBlcnMvbWlzYy5zY3NzJyBhcyAqO1xuXG4kYmFzZS1pbnB1dC1wYWRkaW5nOiAkZ2FwO1xuXG5cbkBtaXhpbiBhcnJvdy1kb3duLWltYWdlKCRzdHJva2UgOiB2YXIoLS1mb250LWNvbG91cikpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNy40JyBoZWlnaHQ9JzEwLjEnJTNFJTNDcGF0aCBkPSdNMTYuNy43bC04IDgtOC04JyBmaWxsPSdub25lJyBzdHJva2U9J1wiK2NvbG91ci5lbmNvZGUoJHN0cm9rZSkrXCInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG5cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBjaGFyYWN0ZXItaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYWxsLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGNoYXJhY3Rlci1pbnB1dCgpIHtcbiAgLS1mb250LWNvbG91ciAgICAgICA6ICN7JGZvbnQtY29sb3VyfTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JHdoaXRlfTtcbiAgLS1wYWRkaW5nICAgICAgICAgICA6IGNhbGMoI3skYmFzZS1pbnB1dC1wYWRkaW5nfSAvIDEuNSkgI3skYmFzZS1pbnB1dC1wYWRkaW5nfTtcbiAgLS1ib3JkZXItY29sb3VyICAgICA6ICN7JGdyZXk3fTtcbiAgLS1ib3JkZXItcmFkaXVzICAgICA6IDA7XG5cbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1czsgIC8qIE9wZXJhIDEwLjUsIElFIDksIFNhZmFyaSA1LCBDaHJvbWUsIEZpcmVmb3ggNCwgaU9TIDQsIEFuZHJvaWQgMi4xKyAqL1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7ICAvKiBTYWZhcmkgMy00LCBpT1MgMS0zLjIsIEFuZHJvaWQgMS42LSAqLyAgICBcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwOyAgLyogRmlyZWZveCAxLTMuNiAqLyAgICAgXG5cbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkdHJhbnNpdGlvbjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50O1xuXG4gICY6OnBsYWNlaG9sZGVyIHsgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24gfVxuXG4gIC8vICY6bm90KDplbXB0eSkge1xuICAvLyAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICR0cmFuc3BhcmVudCB9XG4gIC8vIH1cbn1cblxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIGNvbnRhaW5lcigpIHtcbiAgLS1sYWJlbC1jb2xvdXIgICAgICAgIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWxhYmVsLWFjdGl2ZS1jb2xvdXIgOiB2YXIoLS10aGVtZS1hY2NlbnQpO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAxcmVtO1xuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tbGFiZWwtY29sb3VyKTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgfVxufVxuXG5AbWl4aW4gdGV4dC1jb250YWluZXIoKSB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICBncmlkLWF1dG8tZmxvdzogcm93O1xufVxuXG5cbkBtaXhpbiByYWRpby1jaGVja2JveC1jb250YWluZXIoKSB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuXG4gIC0taW5wdXQtd2lkdGg6IDEuMmVtO1xuICAtLWlucHV0LWJvcmRlci10aGlja25lc3M6IDFweDtcbiAgLS1pbnB1dC1hY3RpdmUtY29sb3VyOiAjeyRyZWR9O1xuXG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgZ3JpZC1nYXA6ICRnYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBzcXVhcmUodmFyKC0taW5wdXQtd2lkdGgpKTtcbiAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgIGJvcmRlcjogdmFyKC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzcywgMXB4KSBzb2xpZCAkZ3JleTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBzcXVhcmUoY2FsYyh2YXIoLS1pbnB1dC13aWR0aCkgLSB2YXIoLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzKSAqIDYpKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWFjdGl2ZS1jb2xvdXIpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC0tbGFiZWwtY29sb3VyOiB2YXIoLS1sYWJlbC1hY3RpdmUtY29sb3VyKTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1hY3RpdmUtY29sb3VyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICArIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWxhYmVsLWFjdGl2ZS1jb2xvdXIpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcmFkaW8tY29udGFpbmVyKCkge1xuICBsYWJlbCB7XG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtdWx0aS1pbnB1dCgpIHtcbiAgLS1pbnB1dC1zcGFjaW5nOiAwO1xuICBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1pbnB1dC1zcGFjaW5nKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gIEBpbmNsdWRlIGNoYXJhY3Rlci1pbnB1dHMoKSB7XG4gICAgJjpub3Qoc2VsZWN0KSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICA+ICo6bm90KHNlbGVjdCwgYnV0dG9uLCBhKSB7XG4gICAgZmxleDogMTtcbiAgfVxuICBcbiAgc2VsZWN0LCBidXR0b24sIGEge1xuICAgIC0tZm9udC1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICBzZWxlY3QgeyBAaW5jbHVkZSBhcnJvdy1kb3duLWltYWdlKCR3aGl0ZSkgfTtcbn1cblxuQG1peGluIGJhc2UtcmVxdWlyZWQoKSB7XG4gIHJlcXVpcmVkLW5vdGljZSB7XG4gICAgLS1ub3RpY2UtY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTBweDtcbiAgICBjb2xvcjogdmFyKC0tbm90aWNlLWNvbG91cik7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcblxuICAgIHNwYW4ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC0xMDAlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGlvLXRhYnMoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgcmFkaW8tdGFiIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwMDtcbiAgICBcbiAgICBpbnB1dCB7IFxuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpjaGVja2VkICsgbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1hY2NlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bm90KDpjaGVja2VkKSB7XG4gICAgICAgICsgbGFiZWw6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1hY2NlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR0cmFuc2l0aW9uO1xuICAgICAgfVxuICAgICAgXG5cbiAgICB9XG5cbiAgfVxufVxuXG5cbkBtaXhpbiBpbnB1dC1mb2N1cygpIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAxcHggMXB4IHJnYmEoJHJlZCwgMC4zKTtcbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzLycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzLycgYXMgKjtcblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdEJhc2UgcmVzdWx0IHN0eWxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5AbWl4aW4gYmFzZSgpIHtcblxuICAtLWhlYWRpbmctY29sb3VyICAgIDogI3skYmx1ZX07XG5cbiAgLS1ib3JkZXItdGhpY2tuZXNzICA6IDFweDtcbiAgLS1ib3JkZXItcmFkaXVzICAgICA6IDBweDtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6IHdoaXRlO1xuXG4gIC0tcGFkZGluZyAgICAgICAgICAgOiAycmVtO1xuXG4gIC0tcGFkZGluZy1sZWZ0ICAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLXJpZ2h0ICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctdG9wICAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy1ib3R0b20gICAgOiB2YXIoLS1wYWRkaW5nKTtcblxuICAtLWltYWdlLXdpZHRoICAgICAgIDogMTAwcHg7XG4gIC0taW1hZ2UtaGVpZ2h0ICAgICAgOiAxMDBweDtcblxuICAtLWdyaWQtZ2FwICAgICAgICAgIDogI3skZ2FwfTtcblxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZy10b3ApIHZhcigtLXBhZGRpbmctcmlnaHQpIHZhcigtLXBhZGRpbmctYm90dG9tKSB2YXIoLS1wYWRkaW5nLWxlZnQpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci10aGlja25lc3MpIHNvbGlkICR0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAvLyBib3gtc2hhZG93OiAwcHggMHB4IDVweCAxcHggcmdiYSgkZ3JleSwgMC4xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICB0cmFuc2l0aW9uOiBib3JkZXIgJHRyYW5zaXRpb247XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWdyaWQtZ2FwKSB2YXIoLS1ncmlkLWdhcCk7XG4gIC8vIHBsYWNlLWNvbnRlbnQ6IHN0YXJ0O1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGdyaWQtYXJlYTogaW1hZ2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBwaWN0dXJlIHtcbiAgICAgIGhlaWdodDogdmFyKC0taW1hZ2UtaGVpZ2h0KTtcbiAgICAgIFxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLWltYWdlLWhlaWdodCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0taW1hZ2Utd2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUge1xuICAgIGdyaWQtYXJlYTogdGl0bGU7XG4gICAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyKTtcbiAgICBhIHsgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyKSB9XG4gIH1cblxuICAucmVzdWx0LXN1YnRpdGxlIHsgZ3JpZC1hcmVhOiBzdWJ0aXRsZSB9XG4gIC5yZXN1bHQtYm9keSAgICAgeyBncmlkLWFyZWE6IGJvZHkgfVxuXG4gICYuYmxvZyAgICB7IEBpbmNsdWRlIGJsb2coKSB9XG4gICYubWFya2V0LXNlY3RvciAgICB7IEBpbmNsdWRlIG1hcmtldC1zZWN0b3IoKSB9XG4gICYucHJvZHVjdCB7IEBpbmNsdWRlIHByb2R1Y3QoKSB9XG4gICYucGFnZSAgICB7IEBpbmNsdWRlIHBhZ2UoKSB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gbWFya2V0LXNlY3RvcigpIHtcblxuICAtLWJhY2tncm91bmQtY29sb3VyOnRyYW5zcGFyZW50OyBcbiAgLS1mb250LWNvbG91cjp3aGl0ZTsgXG4gIC0taGVhZGluZy1jb2xvdXIgOiB3aGl0ZTsgXG5cbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOjAgMCAkZ3V0dGVyMCAwIDsgXG4gIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLXJlc3VsdC1pdGVtLWJvcmRlci1ib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSk7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBjbGFtcCgxNDBweCwgNDB2dywgMTgwcHgpO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1pbWFnZS1vdXRsaW5lLWNvbG91ciwgdHJhbnNwYXJlbnQpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1pbWFnZS1vdXRsaW5lLW9mZnNldCwgMC4xZW0pOyBcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciAkdHJhbnNpdGlvbiwgb3V0bGluZS1vZmZzZXQgJHRyYW5zaXRpb247XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gIH1cblxuICAmOmhvdmVyIHsgXG4gICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6ICN7cmdiYSh3aGl0ZSwgMC4yKX07XG4gICAgLS1pbWFnZS1vdXRsaW5lLW9mZnNldCA6IDAuM2VtO1xuICAgIC5yZXN1bHQtdGl0bGUgYSB7IGNvbG9yOiRyZWQ7IH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAmOjphZnRlciB7IFxuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGluc2V0OjA7IFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHotaW5kZXg6MTsgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keVtkYXRhLXRoZW1lPSd3aGl0ZSddICYge1xuICAgIC0tcmVzdWx0LWl0ZW0tYm9yZGVyLWJvdHRvbSA6ICN7cmdiYSgkYmx1ZSwgMC4yKX07XG4gICAgLS1mb250LWNvbG91cjojeyRibHVlfTsgXG4gICAgLS1oZWFkaW5nLWNvbG91ciA6ICN7JGJsdWV9OyBcbiAgICAmOmhvdmVyIHsgXG4gICAgICAtLWltYWdlLW91dGxpbmUtY29sb3VyIDogI3tyZ2JhKCRibHVlLCAwLjIpfTtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5I21hcmtldC1zZWN0b3JzIHtcbiAgICAmIHtcbiAgICAgIC8vIGlzb2xhdGlvbjogaW5pdGlhbDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICAgIGNvbnRhaW5lci1uYW1lIDogbWFya2V0LXNlY3RvcjtcbiAgICAgIC5yZXN1bHQtaXRlbSB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgIGEuZGV0YWlsczpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXIgLnJlc3VsdC1pbWFnZSB7XG4gICAgICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAtLWltYWdlLW91dGxpbmUtb2Zmc2V0IDowICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuZGV0YWlscyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWRhcms7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcGFkZGluZzowO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyMjBweDtcbiAgICAgICAgd2lkdGg6dmFyKC0tbWFya2V0LXNlY3Rvci1hcnRpY2xlLXdpZHRoLCBjYWxjKDIwMCUgKyAjeyRndXR0ZXJ9ICsgMnB4KSk7XG5cbiAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIHNldHVwXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgb3BhY2l0eSAkdHJhbnNpdGlvbixcbiAgICAgICAgICBkaXNwbGF5ICR0cmFuc2l0aW9uIGFsbG93LWRpc2NyZXRlO1xuICAgICAgICAuZGV0YWlscy10ZXh0IHtcbiAgICAgICAgICBwYWRkaW5nOiRndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmRldGFpbHMtaGVhZGluZyB7XG4gICAgICAgICAgY29sb3I6JHJlZDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbToxZW07XG4gICAgICAgIH1cbiAgICAgICAgLmRldGFpbHMtaW1hZ2Uge1xuICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAxMDAlLCAzNSUgMCUsIDEwMCUgMCUsIDEwMCUgMTAwJSk7XG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJvdHRvbTowO1xuICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgQGNvbnRhaW5lciBtYXJrZXQtc2VjdG9yICggd2lkdGggPCA0MjBweCkge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIC5kZXRhaWxzLWltYWdlIHtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogaW5pdGlhbDtcbiAgICAgICAgICAgIGhlaWdodDoxMDBweDtcbiAgICAgICAgICAgIC5kZXRhaWxzLWxpbmsge1xuICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICYgLnJlc3VsdC1pdGVtOmlzKDpob3ZlciwgOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgLmRldGFpbHMge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBAc3RhcnRpbmctc3R5bGUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhICggd2lkdGggPiAyMDUwcHgpIHtcbiAgICAgICAgICB3aWR0aDoxMDAlOyBcblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFydGljbGUtZ3JpZDpoYXMoLnJlc3VsdC1pdGVtOmlzKDpob3ZlciwgOmZvY3VzLXZpc2libGUpKSB7XG4gICAgICAucmVzdWx0LWl0ZW06bm90KDppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSkgeyBvcGFjaXR5OiAwLjUgIWltcG9ydGFudDt9XG4gICAgfVxuXG4gICAgQGNvbnRhaW5lciBtYWluICggd2lkdGggPCA2NjBweCkge1xuICAgICAgYXJ0aWNsZS1ncmlkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDtcbiAgICAgICAgLS1tYXJrZXQtc2VjdG9yLWFydGljbGUtd2lkdGggOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFydGljbGUtZ3JpZCB7XG4gICAgICBAY29udGFpbmVyIG1haW4gKDY2MHB4IDwgd2lkdGggPCA5NjRweCkgIHtcbiAgICAgICAgLnJlc3VsdC1pdGVtOm50aC1jaGlsZCgybikgLmRldGFpbHMge1xuICAgICAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBjb250YWluZXIgbWFpbiAoIHdpZHRoID4gOTY0cHgpICB7XG4gICAgICAgIC5yZXN1bHQtaXRlbTpudGgtY2hpbGQoM24pIC5kZXRhaWxzIHtcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICByaWdodDowO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBibG9nKCkge1xuICAtLXBhZGRpbmcgICAgICAgICAgOiA0cmVtO1xuICAtLWJvcmRlci10aGlja25lc3MgOiAwO1xuICAtLWJvcmRlci1yYWRpdXMgICAgOiAwO1xuICAvLyAtLWJhY2tncm91bmQtY29sb3VyIDogdHJhbnNwYXJlbnQ7XG5cbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcInN1YnRpdGxlXCJcbiAgICBcInRpdGxlXCJcbiAgICBcImJvZHlcIjtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgcmdiYSh3aGl0ZSwgMSkgNDUlLCB0cmFuc3BhcmVudCAxMjAlKTtcbiAgICB9XG4gIH1cblxuICB0aW1lIHsgXG4gICAgY29sb3I6ICRyZWQ7XG4gIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LXN1YnRpdGxlIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSB9XG5cbiAgLnJlc3VsdC10aXRsZSB7ICAgICBcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIH1cblxuICAucmVzdWx0LXN1YnRpdGxlIHtcbiAgICAtLWhlYWRpbmctY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaDQsIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtYm9keSB7IC0tZm9udC1jb2xvdXI6ICN7JGJsYWNrfTsgfVxuXG4gICYuZmVhdHVyZWQge1xuICAgIC0tcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuXG4gICAgLnJlc3VsdC10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWgyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnRkVBVFVSRUQnO1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZWQtYmFkZ2UoKTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtc3VidGl0bGUsIC5yZXN1bHQtYm9keSB7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG5cblxuQG1peGluIHBhZ2UoKSB7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gIFwiaW1hZ2UgdGl0bGVcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIjtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gcHJvZHVjdCgpIHtcbiAgLS1iYWRnZS1zcGFjaW5nIDogM3JlbTtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWltYWdlLXdpZHRoKSBhdXRvO1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSBkYXRhXCJcbiAgICBcImltYWdlIGRhdGFcIjtcblxuICAvLyAucmVzdWx0LXRpdGxlIHtcbiAgLy8gICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAvLyB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1ib2R5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJhZGdlLXNwYWNpbmcpICogMik7XG4gIH1cblxuICAucHJvZHVjdC1kYXRhIHtcbiAgICBncmlkLWFyZWE6IGRhdGE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBncmlkLWdhcDogY2FsYygkZ2FwIC8gMikgJGdhcDtcbiAgfVxuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oNDUwKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIFwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJkYXRhXCI7XG5cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVuc2V0O1xuXG4gICAgLnByb2R1Y3QtZGF0YSB7XG4gICAgICAvLyBtYXJnaW4tdG9wOiAkZ2FwLTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcblxuICAgIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtYm9keSB7IHBhZGRpbmctcmlnaHQ6IDAgfVxuICAgIC8vIC5yZXN1bHQtdGl0bGUgeyBhbGlnbi1zZWxmOiBjZW50ZXIgfVxuICB9XG5cblxuICAmLmluLXN0b2NrOjpiZWZvcmUge1xuICAgIC0tcGFkZGluZy15IDogMC4yZW07XG4gICAgLS1wYWRkaW5nLXggOiAxMGVtO1xuXG4gICAgY29udGVudDogJ2luIHN0b2NrJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDFlbSArIHZhcigtLXBhZGRpbmcteSkpO1xuICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tcGFkZGluZy14KSk7XG4gICAgcGFkZGluZzogMC41ZW0gdmFyKC0tcGFkZGluZy14KTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuQG1peGluIHRhZygpIHtcbiAgJltkaXNhYmxlZF0geyBAaW5jbHVkZSBkaXNhYmxlZCgpIH1cbiAgJi5jYXRlZ29yeSB7XG4gICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH07XG4gICAgQGluY2x1ZGUgdGFnLXdpdGgtc2Vjb25kYXJ5KCk7XG4gICAgLnRhZy1zZWNvbmRhcnk6aG92ZXIgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIoKSB9XG4gIH1cblxuICAmLmNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSB0YWctY2hlY2tib3goKTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBCYXNlIHN0eWxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWJhc2UoKSB7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgICA6IDBweDtcbiAgLS1mb250LWNvbG91ciAgICAgICAgIDogI3skcmVkfTtcbiAgLS1iZy1jb2xvdXIgICAgICAgICAgIDogd2hpdGU7XG4gIC0tc2Vjb25kYXJ5LXdpZHRoICAgICA6IDNjaDtcbiAgLS1zZWNvbmRhcnktcGFkZGluZy14IDogM3B4O1xuICAtLWJvcmRlci1jb2xvdXIgICAgICAgOiB0cmFuc3BhcmVudDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAudGFnLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAzcHggJGdhcCAzcHggJGdhcDtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBXaXRoIHNlY29uZGFyeSBzZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy13aXRoLXNlY29uZGFyeSgpIHtcbiAgLS1zeW1ib2wtY29sb3VyIDogI3skcmVkfTtcblxuICAudGFnLXNlY29uZGFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tc2Vjb25kYXJ5LXBhZGRpbmcteCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5NDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAzY2g7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWNoZWNrYm94KCkge1xuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmIH4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAgIEBpbmNsdWRlIHRhZy13aXRoLXNlY29uZGFyeSgpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRyZWR9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgICAtLWJnLWNvbG91cjogI3skcmVkfTtcblxuICAgICAgLnRhZy1zZWNvbmRhcnkgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIocmdiYSh3aGl0ZSwgMC4zKSkgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBzZWNvbmRhcnktaG92ZXIoJGNvbG91ciA6ICRyZWQpIHtcbiAgLS1zeW1ib2wtY29sb3VyOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5cbiRicmVha3BvaW50LW1vYmlsZTogNjUwcHg7XG5cbmJvZHkuaGVhdHNpbmtzaG9tZXtcbiAgc2Nyb2xsLWJhcntcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2VyO1xuICAgIC5zbGlkZXtcbiAgICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xuICAgIH1cbiAgfVxufVxuXG5zY3JvbGwtYmFyIHtcbiAgLS1icmVha3BvaW50LW1vYmlsZTogI3skYnJlYWtwb2ludC1tb2JpbGV9O1xuICAtLXNsaWRlLW1hcmdpbjogdmFyKC0tZ2FwLXkpO1xuICAtLWFydGljbGUtdG9wLXNwYWNpbmc6IDBweDtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG5cbiAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAvLyB0b3A6IDA7XG4gIC8vIGxlZnQ6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1iYXItd2lkdGgpICsgdmFyKC0tZ2FwLXgpKTtcbiAgLy8gd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW5hdmlnYXRpb24tYmFyLXdpZHRoKSAtICh2YXIoLS1nYXAteCkpKTtcblxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDEgLyBzcGFuIDM7XG5cbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzICRlYXNlLW91dC1jdWJpYztcblxuICB6LWluZGV4OiAkei1pbmRleC1zY3JvbGwtYmFyO1xuXG4gICYubG9hZGluZyB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5zbGlkZS1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjVweCwgMWZyKSk7XG4gICAgZ3JpZC1nYXA6ICRnYXAyO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNTAwcHgpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjI1cHgsIDFmcikgbWlubWF4KDIyNXB4LCAxZnIpKTtcblxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxNTAwcHgpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7ICBcbiAgICB9XG4gIH1cblxuICAvLyBNYWluIHNsaWRlIGVsZW1lbnRcbiAgLnNsaWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgJGVhc2Utb3V0LXF1YXJ0O1xuICAgIEBpbmNsdWRlIHBhZ2UtYXJ0aWNsZSgpO1xuXG4gICAgJjpub3QoLmFjdGl2ZSkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIC0tYXJ0aWNsZS10b3Atc3BhY2luZzogY2FsYygtMSAqIHZhcigtLXNsaWRlLW1hcmdpbikpO1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB3aWR0aDogNTAwcHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzAnIGF0dHIoZGF0YS1pbmRleCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzcmVtO1xuICAgICAgICByaWdodDogNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgZm9udC1zaXplOiA4ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG5cbiAgICAgIC5zbGlkZS1kcmF3ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuc2xpZGUtaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDUyJTtcbiAgICAgIH1cblxuICAgICAgLnNsaWRlLWJvZHkge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGxhY2UtY29udGVudDogc3RhcnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogJGdhcDIgJGdhcDIgMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAuc3ViaGVhZGluZyxcbiAgICAgICAgLmhlYWRpbmcge1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuc3ViaGVhZGluZyB7XG4gICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGluZyB7XG4gICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMTtcbiAgICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJGdhcDI7XG4gICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubGVhcm4tbW9yZSB7XG4gICAgICAgIGJvdHRvbTogMTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC50cmFuc2l0aW9uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIC5mYWRlIHtcbiAgICAgIHRyYW5zaXRpb246IDAuNnMgb3BhY2l0eSAwcztcbiAgICB9XG4gIH1cbn1cblxuc2Nyb2xsLWJhci5kZWFjdGl2YXRlZCB7XG4gIC0tYXJ0aWNsZS10b3Atc3BhY2luZzogMCAhaW1wb3J0YW50O1xuXG4gIGdyaWQtcm93OiAzO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjIpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwLXkpO1xuXG4gIC5zbGlkZS1jb250YWluZXIge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBicmVhay1pbigkYnJlYWtwb2ludC1tb2JpbGUpIHtcbiAgc2Nyb2xsLWJhciB7XG4gICAgLS1jZWxsLW1pbi13aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IHVuc2V0O1xuXG4gICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAuc2xpZGU6bm90KC5hY3RpdmUpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgIH1cbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2V2IHZhbHVlcyBkZWZpbmVkIGJlbG93LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2VcblxuLy8gVGhlc2UgdGhyZWUgdmFsdWVzIHdpbGwgYWN0IGEgY29uc3RhbnQgYmFzZWxpbmUgZm9yIGFsbCBmb2xsb3dpbmcgdW5pdCBkZWxjYXJhdGlvbnMuXG5cbi8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiRnYXAgOiAxNnB4ICFkZWZhdWx0O1xuJGJhc2UtZ2FwIDogJGdhcDtcblxuLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4kc3BhY2VyIDogNHZoICFkZWZhdWx0OyBcbiRiYXNlLXNwYWNlciA6ICRzcGFjZXI7IFxuXG4vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4kZ3V0dGVyIDogM3Z3ICFkZWZhdWx0O1xuJGJhc2UtZ3V0dGVyIDogJGd1dHRlcjsgXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBc2JvbHV0ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuXG5AZnVuY3Rpb24gZ2FwKCRhbW91bnQgOiAxKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMSApIHsgXG4gICAgQHJldHVybiB2YXIoLS1nYXApOyBcbiAgfSBAZWxzZSB7IFxuICAgIEByZXR1cm4gY2FsYyh2YXIoLS1nYXApICogI3skYW1vdW50fSk7IFxuICB9XG59XG5cbiRnYXAwIDogZ2FwKDAuNSk7ICRnYXAwLSA6IGdhcCgtMC41KTtcbiRnYXAgIDogZ2FwKDEpOyAgICRnYXAtICA6IGdhcCgtMSk7XG4kZ2FwMiA6IGdhcCgyKTsgICAkZ2FwMi0gOiBnYXAoLTIpO1xuJGdhcDMgOiBnYXAoMyk7ICAgJGdhcDMtIDogZ2FwKC0zKTtcbiRnYXA0IDogZ2FwKDQpOyAgICRnYXA0LSA6IGdhcCgtNCk7XG4kZ2FwNSA6IGdhcCg1KTsgICAkZ2FwNS0gOiBnYXAoLTUpO1xuJGdhcDYgOiBnYXAoNik7ICAgJGdhcDYtIDogZ2FwKC02KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlbGF0aXZlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIF9keW5hbWljLXVuaXQoJGN1c3RvbS1wcm9wZXJ0eSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuXG4gIC8vIENhbGMgTWV0aG9kXG4gICRyZXN1bHQgOiBjYWxjKCgjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSkgKyAje2lmKHNhc3MoJG1pbiA9PSAwKTogMHB4OyBlbHNlOiAkbWluKX0pO1xuICBcbiAgLy8gQ2xhbXAgTWV0aG9kXG4gIEBpZiAoICR1c2UtY2xhbXAgKSB7XG4gICAgQGlmICggJGFtb3VudCA9PSAwICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7bWF0aC5kaXYoJG1pbiwgMil9LCAjeyRjdXN0b20tcHJvcGVydHl9ICogMC41LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIGlmICggJGFtb3VudCA9PSAxICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0sICN7JG1heH0pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9LCAjeyRtYXh9KTtcbiAgICB9XG4gIH0gXG5cbiAgQGlmICggJHVzZS1uZWdhdGl2ZSApIHtcbiAgICAkcmVzdWx0IDogY2FsYygtMSAqICN7JHJlc3VsdH0pO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xuXG59IFxuXG4vLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBzcGFjZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tc3BhY2VyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRzcGFjZXIwIDogdmFyKC0tc3BhY2VyMCk7ICRzcGFjZXIwLSA6IHZhcigtLXNwYWNlcjAtKTtcbiRzcGFjZXIgIDogdmFyKC0tc3BhY2VyMSk7ICRzcGFjZXItICA6IHZhcigtLXNwYWNlcjEtKTtcbiRzcGFjZXIyIDogdmFyKC0tc3BhY2VyMik7ICRzcGFjZXIyLSA6IHZhcigtLXNwYWNlcjItKTtcbiRzcGFjZXIzIDogdmFyKC0tc3BhY2VyMyk7ICRzcGFjZXIzLSA6IHZhcigtLXNwYWNlcjMtKTtcbiRzcGFjZXI0IDogdmFyKC0tc3BhY2VyNCk7ICRzcGFjZXI0LSA6IHZhcigtLXNwYWNlcjQtKTtcbiRzcGFjZXI1IDogdmFyKC0tc3BhY2VyNSk7ICRzcGFjZXI1LSA6IHZhcigtLXNwYWNlcjUtKTtcbiRzcGFjZXI2IDogdmFyKC0tc3BhY2VyNik7ICRzcGFjZXI2LSA6IHZhcigtLXNwYWNlcjYtKTtcblxuLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4vLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIGd1dHRlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1ndXR0ZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJGd1dHRlcjAgOiB2YXIoLS1ndXR0ZXIwKTsgJGd1dHRlcjAtIDogdmFyKC0tZ3V0dGVyMC0pO1xuJGd1dHRlciAgOiB2YXIoLS1ndXR0ZXIxKTsgJGd1dHRlci0gIDogdmFyKC0tZ3V0dGVyMS0pO1xuJGd1dHRlcjIgOiB2YXIoLS1ndXR0ZXIyKTsgJGd1dHRlcjItIDogdmFyKC0tZ3V0dGVyMi0pO1xuJGd1dHRlcjMgOiB2YXIoLS1ndXR0ZXIzKTsgJGd1dHRlcjMtIDogdmFyKC0tZ3V0dGVyMy0pO1xuJGd1dHRlcjQgOiB2YXIoLS1ndXR0ZXI0KTsgJGd1dHRlcjQtIDogdmFyKC0tZ3V0dGVyNC0pO1xuJGd1dHRlcjUgOiB2YXIoLS1ndXR0ZXI1KTsgJGd1dHRlcjUtIDogdmFyKC0tZ3V0dGVyNS0pO1xuJGd1dHRlcjYgOiB2YXIoLS1ndXR0ZXI2KTsgJGd1dHRlcjYtIDogdmFyKC0tZ3V0dGVyNi0pO1xuIiwiLyogei1pbmRleGVzIGFyZSBsYXJnZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0aGluZ3MgbWlnaHQgY2hhbmdlXG4gKiBpbiB0aGUgZnV0dXJlLiBJbiBvcmRlciB0byBhY2NvdW50IGZvciBzY2FsYWJpbGl0eSwgdGhpcyBnaXZlc1xuICogcm9vbSB0byBtYWtlIGNoYW5nZXMgYW5kIG5vdCBicmVhayB0aGUgZW50aXJlIHNpdGUsIG1lYW5pbmcgXG4gKiB3ZSB3b24ndCBoYXZlIHRvIGdvIGluIGFuZCByZWZhY3RvciBhIGxvdCBvZiBvdXIgY29kZS5cbiAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJTlBVVFNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ09OVEFJTkVSU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRCYXNlIHJlc3VsdCBzdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBCYXNlIHN0eWxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBXaXRoIHNlY29uZGFyeSBzZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQ2hlY2tib3ggdGFnc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmJvZHkuaGVhdHNpbmtzaG9tZSBzY3JvbGwtYmFyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMSk7XG59XG5ib2R5LmhlYXRzaW5rc2hvbWUgc2Nyb2xsLWJhciAuc2xpZGUge1xuICBtaW4taGVpZ2h0OiAzNTBweDtcbn1cblxuc2Nyb2xsLWJhciB7XG4gIC0tYnJlYWtwb2ludC1tb2JpbGU6IDY1MHB4O1xuICAtLXNsaWRlLW1hcmdpbjogdmFyKC0tZ2FwLXkpO1xuICAtLWFydGljbGUtdG9wLXNwYWNpbmc6IDBweDtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBncmlkLXJvdzogMS9zcGFuIDM7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgei1pbmRleDogMTEwMDtcbn1cbnNjcm9sbC1iYXIubG9hZGluZyB7XG4gIG9wYWNpdHk6IDA7XG59XG5zY3JvbGwtYmFyIC5zbGlkZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjVweCwgMWZyKSk7XG4gIGdyaWQtZ2FwOiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA1MDBweCkge1xuICBzY3JvbGwtYmFyIC5zbGlkZS1jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjI1cHgsIDFmcikgbWlubWF4KDIyNXB4LCAxZnIpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE1MDBweCkge1xuICBzY3JvbGwtYmFyIC5zbGlkZS1jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cbn1cbnNjcm9sbC1iYXIgLnNsaWRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC44cyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmbGV4LXNocmluazogMDtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC5sZWFybi1tb3JlIHtcbiAgLS1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogYXV0bztcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERjMwMzU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0ZXh0LWRlY29yYXRpb24tY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zY3JvbGwtYmFyIC5zbGlkZSAubGVhcm4tbW9yZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIjBcIiBhdHRyKGRhdGEtaW5kZXgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMy4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBvcGFjaXR5OiAwLjI7XG59XG5zY3JvbGwtYmFyIC5zbGlkZSAuc2xpZGUtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC5zbGlkZS1pbWFnZSBhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5zY3JvbGwtYmFyIC5zbGlkZSAuc2xpZGUtaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUgLnNsaWRlLWltYWdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMzAlLCByZ2JhKDE5LCAzMSwgMTA3LCAwLjY1KSAxMDAlKTtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC5zbGlkZS1kcmF3ZXIge1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xuICAtLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMnJlbTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjYpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG59XG5zY3JvbGwtYmFyIC5zbGlkZSAuc2xpZGUtZHJhd2VyIGgzIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC5zbGlkZS1kcmF3ZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCIwXCIgYXR0cihkYXRhLWluZGV4KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMHB4O1xuICByaWdodDogMDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiA1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgb3BhY2l0eTogMC4xO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUgLnNsaWRlLWJvZHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUgLnBvbHlnb24ge1xuICBiYWNrZ3JvdW5kOiByZWQ7XG4gIGNsaXAtcGF0aDogcG9seWdvbigxMDAlIDAsIDAsIDQwJSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzY3JvbGwtYmFyIC5zbGlkZTpub3QoLmFjdGl2ZSk6aG92ZXIgLmxlYXJuLW1vcmUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgc2Nyb2xsLWJhciAuc2xpZGU6aG92ZXIgLnNsaWRlLWRyYXdlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgfVxufVxuc2Nyb2xsLWJhciAuc2xpZGU6bm90KC5hY3RpdmUpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIHtcbiAgLS1hcnRpY2xlLXRvcC1zcGFjaW5nOiBjYWxjKC0xICogdmFyKC0tc2xpZGUtbWFyZ2luKSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHdpZHRoOiA1MDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiMFwiIGF0dHIoZGF0YS1pbmRleCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzcmVtO1xuICByaWdodDogNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiA4ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBvcGFjaXR5OiAwLjQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5zbGlkZS1kcmF3ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5zbGlkZS1pbWFnZSB7XG4gIGhlaWdodDogNTIlO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5zbGlkZS1ib2R5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBsYWNlLWNvbnRlbnQ6IHN0YXJ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDIpIGNhbGModmFyKC0tZ2FwKSAqIDIpIDIwMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5zbGlkZS1ib2R5IC5zdWJoZWFkaW5nLFxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5zbGlkZS1ib2R5IC5oZWFkaW5nIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlLmFjdGl2ZSAuc2xpZGUtYm9keSAuc3ViaGVhZGluZyB7XG4gIG9yZGVyOiAxO1xuICBjb2xvcjogI0RGMzAzNTtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlLmFjdGl2ZSAuc2xpZGUtYm9keSAuaGVhZGluZyB7XG4gIG9yZGVyOiAyO1xuICBmb250LXNpemU6IDMuMTI1ZW07XG4gIGZvbnQtc2l6ZTogY2xhbXAoMi41ZW0sIDV2dywgMy4xMjVlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5zY3JvbGwtYmFyIC5zbGlkZS5hY3RpdmUgLnNsaWRlLWJvZHkgLmhlYWRpbmcgYSB7XG4gIGNvbG9yOiAjMTMxZjZiO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5zbGlkZS1ib2R5IC5oZWFkaW5nIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5zY3JvbGwtYmFyIC5zbGlkZS5hY3RpdmUgLnNsaWRlLWJvZHkgLmNvbnRlbnQge1xuICBvcmRlcjogMztcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1nYXApICogMik7XG4gIGNvbG9yOiAjMUUxQTFBO1xufVxuc2Nyb2xsLWJhciAuc2xpZGUuYWN0aXZlIC5sZWFybi1tb3JlIHtcbiAgYm90dG9tOiAxMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERjMwMzU7XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG5zY3JvbGwtYmFyIC5zbGlkZS5hY3RpdmUgLmxlYXJuLW1vcmU6OmFmdGVyIHtcbiAgY29udGVudDogbm9uZTtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC50cmFuc2l0aW9uIHtcbiAgb3BhY2l0eTogMDtcbn1cbnNjcm9sbC1iYXIgLnNsaWRlIC5mYWRlIHtcbiAgdHJhbnNpdGlvbjogMC42cyBvcGFjaXR5IDBzO1xufVxuXG5zY3JvbGwtYmFyLmRlYWN0aXZhdGVkIHtcbiAgLS1hcnRpY2xlLXRvcC1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGdyaWQtcm93OiAzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIyKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC15KTtcbn1cbnNjcm9sbC1iYXIuZGVhY3RpdmF0ZWQgLnNsaWRlLWNvbnRhaW5lciB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY1MHB4KSB7XG4gIHNjcm9sbC1iYXIge1xuICAgIC0tY2VsbC1taW4td2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuICBzY3JvbGwtYmFyIC5zbGlkZTpub3QoLmFjdGl2ZSkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogdW5zZXQ7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzLycgYXMgKjtcblxuJGNhcmQtaW1hZ2UtZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LDI1NSwyNTUsMCkgMzAlLCByZ2JhKCRibHVlLCAwLjY1KSAxMDAlKTtcblxuXG5AbWl4aW4gcGFnZS1hcnRpY2xlKCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmbGV4LXNocmluazogMDtcblxuICAubGVhcm4tbW9yZSB7XG4gICAgLS1mb250LWNvbG91cjogI3skd2hpdGV9O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1OyBcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIHRleHQtZGVjb3JhdGlvbi1jb2xvciAkdHJhbnNpdGlvbjtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcwJyBhdHRyKGRhdGEtaW5kZXgpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgZm9udC1zaXplOiAzLjJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgb3BhY2l0eTogMC4yO1xuICAgIH1cbiAgfVxuXG4gIC5zbGlkZS1pbWFnZSB7XG4gICAgQGluY2x1ZGUgc3F1YXJlKDEwMCUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBzcXVhcmUoMTAwJSk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBzcXVhcmUoMTAwJSk7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRjYXJkLWltYWdlLWdyYWRpZW50O1xuICAgIH1cbiAgfVxuXG4gIC5zbGlkZS1kcmF3ZXIge1xuICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAtLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEocmVkLCAwLjYpOyBcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQtY3ViaWM7XG5cbiAgICBoMyB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnMCcgYXR0cihkYXRhLWluZGV4KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICBmb250LXNpemU6IDVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICB9XG4gIH1cblxuICAuc2xpZGUtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wb2x5Z29uIHtcbiAgICBiYWNrZ3JvdW5kOiByZWQ7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDEwMCUgMCwgMCwgNDAlKTtcbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgJjpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICAgICAgLmxlYXJuLW1vcmUgICB7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgLnNsaWRlLWRyYXdlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgfVxuICAgIH1cbiAgfVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cblxuQG1peGluIGFuZ2xlZC1jbGlwKCkge1xuXHRjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMTVweCAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbn1cblxuQG1peGluIHNxdWFyZSgkbGVuZ3RoKSB7XG5cdHdpZHRoOiAkbGVuZ3RoO1xuXHRoZWlnaHQ6ICRsZW5ndGg7XG59XG5cbkBtaXhpbiBmZWF0dXJlZC1iYWRnZSgkY29sb3VyIDogJG9yYW5nZSkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cGFkZGluZzogMC43cmVtIDJyZW0gMC43cmVtIDNyZW07XG5cdC8vIEZpeGVkIGhlaWdodCBzbGlnaHRseSBmaXhlcyBibHVycnkgdGV4dCBpc3N1ZSBpbiBjaHJvbWVcblx0aGVpZ2h0OiAzOXB4O1xuXHRiYWNrZ3JvdW5kOiAkY29sb3VyO1xuXHRjb2xvcjogJHdoaXRlO1xuXHQvLyAtMC41cHggc2xpZ2h0bHkgZml4ZXMgYmx1cnJ5IHRleHQgaXNzdWUgaW4gY2hyb21lXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0wLjVweCkgdHJhbnNsYXRlWCgtMTAwJSkgdHJhbnNsYXRlWSgtMTAwJSkgcm90YXRlKC05MGRlZyk7XG5cdHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcblx0QGluY2x1ZGUgYW5nbGVkLWNsaXAoKTtcbn1cblxuQG1peGluIGRpc2FibGVkKCRvcGFjaXR5IDogMC40KSB7XG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1peGluIHRleHQtZWxsaXBzaXMoKSB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLiBcbi8vLyBFeGFtcGxlOiBncmVlbjEsIGdyZWVuMiwgZ3JlZW4zLCBncmVlbjQuIFRoaXMgaXMgc28gd2UgY2FuIGltbWlkaWF0ZWx5IHNlZSBob3cgXG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50IFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci4gXG4vLy8gVGhlIFBhbGxldGVzIG1vZHVsZSAoYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUpIHdpbGwgb3V0cHV0IHNoYWRlZCBuYW1lZCB2YXJpYXRpb25zLCBcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93biBcbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGUgXG4vLy8gYW5kIHRoZXkgYXJlIGxpbWl0ZWQgYnkgaG93IGNyZWF0aXZlIChjb25mdXNpbmcpIHlvdXIgd29yZGluZyBjYW4gYmUuIFxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuIFxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWUgICAgICAgICAgICAgOiAjMTMxZjZiOyAvLyBQcmltYXJ5XG4kYmx1ZTIgICAgICAgICAgICA6ICMyOTJCNjg7IC8vIE5ha2VkIExpbmtcbiRibHVlMyAgICAgICAgICAgIDogIzNkM2Y3ZjsgLy8gTGlnbnQgR3JhZGllbnRcbiRibHVlNCAgICAgICAgICAgIDogIzEwMTI0ZDsgLy8gRGFyayBHcmFkaWVudFxuJGJsdWU1ICAgICAgICAgICAgOiAjMDA5NUZGOyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgXG5cbiRyZWQgICAgICAgICAgICAgIDogI0RGMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2UgXG5cbiRncmV5ICAgICAgICAgICAgIDogIzk2OTY5NTtcbiRncmV5MiAgICAgICAgICAgIDogIzZBNkE2QTsgLy8gRm9udFxuJGdyZXkzICAgICAgICAgICAgOiAjRjRGNEY0OyAvLyBMaWdodGVyIEdyZXkgQmFja2dyb3VuZFxuJGdyZXk0ICAgICAgICAgICAgOiAjZGNkY2RjO1xuJGdyZXk1ICAgICAgICAgICAgOiAjQjFCMUIxOyAvLyBTcGFjZXJzIDxocj5cbiRncmV5NiAgICAgICAgICAgIDogIzMzMzIzNjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyICBcbiRncmV5NyAgICAgICAgICAgIDogI2U5ZTllOTtcbiRncmVlbiAgICAgICAgICAgIDogIzUwQkMwODtcbiR5ZWxsb3cgICAgICAgICAgIDogI0Y2RjREQjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MiAgICAgICAgICA6ICNGQ0IwMDI7XG4kYmxhY2sgICAgICAgICAgICA6ICMxRTFBMUE7XG4kd2hpdGUgICAgICAgICAgICA6ICNGRkZGRkY7XG5cbiRvcmFuZ2UgICAgICAgICAgIDogI2VkNjIyNDtcblxuXG4kdHJhbnNwYXJlbnQgICAgICA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4kbWFyayAgICAgICAgICAgICA6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRkZWZhdWx0LWdyYWRpZW50IDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgJGJsdWUgNSUsICRibGFjayA2NiUpO1xuJHJldmVyc2UtZ3JhZGllbnQgOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjMTAxMjRkIDAlLCAkYmx1ZSA4MCUpO1xuJGxpZ2h0LWdyYWRpZW50ICAgOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGJvdHRvbSwgIzEwMTI0ZCA1NSUsICMxNzI1ODIgMTAwJSk7XG5cblxuLy8vXG4kcHJpbWFyeTogJGJsdWU7XG4vLy9cblxuXG5cblxuLy8vIFRoZW1lcyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHRoZW1lLWRlZmF1bHQtcGFnZS1iYWNrZ3JvdW5kICAgIDogJGRlZmF1bHQtZ3JhZGllbnQ7XG4kdGhlbWUtZGVmYXVsdC1jb250ZW50LWJhY2tncm91bmQgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtZGVmYXVsdC1uYXYtYmFja2dyb3VuZCAgICAgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtZGVmYXVsdC1uYXYtYmFja2dyb3VuZC1tb2IgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtZm9udCAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtZm9udC1tb2IgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS1kZWZhdWx0LW5hdi1zcGFjaW5nLWNvbG91ciA6IHJnYmEoJGJsdWUsIDAuMyk7XG4kdGhlbWUtZGVmYXVsdC1mb250ICAgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1oZWFkaW5nICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1hY2NlbnRcdFx0XHRcdFx0ICAgIDogJHJlZDtcbiR0aGVtZS1kZWZhdWx0LWxvZ28gICAgICAgICAgICAgICA6ICR3aGl0ZTtcblxuJHRoZW1lLXdoaXRlLXBhZ2UtYmFja2dyb3VuZCAgICAgIDogJGxpZ2h0LWdyYWRpZW50O1xuJHRoZW1lLXdoaXRlLWNvbnRlbnQtYmFja2dyb3VuZCAgIDogI2Y4ZjhmODtcbiR0aGVtZS13aGl0ZS1uYXYtYmFja2dyb3VuZCAgICAgICA6ICR0cmFuc3BhcmVudDtcbiR0aGVtZS13aGl0ZS1uYXYtYmFja2dyb3VuZC1tb2IgICA6ICRibHVlO1xuJHRoZW1lLXdoaXRlLW5hdi1mb250ICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLXdoaXRlLW5hdi1mb250LW1vYiAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLXdoaXRlLW5hdi1zcGFjaW5nLWNvbG91ciAgIDogcmdiYSgkd2hpdGUsIDAuMyk7XG4kdGhlbWUtd2hpdGUtZm9udCAgICAgICAgICAgICAgICAgOiAkYmxhY2s7XG4kdGhlbWUtd2hpdGUtaGVhZGluZyAgICAgICAgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS13aGl0ZS1hY2NlbnRcdFx0XHRcdFx0ICAgICAgOiAkdGhlbWUtZGVmYXVsdC1hY2NlbnQ7XG4kdGhlbWUtd2hpdGUtbG9nbyAgICAgICAgICAgICAgICAgOiAkd2hpdGU7XG5cbiR0aGVtZS1ibGFjay1wYWdlLWJhY2tncm91bmQgICAgICA6ICRkZWZhdWx0LWdyYWRpZW50O1xuJHRoZW1lLWJsYWNrLWNvbnRlbnQtYmFja2dyb3VuZCAgIDogJGJsYWNrO1xuJHRoZW1lLWJsYWNrLW5hdi1iYWNrZ3JvdW5kICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLW5hdi1iYWNrZ3JvdW5kLW1vYiAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLW5hdi1mb250ICAgICAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtYmxhY2stbmF2LWZvbnQtbW9iICAgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS1ibGFjay1uYXYtc3BhY2luZy1jb2xvdXIgICA6IHJnYmEoJGJsdWUsIDAuMyk7XG4kdGhlbWUtYmxhY2stZm9udCAgICAgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2staGVhZGluZyAgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2stYWNjZW50XHRcdFx0XHRcdCAgICAgIDogJHRoZW1lLWRlZmF1bHQtYWNjZW50O1xuJHRoZW1lLWJsYWNrLWxvZ28gICAgICAgICAgICAgICAgIDogJGJsdWU7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuIFxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJ3dpdGggKCRibHVlIDogJGJsdWUsXG5cdCRyZWQgOiAkcmVkLFxuXHQkZ3JleSA6ICRncmV5LFxuXHQkeWVsbG93IDogJHllbGxvdyxcblx0JGdyZWVuIDogJGdyZWVuLFxuXHQkYmxhY2sgOiAkYmxhY2spO1xuXG4kY29tcG9uZW50LXRoZW1lcyA6IChcInJlZFwiOiAkcmVkLCBcImJsdWVcIjogJGJsdWUsIFwiZ3JleVwiOiAkZ3JleTMsIFwid2hpdGVcIiA6ICR3aGl0ZSk7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91ciBQYWxldHRlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwiLi9tb2R1bGVzL2NvbG91clwiO1xuXG4vLyBBZGp1c3QgdGhlc2UgdG8gYW1lbmQgdGhlIGxpZ2h0bmVzcyBvciBkYXJrbmVzcyBhbW91bnRzIGZvciB0aGUgY29sb3VycyBsc2l0ZWQgYmVsb3cuLiBcblxuJF9saWdodG5lc3MgOiAxNSUgIWRlZmF1bHQ7XG4kX2RhcmtuZXNzICA6IDIwJSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbW1vbiBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kcmVkICAgICAgICAgIDogIzk3MDgwRSAhZGVmYXVsdDtcbiRyZWQtbGlnaHQgICAgOiBjb2xvdXIubGlnaHRlbigkcmVkLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcmVkLWRhcmsgICAgIDogY29sb3VyLmRhcmtlbigkcmVkLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJG9yYW5nZSAgICAgICA6ICNEQTRCMEYgIWRlZmF1bHQ7XG4kb3JhbmdlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJG9yYW5nZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJG9yYW5nZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJG9yYW5nZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiR5ZWxsb3cgICAgICAgOiAjRTlCMTA0ICFkZWZhdWx0O1xuJHllbGxvdy1saWdodCA6IGNvbG91ci5saWdodGVuKCR5ZWxsb3csICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiR5ZWxsb3ctZGFyayAgOiBjb2xvdXIuZGFya2VuKCR5ZWxsb3csICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kZ3JlZW4gICAgICAgIDogIzQ4OEMxMyAhZGVmYXVsdDtcbiRncmVlbi1saWdodCAgOiBjb2xvdXIubGlnaHRlbigkZ3JlZW4sICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRncmVlbi1kYXJrICAgOiBjb2xvdXIuZGFya2VuKCRncmVlbiwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRibHVlICAgICAgICAgOiAjMUI1NUMwICFkZWZhdWx0O1xuJGJsdWUtbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRibHVlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kYmx1ZS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkYmx1ZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRwaW5rICAgICAgICAgOiAjRTA1RDZCICFkZWZhdWx0O1xuJHBpbmstbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRwaW5rLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcGluay1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkcGluaywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRwdXJwbGUgICAgICAgOiAjNjEzRDVBICFkZWZhdWx0O1xuJHB1cnBsZS1saWdodCA6IGNvbG91ci5saWdodGVuKCRwdXJwbGUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwdXJwbGUtZGFyayAgOiBjb2xvdXIuZGFya2VuKCRwdXJwbGUsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kZ3JleSAgICAgICAgIDogIzc4Nzg3OCAhZGVmYXVsdDtcbiRncmV5LWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkZ3JleSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZXktZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJGdyZXksICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kYnJvd24gICAgICAgIDogIzc3NEYzOCAhZGVmYXVsdDtcbiRicm93bi1saWdodCAgOiBjb2xvdXIubGlnaHRlbigkYnJvd24sICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRicm93bi1kYXJrICAgOiBjb2xvdXIuZGFya2VuKCRicm93biwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiR3aGl0ZSAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0IDtcbiR3aGl0ZS1kYXJrICAgOiBjb2xvdXIubGlnaHRlbigkd2hpdGUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcblxuJGJsYWNrICAgICAgICA6ICMwMDAwMDAgIWRlZmF1bHQgO1xuJGJsYWNrLWxpZ2h0ICA6IGNvbG91ci5kYXJrZW4oJGJsYWNrLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNvY2lhbCBNZWRpYSBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL3d3dy5sb2NrZWRvd25zZW8uY29tL3NvY2lhbC1tZWRpYS1jb2xvcnMvXG5cbiRmYWNlYm9vazogICAgIzE4NzdmMiAhZGVmYXVsdDtcbiR0d2l0dGVyOiAgICAgIzFkYTFmMiAhZGVmYXVsdDtcbiRnb29nbGU6ICAgICAgIzQyODVmNCAhZGVmYXVsdDtcbiR5b3V0dWJlOiAgICAgI2ZmMDAwMCAhZGVmYXVsdDtcbiRsaW5rZWRpbjogICAgIzAwN2JiNSAhZGVmYXVsdDtcbiRpbnN0YWdyYW06ICAgI2MzMmFhMyAhZGVmYXVsdDtcbiRwaW50ZXJlc3Q6ICAgI2JkMDgxYyAhZGVmYXVsdDtcbiRkYWlseW1vdGlvbjogIzAwNjZEQyAhZGVmYXVsdDtcbiRzbmFwY2hhdDogICAgI2ZmZmMwMCAhZGVmYXVsdDtcbiRmbGlja3I6ICAgICAgI2Y0MDA4MyAhZGVmYXVsdDtcbiR2aW1lbzogICAgICAgIzFhYjdlYSAhZGVmYXVsdDtcbiR0aHVtYmxlcjogICAgIzM1NDY1ZCAhZGVmYXVsdDtcbiRyZWRkaXQ6ICAgICAgI2ZmNDUwMCAhZGVmYXVsdDtcbiR3aGF0c2FwcDogICAgIzI1ZDM2NiAhZGVmYXVsdDtcbiRza3lwZTogICAgICAgIzAwYWZmMCAhZGVmYXVsdDtcbiRkaXNjb3JkOiAgICAgIzcyODlkYSAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYSA6IChcbiAgZmFjZWJvb2s6ICAgICAkZmFjZWJvb2ssXG4gIHR3aXR0ZXI6ICAgICAgJHR3aXR0ZXIsXG4gIGdvb2dsZTogICAgICAgJGdvb2dsZSxcbiAgeW91dHViZTogICAgICAkeW91dHViZSxcbiAgbGlua2VkaW46ICAgICAkbGlua2VkaW4sXG4gIGluc3RhZ3JhbTogICAgJGluc3RhZ3JhbSxcbiAgcGludGVyZXN0OiAgICAkcGludGVyZXN0LFxuICBkYWlseW1vdGlvbjogICRkYWlseW1vdGlvbixcbiAgc25hcGNoYXQ6ICAgICAkc25hcGNoYXQsXG4gIGZsaWNrcjogICAgICAgJGZsaWNrcixcbiAgdmltZW86ICAgICAgICAkdmltZW8sXG4gIHRodW1ibGVyOiAgICAgJHRodW1ibGVyLFxuICByZWRkaXQ6ICAgICAgICRyZWRkaXQsXG4gIHdoYXRzYXBwOiAgICAgJHdoYXRzYXBwLFxuICBza3lwZTogICAgICAgICRza3lwZSxcbiAgZGlzY29yZDogICAgICAkZGlzY29yZFxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE90aGVyIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiR5ZWxsbzogI0ZGQ0IwOCAhZGVmYXVsdDtcblxuLy8vIEhhbmRsZXMgdGhlIGN1cnNvciBzZWxlY3Rpb24gY29sb3VyXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvc2VsZWN0b3JzL3Mvc2VsZWN0aW9uL1xuXG4kaGlnaGxpZ2h0OiAjQjJEM0ZBICFkZWZhdWx0OyBcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIZWFkaW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICcuL2NvbGxlY3Rpb25zL2ZvbnQnO1xuQHVzZSAnLi9tb2R1bGVzL3VuaXQnO1xuXG4vLyBEZWZhdWx0IEhlYWRpbmcgVmFsdWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEgOiAoXG4gICdmb250LXNpemUnICAgOiAzLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjFcbikgIWRlZmF1bHQ7XG5cbiRoMiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuNXJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuM1xuKSAhZGVmYXVsdDtcblxuJGgzIDogKFxuICAnZm9udC1zaXplJyAgIDogMi4ycmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDQgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuOHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg2IDogKFxuICAnZm9udC1zaXplJyAgIDogMS42cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kYmFzZSA6IDYyLjUgIWRlZmF1bHQ7XG4kc2NhbGVyIDogMS41dncgIWRlZmF1bHQ7XG4kZW5hYmxlLWNyb3BwaW5nIDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhbGxiYWNrIExpbmUtaGVpZ2h0cyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgxLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgxIDogbWFwLnNldCgkaDEsICdsaW5lLWhlaWdodCcsIDEuMSk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgyLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgyIDogbWFwLnNldCgkaDIsICdsaW5lLWhlaWdodCcsIDEuMyk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgzLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgzIDogbWFwLnNldCgkaDMsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg0LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg0IDogbWFwLnNldCgkaDQsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg1LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg1IDogbWFwLnNldCgkaDUsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg2LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg2IDogbWFwLnNldCgkaDYsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cblxuLy8gRGVmaW5lIHRoZSB2YXJpYWJsZXMgc28gdGhleSBhcmUgc3RpbGwgYWNjZXNpYmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxLWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoMSwgJ2ZvbnQtc2l6ZScpO1xuJGgxLWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoMSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDEtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoMSwgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDEtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGgxLCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbiRoMi1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDIsICdmb250LXNpemUnKTtcbiRoMi1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDIsICdsaW5lLWhlaWdodCcpO1xuJGgyLWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDIsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGgyLXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoMiwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDMtZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGgzLCAnZm9udC1zaXplJyk7XG4kaDMtbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGgzLCAnbGluZS1oZWlnaHQnKTtcbiRoMy1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGgzLCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoMy1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDMsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuJGg0LWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoNCwgJ2ZvbnQtc2l6ZScpO1xuJGg0LWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoNCwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDQtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoNCwgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDQtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGg0LCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbiRoNS1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDUsICdmb250LXNpemUnKTtcbiRoNS1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDUsICdsaW5lLWhlaWdodCcpO1xuJGg1LWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDUsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGg1LXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoNSwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDYtZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGg2LCAnZm9udC1zaXplJyk7XG4kaDYtbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGg2LCAnbGluZS1oZWlnaHQnKTtcbiRoNi1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGg2LCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoNi1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDYsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuLy8gSGFuZGxlcyBDcm9wcyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJF9oMS1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDEsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcbiRfaDItY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGgyLCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2gzLWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoMywgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNC1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDQsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcbiRfaDUtY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGg1LCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g2LWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoNiwgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuXG4kX2gxLWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoMSwgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuJF9oMi1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDIsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDMtY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGgzLCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g0LWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoNCwgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNS1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDUsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDYtY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGg2LCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG5cblxuLy8gTWl4aW5zIGZvciBlYWNoIGhlYWRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIF9zZXQtY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRjcm9wKSB7XG5cbiAgQGlmIChtZXRhLnR5cGUtb2YoJGNyb3ApID09ICdtYXAnKSB7XG5cbiAgICAkZm9udC1zaXplICAgOiB1bml0LnN0cmlwKCRmb250LXNpemUpICogMTA7XG4gICAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuICAgICR0b3AgICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpKTogdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcInRvcFwiKSk7IGVsc2U6IDApO1xuICAgICRib3R0b20gICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpKTogdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcImJvdHRvbVwiKSk7IGVsc2U6IDApO1xuXG4gICAgQGluY2x1ZGUgZm9udC5jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJHRvcCwgJGJvdHRvbSk7XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMS1mb250LXNpemUtbWluIGFuZCAkaDEtZm9udC1zaXplLW1pbiA8ICRoMS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZS1taW4pfSwgI3skaDEtc2NhbGVyfSwgI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgxLWZvbnQtc2l6ZSwgJGgxLWxpbmUtaGVpZ2h0LCAkX2gxLWNyb3AtdG9wLCAkX2gxLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDEtbGluZS1oZWlnaHQ7IFxuICAgIH1cblxuICB9XG5cbn1cblxuQG1peGluIGgyKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgyLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgyLWZvbnQtc2l6ZS1taW4gYW5kICRoMi1mb250LXNpemUtbWluIDwgJGgyLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplLW1pbil9LCAjeyRoMi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDItZm9udC1zaXplLCAkaDItbGluZS1oZWlnaHQsICRfaDItY3JvcC10b3AsICRfaDItY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGgzKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgzLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgzLWZvbnQtc2l6ZS1taW4gYW5kICRoMy1mb250LXNpemUtbWluIDwgJGgzLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplLW1pbil9LCAjeyRoMy1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDMtZm9udC1zaXplLCAkaDMtbGluZS1oZWlnaHQsICRfaDMtY3JvcC10b3AsICRfaDMtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMy1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg0KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg0LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg0LWZvbnQtc2l6ZS1taW4gYW5kICRoNC1mb250LXNpemUtbWluIDwgJGg0LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplLW1pbil9LCAjeyRoNC1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDQtZm9udC1zaXplLCAkaDQtbGluZS1oZWlnaHQsICRfaDQtY3JvcC10b3AsICRfaDQtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNC1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg1KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg1LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg1LWZvbnQtc2l6ZS1taW4gYW5kICRoNS1mb250LXNpemUtbWluIDwgJGg1LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplLW1pbil9LCAjeyRoNS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDUtZm9udC1zaXplLCAkaDUtbGluZS1oZWlnaHQsICRfaDUtY3JvcC10b3AsICRfaDUtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNS1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg2KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg2LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg2LWZvbnQtc2l6ZS1taW4gYW5kICRoNi1mb250LXNpemUtbWluIDwgJGg2LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplLW1pbil9LCAjeyRoNi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcDIoJGg2LWZvbnQtc2l6ZSwgJGg2LWxpbmUtaGVpZ2h0LCAkX2g2LWNyb3AtdG9wLCAkX2g2LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDYtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIb3ZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hvdmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gaG92ZXIoJHNlbGVjdG9yIDogbnVsbCkge1xuICBAbWVkaWEgKCBob3ZlciA6IGhvdmVyICkge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZWxlY3RvciB7XG4gICAgJiN7JHNlbGVjdG9yfSB7IFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iXX0= */