@charset "UTF-8";
/* Colors */
/* even rows in list or tables, subtle shade of $c-bg-high */
/* Primary: blue */
/* text over primary background */
/* Secondary: green */
/* text over secondary background */
/* Accent: orange */
/* text over accent background */
/* Brag: gold */
/* text over brag background */
/* Error: red */
/* text over brag background */
/* Good: green */
/* Warn: orange */
/* Bad: red */
/* Heart: red */
/* Fancy: pink */
/* text over brag background */
/* Borders */
/* Shadows */
/* even rows in list or tables, subtle shade of $c-bg-high */
/* Primary: blue */
/* Secondary: green */
/* Brag: gold */
/* Fancy: pink */
/* Good: green */
/* Warn: orange */
/* Bad: red */
/* Common imports for all CSS modules */
/* Widths */
/* Heights */
/* Orientations */
/* Capabilities */
/* Aliases */
/* Uniboard: keep the same page layout across pages */
/* when the width is appropriate for col1, but landscape prevents it */
.piece-letter .tview2 move, .tview2 .piece-letter move, .piece-letter .pv_box .pv span, .pv_box .pv .piece-letter span, .piece-letter .explorer-box .moves td:first-child, .explorer-box .moves .piece-letter td:first-child, .piece-letter .explorer-box .tablebase td:first-child, .explorer-box .tablebase .piece-letter td:first-child, .piece-letter .analyse__fork move, .analyse__fork .piece-letter move, .piece-letter #analyse-cm .title, #analyse-cm .piece-letter .title, .tview2 glyph, .analyse__fork glyph {
  font-family: 'Noto Sans', Sans-Serif;
}

.tview2 move draw, .pv_box .pv span draw, .explorer-box .moves td:first-child draw, .explorer-box .tablebase td:first-child draw, .analyse__fork move draw, #analyse-cm .title draw, .tview2 eval, .tview2 tick, .tview2 comment .by, .ceval .engine .cloud, .tabs-horiz span, .slist thead, .mchat__tab, .mchat__messages a:not(.user-link), .explorer-box .moves th, .analyse__fork eval, .study__members .add, .study__player .analyse__clock, .study__topics {
  font-family: 'Roboto', Sans-Serif;
}

.tview2 move, .pv_box .pv span, .explorer-box .moves td:first-child, .explorer-box .tablebase td:first-child, .analyse__fork move, #analyse-cm .title, .mofw-nom-overlay__header .mofw-san, .mofw-nom-overlay__cont-chip .mofw-cont-san {
  font-family: 'Noto Chess', 'Noto Sans';
}

.tview2 move draw, .pv_box .pv span draw, .explorer-box .moves td:first-child draw, .explorer-box .tablebase td:first-child draw, .analyse__fork move draw, #analyse-cm .title draw {
  margin-left: 1ch;
  font-weight: normal;
}

/* text printed directly on the page background deserves special treatment (transp theme) */
.tabs-horiz, .chat__members, .analyse__controls .fbt, .study__buttons .mode {
  color: #999999;
}

.crosstable__users, .crosstable__score, .crosstable povs:hover, .cmn-toggle + label::after, .slist thead, .explorer__config .choices button, #analyse-cm .title, .analyse__clock, .study__player, .study__metadata h2 {
  background: linear-gradient(to bottom, #3c3934, #33312e 100%);
}

.cmn-toggle:hover:not(:disabled) + label::after, .explorer__config .choices button:hover {
  background: linear-gradient(to bottom, #44413b, #3b3935 100%);
  color: #cccccc;
}

.ceval, .analyse__tools .comp-off__hint {
  background: linear-gradient(to bottom, #3c3934, #33312e 100%);
}

.pocket piece::after {
  box-shadow: 0 3px 4px rgba(0, 0, 0, 0.15) inset;
}

.pocket piece::after {
  background: #d64f00;
  color: #fff;
  text-shadow: 0 1px 1px black !important;
}

#modal-wrap, .pv_box .pv-board, .variant-racingKings .cg-wrap.cg-wrap cg-container::before, #analyse-cm, .study-desc .contrib {
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
}

.fbt, .analyse__tools .comp-off__hint button, .mofw-nom-overlay__close, .mofw-nom-overlay__cont-remove, .mofw-nom-overlay__btn, .study__glyphs button {
  background: none;
  border: none;
  outline: none;
  color: #bababa;
  align-items: normal;
}

.mchat__tab input {
  -webkit-appearance: none;
  background: #161512;
  border: 1px solid #3c3934;
  display: inline-block;
  padding: 0.5em;
}

.mchat__tab input:checked {
  background: #3b5c16;
  border-color: #4f7a1d;
}

.cmn-toggle:focus:not(:disabled) + label, .cmn-toggle:hover:not(:disabled) + label {
  box-shadow: 0 0 12px #999999;
}

.tview2 move, .ceval help,
.ceval .engine, .context-streamer, .mchat__tab {
  white-space: nowrap;
  overflow: hidden;
}

.tview2 comment .by, .pv_box .pv.pv--nowrap, .mchat__tab span {
  white-space: nowrap;
}

.tview2-column > interrupt > comment, .mchat__messages, .study__chapters h3, .study__comment .text {
  overflow-wrap: break-word;
  word-break: break-word;
}

.tview2 comment .by, .pv_box .pv.pv--nowrap, .mchat__tab span, .crosstable__users, .explorer-box .games td span, .study__members .user-link, .study__invite .users .button, .study__metadata h2 .name {
  overflow: hidden;
  text-overflow: ellipsis;
}

.pv_box .pv-board .pv-board-square, .pocket-c2, .board-editor .spare .no-square div {
  position: relative;
  display: block;
  height: 0;
  padding-bottom: 100%;
  width: 100%;
}

.study-desc .embed {
  position: relative;
  display: block;
  height: 0;
  padding-bottom: 56.25%;
  /* 16/9 */
  width: 100%;
}

.study-desc .embed > * {
  border: none;
}

.cmn-toggle + label::before, .tview2 shapes::before, .flash__content::before, .flash-warning .flash__content::before, .flash-failure .flash__content::before {
  font-size: 1.2em;
  vertical-align: middle;
  font-family: 'lichess';
  font-style: normal;
  font-weight: normal;
  text-transform: none;
  content: attr(data-icon);
  opacity: 0.9;
}

#modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 109;
}

.explorer-box .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.study-desc .embed > *, .pv_box .pv-board .pv-board-square .cg-wrap {
  position: absolute;
  width: 100%;
  height: 100%;
}

.cmn-toggle, .analyse-controls {
  touch-action: manipulation;
}

.tview2-column, .action-menu .autoplay, .explorer__config__player__choice .previous {
  display: flex;
  flex-flow: row wrap;
}

#modal-overlay, .ceval .switch, .explorer__config .name > div, .analyse__fork, .analyse__fork move, .study__chapters .act, .study__members .act, .study__chapters ongoing, .study__chapters > div > span, .study__chapters > div res, .study__members .status, .study__members m-config .role, .study__topics, .study__glyphs, .study__glyphs button::before, .study__share .downloads, .study__multiboard .pager, .study__multiboard .now-playing .name {
  /* extends %flex-wrap */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.tabs-horiz, .context-streamer, .chat__members__number, .explorer-box .explorer-title, .explorer-box .explorer-title .active, #analyse-cm a, .material, .study__members .left, .study__player .analyse__clock, .study__buttons .mode, .study__invite .info, .study__glyphs button {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}

.form-split, .form-actions, .study__members m-config, .board-editor__tools .metadata .castling div, .study__buttons, .study__invite .users, .study-desc-form .title, .study__multiboard .top {
  /* extends %flex-center */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
}

.explorer__config .date label, .study__chapters > div, .study__members > div, .study__player, .study__metadata h2, .study__multiboard .now-playing .player {
  /* extends %flex-center */
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
}

#modal-wrap, .continue-with, .crosstable povs, .crosstable__users, .crosstable__score, .crosstable__matchup, .form-check, .mchat, .mchat__content, .analyse__tools, .action-menu__tools > *, .explorer-box .message, .training-box, .analyse--wiki .analyse__side, .advice-summary, .board-editor__tools, .board-editor__tools .actions {
  display: flex;
  flex-flow: column;
}

.mchat__tab input, .crosstable, .mchat, .analyse__tools, .study__chapters, .study__members, .board-editor__tools .metadata, .study-desc, .study__metadata, .study__comments .study__wiki, .study__comment, .study__glyphs, .study__share, .study__multiboard, .study__server-eval, .study__message, #modal-wrap, .tview2-inline move.active,
.tview2 line move.active, .tview2-inline move:hover, .ceval .engine .cloud, .flash__content, .pocket, .pocket piece::after, #analyse-cm, .is3d .analyse__clock.top, .is3d .study__player-top, .board-editor .spare, .study__invite .info, .study__topics .topic, .study__multiboard .fbt, .study__multiboard .now-playing a {
  border-radius: 3px;
}

.crosstable, .mchat, .analyse__tools {
  overflow: hidden;
  /* helps with clipping background into border-radius */
}

.crosstable .sep, .pocket.usable piece:first-child:hover, .explorer__config .choices button:first-child, .explorer-box .bar span:first-child, .board-editor .spare .no-square.pointer {
  border-radius: 3px 0 0 3px;
}

.explorer__config .choices button:last-child, .explorer-box .bar span:last-child, .board-editor .spare .no-square.trash {
  border-radius: 0 3px 3px 0;
}

.mchat__tab, .analyse__clock.top, .study__player-top, .study__buttons .mode {
  border-radius: 3px 3px 0 0;
}

.analyse-controls .fbt, .context-streamer, .analyse__clock.bottom, .study__player-bot {
  border-radius: 0 0 3px 3px;
}

.study__chapters, .study__members, .board-editor__tools .metadata, .study-desc, .study__metadata, .study__comments .study__wiki, .study__comment, .study__glyphs, .study__share, .study__multiboard, .study__server-eval, .study__message, .crosstable, .mchat, .analyse__tools, #modal-wrap .close:hover, .context-streamer, .analyse__clock, .study__player, .study__comments #comment-text {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}

coords {
  /* handle hidden coords */
  /* handle inner coords */
  position: absolute;
  display: flex;
  pointer-events: none;
  user-select: none;
  color: #fff;
  text-shadow: 0 1px 2px #000;
  font-weight: bold;
  /* negate inner coords colors */
}

.coords-no coords {
  display: none;
}

coords {
  font-size: 8px;
}

@media (min-width: 320px) {
  coords {
    font-size: calc( 8px + 4 * ((100vw - 320px) / 880));
  }
}

@media (min-width: 1200px) {
  coords {
    font-size: 12px;
  }
}

coords.ranks {
  flex-flow: column-reverse;
  top: 1px;
  right: 0;
  height: 100%;
  width: 0.8em;
}

coords.ranks.black {
  flex-flow: column;
}

coords.files {
  bottom: 0px;
  left: 0;
  text-align: left;
  flex-flow: row;
  width: 100%;
  height: 1.4em;
}

coords.files.black {
  flex-flow: row-reverse;
}

coords.files coord {
  padding-left: 4px;
}

coords coord {
  flex: 1 1 auto;
}

coords .is3d .cg-wrap coords coord {
  color: #fff !important;
  text-shadow: 0 1px 2px #000 !important;
}

coords .is3d .cg-wrap coords.files {
  bottom: calc(1px - 2.5%);
}

coords .is3d .cg-wrap coords.files coord {
  padding-left: 3px;
}

coords {
  text-shadow: var(--cg-cs, 0 1px 2px #000);
}

.orientation-white .files coord:nth-child(2n + 1),
.orientation-white .ranks coord:nth-child(2n),
.orientation-black .files coord:nth-child(2n),
.orientation-black .ranks coord:nth-child(2n + 1) {
  color: var(--cg-ccw, #fff);
}

.orientation-white .files coord:nth-child(2n),
.orientation-white .ranks coord:nth-child(2n + 1),
.orientation-black .files coord:nth-child(2n + 1),
.orientation-black .ranks coord:nth-child(2n) {
  color: var(--cg-ccb, #fff);
}

/* handle outer coords */
@media (min-width: 800px), (orientation: landscape) {
  .coords-out coords {
    text-shadow: none;
  }
  .coords-out coords.ranks {
    right: -15px;
    top: 0;
    width: 12px;
  }
  .coords-out coords.ranks coord {
    transform: translateY(42%);
  }
  .coords-out coords.files {
    bottom: -15px;
    left: 0;
    text-align: center;
  }
  .coords-out coords.ranks coord,
  .coords-out .is2d coords.files coord {
    color: #999999 !important;
  }
}

body {
  --board-scale: 1;
}

@media (min-width: 800px) and (min-height: 500px) {
  body {
    --board-scale: calc((var(--zoom) / 100) * 0.7 + 0.3);
  }
}

@media (max-width: 799px) and (orientation: portrait) {
  body {
    --col1: 1;
  }
  .main-board cg-board {
    border-radius: 0;
  }
}

body::-webkit-scrollbar,
body::-webkit-scrollbar-corner {
  width: 0.5rem;
  background: #262421;
}

body::-webkit-scrollbar-thumb {
  background: #4d4d4d;
}

body::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:active {
  background: #6b6b6b;
}

body.resizing {
  user-select: none;
}

cg-resize {
  display: none;
}

@media (min-width: 800px) {
  cg-resize {
    display: block;
    position: absolute;
    right: -9px;
    bottom: -9px;
    width: 22px;
    height: 22px;
    cursor: nwse-resize;
    z-index: 10;
  }
  cg-resize::before, cg-resize::after {
    background: #000;
    content: '';
    position: absolute;
    width: 12px;
    height: 1px;
  }
  cg-resize::before {
    width: 5px;
    transform: translate(7px, 8px) rotate(-45deg);
  }
  cg-resize::after {
    transform: translate(1px, 6px) rotate(-45deg);
  }
  cg-resize:hover {
    border-radius: 50%;
    background: rgba(214, 79, 0, 0.5);
  }
  .resizing cg-resize {
    border-radius: 50%;
    background: rgba(98, 153, 36, 0.5);
  }
}

#modal-overlay {
  justify-content: center;
}

#modal-wrap {
  background: #262421;
  position: relative;
  text-align: center;
  max-width: 100vw;
  max-height: 96vh;
}

#modal-wrap > div {
  overflow: hidden;
  overflow-y: auto;
  padding: 2rem;
}

#modal-wrap .close {
  color: #bababa;
  position: absolute;
  font-size: 16px;
  line-height: 28px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  top: 0;
  right: 0;
  background: none;
}

@media (min-width: 800px) {
  #modal-wrap .close {
    top: -12px;
    right: -12px;
    background: #3c3934;
    border-radius: 50%;
  }
}

#modal-wrap .close:hover {
  background: #cc3333;
  color: #fff;
}

.continue-with > *:not(:first-child) {
  margin-top: 1em;
}

.color-icon.white::before {
  content: '';
}

.color-icon.black::before {
  content: '';
}

.color-icon.random::before {
  content: '';
}

.crosstable__users {
  flex: 1 1 auto;
}

.crosstable {
  width: 100%;
  line-height: 1.9em;
  display: flex;
  flex-wrap: wrap;
  /* ─── Tab bar (full width first row, rest unwrapped on second row) ─── */
  /* ─── Filtered view: hide non-matching povs ─── */
}

.crosstable fill,
.crosstable povs {
  background: #262421;
  flex: 1 1 auto;
}

.crosstable povs, .crosstable__users, .crosstable__score, .crosstable__matchup {
  text-align: center;
}

.crosstable__tabs {
  flex: 0 0 100%;
  display: flex;
  background: #262421;
  border-bottom: 1px solid #404040;
}

.crosstable__tab {
  flex: 1 1 50%;
  text-align: center;
  padding: 0.2em 0.5em;
  cursor: pointer;
  font-size: 0.85em;
  color: #999999;
  transition: background 0.15s, color 0.15s;
}

.crosstable__tab:hover {
  background: #282f35;
}

.crosstable__tab.active {
  background: #3692e7;
  color: #fff;
  font-weight: bold;
}

.crosstable--filtered povs:not(.matching) {
  display: none !important;
}

.crosstable__users {
  max-width: 40vw;
  text-align: left;
}

.crosstable__users a {
  padding-left: 2vmin;
}

.crosstable__score {
  flex: 0 0 auto;
  font-weight: bold;
}

.crosstable__score span {
  padding: 0 2vmin;
}

.crosstable__matchup {
  flex: 1 1 auto;
  font-weight: bold;
  background: #293a49;
}

.crosstable povs a {
  color: #999999;
  flex: 0 0 50%;
}

.crosstable povs:hover a {
  opacity: 1 !important;
}

.crosstable povs a.loss {
  opacity: 0.2;
}

.crosstable povs.current a {
  background: #a1420a;
  color: #fff;
  opacity: 1 !important;
}

.crosstable povs.new {
  border: #404040;
}

.crosstable povs a.loss {
  opacity: 0.2;
}

@media (max-width: 649px) {
  .crosstable povs {
    display: none;
  }
  .crosstable povs:nth-last-child(-n + 12) {
    display: flex;
  }
}

.crosstable .sep {
  border-left: 1px solid #404040;
  margin-left: 0.3em;
}

.crosstable .win {
  font-weight: bold;
  color: #629924;
}

.crosstable .loss {
  color: #cc3333;
}

.crosstable .unavailable {
  margin-top: 40px;
  opacity: 0.7;
}

.fbt {
  text-transform: uppercase;
  line-height: 1.5;
  transition: all 150ms;
}

@media (hover: hover) {
  .fbt:hover:not(.disabled):not([disabled]) {
    background: #537c23;
    color: #fff;
  }
}

.fbt.active {
  background: #629924 !important;
  color: #fff;
}

.fbt.disabled, .fbt[disabled] {
  opacity: 0.5;
  cursor: default;
}

.cmn-toggle {
  position: absolute;
  margin-left: -99999px;
}

.cmn-toggle + label {
  display: block;
  position: relative;
  cursor: pointer;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  padding: 1px;
  width: 40px;
  height: 24px;
  border: 1px solid #404040;
  border-radius: 24px;
}

.cmn-toggle + label::before, .cmn-toggle + label::after {
  display: block;
  position: absolute;
  content: '';
  width: 22px;
  height: 22px;
  bottom: 0;
  left: 0;
}

.cmn-toggle + label::before {
  font-size: 1em;
  z-index: 1;
  text-align: center;
  line-height: 22px;
}

.cmn-toggle + label::after {
  border-radius: 100%;
  box-shadow: 0 1px 2.5px rgba(0, 0, 0, 0.3);
}

.cmn-toggle:not(:checked) + label {
  background-color: #cc3333;
}

.cmn-toggle--subtle:not(:checked) + label {
  background-color: #6b6b6b;
}

.cmn-toggle:checked + label {
  background-color: #629924;
}

.cmn-toggle:disabled + label {
  opacity: 60%;
  cursor: not-allowed !important;
}

.cmn-toggle:hover:not(:disabled) + label {
  transition: background 150ms;
}

.cmn-toggle:hover:not(:disabled) + label::before {
  transition: margin 150ms, color 150ms;
}

.cmn-toggle:hover:not(:disabled) + label::after {
  transition: margin 150ms;
}

.cmn-toggle:not(:checked) + label::before {
  content: '';
  color: #cc3333;
}

.cmn-toggle--subtle:not(:checked) + label::before {
  color: #6b6b6b;
}

.cmn-toggle:checked + label::before, .cmn-toggle:checked + label::after {
  margin-left: 16px;
}

.cmn-toggle:checked + label::before {
  content: '';
  color: #629924;
}

input.range {
  -webkit-appearance: none;
  background: none;
  border: 0;
}

input.range:focus {
  outline: none;
}

input.range::-webkit-slider-runnable-track {
  width: 100%;
  height: 1em;
  cursor: pointer;
  background: #4d4d4d;
  border-radius: 0.5em;
}

input.range::-webkit-slider-thumb {
  background: linear-gradient(to bottom, #3c3934, #33312e 100%);
  border: 1px solid #6b6b6b;
  height: 1em;
  width: 1.5em;
  border-radius: 12px;
  background: #262421;
  cursor: pointer;
  -webkit-appearance: none;
}

input.range::-moz-range-track {
  width: 100%;
  height: 1em;
  cursor: pointer;
  background: #4d4d4d;
  border-radius: 0.5em;
}

input.range::-moz-range-thumb {
  background: linear-gradient(to bottom, #3c3934, #33312e 100%);
  border: 1px solid #6b6b6b;
  height: 1em;
  width: 1.5em;
  border-radius: 12px;
  background: #262421;
  cursor: pointer;
}

.tview2 move {
  display: inline-block;
  cursor: pointer;
}

.tview2 {
  white-space: normal;
}

.tview2-inline {
  padding: 7px 3px 7px 7px;
}

@media (hover: none) {
  .tview2 move {
    user-select: none;
  }
}

.tview2 move.inaccuracy {
  color: #56b4e9;
}

.tview2 move.mistake {
  color: #e69f00;
}

.tview2 move.blunder {
  color: #df5353;
}

.tview2-column move {
  font-size: 1.092em;
  padding: 0 2px;
}

.tview2-inline move {
  padding: 0.25em 0.17em;
  white-space: nowrap;
  font-weight: bold;
}

.tview2 move.parent {
  color: #3692e7;
}

.tview2 comment a {
  vertical-align: top;
}

.tview2 move.current {
  border: 1px solid #d64f00;
}

.tview2 move.active {
  font-weight: bold;
  background: #2a4053;
  color: #cccccc;
}

.tview2-inline move.active,
.tview2 line move.active {
  background: #2d5070;
  color: #e3e3e3;
  outline: 1px solid #306698;
}

.tview2 move.nongame {
  font-style: italic;
}

.tview2 move:not(.empty):hover,
.tview2 move:not(.empty):hover index,
.tview2 move:not(.empty):hover eval {
  background: #3692e7;
  color: #fff;
}

.tview2 move.empty {
  color: #6b6b6b;
  cursor: default;
}

.tview2 move index {
  font-size: 90%;
  color: #999999;
}

.tview2 move.context-menu {
  background: #d64f00;
  color: #fff;
}

.tview2 move.context-menu index {
  color: #fff;
}

.tview2-column move index {
  padding-left: 5px;
}

.tview2-column move index:first-child {
  padding-left: 0;
}

.tview2-inline move index {
  padding-right: 0.2em;
  line-height: 111.11%;
}

.tview2 line move {
  color: #bababa;
}

.tview2-column > move {
  flex: 0 0 43.5%;
  display: flex;
  font-size: 1.185em;
  line-height: 1.75em;
  padding: 0 0.3em 0 0.5em;
}

.tview2-column > index + move {
  border-right: #404040;
}

.tview2 eval {
  flex: 3 0 auto;
  text-align: right;
  font-size: 0.8em;
  color: #999999;
}

.tview2 glyph {
  margin-left: 0.08em;
  vertical-align: bottom;
}

.tview2 .mofw-star {
  font-size: 0.75em;
  margin-left: 0.15em;
  vertical-align: middle;
  cursor: default;
}

.tview2 .mofw-star--complete {
  color: #4caf50;
}

.tview2 .mofw-star--draft {
  color: #e6b800;
}

.tview2 tick {
  font-size: 0.7em;
  color: #999999;
  margin-left: 0.3em;
  vertical-align: middle;
}

.tview2 shapes {
  font-size: 0.7em;
  margin-left: 0.4em;
  text-align: right;
  color: #629924;
}

.tview2 shapes::before {
  content: '';
}

.tview2-column > move glyph {
  flex: 0 1 auto;
  text-align: center;
  overflow: hidden;
  font-size: 0.82em;
}

.tview2-column > index {
  flex: 0 0 13%;
  display: flex;
  justify-content: center;
  border-right: 1px solid #404040;
  background: #302e2c;
  line-height: 2.07em;
  color: #6b6b6b;
}

.tview2 > interrupt {
  font-size: 95%;
}

.tview2-column > interrupt {
  flex: 0 0 100%;
  background: #302e2c;
  border-top: 1px solid #404040;
  border-bottom: 1px solid #404040;
  max-width: 100%;
}

.tview2-column div.pgr {
  flex: 0 0 100%;
  display: flex;
  align-items: flex-start;
}

.tview2-column div.pgr > index {
  flex: 0 0 10%;
  display: flex;
  justify-content: center;
  border-right: 1px solid #404040;
  background: #302e2c;
  line-height: 2.07em;
  color: #6b6b6b;
  align-self: stretch;
}

.tview2-column div.pgr > .pgr-sym {
  flex: 0 0 10%;
  display: flex;
  justify-content: center;
  line-height: 2.07em;
  font-size: 1.1em;
}

.tview2-column div.pgr > .pgr-cnt {
  flex: 0 0 12%;
  display: flex;
  justify-content: center;
  line-height: 2.07em;
  color: #6b6b6b;
  font-size: 0.85em;
}

.tview2-column div.pgr > move {
  flex: 1;
  font-size: 1.185em;
  line-height: 1.75em;
  padding: 0 0.3em 0 0.5em;
}

.tview2-column div.pgr > move:hover {
  background: none !important;
  color: inherit !important;
}

.tview2-column div.pgr > move span {
  cursor: pointer;
  margin-right: 0.35em;
  padding: 0 2px;
  display: inline-block;
}

.tview2-column div.pgr > move span:hover {
  background: #3692e7;
  color: #fff;
}

.tview2-column div.pgr > move span.active {
  font-weight: bold;
  background: #2a4053;
  color: #cccccc;
}

.tview2-column div.pgr > move span.current {
  border: 1px solid #d64f00;
}

.tview2-column > interrupt > comment {
  display: block;
  padding: 3px 5px;
}

.tview2-inline comment {
  vertical-align: 45%;
  word-wrap: break-word;
  margin: 0 0.2em 0 0.1em;
  font-size: 0.9em;
}

.tview2 comment .by {
  display: inline-block;
  vertical-align: -0.3em;
  font-size: 0.9em;
  opacity: 0.8;
  margin-right: 0.4em;
  max-width: 9em;
}

.tview2-column comment.white {
  border-left: 3px solid;
}

.tview2-column comment.black {
  border-right: 3px solid;
  overflow-x: hidden;
}

.tview2-column comment.inaccuracy {
  border-color: #56b4e9;
}

.tview2-column comment.mistake {
  border-color: #e69f00;
}

.tview2-column comment.blunder {
  border-color: #df5353;
}

.tview2-column comment.undefined {
  border-color: #66558c;
}

.tview2 line comment {
  font-size: 90%;
}

.tview2-column line comment {
  display: inline;
  color: #999999;
  word-wrap: break-word;
  padding: 0 5px 0 3px;
  vertical-align: top;
}

.tview2 line comment .by {
  font-size: 1em;
  vertical-align: top;
}

.tview2 lines {
  display: block;
  margin-top: 2px;
  margin-left: 6px;
  margin-bottom: 0.8em;
  border-left: 2px solid #404040;
}

.tview2 > interrupt > lines {
  margin-left: 0px;
}

.tview2 lines.single {
  border-left: none;
}

.tview2 lines:last-child {
  margin-bottom: 0;
}

.tview2 line {
  display: block;
  padding-left: 7px;
}

.tview2-column line {
  margin: 2px 0;
}

.tview2 lines lines move {
  font-size: 13px;
}

.tview2 lines lines {
  margin-left: 1px;
}

.tview2 lines lines::before {
  content: ' ';
  border-top: 2px solid #404040;
  position: absolute;
  margin-left: -11px;
  width: 9px;
  height: 6px;
}

.tview2 lines line::before {
  margin-top: 0.65em;
  margin-left: -8px;
  content: ' ';
  border-top: 2px solid #404040;
  position: absolute;
  width: 8px;
  height: 6px;
}

.tview2 lines lines:last-child {
  margin-bottom: 0;
}

.tview2 inline {
  display: inline;
  font-style: italic;
  font-size: 0.9em;
  opacity: 0.8;
}

.tview2 inline::before,
.tview2 inline::after {
  vertical-align: 0.4em;
  opacity: 0.7;
  font-size: 0.9em;
}

.tview2 inline::before {
  content: '(';
  margin-left: 2px;
}

.tview2 inline::after {
  content: ')';
  margin-right: 2px;
}

.tview2-inline inline::before,
.tview2-inline inline::after {
  vertical-align: 0.7em;
}

.tview2 .conceal {
  opacity: 0.4;
}

.tview2 .hide {
  display: none;
}

.ceval {
  position: relative;
  display: flex;
  align-items: stretch;
}

.ceval.enabled {
  padding-top: 2px;
  height: 40px;
}

.ceval.enabled .show-threat {
  visibility: visible;
}

.ceval .switch {
  flex: 0 0 40px;
  margin-right: 8px;
}

.ceval pearl {
  flex: 0 0 75px;
  line-height: 38px;
  font-size: 1.6em;
  text-align: center;
  font-weight: bold;
}

.ceval help,
.ceval .engine {
  flex: 1 1 auto;
  font-size: 12px;
  line-height: 16px;
  margin-top: 3px;
  color: #999999;
}

.ceval .engine .cloud {
  margin-left: 4px;
  background: #4f7a1d;
  color: #fff;
  padding: 1px 3px;
  text-transform: uppercase;
  font-size: 11px;
}

.ceval .engine .info {
  display: block;
  white-space: nowrap;
}

.ceval .engine .deeper {
  color: #3692e7;
  margin-left: 4px;
}

.ceval .engine .deeper::before {
  vertical-align: -2px;
}

.ceval .technology {
  margin-left: 5px;
}

.ceval .technology.good {
  color: #629924;
}

.ceval .bar {
  position: absolute;
  width: 100%;
  height: 3px;
  top: 0px;
}

@keyframes bar-anim {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 100000px 0;
  }
}

.ceval .bar span {
  display: block;
  height: 3px;
  width: 0;
  background: #629924;
  transition: width 1s;
}

.ceval .bar span.threat {
  background: #cc3333;
}

.ceval.computing .bar span {
  background-image: url("../images/bar-highlight.png");
  animation: bar-anim 1000s linear infinite;
}

.ceval .show-threat {
  flex: 0 99 auto;
  line-height: 38px;
  color: #999999;
  font-size: 0.9em;
  padding-right: 0.5em;
  overflow: hidden;
  visibility: hidden;
}

.ceval .show-threat:hover:not(.hidden), .ceval .show-threat.active {
  color: #cc3333;
}

.ceval .show-threat.hidden {
  opacity: 0.3;
  cursor: default;
}

.pv_box {
  position: relative;
  background: #262421;
  font-size: 13px;
}

.pv_box .pv {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  line-height: 2em;
  border-top: 1px solid #404040;
  padding-right: 14px;
  min-height: 2em;
}

.pv_box .pv.pv--nowrap {
  display: block;
  flex-wrap: initial;
  height: 2em;
}

.pv_box .pv[data-uci]:hover {
  background: #323c22;
  cursor: pointer;
}

.pv_box .pv strong {
  display: inline-block;
  width: 34px;
  text-align: center;
}

.pv_box .pv span {
  margin-left: 4px;
}

.pv_box .pv[data-uci] .pv-san:hover {
  color: #3692e7;
}

.pv_box .pv .pv-wrap-toggle {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0 4px;
  margin: 0;
  cursor: pointer;
}

.pv_box .pv .pv-wrap-toggle:hover {
  background: #629924;
  color: #fff;
}

.pv_box .pv .pv-wrap-toggle::before {
  content: '▲';
}

.pv_box .pv.pv--nowrap .pv-wrap-toggle {
  transform: rotate(180deg);
}

.pv_box .pv-board {
  position: absolute;
  width: 80%;
  left: 34px;
  max-width: 240px;
  z-index: 1;
}

main {
  --gauge-gap: 8px;
}

@media (min-width: 320px) {
  main {
    --gauge-gap: calc( 8px + 9 * ((100vw - 320px) / 880));
  }
}

@media (min-width: 1200px) {
  main {
    --gauge-gap: 17px;
  }
}

.eval-gauge {
  width: var(--gauge-gap);
  position: relative;
  background: #a0a0a0;
  overflow: hidden;
}

@media (max-width: 799px) and (orientation: portrait) {
  .eval-gauge {
    display: none;
  }
}

.eval-gauge.reverse {
  transform: rotateX(180deg);
}

.eval-gauge::after {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.7) inset;
}

.eval-gauge tick {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  border-bottom: 2px ridge #a0a0a0;
  opacity: 0.4;
}

.eval-gauge tick.zero {
  top: 6px;
  opacity: 1;
  border-bottom: 7px solid rgba(214, 79, 0, 0.4);
  margin-top: -3px;
}

.eval-gauge .black {
  width: 100%;
  height: 50%;
  background: #666;
  transition: height 1s;
}

.analyse-controls {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  font-size: 1.3rem;
}

.analyse-controls .fbt {
  text-align: center;
}

.analyse-controls .hidden {
  visibility: hidden;
}

.analyse-controls .jumps {
  display: flex;
}

.analyse-controls .jumps .fbt {
  flex: 1 1 30%;
}

.analyse-controls .jumps .fbt:first-child, .analyse-controls .jumps .fbt:last-child {
  flex: 1 1 20%;
  font-size: 0.7em;
}

#promotion-choice {
  background: rgba(22, 21, 18, 0.7);
  z-index: 205;
  position: absolute;
  width: var(--cg-width, 100%);
  height: var(--cg-height, 100%);
  right: 0;
}

#promotion-choice square {
  cursor: pointer;
  border-radius: 50%;
  background-color: #b0b0b0;
  box-shadow: inset 0 0 25px 3px #808080;
  transition: all 150ms;
}

#promotion-choice piece {
  pointer-events: auto;
  opacity: 1;
  /* cancels blindfold */
}

.is2d #promotion-choice piece {
  width: 100%;
  height: 100%;
  transition: all 150ms;
  transform: scale(0.8);
}

#promotion-choice square:hover {
  box-shadow: inset 0 0 48px 8px #d64f00;
  border-radius: 0%;
}

.is2d #promotion-choice square:hover piece {
  transform: none;
}

.variant-racingKings .cg-wrap.cg-wrap cg-container::before {
  background: rgba(230, 230, 230, 0.2);
  width: 100%;
  height: 12.5%;
  content: '';
  position: absolute;
  left: 0;
  z-index: 1;
  pointer-events: none;
}

.variant-racingKings .cg-wrap.orientation-white cg-container::before {
  top: 0;
}

.variant-racingKings .cg-wrap.orientation-black cg-container::before {
  bottom: 0;
}

.variant-kingOfTheHill cg-container::before {
  width: 25%;
  height: 25%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
  background: rgba(230, 230, 230, 0.2);
  content: '';
  position: absolute;
  top: 37.5%;
  left: 37.5%;
  z-index: 1;
  pointer-events: none;
}

.cmn-toggle {
  position: absolute;
  margin-left: -99999px;
}

.cmn-toggle + label {
  display: block;
  position: relative;
  cursor: pointer;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  padding: 1px;
  width: 40px;
  height: 24px;
  border: 1px solid #404040;
  border-radius: 24px;
}

.cmn-toggle + label::before, .cmn-toggle + label::after {
  display: block;
  position: absolute;
  content: '';
  width: 22px;
  height: 22px;
  bottom: 0;
  left: 0;
}

.cmn-toggle + label::before {
  font-size: 1em;
  z-index: 1;
  text-align: center;
  line-height: 22px;
}

.cmn-toggle + label::after {
  border-radius: 100%;
  box-shadow: 0 1px 2.5px rgba(0, 0, 0, 0.3);
}

.cmn-toggle:not(:checked) + label {
  background-color: #cc3333;
}

.cmn-toggle--subtle:not(:checked) + label {
  background-color: #6b6b6b;
}

.cmn-toggle:checked + label {
  background-color: #629924;
}

.cmn-toggle:disabled + label {
  opacity: 60%;
  cursor: not-allowed !important;
}

.cmn-toggle:hover:not(:disabled) + label {
  transition: background 150ms;
}

.cmn-toggle:hover:not(:disabled) + label::before {
  transition: margin 150ms, color 150ms;
}

.cmn-toggle:hover:not(:disabled) + label::after {
  transition: margin 150ms;
}

.cmn-toggle:not(:checked) + label::before {
  content: '';
  color: #cc3333;
}

.cmn-toggle--subtle:not(:checked) + label::before {
  color: #6b6b6b;
}

.cmn-toggle:checked + label::before, .cmn-toggle:checked + label::after {
  margin-left: 16px;
}

.cmn-toggle:checked + label::before {
  content: '';
  color: #629924;
}

.flash {
  margin: 1em 0 2em 0;
}

.flash__content {
  padding: 1em 2em;
  background: #629924;
  color: #fff;
}

.flash__content::before {
  content: '';
  margin-right: 1em;
  font-size: 1.5em;
}

.flash__content a {
  color: #fff;
}

.flash-warning .flash__content {
  background: #bf811d;
  color: #fff;
}

.flash-warning .flash__content::before {
  content: '';
}

.flash-failure .flash__content {
  background: #cc3333;
  color: #fff;
}

.flash-failure .flash__content::before {
  content: '';
}

.form-group {
  margin-bottom: 3rem;
}

.form-split {
  align-items: inherit;
}

.form-half {
  flex: 1 1 48%;
  min-width: 200px;
}

.form-third {
  flex: 1 1 31%;
}

@media (min-width: 500px) {
  .form-half,
  .form-third {
    flex-grow: 0;
  }
}

.form-label {
  font-weight: bold;
  display: inline-block;
  margin-bottom: 0.5rem;
  cursor: text;
}

.form-control {
  display: block;
  width: 100%;
  height: calc(2.7em + 2px);
  background-clip: padding-box;
}

textarea.form-control {
  height: auto;
}

.form-control:invalid,
.form-group.is-invalid .form-control {
  border-color: #cc3333;
}

.form3 .error,
.form-help,
.password-complexity-label {
  font-size: 90%;
  margin-top: 0.25rem;
}

.form3 .error {
  color: #cc3333;
}

.form-help,
.password-complexity-label {
  color: #999999;
}

.form-check {
  justify-content: center;
}

.form-check div {
  display: flex;
}

.form-check-input {
  margin-right: 0.5rem;
}

.form-check .form-label {
  margin-bottom: 0;
  cursor: pointer;
}

.form-actions {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #404040;
}

.form-actions.single {
  justify-content: flex-end;
}

.form3 hr {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
  border-top: 1px solid #404040;
}

.password-complexity {
  margin-top: -2rem;
  margin-bottom: 3rem;
}

.password-complexity-meter {
  display: flex;
  grid-gap: 0.25rem;
  height: 0.4rem;
  margin-top: 1rem;
}

.password-complexity-meter > * {
  background-color: gray;
  width: 25%;
}

.tabs-horiz {
  justify-content: center;
  align-items: flex-end;
  border-bottom: 2px solid #404040;
  user-select: none;
}

@media (max-width: 499px) {
  .tabs-horiz {
    font-size: 0.9em;
  }
}

.tabs-horiz span {
  flex: 1 1 auto;
  text-align: center;
  padding: 0.5em 0.2em;
  cursor: pointer;
  position: relative;
  transition: color 0.25s;
  min-width: 15%;
  letter-spacing: -0.5px;
}

@media (min-width: 500px) {
  .tabs-horiz span {
    letter-spacing: inherit;
  }
}

.tabs-horiz span::after {
  content: '';
  background: rgba(214, 79, 0, 0.7);
  height: 2px;
  position: absolute;
  width: 96%;
  left: 2%;
  bottom: -2px;
  transition: all 0.25s;
  transform: scale(0);
}

.tabs-horiz span.active::after, .tabs-horiz span:hover::after {
  transform: scale(1);
}

.tabs-horiz span.active {
  color: #d64f00;
}

.tabs-horiz .unread {
  margin-left: 0.3em;
}

.slist {
  width: 100%;
  border-bottom: 1px solid #404040;
}

.slist thead th {
  border-top: 1px solid #404040;
  border-bottom: 1px solid #404040;
  padding: 0.5rem 0.8rem;
}

.slist thead th.large {
  font-size: 1.2rem;
}

.slist td {
  padding: 1rem;
}

.slist td .label {
  font-family: monospace;
  font-size: 0.8rem;
}

.slist tbody tr:nth-child(even) {
  background: #302e2c;
}

.slist td:first-child,
.slist th:first-child {
  padding-left: 1.5rem;
}

.slist-pad td:first-child,
.slist-pad th:first-child {
  padding-left: var(--box-padding);
}

.slist-pad td:last-child,
.slist-pad th:last-child {
  padding-right: var(--box-padding);
}

.slist-invert tbody tr:nth-child(odd) {
  background: #302e2c;
}

.slist-invert tbody tr:nth-child(even) {
  background: none;
}

.context-streamers {
  max-height: 20vh;
  overflow-y: auto;
}

.context-streamer {
  height: 2.2em;
  color: #fff !important;
  background: #44641d;
  transition: all 150ms;
}

.context-streamer::before {
  font-size: 1.3em;
  margin-left: 0.4em;
}

.context-streamer:hover {
  background: #537e20;
}

body::-webkit-scrollbar,
body::-webkit-scrollbar-corner {
  width: 0.5rem;
  background: #262421;
}

body::-webkit-scrollbar-thumb {
  background: #4d4d4d;
}

body::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:active {
  background: #6b6b6b;
}

.mchat__tabs {
  flex: 0 0 auto;
  display: flex;
}

.mchat__tab {
  flex: 1 1 auto;
  text-align: center;
  padding: 0.4em 10px;
  cursor: pointer;
  color: #999999;
  transition: all 150ms;
}

.mchat__tab:hover {
  background: #412b1c;
}

.mchat__tab-active {
  color: #bababa;
  background: #262421 !important;
}

.mchat__tab input {
  cursor: pointer;
  display: none;
}

.mchat__tab-active input {
  display: block;
}

.mchat__tab:last-child {
  border-right: none;
}

.mchat-optional .mchat__tab.discussion {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.chat__members {
  font-size: 0.9em;
  height: 100%;
  overflow: hidden;
}

.chat__members__inner {
  display: flex;
  align-items: flex-start;
}

.chat__members__number {
  margin-right: 1ch;
}

.chat__members__number::before {
  font-size: 1em;
  color: #999999;
  margin-right: 0.2ch;
}

.mchat__messages {
  flex: 1 1 auto;
  max-height: 50vh;
  overflow-y: auto;
  overflow-x: hidden;
  cursor: initial;
  font-size: 0.9em;
}

@media (min-width: 1260px) {
  .mchat__messages {
    max-height: none;
  }
}

.mchat__messages li {
  position: relative;
  padding: 0.5em 5px 0.5em 10px;
  line-height: 1.2em;
  overflow-y: hidden;
  user-select: text;
}

.mchat__messages li.me {
  border-left: 3px solid #4f7a1d;
  padding-left: 7px;
}

.mchat__messages li.host {
  background-color: rgba(79, 122, 29, 0.4);
}

.mchat__messages .deleted {
  opacity: 0.5;
}

.mchat__messages .system {
  display: block;
  opacity: 0.8;
  font-style: italic;
  font-size: 0.9em;
  margin-left: 0;
  text-align: center;
}

.mchat__messages .announcement {
  display: block;
  font-size: 1.1em;
  margin-left: 0;
  text-align: center;
  font-weight: bold;
}

.mchat__messages .color,
.mchat__messages .user-link {
  font-weight: bold;
  padding: 0;
  color: #999999;
  letter-spacing: -1px;
  padding-right: 0.4em;
  max-width: 110px;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: bottom;
}

.mchat__messages line.patron {
  font-size: 1.1em;
  width: 1.2em;
  text-align: left;
  color: #bf811d;
}

.mchat__messages .utitle {
  margin-right: 3px;
}

.mchat__messages i {
  display: none;
  position: absolute;
  top: 5px;
  right: 0;
  cursor: pointer;
  margin-right: 3px;
  padding: 1px 5px;
  opacity: 0.7;
  color: #d64f00;
}

.mchat__messages i:hover {
  opacity: 1;
}

.mchat__messages li:hover i {
  display: block;
  text-shadow: 0 0 2px #262421, 0 0 5px #262421, 0 0 10px #262421;
}

.mchat__messages li.me i {
  display: none !important;
}

.mchat__say {
  flex: 0 0 auto;
  border: 0;
  border-top: 1px solid #404040;
  border-radius: 0;
  padding: 3px 20px 3px 4px;
}

@media (hover: none) {
  .mchat__say {
    font-size: 16px;
  }
}

.mchat__say.whisper {
  color: #629924;
  font-weight: bold;
  font-style: italic;
}

@keyframes palantir-glowing {
  40% {
    background: none;
  }
  50% {
    background: #384722;
  }
  60% {
    background: #2b455d;
  }
  70% {
    background: none;
  }
}

.palantir {
  flex: 0 1 auto;
  animation: palantir-glowing 1.5s ease-in-out infinite;
  border-radius: 0 3px 0 0;
}

.palantir-slot {
  animation: none;
  opacity: 0.6;
}

.palantir-slot:hover {
  opacity: 1;
}

.palantir-off {
  animation: none;
}

.palantir-on {
  background: #629924;
  color: #fff;
  animation: none;
}

.palantir-on:hover {
  background: #cc3333 !important;
  color: #fff !important;
}

.palantir::after {
  top: 1px;
  left: 0;
  right: auto;
  background: none;
  box-shadow: none;
}

.mchat {
  grid-area: chat;
  justify-content: stretch;
  min-height: 15em;
}

.mchat__content {
  background: #262421;
  flex: 1 1 auto;
  overflow: hidden;
}

.mchat__content.note textarea {
  font-size: 0.9em;
  flex-grow: 1;
  border: none;
  background-color: transparent;
  line-height: 1.7em;
  outline: none;
  resize: none;
}

@media (hover: none) {
  .mchat__content.note textarea {
    font-size: 16px;
  }
}

.pocket {
  display: flex;
  width: 62.5%;
}

@media (min-width: 800px), (orientation: landscape) {
  .pocket {
    width: 100%;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3) inset;
    background: #888;
  }
}

.pocket-c1 {
  flex: 0 0 20%;
  max-width: 10vmin;
}

.pocket piece {
  display: block;
  width: 100% !important;
  height: 100% !important;
  transition: all 150ms;
}

.pocket piece::after {
  content: attr(data-nb);
  bottom: 0;
  right: 0;
  position: absolute;
  line-height: 0.9em;
  padding: 3px 0.3em;
  font-weight: bold;
  font-size: 1.1em;
}

.pocket piece[data-nb='0'] {
  cursor: auto;
  opacity: 0.1;
}

.pocket piece[data-nb='0']::after {
  content: none;
}

.pocket piece.premove {
  background-color: #555;
}

.pocket.usable piece {
  cursor: pointer;
  pointer-events: auto;
}

.pocket.usable piece:hover {
  background-color: #aaa;
}

.blindfold .pocket:not(.usable) {
  opacity: 0;
}

.analyse__tools .sub-box, .action-menu {
  border-bottom: 1px solid #404040;
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse__tools .sub-box, .action-menu {
    border-bottom: 3px solid #629924;
  }
}

body {
  /* prevents scroll bar flicker on page height changes */
  overflow-y: scroll;
}

#main-wrap {
  --main-max-width: calc(100vh - calc(var(--site-header-height) + var(--site-header-margin)) - 5rem);
}

@media (min-width: 800px), (orientation: landscape) {
  #main-wrap {
    --main-max-width: auto;
  }
}

.analyse {
  grid-area: main;
  display: grid;
  --meta-height: auto;
  --chat-height: fit-content(0);
  grid-template-rows: auto auto minmax(20em, 30vh);
  grid-template-areas: 'board' 'controls' 'tools' 'side' 'acpl' 'under' 'chat' 'uchat';
}

.analyse__side {
  grid-area: side;
  justify-content: start;
  margin: 2vmin;
}

.analyse__board {
  grid-area: board;
}

.analyse .relay-tour {
  grid-row-start: board;
  grid-row-end: tools;
  grid-column: board;
}

.analyse__tools {
  grid-area: tools;
}

.analyse__controls {
  grid-area: controls;
}

.analyse__underboard {
  grid-area: under;
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse__underboard {
    overflow: hidden;
  }
}

.analyse__acpl {
  grid-area: acpl;
}

.analyse .chat__members {
  grid-area: uchat;
}

.analyse .eval-gauge {
  grid-area: gauge;
  display: none;
}

.analyse--wiki {
  --chat-height: 0;
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse {
    grid-template-columns: minmax(calc(70vmin * var(--board-scale)), calc(100vh * var(--board-scale) - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem)) var(--gauge-gap) minmax(240px, 400px);
    grid-template-rows: fit-content(0);
    grid-template-areas: 'board      gauge tools' 'under      .     controls' 'under      .     acpl' 'under      .     side' 'chat       .     side' 'uchat      .     side';
    grid-row-gap: 0;
  }
  .analyse__side,
  .analyse .chat__members,
  .analyse .mchat {
    margin: 2vmin 0 0 0;
  }
  .analyse__underboard {
    margin-top: 23px;
  }
  .analyse .eval-gauge {
    display: block;
  }
  .analyse .relay-tour {
    grid-row-end: under;
  }
}

@media (max-width: 799px) and (orientation: landscape) {
  .analyse {
    grid-template-columns: minmax(calc(55vmin), calc(100vh - calc(var(--site-header-height) + var(--site-header-margin)) - 2vmin)) var(--gauge-gap) minmax(200px, 240px);
  }
}

@media (min-width: 1260px) {
  .analyse {
    grid-template-columns: minmax(230px, 20vw) 2vmin minmax(calc(70vmin * var(--board-scale)), calc(100vh * var(--board-scale) - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem)) var(--gauge-gap) minmax(240px, 400px);
    grid-template-rows: var(--meta-height) var(--chat-height) 2.5em 1fr;
    grid-template-areas: 'side    . board gauge tools' 'chat    . board gauge tools' 'uchat   . under .     controls' 'uchat   . under .     acpl';
  }
  .analyse__side {
    margin-top: 0;
  }
  .analyse .mchat {
    min-height: 10em;
  }
  .analyse .crosstable__users {
    flex: 7 1 auto;
  }
}

.analyse__tools {
  background: #262421;
}

.analyse__tools .ceval {
  flex: 0 0 38px;
}

.analyse__tools .sub-box {
  user-select: none;
}

.analyse__tools .sub-box .title {
  font-size: 0.9rem;
  line-height: 1.9em;
  background: #3e5322;
  padding: 0 7px;
}

.analyse__tools .comp-off__hint {
  opacity: 0.8;
  padding: 0.3em 1em;
  text-align: center;
}

.analyse__tools .comp-off__hint button {
  margin-left: 1em;
  color: #3692e7;
}

.analyse__tools .comp-off__hint button:hover {
  color: #57aeff;
}

.analyse__moves {
  flex: 2 1 0;
  overflow-y: auto;
  overflow-x: hidden;
  border-top: 1px solid #404040;
  position: relative;
  /* required so line::before scrolls along the moves! */
}

.analyse__moves .result,
.analyse__moves .status {
  background: #302e2c;
  text-align: center;
}

.analyse__moves .result {
  border-top: 1px solid #404040;
  font-weight: bold;
  font-size: 1.2em;
  padding: 5px 0 3px 0;
}

.analyse__moves .status {
  font-size: 1em;
  font-style: italic;
  padding-bottom: 7px;
}

.analyse__controls {
  height: 3rem;
  align-items: stretch;
}

.analyse__controls div {
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
}

.analyse__controls .jumps {
  flex: 3 1 auto;
}

.analyse__controls .fbt {
  flex: 0 0 2.5rem;
  transition: visibility 0s;
}

.analyse__controls .active {
  margin-top: -3px;
  padding-top: 3px;
}

.analyse__controls ::before {
  vertical-align: middle;
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse__controls {
    height: 5rem;
  }
  .analyse__controls .fbt {
    flex: 0 0 3.5rem;
  }
}

.action-menu {
  flex: 1 1 0;
  display: flex;
  flex-flow: column;
  overflow: auto;
  padding: 2vmin;
}

.action-menu h2 {
  font-size: 1em;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  margin: 2vmin 0 3px 0;
  display: table;
  padding: 0 10px;
}

.action-menu h2:before, .action-menu h2:after {
  border-top: 1px solid #404040;
  content: '';
  display: table-cell;
  position: relative;
  top: 0.5em;
  width: 45%;
}

.action-menu h2:before {
  right: 8px;
}

.action-menu h2:after {
  left: 8px;
}

.action-menu__tools {
  flex: 0 0 auto;
  display: flex;
  flex-flow: row wrap;
}

.action-menu__tools > * {
  flex: 0 0 50%;
  text-align: center;
  padding: 0;
  height: 75px;
  justify-content: center;
}

.action-menu__tools .button {
  color: #bababa;
  text-transform: none;
  white-space: normal;
}

.action-menu__tools .button::before {
  display: block;
  font-size: 2em;
  line-height: 1em;
  margin-bottom: 5px;
}

.action-menu .autoplay a {
  color: #999999;
  font-size: 0.9em;
  flex: 1 1 auto;
  padding: 7px 0;
  text-align: center;
}

.action-menu form.delete {
  text-align: right;
  margin-top: 6px;
}

.action-menu form.delete .button::before {
  font-size: 1.2em;
}

.action-menu .setting {
  flex: 0 0 auto;
  margin-top: 2vmin;
  display: flex;
}

.action-menu .setting label {
  flex: 4 1 auto;
  cursor: pointer;
  white-space: nowrap;
}

.action-menu .setting input[type='range'] {
  flex: 1 4 auto;
  padding: 0 0 0 1em;
  height: 1.6em;
  width: 100%;
  margin: 0 1ch;
}

.action-menu .setting input[type='range'][min='0'] {
  padding: 0;
}

.action-menu .setting .range_value {
  flex: 0 0 auto;
  display: block;
  text-align: right;
}

@media (max-width: 799px) and (orientation: portrait) {
  .action-menu .abset-inline {
    display: none;
  }
}

.explorer__config section,
.explorer__config .toggle {
  margin: 0.4em 2vmin 0 2vmin;
}

.explorer__config section.save {
  text-align: center;
  padding: 15px 0 10px 0;
}

.explorer__config label {
  font-weight: bold;
  display: block;
  line-height: 2em;
}

.explorer__config .choices {
  display: flex;
}

.explorer__config .choices button {
  flex-grow: 1;
  padding: 5px 0;
  text-align: center;
  cursor: pointer;
  transition: all 150ms;
  border: 1px solid #404040;
  border-width: 1px 0 1px 1px;
  text-transform: capitalize;
}

.explorer__config .choices button:last-child {
  border-right-width: 1px;
}

.explorer__config .choices button[aria-pressed='true'], .explorer__config .choices button.active {
  background: #629924;
  color: #fff;
  text-shadow: 1px 0 0 rgba(0, 0, 0, 0.5);
  font-weight: bold;
}

.explorer__config .choices button[aria-pressed='true'] {
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2) inset;
}

.explorer__config .name .player-name {
  border-radius: 3px !important;
  font-weight: bold;
  padding-right: 1em;
  padding-left: 1em;
  text-transform: none;
  margin-right: 0.5em;
}

.explorer__config .name .player-name.active:hover {
  background: #82ad50;
}

.explorer__config .name .color {
  margin-left: 1ch;
}

.explorer__config .toggle {
  font-weight: bold;
  display: block;
  line-height: 2em;
}

.explorer__config .date input {
  border: none;
  background: none;
  padding: 0.1em 0.5em;
}

.explorer__config .date input:invalid {
  background: #582927;
}

.explorer__config__player__choice {
  max-width: 70ch !important;
}

.explorer__config__player__choice > div {
  overflow: visible !important;
}

.explorer__config__player__choice .input-wrapper {
  overflow: visible !important;
  position: relative;
  display: inline-block;
  padding-top: 2em;
  margin-bottom: 2em;
}

.explorer__config__player__choice .previous .button {
  margin: 0.3em 0.2em;
  text-transform: none;
}

.explorer-box {
  position: relative;
  flex: 3 1 0px;
  white-space: nowrap;
  transition: all 150ms;
  transition-delay: 0.3s;
  overflow-x: hidden;
  overflow-y: auto;
  font-size: 0.9em;
}

.explorer-box.reduced {
  flex: 0.3 3 0px;
}

.explorer-box.reduced:hover {
  flex: 1 2 0px;
}

.explorer-box .overlay {
  display: none;
}

.explorer-box.loading .overlay {
  display: block;
}

.explorer-box tbody {
  transition: all 150ms;
}

.explorer-box.loading tbody {
  opacity: 0.4;
}

.explorer-box .title {
  overflow: hidden;
  text-overflow: ellipsis;
  user-select: text;
}

.explorer-box .explorer-title {
  align-items: stretch;
  font-size: 0.9rem;
  line-height: 1.9em;
  padding: 0;
  background: #384722;
}

.explorer-box .explorer-title .ddloader {
  padding-left: 7px;
}

.explorer-box .explorer-title .active {
  padding: 0 7px;
  color: #cccccc;
  background: #3e5322;
}

.explorer-box .explorer-title .active strong {
  margin-right: 0.5ch;
}

.explorer-box .explorer-title .active.player {
  cursor: pointer;
}

.explorer-box .explorer-title .long {
  letter-spacing: -0.1ch;
}

.explorer-box .explorer-title button {
  display: inline-block;
  padding: 0 0.5ch;
  margin-left: 1px;
  color: #999999;
}

.explorer-box .explorer-title button:hover {
  color: #cccccc;
  background: #445f23;
}

.explorer-box .empty {
  display: flex;
  flex-flow: column;
  height: 100%;
}

.explorer-box .empty .message {
  text-align: center;
}

.explorer-box tr:nth-child(even) {
  background: #302e2c;
}

.explorer-box tr:hover {
  background: #323c22;
}

.explorer-box td {
  cursor: pointer;
  padding-left: 7px;
}

.explorer-box .moves th {
  font-size: 0.8rem;
  line-height: 1.8em;
  background: #3e5322;
  padding-left: 7px;
}

.explorer-box .moves td:first-child {
  line-height: 30px;
  padding-left: 7px;
}

.explorer-box .moves td:nth-child(2) {
  font-size: 0.75em;
  text-align: right;
}

.explorer-box .moves td:last-child {
  width: 100%;
  padding-right: 7px;
}

.explorer-box .moves tbody tr.sum {
  /* sum row */
  background: #2a4053;
  font-weight: bold;
}

@media (min-width: 800px) and (min-height: 400px), (orientation: landscape) and (min-height: 400px) {
  .explorer-box .moves tbody tr.sum {
    position: sticky;
    bottom: 0;
  }
}

.explorer-box .moves tbody tr.sum td {
  cursor: default;
}

.explorer-box .bar span {
  text-align: center;
  display: inline-block;
  overflow: hidden;
  vertical-align: middle;
  background-clip: padding-box;
  border: 0 solid rgba(186, 186, 186, 0.17);
  border-width: 1px 0;
  height: 16px;
  line-height: 14px;
  font-size: 0.9em;
  transition: width 1s;
}

.explorer-box .white {
  background: #ccc;
  box-shadow: 0 -5px 7px rgba(0, 0, 0, 0.25) inset;
  color: #222;
}

.explorer-box .draws,
.explorer-box .black {
  color: #ddd;
  box-shadow: 0 5px 7px rgba(255, 255, 255, 0.1) inset;
}

.explorer-box .draws {
  background: #666;
}

.explorer-box .black {
  background: #333;
  color: #ddd;
}

.explorer-box .bar span:first-child {
  border-left-width: 1px;
}

.explorer-box .bar span:last-child {
  border-right-width: 1px;
}

.explorer-box .games {
  width: 100%;
}

.explorer-box .games td {
  padding: 5px 0 5px 7px;
  max-width: 110px;
}

.explorer-box .games td:nth-child(2) {
  max-width: none;
}

.explorer-box .games td span {
  display: block;
}

.explorer-box .games result {
  display: block;
  text-align: center;
  padding: 3px 5px;
  border-radius: 3px;
  font-size: 0.9em;
}

.explorer-box .game_menu {
  background: #629924;
  cursor: default;
  padding: 0;
}

.explorer-box .game_menu .game_title {
  text-align: center;
  color: #fff;
  margin: 3px 0 1px 0;
}

.explorer-box .game_menu .menu {
  display: flex;
  justify-content: space-between;
  text-transform: uppercase;
}

.explorer-box .game_menu .menu a {
  color: #fff;
  padding: 4px 8px;
}

.explorer-box .game_menu .menu a:hover {
  background: rgba(255, 255, 255, 0.2);
}

.explorer-box .tablebase {
  width: 100%;
}

.explorer-box .tablebase td:first-child {
  font-size: 14px;
  line-height: 30px;
  padding-left: 7px;
}

.explorer-box .tablebase td:last-child {
  padding-right: 7px;
  text-align: right;
}

.explorer-box .tablebase result {
  padding: 3px 5px;
  margin-left: 5px;
  border-radius: 3px;
  font-size: 0.9em;
}

.explorer-box .toconf {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  display: block;
  font-size: 1.2em;
  width: 1.5em;
  line-height: 1.5em;
  text-align: center;
  opacity: 0.8;
}

.explorer-box .toconf:hover {
  opacity: 1;
}

.explorer-box .message {
  flex: 1 1 auto;
  justify-content: center;
  text-align: center;
  font-style: italic;
}

.explorer-box.reduced .message {
  justify-content: flex-start;
}

.explorer-box .message strong {
  font-weight: bold;
  margin: 1em 0;
}

.explorer-box:not(.reduced) .message h3,
.explorer-box.reduced:hover .message h3 {
  font-weight: bold;
}

.explorer-box .message p {
  white-space: normal;
  padding: 0 8px;
  margin: 0 0 8px 0;
}

.explorer-box.reduced .message p,
.explorer-box.reduced .message button {
  display: none;
}

.explorer-box.reduced:hover .message p,
.explorer-box.reduced:hover .message button {
  display: block;
}

.explorer-box .message button {
  margin: 0 30px;
}

.training-box {
  flex: 1.5 1 0px;
}

.training-box .feedback {
  flex: 1 1 100%;
  display: flex;
  flex-flow: column;
  justify-content: center;
}

.training-box .feedback .find,
.training-box .feedback .fail {
  padding-top: 5px;
  padding-bottom: 8px;
}

.training-box .progress {
  margin-top: 5px;
  opacity: 0.8;
  width: 100%;
  height: 4px;
  background: #4d4d4d;
}

.training-box .progress div {
  background: #629924;
  height: 4px;
  transition: width 0.5s;
  max-width: 100%;
}

.training-box .player {
  display: flex;
  align-items: center;
  margin-left: 10px;
}

.training-box .no-square {
  width: 64px;
  height: 64px;
  margin-right: 10px;
}

.is3d .training-box div.no-square {
  height: 82px;
}

.training-box piece {
  position: inherit;
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.training-box .icon {
  display: block;
  width: 64px;
  height: 64px;
  margin-right: 10px;
  font-size: 50px;
  font-size: 64px;
  line-height: 64px;
  text-align: center;
}

.training-box .instruction > * {
  display: block;
}

.training-box .instruction > strong {
  font-weight: normal;
  font-size: 1.2em;
}

.training-box .choices {
  line-height: 1.6em;
  margin: 5px 0 -5px 0;
}

.training-box .choices a {
  display: block;
}

.practice-box {
  flex: 0 0 135px;
  user-select: none;
}

.practice-box .comment {
  flex: 0 0 30px;
  display: flex;
  align-items: stretch;
  background: #302e2c;
  border-top: 1px solid #404040;
  white-space: nowrap;
  line-height: 30px;
}

.practice-box .progress div {
  background: #4d4d4d;
}

.practice-box.goodMove .progress div {
  background: #629924;
  color: #fff;
}

.practice-box.inaccuracy .title,
.practice-box.inaccuracy .progress div {
  background: #bf811d;
  color: #fff;
}

.practice-box.mistake .title,
.practice-box.blunder .title,
.practice-box.mistake .progress div,
.practice-box.blunder .progress div {
  background: #cc3333;
  color: #fff;
}

.practice-box .comment .wait {
  padding-left: 15px;
}

.practice-box .verdict {
  font-weight: bold;
  margin-right: 10px;
  display: flex;
}

.practice-box .verdict::before {
  width: 30px;
  height: 100%;
  color: #fff;
  margin-right: 7px;
  text-align: center;
  font-size: 1.4em;
  font-weight: normal;
}

.practice-box.goodMove .verdict {
  color: #629924;
}

.practice-box.goodMove .verdict::before {
  background: #629924;
  content: '✓';
  font-size: 1.7em;
}

.practice-box.inaccuracy .verdict {
  color: #bf811d;
}

.practice-box.inaccuracy .verdict::before {
  background: #bf811d;
  content: '?';
}

.practice-box.mistake .verdict,
.practice-box.blunder .verdict {
  color: #cc3333;
}

.practice-box.mistake .verdict::before,
.practice-box.blunder .verdict::before {
  background: #cc3333;
  content: '✗';
}

.practice-box .comment move {
  cursor: pointer;
  margin-left: 5px;
  color: #3692e7;
  transition: 0.3s;
}

.analyse__fork {
  flex: 0 0 auto;
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse__fork {
    display: none;
  }
}

.analyse__fork move {
  background: #2a4053;
  color: #cccccc;
  flex: 0 0 50%;
  cursor: pointer;
  padding: 0.2em 1em;
  border-bottom: 1px solid #262421;
}

.analyse__fork move:nth-child(odd) {
  border-right: 1px solid #262421;
}

.analyse__fork move:hover,
.analyse__fork:not(:hover) move.selected {
  background: #3692e7;
  color: #fff;
}

.analyse__fork glyph {
  margin-left: 2px;
}

.analyse__fork eval {
  flex: 3 0 auto;
  text-align: right;
  font-size: 0.9em;
}

.analyse__side {
  align-self: start;
}

.analyse__side .back-to-game {
  margin-top: 2em;
  text-align: center;
}

@media (min-width: 1260px) {
  .analyse__side .back-to-game {
    margin-top: 10vh;
  }
}

.analyse__side .back-to-game .button {
  margin: 0 auto;
}

.analyse__side .analyse__wiki {
  margin-top: 2vh;
  flex: 1 1 auto;
}

@media (min-width: 1260px) {
  .analyse__side .analyse__wiki {
    flex: 1 1 0;
    padding: 0.5em 1em 0 0;
  }
}

.analyse--wiki .analyse__side {
  align-self: auto;
}

.analyse__wiki {
  overflow-y: auto;
}

.analyse__wiki p {
  text-align: justify;
  line-height: 1.5;
}

.analyse__wiki h1,
.analyse__wiki h2 {
  margin-bottom: 1rem;
}

.analyse__wiki h1,
.analyse__wiki h2 {
  font-size: 17px;
}

@media (min-width: 320px) {
  .analyse__wiki h1,
  .analyse__wiki h2 {
    font-size: calc( 17px + 6 * ((100vw - 320px) / 880));
  }
}

@media (min-width: 1200px) {
  .analyse__wiki h1,
  .analyse__wiki h2 {
    font-size: 23px;
  }
}

.analyse__wiki h3 {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 0.7rem;
}

#analyse-cm {
  background: #262421;
  position: absolute;
  display: none;
  z-index: 107;
  cursor: default;
  user-select: none;
}

#analyse-cm.visible {
  display: block;
}

#analyse-cm .title {
  padding: 0.4em;
  text-align: center;
  font-size: 1.2em;
  border-bottom: 1px solid #404040;
  margin: 0;
}

#analyse-cm a {
  color: #bababa;
  padding: 0.5em 0.6em 0.5em 0.3em;
}

#analyse-cm a::before {
  width: 2em;
  text-align: center;
}

#analyse-cm a:hover {
  background: #38291e;
}

.material div {
  display: inline-block;
  margin-left: 10px;
}

.material mpiece {
  margin-left: -10px;
  background-size: cover;
  display: inline-block;
}

.material mpiece.pawn {
  background-image: url(../piece/mono/P.svg);
}

.material mpiece.bishop {
  background-image: url(../piece/mono/B.svg);
}

.material mpiece.knight {
  background-image: url(../piece/mono/N.svg);
}

.material mpiece.rook {
  background-image: url(../piece/mono/R.svg);
}

.material mpiece.queen {
  background-image: url(../piece/mono/Q.svg);
}

.material mpiece.king {
  background-image: url(../piece/mono/K.svg);
}

.material score {
  font-family: 'Roboto';
}

.analyse__player_strip {
  position: absolute;
  right: 0;
  display: flex;
  /* Where to put them in col1 layout? It moves the entire board and controls down for little benefit */
}

.analyse__player_strip.top {
  top: -20px;
}

.is3d .analyse__player_strip.top {
  top: -55px;
}

.analyse__player_strip.bottom {
  top: var(--cg-height, 100%);
  z-index: 1;
}

.is3d .analyse__player_strip.bottom {
  top: calc(var(--cg-height, 100%) + 15px);
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse__player_strip {
    display: none;
  }
}

.analyse__clock {
  padding: 0 0.5em;
  margin-left: 12px;
  height: 20px;
  font-weight: bold;
  text-align: center;
}

.analyse__clock.active {
  background: #2b455d;
}

.analyse__clock tenths {
  font-size: 80%;
}

.material {
  padding-right: 1px;
}

.material mpiece {
  width: 20px;
  height: 20px;
}

.material mpiece.pawn {
  margin-left: -10px;
}

.material score {
  margin-top: -2px;
}

.material-top {
  margin-top: -1px;
}

.material-bottom {
  margin-top: 1px;
}

.mofw-nom-overlay {
  position: absolute;
  z-index: 1001;
  left: 0;
  right: 0;
  background: #262421;
  border-top: 3px solid #d64f00;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
}

.mofw-nom-overlay__header {
  display: flex;
  align-items: center;
  padding: 0.55rem 1rem;
  font-size: 1rem;
  font-weight: bold;
  border-bottom: 1px solid #404040;
  gap: 0.5rem;
}

.mofw-nom-overlay__header .mofw-san {
  color: #d64f00;
}

.mofw-nom-overlay__close {
  margin-left: auto;
  font-size: 1.2rem;
  line-height: 1;
  color: #999999;
  cursor: pointer;
  padding: 0 0.2rem;
}

.mofw-nom-overlay__close:hover {
  color: #bababa;
}

.mofw-nom-overlay__section {
  padding: 0.5rem 1rem;
  border-bottom: 1px solid #404040;
}

.mofw-nom-overlay__actions {
  padding: 0.5rem 1rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  border-top: 1px solid #404040;
}

.mofw-nom-overlay__label {
  font-size: 0.78rem;
  color: #999999;
  margin-bottom: 0.3rem;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.mofw-nom-overlay__optional {
  font-weight: normal;
  text-transform: none;
  letter-spacing: 0;
}

.mofw-nom-overlay__tag-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.2rem 0.5rem;
}

.mofw-nom-overlay__tag-item {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.88rem;
  cursor: pointer;
  padding: 0.12rem 0;
  color: #bababa;
}

.mofw-nom-overlay__tag-item:hover {
  color: #d64f00;
}

.mofw-nom-overlay__tag-item:first-child {
  font-weight: bold;
}

.mofw-nom-overlay__tag-cb {
  cursor: pointer;
  accent-color: #d64f00;
  width: 15px;
  height: 15px;
}

.mofw-nom-overlay__cont-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
  min-height: 1.8rem;
}

.mofw-nom-overlay__cont-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  background: #3f2a1d;
  border: 1px solid #7c4626;
  border-radius: 4px;
  padding: 0.12rem 0.3rem;
  font-size: 0.88rem;
}

.mofw-nom-overlay__cont-remove {
  font-size: 0.78rem;
  line-height: 1;
  color: #999999;
  cursor: pointer;
  padding: 0 0.1rem;
}

.mofw-nom-overlay__cont-remove:hover {
  color: #cc3333;
}

.mofw-nom-overlay__cont-arrow {
  color: #999999;
  font-size: 0.75rem;
}

.mofw-nom-overlay__cont-hint {
  font-size: 0.78rem;
  color: #999999;
  font-style: italic;
  margin-left: 0.2rem;
}

.mofw-nom-overlay__cont-empty {
  font-size: 0.82rem;
  color: #999999;
  font-style: italic;
}

.mofw-nom-overlay__note {
  width: 100%;
  box-sizing: border-box;
  padding: 0.35rem 0.5rem;
  background: #24221e;
  border: 1px solid #404040;
  border-radius: 4px;
  color: #bababa;
  font-size: 0.88rem;
  resize: vertical;
  font-family: inherit;
}

.mofw-nom-overlay__note:focus {
  outline: none;
  border-color: #d64f00;
}

.mofw-nom-overlay__btn {
  padding: 0.38rem 0.85rem;
  border-radius: 5px;
  font-size: 0.88rem;
  cursor: pointer;
  font-weight: bold;
  transition: background 0.12s, opacity 0.12s;
}

.mofw-nom-overlay__btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.mofw-nom-overlay__btn--cancel {
  color: #999999;
  border: 1px solid #404040;
  background: transparent;
  margin-right: auto;
}

.mofw-nom-overlay__btn--cancel:hover:not(:disabled) {
  background: #302e2c;
}

.mofw-nom-overlay__btn--draft {
  color: #c08a0f;
  border: 2px solid #c08a0f;
  background: transparent;
}

.mofw-nom-overlay__btn--draft:hover:not(:disabled) {
  background: #39301f;
}

.mofw-nom-overlay__btn--submit {
  background: #d64f00;
  color: #fff;
  border: 2px solid #d64f00;
}

.mofw-nom-overlay__btn--submit:hover:not(:disabled) {
  filter: brightness(1.1);
}

.advice-summary {
  color: #999999;
  font-size: 0.9em;
  line-height: 1.15em;
  margin-top: 1em;
}

.advice-summary__side > div {
  display: flex;
}

.advice-summary__side > div i,
.advice-summary__side > div strong {
  flex: 0 1 4ch;
  text-align: center;
}

.advice-summary__side > div.symbol {
  cursor: pointer;
}

.advice-summary__side > div.symbol:hover {
  color: #3692e7;
}

.advice-summary .color-icon::before {
  vertical-align: text-bottom;
}

.advice-summary .button {
  margin: 0.6em 0;
}

@media (max-width: 799px) and (orientation: portrait) {
  .advice-summary {
    flex-flow: row wrap;
    justify-content: center;
    padding-bottom: 2vmin;
    border-bottom: 1px solid #404040;
    margin: 0;
  }
  .advice-summary__side {
    flex: 0 0 calc(50% - 2vmin);
    margin-left: 2vmin;
  }
  .advice-summary > a {
    order: 1;
  }
}

.analyse__underboard {
  margin-top: 1vmin;
}

.study__chapters, .study__members {
  overflow-y: auto;
  max-height: 18em;
  background: #262421;
  overflow: hidden;
  overflow-y: auto;
  position: relative;
  user-select: none;
}

@media (hover: hover) {
  .study__chapters:not(:hover), .study__members:not(:hover) {
    scrollbar-width: none;
  }
  .study__chapters:not(:hover)::-webkit-scrollbar, .study__members:not(:hover)::-webkit-scrollbar {
    display: none;
  }
}

.study__chapters > div, .study__members > div {
  align-items: stretch;
  transition: all 150ms;
}

.study__chapters > div:hover, .study__members > div:hover, .study__chapters > div.active, .study__members > div.active {
  color: #cccccc;
  background: #282f35;
}

.study__chapters .act, .study__members .act {
  color: #bababa;
  cursor: pointer;
  border-radius: 99px;
  align-self: center;
  justify-content: center;
  font-size: 0.9em;
  opacity: 0.15;
  padding: 0.4em;
  transition: all 150ms;
}

.study__chapters > div:hover .act, .study__members > div:hover .act {
  opacity: 0.7;
}

.study__chapters > div:hover .act:hover, .study__members > div:hover .act:hover {
  background: #3692e7;
  color: #fff;
  opacity: 1;
}

.study__chapters .add, .study__members .add {
  border-top: 1px solid #404040;
  cursor: pointer;
}

.study__chapters ongoing {
  align-self: center;
  justify-content: center;
  font-size: 0.7em;
  color: #cc3333;
  margin-right: 0.7rem;
}

.study__chapters {
  max-height: 18em;
}

.study__chapters h3 {
  flex: 1 1 100%;
  font-size: 1em;
  line-height: 1;
  margin: 0.5em 0;
  align-self: center;
}

.study__chapters > div {
  cursor: pointer;
}

.study__chapters > div.active, .study__chapters > div:active {
  color: #cccccc;
}

.study__chapters > div > span {
  flex: 0 0 1.7em;
  justify-content: center;
  color: #3692e7;
  font-weight: bold;
  height: auto;
  margin-right: 0.4em;
  opacity: 0.8;
}

.study__chapters > div res {
  align-self: center;
  font-size: 0.9em;
  white-space: nowrap;
  margin-right: 0.7rem;
}

.study__chapters .ddloader {
  width: 1.7em;
  height: 1.7em;
}

.study__chapters .sortable-ghost {
  opacity: 0.7;
}

.study__chapters .sortable-ghost,
.study__chapters .sortable-ghost .status {
  background: #629924 !important;
  color: #fff !important;
}

.study__members .left {
  align-items: stretch;
  flex: 0 1 auto;
  overflow: hidden;
}

.study__members .user-link {
  margin: 0.5em 0;
}

.study__members .status {
  justify-content: center;
  width: 2.4em;
  margin-right: 0.1em;
  transition: 2.5s;
}

.study__members i {
  font-size: 1.2em;
  opacity: 0.5;
  transition: 2.5s;
}

.study__members .contrib i {
  opacity: 0.7;
}

.study__members .online i {
  opacity: 0.8;
  color: #629924;
}

.study__members .online.contrib i {
  opacity: 1;
}

.study__members > div:nth-child(4n-3) .status.active {
  background: #42a5f5;
}

.study__members > div:nth-child(4n-2) .status.active {
  background: #f44336;
}

.study__members > div:nth-child(4n-1) .status.active {
  background: #fdd835;
}

.study__members > div:nth-child(4n-0) .status.active {
  background: #4caf50;
}

.study__members .status.active {
  transition: none;
}

.study__members .status.active i {
  transition: none;
  opacity: 1;
  color: #fff;
}

.study__members .leave {
  color: #cc3333;
  opacity: 0.7;
}

.study__members > div:hover .leave:hover {
  background-color: #cc3333;
}

.study__members .add:hover i {
  color: #3692e7;
  opacity: 1;
  transition: none;
}

.study__members .admin {
  text-align: center;
}

.study__members .admin button {
  margin-bottom: 0.5em;
}

.study__members m-config,
.study__members .editing {
  background: #38291e !important;
}

.study__members m-config {
  padding: 0.4em 0.8em 1em 0.8em;
}

.study__members m-config .role label {
  cursor: pointer;
}

.study__members m-config .switch {
  margin-right: 0.5em;
}

.material div {
  display: inline-block;
  margin-left: 10px;
}

.material mpiece {
  margin-left: -10px;
  background-size: cover;
  display: inline-block;
}

.material mpiece.pawn {
  background-image: url(../piece/mono/P.svg);
}

.material mpiece.bishop {
  background-image: url(../piece/mono/B.svg);
}

.material mpiece.knight {
  background-image: url(../piece/mono/N.svg);
}

.material mpiece.rook {
  background-image: url(../piece/mono/R.svg);
}

.material mpiece.queen {
  background-image: url(../piece/mono/Q.svg);
}

.material mpiece.king {
  background-image: url(../piece/mono/K.svg);
}

.material score {
  font-family: 'Roboto';
}

.analyse.has-players cg-board {
  border-radius: 0;
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse.has-players .analyse__underboard {
    margin-top: calc(0.8rem + 1vmin);
  }
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse.has-players .analyse__controls {
    margin-top: 1.6rem;
  }
}

.study__player {
  position: absolute;
  right: 0;
  font-weight: bold;
  width: var(--cg-width, 100%);
  height: 1.6rem;
  white-space: nowrap;
}

.study__player-top {
  top: -1.6rem;
}

.is3d .study__player-top {
  top: calc(-1.6rem - 35px);
}

.study__player-bot {
  top: var(--cg-height, 100%);
}

.study__player .left {
  flex: 1 1 100%;
  display: flex;
  overflow: hidden;
}

.study__player .result {
  flex: 0 0 auto;
  margin-left: 0.8em;
  padding-right: 0.8em;
  border-right: 1px solid #404040;
}

.study__player .analyse__clock {
  height: 100%;
  font-size: 1.2em;
  padding: 0 0.8em 0 0.4em;
  border-radius: 0 4px 0 0;
  box-shadow: none;
}

.study__player-bot .analyse__clock {
  border-radius: 0 0 4px 0;
}

.study__player.ticking .analyse__clock {
  background: #629924;
  color: #fff;
  text-shadow: none;
}

.study__player .info {
  margin-left: 10px;
  display: flex;
  overflow: hidden;
}

.study__player .info > * {
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: fit-content;
  flex: 1;
}

.study__player .name {
  margin-left: 0.5ch;
  flex: 3;
}

.study__player .elo {
  margin-left: 0.5em;
  font-weight: normal;
}

.material {
  padding: 0 6px;
}

.material mpiece {
  width: 20px;
  height: 20px;
}

.material mpiece.pawn {
  margin-left: -10px;
}

.material score {
  color: #777;
}

.material-top {
  margin-top: 0.2em;
}

.material-bottom {
  margin-top: 0.15em;
}

#modal-wrap {
  min-width: 80vw;
}

@media (min-width: 650px) {
  #modal-wrap {
    min-width: 500px;
  }
}

#modal-wrap .form3 {
  text-align: left;
}

#modal-wrap .form3 .editor {
  margin: -30px 0 30px 0;
}

#modal-wrap .form3 .editor .spinner {
  padding-top: 80px;
}

#modal-wrap h2 {
  margin-bottom: 0.5em;
}

#modal-wrap h2 i {
  font-size: 0.6em;
  margin-left: 1rem;
  opacity: 0.5;
  cursor: pointer;
}

#modal-wrap h2 i, #modal-wrap h2 i::before {
  vertical-align: top;
}

#modal-wrap h2 i:hover {
  opacity: 0.7;
  color: #3692e7;
}

#modal-wrap .destructive {
  text-align: left;
  font-size: 0.9em;
  overflow: hidden;
}

#modal-wrap .destructive form {
  display: inline-block;
}

#modal-wrap .destructive button {
  opacity: 0.5;
}

#modal-wrap .destructive button:hover {
  opacity: 1;
}

#modal-wrap.chapter-new .tabs-horiz {
  margin: -1em 0 1.6em 0;
}

.board-editor .spare {
  display: flex;
  background: #6b6b6b;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3) inset;
}

.board-editor .spare-top {
  grid-area: spare-top;
  margin-bottom: 2vh;
}

.board-editor .spare-bottom {
  grid-area: spare-bottom;
  margin-top: 2vh;
}

.board-editor .spare .no-square {
  flex: 0 0 12.5%;
  transition: all 150ms;
}

.board-editor .spare .no-square:hover {
  background: rgba(54, 146, 231, 0.2);
}

.board-editor .spare .no-square.selected-square {
  background: rgba(54, 146, 231, 0.5);
}

.board-editor .spare .no-square.pointer:hover {
  background: rgba(98, 153, 36, 0.2);
}

.board-editor .spare .no-square.pointer.selected-square {
  background: rgba(98, 153, 36, 0.6);
}

.board-editor .spare .no-square.pointer piece {
  background-image: url("../images/icons/pointer.svg");
}

.board-editor .spare .no-square.trash:hover {
  background: rgba(204, 51, 51, 0.2);
}

.board-editor .spare .no-square.trash.selected-square {
  background: rgba(204, 51, 51, 0.6);
}

.board-editor .spare .no-square.trash piece {
  background-image: url("../images/icons/trash.svg");
}

.is3d .board-editor .spare .no-square div {
  padding-bottom: 90.72%;
}

.board-editor .spare piece {
  display: block;
  cursor: pointer;
  width: 100%;
  height: 100%;
}

.is3d .board-editor .spare piece {
  /* original size: width: 140.625%; height: 179.6875%; size on 3D board, with height/width = 90.78571% */
  width: 100%;
  height: 140.7465%;
  left: 0;
  top: -34%;
}

.board-editor .spare piece.pointer,
.board-editor .spare piece.trash {
  margin: 14%;
  width: 72%;
  height: 72%;
}

.is3d .board-editor .spare piece.pointer, .is3d
.board-editor .spare piece.trash {
  width: 62%;
  top: 0;
}

.board-editor__tools {
  grid-area: tools;
  align-self: center;
}

.board-editor__tools > * {
  margin: 0.5rem 0;
}

.board-editor__tools select {
  width: 100%;
}

.board-editor__tools select.positions option:checked {
  font-style: italic;
}

.board-editor__tools .metadata {
  background: #262421;
  padding: 1rem;
  white-space: nowrap;
}

.board-editor__tools .metadata .color {
  margin-bottom: 1em;
}

.board-editor__tools .metadata .castling label,
.board-editor__tools .metadata .castling input {
  display: inline-block;
  margin: 3px;
  vertical-align: middle;
}

.board-editor__tools .actions {
  justify-content: stretch;
}

.board-editor__tools .actions .button {
  width: 100%;
  text-align: left;
}

.board-editor-wrap {
  min-height: 280px;
  margin-bottom: 2em;
}

.board-editor-wrap .spinner {
  padding-top: 90px;
}

.board-editor {
  display: grid;
  grid-template-columns: 280px 2vmin 210px;
  grid-template-rows: min-content auto min-content;
  grid-template-areas: '.            . e-tools' 'spare-top    . e-tools' 'e-board      . e-tools' 'spare-bottom . e-tools' '.            . e-tools';
  user-select: none;
}

.board-editor .main-board {
  grid-area: e-board;
}

.board-editor cg-board {
  cursor: inherit;
}

.board-editor__tools {
  grid-area: e-tools;
}

.board-editor .spare-top {
  margin-bottom: 1vh;
}

.board-editor .spare-bottom {
  grid-area: spare-bottom;
  margin-top: 1vh;
}

.board-editor .metadata {
  background: #302e2c;
  font-size: 0.9em;
}

.study__buttons {
  border-bottom: 2px solid #404040;
}

.study__buttons span {
  font-size: 1.15em;
  min-width: 0;
}

.study__buttons .left-buttons {
  flex: 9 1 auto;
  justify-content: flex-start;
  border-bottom: 0;
}

.study__buttons .right {
  flex: 1 9 10%;
}

.study__buttons .behind {
  background: #cc3333;
  color: #fff;
  padding: 0 5px;
  border-radius: 9px;
  margin-right: 4px;
}

.study__buttons .mode {
  align-self: stretch;
  padding: 0 0.4em;
  opacity: 0.8;
}

.study__buttons .mode i::before {
  font-size: 1.4em;
  content: '';
  color: #cc3333;
  margin-right: 0.2rem;
}

.study__buttons .mode.on i::before {
  content: '';
  color: #629924;
}

.study__buttons .mode:hover {
  background: #302e2c;
  opacity: 1;
}

/* reused by context menu */
.glyph-icon::before {
  content: '⁉';
  font-size: 1.2em;
}

.study__invite {
  max-width: 50em;
}

.study__invite > div {
  overflow: visible !important;
}

.study__invite .info {
  background: #d64f00;
  color: #fff;
  padding: 1em;
  margin-bottom: 2em;
  text-align: left;
}

.study__invite .info::before {
  font-size: 3.6em;
  margin-right: 1rem;
}

.study__invite .users {
  max-width: 100ch;
  margin-top: 2em;
  overflow-y: auto;
  max-height: 30vh;
}

.study__invite .users .button {
  flex: 0 0 48%;
  margin-bottom: 0.7em;
  text-transform: none;
}

.study__invite .input-wrapper {
  overflow: visible !important;
  position: relative;
  display: inline-block;
}

.study-desc {
  background: #262421;
  padding: 0.7em 1em;
  margin-top: 0.5em;
  position: relative;
}

.study-desc.empty {
  text-align: center;
}

.study-desc.empty .button {
  display: inline-block;
  margin: 2em auto;
}

.study-desc .contrib {
  position: absolute;
  top: 0;
  right: 0;
  background: #38291e;
  padding: 0.5em 0.8em;
  display: none;
  z-index: 1;
}

.study-desc:hover .contrib {
  display: block;
}

.study-desc .contrib a {
  margin-left: 8px;
}

.study-desc .embed {
  width: calc(100% + 2em);
  margin: -0.7em -1em;
}

.study-desc-form .title {
  width: 100%;
}

.study-desc-form textarea {
  width: 100%;
  height: 12em;
}

.study__metadata {
  background: #262421;
  text-align: left;
}

.study__metadata h2 {
  font-size: 1.3em;
  padding: 0 1rem;
  white-space: nowrap;
  border-bottom: 1px solid #404040;
}

.study__metadata h2 .name {
  padding: 0.7rem 0;
}

.study__metadata h2 .credit {
  display: block;
  font-size: 0.8rem;
  margin: 0.2rem 0 -0.3rem 0;
}

.study__metadata h2 .liking {
  margin-left: 1rem;
  font-weight: bold;
  cursor: pointer;
  opacity: 0.7;
  transition: 0.3s;
}

.study__metadata h2 .liking:hover {
  opacity: 1;
  color: #cc3333;
}

.study__tags {
  border: none;
}

.study__tags th {
  font-weight: bold;
  color: #999999;
  width: 1px;
  padding: 0 0.3em 0 1em !important;
}

.study__tags td {
  padding: 0;
}

.study__tags input,
.study__tags span {
  display: block;
  padding: 0.6em 1em 0.6em 0.7em;
  line-height: 1.7;
}

.study__tags input {
  border: none;
  background: none;
  width: 100%;
}

.study__tags input:hover,
.study__tags input:focus {
  background: #282f35;
}

.study__tags select {
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
}

.study__topics {
  margin: 1em;
}

.study__topics .topic {
  background: #293743;
  padding: 0.2em 0.6em;
  margin: 0.2em;
}

.study__topics .manage {
  margin: 0.2em;
}

.study-topics form {
  max-width: 600px;
}

.study__comments form p {
  margin: 1em 0;
}

.study__comments .goto-current {
  float: right;
}

.study__comments #comment-text {
  height: 12em;
}

.study__comments .study__wiki {
  background: #262421;
  padding: 0.8em 1em;
  margin-top: 1vh;
}

.study__comments .study__wiki.empty {
  display: none;
}

.study__comment {
  background: #262421;
  padding: 0.8em 1em;
  margin-bottom: 0.8em;
}

.study__comment .text {
  margin-top: 0.3em;
  width: 100%;
  overflow: hidden;
  display: inline-block;
}

.study__comment .edit {
  float: right;
  line-height: 1;
  margin-left: 8px;
  opacity: 0.7;
  display: none;
}

.study__comment:hover .edit {
  display: block;
}

.study__comment .edit:hover {
  opacity: 1;
}

.study__comment .user-link,
.study__comment .node {
  font-weight: bold;
}

.study__glyphs {
  background: #262421;
  white-space: nowrap;
  user-select: none;
}

.study__glyphs > div {
  flex: 1 0 30%;
}

.study__glyphs button {
  height: 2.3em;
  line-height: 2.3em;
  align-items: stretch;
  width: 100%;
}

.study__glyphs button::before {
  justify-content: center;
  content: attr(data-symbol);
  font-size: 1.2em;
  font-weight: bold;
  width: 2em;
  background: #3c3934;
  margin-right: 0.5em;
}

.study__glyphs button:hover, .study__glyphs button.active {
  background: #302e2c;
  color: #629924;
}

.study__glyphs button:hover::before {
  background: #302e2c;
}

.study__glyphs button.active::before {
  background: #629924;
  color: #fff;
}

.study__share {
  background: #262421;
  padding: 1.5em 1.2em;
}

.study__share input[type='text'] {
  font-family: monospace;
  width: 100%;
  font-size: 0.9em;
}

.study__share .ply-wrap {
  color: #999999;
  text-align: left;
  font-size: 0.9em;
}

.study__share .ply {
  cursor: pointer;
}

.study__share .ply input {
  margin-right: 0.3em;
  vertical-align: middle;
}

.study__share .downloads {
  justify-content: center;
  margin-bottom: 1.5em;
}

.study__share .downloads .button {
  margin: 0 2px 0.5em 2px;
}

.study__multiboard {
  background: #262421;
}

.study__multiboard.loading {
  opacity: 0.7;
}

.study__multiboard.nopager {
  padding: 2em;
}

.study__multiboard .top {
  padding: 0.4em 1.5em;
}

.study__multiboard .pager .page {
  margin: 0 0.4em;
}

.study__multiboard .fbt {
  padding: 0.6em 1em;
}

.study__multiboard .playing {
  cursor: pointer;
}

.study__multiboard .playing input {
  vertical-align: middle;
  margin-right: 3px;
}

.study__multiboard .now-playing {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(30%, 1fr));
}

.study__multiboard .now-playing a {
  color: #bababa;
  padding: 0.4em;
  transition: background 150ms;
  background: rgba(38, 36, 33, 0.4);
  overflow: hidden;
}

.study__multiboard .now-playing a:nth-child(even) {
  background: #3e3b38;
}

.study__multiboard .now-playing a:hover {
  background: rgba(54, 146, 231, 0.4);
  color: #cccccc;
}

.study__multiboard .now-playing a.active, .study__multiboard .now-playing a:active {
  background: #629924;
  color: #fff;
}

.study__multiboard .now-playing a cg-board {
  box-shadow: none;
}

.study__multiboard .now-playing .player {
  height: 1.5em;
  white-space: nowrap;
}

.study__multiboard .now-playing .player span {
  margin-left: 0.5em;
}

.study__multiboard .now-playing .name {
  justify-content: center;
  height: 3em;
}

.study__server-eval {
  background: #262421;
  text-align: center;
}

.study__server-eval.padded {
  padding: 4em;
}

.study__server-eval.ready {
  height: 15em;
}

.advice-summary table:first-child {
  margin-bottom: 1em;
}

.study__message {
  background: #262421;
  padding: 3em;
  text-align: center;
}

.study__message .button {
  display: inline-block;
  margin: 1em auto;
}

.study__message .spinner {
  margin: 50px auto;
}

.pocket-top {
  grid-area: pocket-top;
}

.pocket-bottom {
  grid-area: pocket-bot;
}

.pocket-c1 {
  max-width: 60px;
}

.analyse.variant-crazyhouse {
  grid-template-rows: auto auto auto auto minmax(20em, 30vh);
  grid-template-areas: 'pocket-top' 'board' 'pocket-bot' 'controls' 'tools' 'side' 'acpl' 'under' 'chat' 'uchat';
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse.variant-crazyhouse {
    grid-template-rows: 60px auto 60px;
    grid-template-areas: 'board      gauge pocket-top' 'board      gauge tools' 'board      gauge pocket-bot' 'under      .     controls' 'under      .     acpl' 'under      .     side' 'chat       .     side' 'uchat      .     side';
  }
}

@media (min-width: 1260px) {
  .analyse.variant-crazyhouse {
    grid-template-rows: 60px var(--meta-height) var(--chat-height) 60px;
    grid-template-areas: 'side    . board gauge pocket-top' 'side    . board gauge tools' 'chat    . board gauge tools' 'chat    . board gauge pocket-bot' 'uchat   . under .     controls' 'uchat   . under .     acpl';
  }
}

@media (max-width: 799px) and (orientation: portrait) {
  .pocket-top {
    margin-bottom: -2vmin;
  }
  .pocket-bottom {
    margin-top: -2vmin;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHlzZS9jc3MvYnVpbGQvYW5hbHlzZS5zdHVkeS5kYXJrLmNzcyIsInNvdXJjZXMiOlsiYW5hbHlzZS9jc3MvYnVpbGQvYW5hbHlzZS5zdHVkeS5kYXJrLnNjc3MiLCJjb21tb24vY3NzL3RoZW1lL19kYXJrLnNjc3MiLCJjb21tb24vY3NzL3RoZW1lL19kZWZhdWx0LnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19mdW5jdGlvbnMuc2NzcyIsImFuYWx5c2UvY3NzL2J1aWxkL19hbmFseXNlLnN0dWR5LnNjc3MiLCJhbmFseXNlL2Nzcy9idWlsZC9fYW5hbHlzZS5iYXNlLnNjc3MiLCJjb21tb24vY3NzL19wbHVnaW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19sZWdhY3ktc2V0dGluZ3Muc2NzcyIsImNvbW1vbi9jc3MvYWJzdHJhY3QvX2FsbC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fei1pbmRleC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fbWVkaWEtcXVlcmllcy5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fdmFyaWFibGVzLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L191bmlib2FyZC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fbWl4aW5zLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19leHRlbmRzLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19mbGV4LnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19ib3guc2NzcyIsImNvbW1vbi9jc3MvYWJzdHJhY3QvX2ZsdWlkLXNpemUuc2NzcyIsImNvbW1vbi9jc3MvdmVuZG9yL2NoZXNzZ3JvdW5kL19jb29yZHMuc2NzcyIsImNvbW1vbi9jc3MvdmVuZG9yL2NoZXNzZ3JvdW5kL19jb29yZHMtY29sb3JzLnNjc3MiLCJjb21tb24vY3NzL2xheW91dC9fdW5pYm9hcmQuc2NzcyIsImNvbW1vbi9jc3MvYmFzZS9fc2Nyb2xsYmFyLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fYm9hcmQtcmVzaXplLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fbW9kYWwuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19jb250aW51ZS13aXRoLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fY29sb3ItaWNvbi5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX2Nyb3NzdGFibGUuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19mYnQuc2NzcyIsImNvbW1vbi9jc3MvZm9ybS9fY21uLXRvZ2dsZS5zY3NzIiwiY29tbW9uL2Nzcy9mb3JtL19yYW5nZS5zY3NzIiwidHJlZS9jc3MvX3RyZWUuc2NzcyIsInRyZWUvY3NzL19leHRlbmQuc2NzcyIsImNldmFsL2Nzcy9fY2V2YWwuc2NzcyIsImNldmFsL2Nzcy9fY3RybC5zY3NzIiwiY2V2YWwvY3NzL19wdi5zY3NzIiwiY2V2YWwvY3NzL19ldmFsLWdhdWdlLnNjc3MiLCJjaGVzcy9jc3MvX2NvbnRyb2wuc2NzcyIsImNoZXNzL2Nzcy9fcHJvbW90aW9uLnNjc3MiLCJjaGVzcy9jc3MvX3ZhcmlhbnQtc3R5bGUuc2NzcyIsImNvbW1vbi9jc3MvZm9ybS9fZm9ybTMuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19mbGFzaC5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX3RhYnMtaG9yaXouc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19zbGlzdC5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX2NvbnRleHQtc3RyZWFtZXIuc2NzcyIsImNoYXQvY3NzL19jaGF0LnNjc3MiLCJjaGF0L2Nzcy9fdGFiLnNjc3MiLCJjaGF0L2Nzcy9fbWVtYmVycy5zY3NzIiwiY2hhdC9jc3MvX2Rpc2N1c3Npb24uc2NzcyIsImNoYXQvY3NzL19wYWxhbnRpci5zY3NzIiwiY2hlc3MvY3NzL196aC1wb2NrZXQuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19zaG93LnNjc3MiLCJhbmFseXNlL2Nzcy9fYW5hbHlzZS5iYXNlLnNjc3MiLCJhbmFseXNlL2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJhbmFseXNlL2Nzcy9fbGF5b3V0LnNjc3MiLCJhbmFseXNlL2Nzcy9fdG9vbHMuc2NzcyIsImFuYWx5c2UvY3NzL19hY3Rpb24tbWVudS5zY3NzIiwiYW5hbHlzZS9jc3MvZXhwbG9yZXIvX2V4cGxvcmVyLnNjc3MiLCJhbmFseXNlL2Nzcy9leHBsb3Jlci9fY29uZmlnLnNjc3MiLCJhbmFseXNlL2Nzcy9fdHJhaW5pbmcuc2NzcyIsImFuYWx5c2UvY3NzL19wcmFjdGljZS5zY3NzIiwiYW5hbHlzZS9jc3MvX2Zvcmsuc2NzcyIsImFuYWx5c2UvY3NzL19zaWRlLnNjc3MiLCJhbmFseXNlL2Nzcy9fY29udGV4dC1tZW51LnNjc3MiLCJhbmFseXNlL2Nzcy9fcGxheWVyLWNsb2NrLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fbWF0ZXJpYWwuc2NzcyIsImFuYWx5c2UvY3NzL19tb2Z3LnNjc3MiLCJhbmFseXNlL2Nzcy9fYWNwbC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2xheW91dC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2xpc3Quc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19jaGFwdGVycy5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX21lbWJlcnMuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19wbGF5ZXIuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19tb2RhbC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2VkaXRvci5zY3NzIiwiZWRpdG9yL2Nzcy9fc3BhcmUuc2NzcyIsImVkaXRvci9jc3MvX3Rvb2xzLnNjc3MiLCJhbmFseXNlL2Nzcy9zdHVkeS9fYnV0dG9ucy5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2ludml0ZS5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2Rlc2Muc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L3BhbmVsL19tZXRhZGF0YS5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcGFuZWwvX2NvbW1lbnQuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L3BhbmVsL19nbHlwaC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcGFuZWwvX3NoYXJlLnNjc3MiLCJhbmFseXNlL2Nzcy9zdHVkeS9wYW5lbC9fbXVsdGlib2FyZC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcGFuZWwvX3NlcnZlci1ldmFsLnNjc3MiLCJhbmFseXNlL2Nzcy9zdHVkeS9wYW5lbC9fbWVzc2FnZS5zY3NzIiwiYW5hbHlzZS9jc3MvX3poLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy90aGVtZS9kYXJrJztcbkBpbXBvcnQgJ2FuYWx5c2Uuc3R1ZHknO1xuIiwiQGltcG9ydCAnZGVmYXVsdCc7XG5cbiR0aGVtZTogJ2RhcmsnO1xuJGNvbG9yLXNjaGVtZTogJ2RhcmsnO1xuJHRoZW1lLWxpZ2h0OiBmYWxzZTtcbiR0aGVtZS1kYXJrOiB0cnVlO1xuXG5AZnVuY3Rpb24gYy1kaW1tZXIoJGNvbG9yLCAkd2VpZ2h0OiAyMCUpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuQGZ1bmN0aW9uIGMtY2xlYXJlcigkY29sb3IsICR3ZWlnaHQ6IDIwJSkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICR3ZWlnaHQpO1xufVxuXG4kYy1iZy1wYWdlOiBoc2woJGMtc2l0ZS1odWUsIDEwJSwgOCUpO1xuJGMtYmctaGlnaDogaHNsKCRjLXNpdGUtaHVlLCA3JSwgMTQlKTtcbiRjLWJnLWxvdzogaHNsKCRjLXNpdGUtaHVlLCA3JSwgMjIlKTtcblxuLyogZXZlbiByb3dzIGluIGxpc3Qgb3IgdGFibGVzLCBzdWJ0bGUgc2hhZGUgb2YgJGMtYmctaGlnaCAqL1xuJGMtYmctemVicmE6IGhzbCgkYy1zaXRlLWh1ZSwgNSUsIDE4JSk7XG4kYy1iZy16ZWJyYTI6IGhzbCgkYy1zaXRlLWh1ZSwgNSUsIDIzJSk7XG5cbiRjLWJvZHktZ3JhZGllbnQ6IGhzbCgkYy1zaXRlLWh1ZSwgMTIlLCAxNiUpO1xuXG4kYy1mb250OiBoc2woMCwgMCUsIDczJSk7XG4kYy1mb250LWRpbTogYy1saWdodCgkYy1mb250LCA2MCUpO1xuJGMtZm9udC1kaW1tZXI6IGMtbGlnaHQoJGMtZm9udCwgNDIlKTtcbiRjLWZvbnQtY2xlYXI6IGMtbGlnaHQoJGMtZm9udCwgODAlKTtcbiRjLWZvbnQtY2xlYXJlcjogYy1saWdodCgkYy1mb250LCA4OSUpO1xuJGMtc2hhZGU6IGMtbGlnaHQoJGMtZm9udCwgMzAlKTtcbiRjLWZvbnQtcGFnZTogJGMtZm9udC1kaW07XG5cbi8qIFByaW1hcnk6IGJsdWUgKi9cbiRjLXByaW1hcnk6IGhzbCgyMDksIDc5JSwgNTYlKTtcbiRjLXByaW1hcnktZGltOiBjLWRpbW1lcigkYy1wcmltYXJ5LCAxNSUpO1xuJGMtcHJpbWFyeS1jbGVhcjogYy1jbGVhcmVyKCRjLXByaW1hcnkpO1xuXG4vKiBTZWNvbmRhcnk6IGdyZWVuICovXG4kYy1zZWNvbmRhcnk6IGhzbCg4OCwgNjIlLCAzNyUpO1xuJGMtc2Vjb25kYXJ5LWRpbTogYy1kaW1tZXIoJGMtc2Vjb25kYXJ5KTtcbiRjLXNlY29uZGFyeS1kaW1tZXI6IGMtZGltbWVyKCRjLXNlY29uZGFyeSwgNDAlKTtcblxuLyogQnJhZzogZ29sZCAqL1xuJGMtYnJhZzogaHNsKDM3LCA3NCUsIDQzJSk7XG5cbi8qIEZhbmN5OiBwaW5rICovXG4kYy1mYW5jeTogaHNsKDI5NCwgNjIlLCA0OCUpO1xuXG4vKiBHb29kOiBncmVlbiAqL1xuJGMtZ29vZDogJGMtc2Vjb25kYXJ5O1xuJGMtZ29vZC1vdmVyOiAkYy1zZWNvbmRhcnktb3ZlcjtcblxuLyogV2Fybjogb3JhbmdlICovXG4kYy13YXJuOiAkYy1icmFnO1xuJGMtd2Fybi1vdmVyOiAkYy1icmFnLW92ZXI7XG5cbi8qIEJhZDogcmVkICovXG4kYy1iYWQ6ICRjLWVycm9yO1xuJGMtYmFkLW92ZXI6ICRjLWVycm9yLW92ZXI7XG5cbiRjLWxpbms6ICRjLXByaW1hcnk7XG4kYy1saW5rLWRpbTogJGMtcHJpbWFyeS1kaW07XG4kYy1saW5rLWNsZWFyOiAkYy1wcmltYXJ5LWNsZWFyO1xuJGMtbGluay1ob3ZlcjogYy1jbGVhcmVyKHNhdHVyYXRlKCRjLXByaW1hcnksIDEwMCUpLCAyNSUpO1xuXG4kYy1iZy1ib3g6ICRjLWJnLWhpZ2g7XG4kYy1iZy1ib3gtb3BhcXVlOiAkYy1iZy1ib3g7XG4kYy1iZy1pbnB1dDogYy1saWdodCgkYy1iZy1wYWdlLCAxMyUpO1xuXG4kYy1iZy1wb3B1cDogJGMtYmctbG93O1xuJGMtcG9wdXA6ICRjLWZvbnQtY2xlYXI7XG5cbiRjLWJnLWhlYWRlci1kcm9wZG93bjogJGMtYmctcG9wdXA7XG4kYy1oZWFkZXItZHJvcGRvd246ICRjLXBvcHVwO1xuXG4kYy1ib3Q6ICRjLWZhbmN5O1xuXG4kYy1wYWdlLWlucHV0OiAkYy1iZy1ib3g7XG5cbiRjLWJvcmRlcjogaHNsKDAsIDAlLCAyNSUpO1xuJGMtYm9yZGVyLXBhZ2U6IGhzbCgwLCAwJSwgMjIlKTtcbiRib3JkZXI6ICRib3JkZXItd2lkdGggJGJvcmRlci1zdHlsZSAkYy1ib3JkZXI7XG5cbiRjLWZvbnQtc2hhZG93OiBibGFjaztcbiR0ZXh0LXNoYWRvdzogbm9uZTtcblxuQG1peGluIG1ldGFsLWJnIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgaHNsKCRjLXNpdGUtaHVlLCA3JSwgMjIpLCBoc2woJGMtc2l0ZS1odWUsIDUlLCAxOSkgMTAwJSk7XG59XG5cbkBtaXhpbiBtZXRhbCB7XG4gIEBpbmNsdWRlIG1ldGFsLWJnO1xufVxuXG5AbWl4aW4gbWV0YWwtaG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2woJGMtc2l0ZS1odWUsIDclLCAyNSksIGhzbCgkYy1zaXRlLWh1ZSwgNSUsIDIyKSAxMDAlKTtcbiAgY29sb3I6ICRjLWZvbnQtY2xlYXI7XG59XG5cbkBtaXhpbiBwYWdlLW1ldGFsIHtcbiAgQGluY2x1ZGUgbWV0YWw7XG59XG5cbkBtaXhpbiBwYWdlLW1ldGFsLWhvdmVyIHtcbiAgQGluY2x1ZGUgbWV0YWwtaG92ZXI7XG59XG5cbkBtaXhpbiB0aGVtZS1zdHlsZSB7XG59XG4iLCJAaW1wb3J0ICcuLi9hYnN0cmFjdC9mdW5jdGlvbnMnO1xuXG4vKiBDb2xvcnMgKi9cblxuQGZ1bmN0aW9uIGMtZGltbWVyKCRjb2xvciwgJHdlaWdodDogMTclKSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHdlaWdodCk7XG59XG5cbkBmdW5jdGlvbiBjLWNsZWFyZXIoJGNvbG9yLCAkd2VpZ2h0OiAxNyUpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuJGMtc2l0ZS1odWU6IDM3O1xuXG4kYy1iZy1wYWdlOiBoc2woJGMtc2l0ZS1odWUsIDEwJSwgOTIlKTtcblxuLy8gaHNsKDIxMCwgMTclLCA5NSUpXG4kYy1iZy1oaWdoOiBoc2woMCwgMCUsIDEwMCUpO1xuJGMtYmctbG93OiBoc2woMCwgMCUsIDg5JSk7XG5cbi8qIGV2ZW4gcm93cyBpbiBsaXN0IG9yIHRhYmxlcywgc3VidGxlIHNoYWRlIG9mICRjLWJnLWhpZ2ggKi9cbiRjLWJnLXplYnJhOiBoc2woJGMtc2l0ZS1odWUsIDEyJSwgOTYuNSUpO1xuJGMtYmctemVicmEyOiBoc2woJGMtc2l0ZS1odWUsIDEyJSwgOTIlKTtcblxuJGMtYm9keS1ncmFkaWVudDogaHNsKCRjLXNpdGUtaHVlLCAxMiUsIDg0JSk7XG5cbiRjLWZvbnQ6IGhzbCgwLCAwJSwgMzAlKTtcbiRjLWZvbnQtZGltOiBjLWxpZ2h0KCRjLWZvbnQsIDQ3JSk7XG4kYy1mb250LWRpbW1lcjogYy1saWdodCgkYy1mb250LCA3MCUpO1xuJGMtZm9udC1jbGVhcjogYy1saWdodCgkYy1mb250LCAxMiUpO1xuJGMtZm9udC1jbGVhcmVyOiBjLWxpZ2h0KCRjLWZvbnQsIDAlKTtcbiRjLXNoYWRlOiBjLWRpbW1lcigkYy1mb250LCA4MCUpO1xuJGMtZm9udC1wYWdlOiBjLWxpZ2h0KCRjLWZvbnQsIDM3JSk7XG5cbi8qIFByaW1hcnk6IGJsdWUgKi9cbiRjLXByaW1hcnk6IGhzbCgyMDksIDc3JSwgNDYlKTtcbiRjLXByaW1hcnktZGltOiBjLWRpbW1lcigkYy1wcmltYXJ5KTtcbiRjLXByaW1hcnktY2xlYXI6IGMtY2xlYXJlcigkYy1wcmltYXJ5KTtcbiRjLXByaW1hcnktb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIHByaW1hcnkgYmFja2dyb3VuZCAqL1xuXG4vKiBTZWNvbmRhcnk6IGdyZWVuICovXG4kYy1zZWNvbmRhcnk6IGhzbCg4OCwgNjIlLCAzNyUpO1xuJGMtc2Vjb25kYXJ5LWRpbTogYy1kaW1tZXIoJGMtc2Vjb25kYXJ5KTtcbiRjLXNlY29uZGFyeS1kaW1tZXI6IGMtZGltbWVyKCRjLXNlY29uZGFyeSwgNDAlKTtcbiRjLXNlY29uZGFyeS1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgc2Vjb25kYXJ5IGJhY2tncm91bmQgKi9cblxuLyogQWNjZW50OiBvcmFuZ2UgKi9cbiRjLWFjY2VudDogaHNsKDIyLCAxMDAlLCA0MiUpO1xuJGMtYWNjZW50LWRpbTogYy1kaW1tZXIoJGMtYWNjZW50KTtcbiRjLWFjY2VudC1jbGVhcjogYy1jbGVhcmVyKCRjLWFjY2VudCk7XG4kYy1hY2NlbnQtb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIGFjY2VudCBiYWNrZ3JvdW5kICovXG5cbi8qIEJyYWc6IGdvbGQgKi9cbiRjLWJyYWc6IGhzbCgzNywgNzQlLCA0OCUpO1xuJGMtYnJhZy1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgYnJhZyBiYWNrZ3JvdW5kICovXG5cbi8qIEVycm9yOiByZWQgKi9cbiRjLXJlZDogaHNsKDAsIDYwJSwgNTAlKTtcbiRjLWVycm9yOiAkYy1yZWQ7XG4kYy1lcnJvci1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgYnJhZyBiYWNrZ3JvdW5kICovXG5cbi8qIEdvb2Q6IGdyZWVuICovXG4kYy1nb29kOiAkYy1zZWNvbmRhcnk7XG4kYy1nb29kLW92ZXI6ICRjLXNlY29uZGFyeS1vdmVyO1xuXG4vKiBXYXJuOiBvcmFuZ2UgKi9cbiRjLXdhcm46ICRjLWJyYWc7XG4kYy13YXJuLW92ZXI6ICRjLWJyYWctb3ZlcjtcblxuLyogQmFkOiByZWQgKi9cbiRjLWJhZDogJGMtZXJyb3I7XG4kYy1iYWQtb3ZlcjogJGMtZXJyb3Itb3ZlcjtcblxuLyogSGVhcnQ6IHJlZCAqL1xuJGMtaGVhcnQ6ICRjLWVycm9yO1xuJGMtaGVhcnQtb3ZlcjogJGMtZXJyb3Itb3ZlcjtcblxuLyogRmFuY3k6IHBpbmsgKi9cbiRjLWZhbmN5OiBoc2woMjk0LCA2MSUsIDYyJSk7XG4kYy1mYW5jeS1vdmVyOiB3aGl0ZTtcblxuLyogdGV4dCBvdmVyIGJyYWcgYmFja2dyb3VuZCAqL1xuXG4kYy1saW5rOiAkYy1wcmltYXJ5O1xuJGMtbGluay1kaW06ICRjLXByaW1hcnktZGltO1xuJGMtbGluay1jbGVhcjogJGMtcHJpbWFyeS1jbGVhcjtcbiRjLWxpbmstaG92ZXI6IGMtY2xlYXJlcihzYXR1cmF0ZSgkYy1wcmltYXJ5LCAxMDAlKSwgMzUlKTtcbiRjLWxpbmstb3ZlcjogJGMtcHJpbWFyeS1vdmVyO1xuXG4kYy1iZy1ib3g6ICRjLWJnLWhpZ2g7XG4kYy1iZy1ib3gtb3BhcXVlOiAkYy1iZy1ib3g7XG4kYy1iZy1pbnB1dDogYy1saWdodCgkYy1iZy1wYWdlLCA5OCUpO1xuXG4kYy1ib3JkZXI6IGhzbCgwLCAwJSwgODUlKTtcbiRjLWJvcmRlci1wYWdlOiBoc2woMCwgMCUsIDgwJSk7XG5cbiRjLXBhZ2UtbWFzazogaHNsYSgwLCAwLCAwJSwgMC42KTtcblxuJGMtYmctcG9wdXA6ICRjLWJnLWhpZ2g7XG4kYy1wb3B1cDogJGMtZm9udDtcblxuJGMtYmctaGVhZGVyLWRyb3Bkb3duOiAkYy1iZy1wb3B1cDtcbiRjLWhlYWRlci1kcm9wZG93bjogJGMtcG9wdXA7XG5cbiRjLWZvbnQtc2hhZG93OiB3aGl0ZTtcbiR0ZXh0LXNoYWRvdzogMCAxcHggMCAkYy1mb250LXNoYWRvdztcblxuJGMtYm90OiAkYy1mYW5jeTtcblxuJGMtcGFnZS1pbnB1dDogJGMtYmctbG93O1xuXG4vKiBCb3JkZXJzICovXG5cbiRib3JkZXItd2lkdGg6IDFweDtcbiRib3JkZXItc3R5bGU6IHNvbGlkO1xuJGJvcmRlcjogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlICRjLWJvcmRlcjtcblxuLyogU2hhZG93cyAqL1xuXG4kYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4vLyAkYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTU3KTtcbiIsIkBmdW5jdGlvbiBjLWxpZ2h0KCRjb2xvciwgJHZhbHVlKSB7XG4gIEByZXR1cm4gY2hhbmdlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHZhbHVlKTtcbn1cblxuQGZ1bmN0aW9uIGltZy11cmwoJHBhdGgpIHtcbiAgQHJldHVybiB1cmwoJyN7JGltZy1wYXRofS8jeyRwYXRofScpO1xufVxuIiwiQGltcG9ydCAnYW5hbHlzZS5iYXNlJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvZm9ybS9mb3JtMyc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC90YWJzLWhvcml6JztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L3NsaXN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L2NvbnRleHQtc3RyZWFtZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vY2hhdC9jc3MvY2hhdCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jaGVzcy9jc3MvemgtcG9ja2V0JztcblxuQGltcG9ydCAnLi4vc3R1ZHkvc2hvdyc7XG5AaW1wb3J0ICcuLi96aCc7XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL3BsdWdpbic7XG5AaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL3ZlbmRvci9jaGVzc2dyb3VuZC9jb29yZHMnO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9sYXlvdXQvdW5pYm9hcmQnO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9iYXNlL3Njcm9sbGJhcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9ib2FyZC1yZXNpemUnO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvbW9kYWwnO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvY29udGludWUtd2l0aCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9jb2xvci1pY29uJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L2Nyb3NzdGFibGUnO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvZmJ0JztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvZm9ybS9jbW4tdG9nZ2xlJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvZm9ybS9yYW5nZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi90cmVlL2Nzcy90cmVlJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NldmFsL2Nzcy9jZXZhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jZXZhbC9jc3MvZXZhbC1nYXVnZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jaGVzcy9jc3MvY29udHJvbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jaGVzcy9jc3MvcHJvbW90aW9uJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NoZXNzL2Nzcy92YXJpYW50LXN0eWxlJztcbiIsIi8qIENvbW1vbiBpbXBvcnRzIGZvciBhbGwgQ1NTIG1vZHVsZXMgKi9cblxuQGltcG9ydCAnLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50JztcblxuQGltcG9ydCAnYWJzdHJhY3QvYWxsJztcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcyBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkc2V0dGluZykge1xuICBAaWYgYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnQsICRzZXR0aW5nKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCcmVha3BvaW50LVNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwge1xuICAgIEB3YXJuIFwiV29yZHMgaW4gQnJlYWtwb2ludCBzZXR0aW5ncyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IHNwYWNlcywgbm90IGRhc2hlcyBvciB1bmRlcnNjb3Jlcy4gUGxlYXNlIHJlcGxhY2UgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBiZXR3ZWVuIHdvcmRzIHdpdGggc3BhY2VzLiBTZXR0aW5ncyB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIHVudGlsIGNoYW5nZWQuXCI7XG4gIH1cbiAgJGJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkYnJlYWtwb2ludCwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRicmVha3BvaW50LWNoYW5nZTogYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYmtwdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cbkBtaXhpbiBia3B0LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlbW92ZSBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59XG5cbkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSBhbmQgdHlwZS1vZihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3ticmVha3BvaW50LWdldChcXCdiYXNlIGZvbnQgc2l6ZVxcJyl9IGlzIG5vdCBzZXQgaW4gdmFsaWQgdW5pdHMgZm9yIGZvbnQgc2l6ZSEnO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcbiAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxNnB4ICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICclJyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdlbScge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTJwdCAqIDFlbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4vLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgbWluL21heCBwYWlyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIHN0cmluZyB2YWx1ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICAnb3JpZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2x1bWlub3NpdHknO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgYnJlYWtwb2ludC1taW4tbWF4KCRpdGVtKSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgaXMgYSBtZWRpYSB0eXBlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAgJ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdicmFpbGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYm9zc2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRoZWxkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWVjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHYnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xuICBAZWFjaCAkbWVkaWEgaW4gJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXMge1xuICAgIEBpZiAoJGZlYXR1cmUgPT0gJG1lZGlhKSBvciAoJGZlYXR1cmUgPT0gJ25vdCAjeyRtZWRpYX0nKSBvciAoJGZlYXR1cmUgPT0gJ29ubHkgI3skbWVkaWF9Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBzdGFuZCBhbG9uZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XG4gICRyZXNvbHV0aW9uczogJ2RldmljZS1waXhlbC1yYXRpbycsICdkcHInO1xuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgICRyZXNvbHV0aW9uczogYXBwZW5kKCRyZXNvbHV0aW9ucywgJ3Jlc29sdXRpb24nKTtcbiAgfVxuXG4gIEBlYWNoICRyZXNvIGluICRyZXNvbHV0aW9ucyB7XG4gICAgQGlmIGluZGV4KCRmZWF0dXJlLCAkcmVzbykgb3IgaW5kZXgoJGZlYXR1cmUsICdtaW4tI3skcmVzb30nKSBvciBpbmRleCgkZmVhdHVyZSwgJ21heC0jeyRyZXNvfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGFyc2VyIFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwicGFyc2Vycy9xdWVyeVwiO1xuQGltcG9ydCBcInBhcnNlcnMvc2luZ2xlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9kb3VibGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3RyaXBsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvcmVzb2x1dGlvblwiO1xuXG4kTWVtby1FeGlzdHM6IGZ1bmN0aW9uLWV4aXN0cyhtZW1vLWdldCkgYW5kIGZ1bmN0aW9uLWV4aXN0cyhtZW1vLXNldCk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBGdW5jdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkcXVlcnksICRjb250ZXh0cy4uLikge1xuICAkcnVuOiB0cnVlO1xuICAkcmV0dXJuOiAoKTtcblxuICAvLyBHcmFiIHRoZSBNZW1vIE91dHB1dCBpZiBNZW1vaXphdGlvbiBjYW4gYmUgYSB0aGluZ1xuICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAkcmV0dXJuOiBtZW1vLWdldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMpO1xuXG4gICAgQGlmICRyZXR1cm4gIT0gbnVsbCB7XG4gICAgICAkcnVuOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRNZW1vLUV4aXN0cyBvciAkcnVuIHtcbiAgICAvLyBJbnRlcm5hbCBWYXJpYWJsZXNcbiAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAkcXVlcnktZmFsbGJhY2s6IGZhbHNlO1xuICAgICRyZXR1cm46ICgpO1xuXG4gICAgLy8gUmVzZXJ2ZSBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkaG9sZGVyLWNvbnRleHQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI7XG4gICAgJGhvbGRlci1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDtcblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG5cbiAgICAvLyBUZXN0IHRvIHNlZSBpZiBpdCdzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3RcbiAgICAkb3ItbGlzdDogaWYobGlzdC1zZXBhcmF0b3IoJHF1ZXJ5KSA9PSAnY29tbWEnLCB0cnVlLCBmYWxzZSk7XG5cblxuICAgIEBpZiAoJG9yLWxpc3QgPT0gZmFsc2UgYW5kIGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gZmFsc2UpIHtcbiAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgICAgICRsYXN0OiBudGgoJHF1ZXJ5LCAkbGVuZ3RoKTtcbiAgICAgICRxdWVyeS1mYWxsYmFjazogYnJlYWtwb2ludC1uby1xdWVyeSgkbGFzdCk7XG5cbiAgICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSB7XG4gICAgICAgICRsZW5ndGg6ICRsZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gdHJ1ZSkge1xuICAgICAgICAkbXE6ICgpO1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJG1xOiBhcHBlbmQoJG1xLCBudGgoJHF1ZXJ5LCAkaSksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJG1xKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJHF1ZXJ5LXN0cmluZzogJHF1ZXJ5LXN0cmluZyArIGlmKCRpID09IDEsICcnLCAnLCAnKSArIGJyZWFrcG9pbnQtcGFyc2UobnRoKCRxdWVyeSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRyZXR1cm46ICgncXVlcnknOiAkcXVlcnktc3RyaW5nLFxuICAgICAgICAnZmFsbGJhY2snOiAkcXVlcnktZmFsbGJhY2ssXG4gICAgICAgICdjb250ZXh0IGhvbGRlcic6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsXG4gICAgICAgICdxdWVyeSBjb3VudCc6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnRcbiAgICApO1xuICAgIEBpZiBsZW5ndGgoJGNvbnRleHRzKSA+IDAgYW5kIG50aCgkY29udGV4dHMsIDEpICE9IGZhbHNlIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICAgICAgfVxuICAgICAgJGNvbnRleHQtbWFwOiAoKTtcbiAgICAgIEBlYWNoICRjb250ZXh0IGluICRjb250ZXh0cyB7XG4gICAgICAgICRjb250ZXh0LW1hcDogbWFwLW1lcmdlKCRjb250ZXh0LW1hcCwgKCRjb250ZXh0OiBicmVha3BvaW50LWdldC1jb250ZXh0KCRjb250ZXh0KSkpO1xuICAgICAgfVxuICAgICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sIChjb250ZXh0OiAkY29udGV4dC1tYXApKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuICAgIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICAgJGhvbGRlcjogbWVtby1zZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzLCAkcmV0dXJuKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2VuZXJhbCBCcmVha3BvaW50IFBhcnNlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpIHtcbiAgLy8gSW5jcmVhc2UgbnVtYmVyIG9mICdhbmQnIHF1ZXJpZXNcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCArIDEgIWdsb2JhbDtcblxuICAvLyBTZXQgdXAgTWVkaWEgVHlwZVxuICAkcXVlcnktcHJpbnQ6ICcnO1xuXG4gICRmb3JjZS1hbGw6ICgoYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykgPT0gdHJ1ZSkgYW5kIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpID09ICdhbGwnKSk7XG4gICRlbXB0eS1tZWRpYTogdHJ1ZTtcbiAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpICE9ICdhbGwnKSB7XG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG4gIH1cblxuXG4gICRxdWVyeS1yZXNvbHV0aW9uOiBmYWxzZTtcblxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XG5cblxuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxuICAkZmlyc3Q6IHRydWU7XG5cbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRmZWF0dXJlKTtcblxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgLy8gRmVhdHVyZSBpcyBjdXJyZW50bHkgYSBsaXN0LCBncmFiIHRoZSBhY3R1YWwgdmFsdWVcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xuXG4gICAgICAvLyBNZWRpYSBUeXBlIG11c3QgYnkgY29udmVudGlvbiBiZSB0aGUgZmlyc3QgaXRlbSwgc28gaXQncyBzYWZlIHRvIGZsYXQgb3ZlcnJpZGUgJHF1ZXJ5LXByaW50LCB3aGljaCByaWdodCBub3cgc2hvdWxkIG9ubHkgYmUgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZVxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xuICAgICAgICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRmZWF0dXJlICE9ICdhbGwnKSB7XG4gICAgICAgICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcbiAgICAgICAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcbiAgICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtZWRpYSwgJHF1ZXJ5LXByaW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgZG91YmxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkgIT0gZmFsc2UpIHtcbiAgICAgICAgJHF1ZXJ5LXJlc29sdXRpb246ICRmZWF0dXJlO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBudWxsO1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxuICAgICAgICAvLyB3ZSBjaGVjayB0byBzZWUgaWYgb25lIGlzIGEgc2luZ2xlLXN0cmluZyB2YWx1ZSxcbiAgICAgICAgLy8gdGhlbiB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xuICAgICAgICAkYmV0YTogbnRoKCRmZWF0dXJlLCAyKTtcbiAgICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYWxwaGEpIG9yIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYmV0YSkge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgdHJpcGxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAoJHF1ZXJ5LXJlc29sdXRpb24gIT0gZmFsc2UpIHtcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBmZWF0dXJlIHRoYXQncyBiZWVuIGRldGVjdGVkIHNvIGZhciBhbmQgYXBwZW5kICdmYWxzZScgdG8gdGhlIHRoZSB2YWx1ZSBsaXN0IHRvIGluY3JlbWVudCB0aGVpciBjb3VudGVyc1xuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XG4gICAgJHYtaG9sZGVyOiAkdjtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgICBAaWYgJGYgPT0gJ21lZGlhJyB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KSB7XG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XG4gICRmZWF0dXJlLWhvbGRlcjogKCk7XG4gICRxdWVyeS1ob2xkZXI6ICgpO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xuICAgIEBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSBvciAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG5cbiAgICAgICRudW1iZXI6ICcnO1xuICAgICAgJHZhbHVlOiAnJztcblxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMik7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxuICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkdmFsdWUpIHtcbiAgICAgICAgQGlmIHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEgbWVkaWEgdHlwZSwgc3BsaXQgdGhlIHF1ZXJ5XG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDIpKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSB7XG4gICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIHN0cmluZ3MgYW5kIG5laXRoZXIgYXJlIHNpbmdsZXMsIHdlIHJvbGwgd2l0aCB0aGF0LlxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XG4gICAgLy8gSWYgd2UndmUgZ290IHRocmVlIGl0ZW1zIGFuZCBub25lIGlzIGEgbGlzdCwgd2UgY2hlY2sgdG8gc2VlXG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDMpKSAhPSAnbGlzdCcge1xuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cbiAgICAgIEBpZiAobm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDMpKSkgYW5kICAoKG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAzKSkpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gbGV0J3MgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBpdGVtIGlzIGEgbWVkaWEgdHlwZVxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAyKSwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGZlYXR1cmUgdGhhdCBjYW4gc3RhbmQgYWxvbmUsIHdlIGxldCBpdFxuICBAaWYgKGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkpIHtcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcbiAgICAvLyBTZXQgQ29udGV4dFxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkZmVhdHVyZSk7XG4gIH1cbiAgLy8gSWYgaXQncyBub3QgYSBzdGFuZCBhbG9uZSBmZWF0dXJlLCB3ZSBwYXNzIGl0IG9mZiB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLlxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICcoJyArICRwYXJzZWQgKyAnKSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJyk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGRlZmF1bHQsICRmZWF0dXJlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7YnJlYWtwb2ludC10by1iYXNlLWVtKCRmZWF0dXJlKX0nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcbkBpbXBvcnQgXCJkb3VibGUvZG91YmxlLXN0cmluZ1wiO1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XG4gICRzZWNvbmQ6IG50aCgkZmVhdHVyZSwgMik7XG5cbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdudW1iZXInIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIHRoZXkgYXJlIGJvdGggc3RyaW5ncywgd2Ugc2VuZCBpdCB0aHJvdWdoIHRoZSBzdHJpbmcgcGFyc2VyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpciwgd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgcGFpcicpO1xuICAkbWluOiAnJztcbiAgJG1heDogJyc7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZGVmYXVsdH0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxuICBAaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmaXJzdCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkc2Vjb25kKSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiTmVpdGhlciAjeyRmaXJzdH0gbm9yICN7JHNlY29uZH0gaXMgYSB2YWxpZCBtZWRpYSBxdWVyeSBuYW1lLlwiO1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn0iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJ0cmlwbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBzZXBhcmF0ZSB0aGUgc3RyaW5nIGZlYXR1cmVzIGZyb20gdGhlIHZhbHVlIG51bWJlcnNcbiAgJHN0cmluZzogbnVsbDtcbiAgJG51bWJlcnM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJGZlYXR1cmUge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IHN0cmluZyB7XG4gICAgICAkc3RyaW5nOiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgdHlwZS1vZigkbnVtYmVycykgPT0gJ251bGwnIHtcbiAgICAgICAgJG51bWJlcnM6ICR2YWw7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXJzOiBhcHBlbmQoJG51bWJlcnMsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJHN0cmluZywgbnRoKCRudW1iZXJzLCAxKSwgbnRoKCRudW1iZXJzLCAyKSk7XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcblxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGZlYXR1cmV9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGZlYXR1cmV9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGZlYXR1cmV9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRmZWF0dXJlfTogI3skbWF4fSknO1xufVxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIGFuZCAkcXVlcnktcmVzb2x1dGlvbiB7XG4gICAgJHJlc29sdXRpb25zOiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHF1ZXJ5LXJlc29sdXRpb24pO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbnMpO1xuICAgICRxdWVyeS1ob2xkZXI6ICcnO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICRxdWVyeTogJyN7JHF1ZXJ5LXByaW50fSAjeyRsZWFkZXJ9I3tudGgoJHJlc29sdXRpb25zLCAkaSl9JztcbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJHF1ZXJ5O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAnI3skcXVlcnktaG9sZGVyfSwgI3skcXVlcnl9JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFJldHVybiB3aXRoIGF0dGFjaGVkIHJlc29sdXRpb25cbiAgICBAcmV0dXJuICRxdWVyeS1wcmludDtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcmVzb2x1dGlvbikge1xuICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb24pO1xuXG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgICRmZWF0dXJlOiAnJztcbiAgICAkdmFsdWU6ICcnO1xuXG4gICAgLy8gRmluZCB3aGljaCBpcyBudW1iZXJcbiAgICBAaWYgdHlwZS1vZihudGgoJHJlc29sdXRpb24sIDEpKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAyKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgbWluL21heC9zdGFuZGFyZFxuICAgIEBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21pbi1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtaW4tJztcbiAgICB9XG4gICAgQGVsc2UgaWYgaW5kZXgoJHJlc29sdXRpb24sICdtYXgtcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWF4LSc7XG4gICAgfVxuXG4gICAgJHN0YW5kYXJkOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWV9KSc7XG5cbiAgICAvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGRwcHgsXG4gICAgQGlmIHVuaXQoJHZhbHVlKSAhPSAnZHBweCcge1xuICAgICAgJGJhc2U6IDk2ZHBpO1xuICAgICAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZHBjbScge1xuICAgICAgICAkYmFzZTogMjQzLjg0ZHBjbTtcbiAgICAgIH1cbiAgICAgIC8vIFdyaXRlIG91dCBmZWF0dXJlIHRlc3RzXG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkZmFsbGJhY2s6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZSAvIDFkcHB4ICogOTZkcGl9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkZmFsbGJhY2ssIHNwYWNlKTtcbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW5vLXF1ZXJ5KCRxdWVyeSkge1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09ICdsaXN0JyB7XG4gICAgJGtleXdvcmQ6IG50aCgkcXVlcnksIDEpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGtleXdvcmQpID09ICdzdHJpbmcnIGFuZCAoJGtleXdvcmQgPT0gJ25vLXF1ZXJ5JyBvciAka2V5d29yZCA9PSAnbm8gcXVlcnknIG9yICRrZXl3b3JkID09ICdmYWxsYmFjaycpIHtcbiAgICAgIEByZXR1cm4gbnRoKCRxdWVyeSwgMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgdGhlIEJyZWFrcG9pbnRzIHZhcmlhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4kQlJFQUtQT0lOVFM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA+IDAgYW5kIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtZXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGFkZCBicmVha3BvaW50cyBmb3IgcmVzcG9uZC10by4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KClgIHRvIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgpYC4gVGhlIGBhZGQtYnJlYWtwb2ludCgpYCBmdW5jdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIjtcbiAgICAkQlJFQUtQT0lOVFM6ICRicmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRicmVha3BvaW50czogKCkgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRCUkVBS1BPSU5UUykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBgcmVzcG9uZC10b2AgZXhwZWN0cyBhIG1hcC4gUGxlYXNlIGNoZWNrIHRoZSB2YWx1ZSBvZiAkQlJFQUtQT0lOVFMgdmFyaWFibGUuXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdClgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBBZGQgQnJlYWtwb2ludCB0byBCcmVha3BvaW50c1xuLy8gVE9ETzogUmVtb3ZlIGZ1bmN0aW9uIGluIG5leHQgcmVsZWFzZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPT0gMCB7XG4gICAgQHJldHVybiAkb3V0cHV0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgIEByZXR1cm4gJGJyZWFrcG9pbnRzO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCRicmVha3BvaW50cywgJG91dHB1dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICAkQlJFQUtQT0lOVFM6ICRvdXRwdXQgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICAkQlJFQUtQT0lOVFM6ICRCUkVBS1BPSU5UUyAhZ2xvYmFsO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgICRCUkVBS1BPSU5UUzogbWFwLW1lcmdlKCRCUkVBS1BPSU5UUywgJG91dHB1dCkgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGdldC1icmVha3BvaW50KCRuYW1lOiBmYWxzZSkge1xuICBAaWYgJG5hbWUgPT0gZmFsc2Uge1xuICAgIEByZXR1cm4gJEJSRUFLUE9JTlRTO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkbmFtZSk7XG4gIH1cbn1cbiIsIkBtaXhpbiBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZyB7XG4gICRsZWdhY3lWYXJzOiAoXG4gICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXG4gICAgJ2RlZmF1bHQtZmVhdHVyZSc6ICdkZWZhdWx0IGZlYXR1cmUnLFxuICAgICdmb3JjZS1tZWRpYS1hbGwnOiAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLFxuICAgICd0by1lbXMnOiAndG8gZW1zJyxcbiAgICAncmVzb2x1dGlvbnMnOiAndHJhbnNmb3JtIHJlc29sdXRpb25zJyxcbiAgICAnbm8tcXVlcmllcyc6ICdubyBxdWVyaWVzJyxcbiAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXG4gICAgJ2Jhc2UtZm9udC1zaXplJzogJ2Jhc2UgZm9udCBzaXplJyxcbiAgICAnbGVnYWN5LXN5bnRheCc6ICdsZWdhY3kgc3ludGF4J1xuICApO1xuXG4gIEBlYWNoICRsZWdhY3ksICRuZXcgaW4gJGxlZ2FjeVZhcnMge1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XG4gICAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGNoYW5nZSBzZXR0aW5ncyBmb3IgQnJlYWtwb2ludC4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludC0jeyRsZWdhY3l9OiB7e3NldHRpbmd9fWAgdG8gYEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCcjeyRuZXd9Jywge3tzZXR0aW5nfX0pYC4gVmFyaWFibGUgc2V0dGluZ3MsIGFzIHdlbGwgYXMgdGhpcyB3YXJuaW5nIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgfVxuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBIYW5kIGNvcnJlY3QgZWFjaCBzZXR0aW5nXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgbWVkaWEnLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgZmVhdHVyZScsICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsJykgYW5kICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCAhPSBicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJywgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC10by1lbXMnKSBhbmQgJGJyZWFrcG9pbnQtdG8tZW1zICE9IGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsICRicmVha3BvaW50LXRvLWVtcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtcmVzb2x1dGlvbnMnKSBhbmQgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgIT0gYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJywgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJpZXMnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcmllcycsICRicmVha3BvaW50LW5vLXF1ZXJpZXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcnkgZmFsbGJhY2tzJywgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZScpIGFuZCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSAhPSBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2Jhc2UgZm9udCBzaXplJywgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWxlZ2FjeS1zeW50YXgnKSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCAhPSBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbGVnYWN5IHN5bnRheCcsICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXgpO1xuICB9XG59IiwiQGltcG9ydCAnZnVuY3Rpb25zJztcbkBpbXBvcnQgJ3otaW5kZXgnO1xuQGltcG9ydCAnbWVkaWEtcXVlcmllcyc7XG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAndW5pYm9hcmQnO1xuQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2V4dGVuZHMnO1xuQGltcG9ydCAnZmxleCc7XG5AaW1wb3J0ICdib3gnO1xuQGltcG9ydCAnZmx1aWQtc2l6ZSc7XG4iLCIvLy8gWi1pbmRleGVzIG1hcCwgZ2F0aGVyaW5nIGFsbCBaIGxheWVycyBvZiB0aGUgYXBwbGljYXRpb25cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7U3RyaW5nfSBrZXkgLSBMYXllcuKAmXMgbmFtZVxuLy8vIEBwcm9wIHtOdW1iZXJ9IHZhbHVlIC0gWiB2YWx1ZSBtYXBwZWQgdG8gdGhlIGtleVxuJHotaW5kZXhlczogKFxuICAnY2dfX3Byb21vdGlvbic6IDIwNSxcbiAgJ2NnX19waWVjZS5kcmFnZ2luZyc6IDIwNCxcbiAgJ2NnX19ib2FyZC5vdmVybGF5JzogMTAwLFxuICAnY2dfX3BpZWNlLmFuaW0nOiAzLFxuICAnY2dfX3N2Zy5jZy1zaGFwZXMnOiAyLFxuICAnY2dfX3N2Zy5jZy1jdXN0b20tc3Zncyc6IDQsXG4gICdjZ19fcGllY2UnOiAyLFxuICAnY2dfX3BpZWNlLmZhZGluZyc6IDEsXG4gICdwb3dlcnRpcCc6IDEyMCxcbiAgJ2NvbXBsZXRlJzogMTEyLFxuICAnaW5xdWlyeSc6IDExMSxcbiAgJ3plbi10b2dnbGUnOiAxMTAsXG4gICdtb2RhbCc6IDExMCxcbiAgJ21zZWxlY3QnOiAxMTAsXG4gICd0b3BuYXYnOiAxMTAsXG4gICdmdWxsc2NyZWVuLW1hc2snOiAxMDksXG4gICdkcm9wZG93bic6IDEwOCxcbiAgJ2NvbnRleHQtbWVudSc6IDEwNyxcbiAgJ3NpdGUtaGVhZGVyJzogMTA2LFxuICAncmVjb25uZWN0aW5nJzogMTA1LFxuICAndG91ci1yZW1pbmRlcic6IDEwNCxcbiAgJ216LW1lbnUnOiA0LFxuICAnYWJvdmUtbGluay1vdmVybGF5JzogMyxcbiAgJ2ZyaWVuZC1ib3gnOiAyLFxuICAnbGluay1vdmVybGF5JzogMixcbiAgJ2dhbWUtYm9va21hcmsnOiAyLFxuICAnc3VibmF2LXNpZGUnOiAyLFxuICAnZGVmYXVsdCc6IDAsXG4pO1xuXG4vLy8gR2V0IGEgei1pbmRleCB2YWx1ZSBmcm9tIGEgbGF5ZXIgbmFtZVxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRsYXllciAtIExheWVy4oCZcyBuYW1lXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vIEByZXF1aXJlICR6LWluZGV4ZXNcbkBmdW5jdGlvbiB6KCRsYXllcikge1xuICBAcmV0dXJuIG1hcC1nZXQoJHotaW5kZXhlcywgJGxheWVyKTtcbn1cbiIsIi8qIFdpZHRocyAqL1xuXG4kbXEteHgtc21hbGw6IG1pbi13aWR0aCA1MDBweDtcbiRtcS14LXNtYWxsOiBtaW4td2lkdGggNjUwcHg7XG4kbXEtc21hbGw6IG1pbi13aWR0aCA4MDBweDtcbiRtcS1tZWRpdW06IG1pbi13aWR0aCA5ODBweDtcbiRtcS1sYXJnZTogbWluLXdpZHRoIDExMjBweDtcbiRtcS14LWxhcmdlOiBtaW4td2lkdGggMTI2MHB4O1xuXG4kbXEtbm90LXh4LXNtYWxsOiBtYXgtd2lkdGggNDk5cHg7XG4kbXEtbm90LXgtc21hbGw6IG1heC13aWR0aCA2NDlweDtcbiRtcS1ub3Qtc21hbGw6IG1heC13aWR0aCA3OTlweDtcbiRtcS1ub3QtbWVkaXVtOiBtYXgtd2lkdGggOTc5cHg7XG4kbXEtbm90LWxhcmdlOiBtYXgtd2lkdGggMTExOXB4O1xuJG1xLW5vdC14LWxhcmdlOiBtYXgtd2lkdGggMTI1OXB4O1xuXG4vKiBIZWlnaHRzICovXG5cbiRtcS14LXNob3J0OiBtaW4taGVpZ2h0IDQwMHB4O1xuJG1xLXNob3J0OiBtaW4taGVpZ2h0IDUwMHB4O1xuJG1xLXRhbGw6IG1pbi1oZWlnaHQgNjAwcHg7XG4kbXEteC10YWxsOiBtaW4taGVpZ2h0IDcwMHB4O1xuXG4kbXEtbm90LXgtc2hvcnQ6IG1heC1oZWlnaHQgMzk5cHg7XG5cbi8qIE9yaWVudGF0aW9ucyAqL1xuXG4kbXEtcG9ydHJhaXQ6IG9yaWVudGF0aW9uIHBvcnRyYWl0O1xuJG1xLWxhbmRzY2FwZTogb3JpZW50YXRpb24gbGFuZHNjYXBlO1xuXG4vKiBDYXBhYmlsaXRpZXMgKi9cblxuJG1xLWhvdmVyLXllczogJ2hvdmVyOiBob3Zlcic7XG4kbXEtaG92ZXItbm86IGhvdmVyIG5vbmU7XG5cbi8qIEFsaWFzZXMgKi9cblxuJG1xLW1haW4tbWFyZ2luOiAkbXEtc21hbGw7XG5cbiRtcS10b3BuYXYtdmlzaWJsZTogJG1xLW1lZGl1bTtcbiRtcS10b3BuYXYtaGlkZGVuOiAkbXEtbm90LW1lZGl1bTtcblxuJG1xLXNpdGUtaGVhZGVyLXRhbGw6ICRtcS10YWxsO1xuXG4kbXEtc3VibmF2LXRvcDogJG1xLW5vdC1zbWFsbDtcbiRtcS1zdWJuYXYtc2lkZTogJG1xLXNtYWxsO1xuXG4kbXEtem9vbS1lbmFibGVkOiAkbXEtc21hbGwgJG1xLXNob3J0O1xuIiwiJGRlYnVnOiBmYWxzZTtcblxuJGZvbnQtcGF0aDogJy4uL2ZvbnQnO1xuJGltZy1wYXRoOiAnLi4vaW1hZ2VzJztcblxuJHZpZXdwb3J0LW1pbi13aWR0aDogMzIwcHg7XG5cbiRibG9jay1nYXA6IDJ2bWluO1xuJGJsb2NrLWdhcC1oYWxmOiAxdm1pbjtcblxuJGJsb2NrLWdhcC1oOiAydmg7XG4kYmxvY2stZ2FwLXc6IDJ2dztcbiRibG9jay1nYXAtdy1oYWxmOiAxdnc7XG5cbiRib3gtcmFkaXVzLXNpemU6IDNweDtcblxuJHNpdGUtaGVhZGVyLXRhbGwtaGVpZ2h0OiA2MHB4O1xuJHNpdGUtaGVhZGVyLXNob3J0LWhlaWdodDogNDBweDtcblxuJHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xuXG4kbWFpbi1tYXgtd2lkdGg6IDEzMDBweCAhZGVmYXVsdDtcblxuJG1haW4tbWFyZ2luOiB2YXIoLS1tYWluLW1hcmdpbik7XG4kc2l0ZS1oZWFkZXItaGVpZ2h0OiB2YXIoLS1zaXRlLWhlYWRlci1oZWlnaHQpO1xuXG4kc2l0ZS1oZWFkZXItbWFyZ2luOiB2YXIoLS1zaXRlLWhlYWRlci1tYXJnaW4pO1xuXG4kc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0OiBjYWxjKCN7JHNpdGUtaGVhZGVyLWhlaWdodH0gKyAjeyRzaXRlLWhlYWRlci1tYXJnaW59KTtcbiIsIi8qIFVuaWJvYXJkOiBrZWVwIHRoZSBzYW1lIHBhZ2UgbGF5b3V0IGFjcm9zcyBwYWdlcyAqL1xuXG4kbXEtYm9hcmQtcmVzaXphYmxlOiAkbXEtc21hbGw7XG4kbXEtY29sMS11bmlib2FyZDogJG1xLW5vdC1zbWFsbCAkbXEtcG9ydHJhaXQ7XG4kbXEtY29sMi11bmlib2FyZDogJG1xLXNtYWxsLCAkbXEtbGFuZHNjYXBlO1xuJG1xLWNvbDMtdW5pYm9hcmQ6ICRtcS14LWxhcmdlO1xuXG4vKiB3aGVuIHRoZSB3aWR0aCBpcyBhcHByb3ByaWF0ZSBmb3IgY29sMSwgYnV0IGxhbmRzY2FwZSBwcmV2ZW50cyBpdCAqL1xuJG1xLWNvbDItdW5pYm9hcmQtc3F1ZWV6ZTogJG1xLW5vdC1zbWFsbCAkbXEtbGFuZHNjYXBlO1xuXG4kY29sMy11bmlib2FyZC1zaWRlOiBtaW5tYXgoMjMwcHgsIDIwdncpO1xuJGNvbDMtdW5pYm9hcmQtdGFibGU6IG1pbm1heCgyNDBweCwgNDAwcHgpO1xuJGNvbDMtdW5pYm9hcmQtY29udHJvbHM6IDNyZW07XG5cbiRjb2wzLXVuaWJvYXJkLW1pbi13aWR0aDogY2FsYyg3MHZtaW4gKiB2YXIoLS1ib2FyZC1zY2FsZSkpO1xuJGNvbDMtdW5pYm9hcmQtbWF4LXdpZHRoOiBjYWxjKDEwMHZoICogdmFyKC0tYm9hcmQtc2NhbGUpIC0gI3skc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0fSAtICN7JGNvbDMtdW5pYm9hcmQtY29udHJvbHN9KTtcbiRjb2wzLXVuaWJvYXJkLXdpZHRoOiBtaW5tYXgoJGNvbDMtdW5pYm9hcmQtbWluLXdpZHRoLCAkY29sMy11bmlib2FyZC1tYXgtd2lkdGgpO1xuXG4kY29sMy11bmlib2FyZC1kZWZhdWx0LXNjYWxlOiAwLjk7XG5cbi8vIHpvb206IDg1JVxuJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC1taW4td2lkdGg6IDUwMHB4O1xuJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC1tYXgtd2lkdGg6IGNhbGMoXG4gIDEwMHZoICogI3skY29sMy11bmlib2FyZC1kZWZhdWx0LXNjYWxlfSAtICN7JHNpdGUtaGVhZGVyLW91dGVyLWhlaWdodH0gLSAjeyRjb2wzLXVuaWJvYXJkLWNvbnRyb2xzfVxuKTtcbiRjb2wzLXVuaWJvYXJkLWRlZmF1bHQtd2lkdGg6IG1pbm1heCgjeyRjb2wzLXVuaWJvYXJkLWRlZmF1bHQtbWluLXdpZHRofSwgI3skY29sMy11bmlib2FyZC1kZWZhdWx0LW1heC13aWR0aH0pO1xuXG4kY29sMi11bmlib2FyZC10YWJsZTogJGNvbDMtdW5pYm9hcmQtdGFibGU7XG4kY29sMi11bmlib2FyZC1jb250cm9sczogJGNvbDMtdW5pYm9hcmQtY29udHJvbHM7XG4kY29sMi11bmlib2FyZC13aWR0aDogJGNvbDMtdW5pYm9hcmQtd2lkdGg7XG4kY29sMi11bmlib2FyZC1kZWZhdWx0LXdpZHRoOiAkY29sMy11bmlib2FyZC1kZWZhdWx0LXdpZHRoO1xuXG4kY29sMi11bmlib2FyZC1zcXVlZXplLXRhYmxlOiBtaW5tYXgoMjAwcHgsIDI0MHB4KTtcbiRjb2wyLXVuaWJvYXJkLXNxdWVlemUtd2lkdGg6IG1pbm1heChjYWxjKDU1dm1pbiksIGNhbGMoMTAwdmggLSAjeyRzaXRlLWhlYWRlci1vdXRlci1oZWlnaHR9IC0gI3skYmxvY2stZ2FwfSkpO1xuXG4kY29sMS11bmlib2FyZC1jb250cm9sczogNXJlbTtcbiIsIkBtaXhpbiBib3gtcmFkaXVzIHtcbiAgYm9yZGVyLXJhZGl1czogJGJveC1yYWRpdXMtc2l6ZTtcbn1cblxuQG1peGluIGJveC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbn1cblxuQG1peGluIGJveC1uZWF0IHtcbiAgQGluY2x1ZGUgYm94LXJhZGl1cztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdztcbn1cblxuQG1peGluIGRlYnVnLXpvb20taW5wdXQge1xuICAjem9vbS1pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLXpvb20tZW5hYmxlZCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBib3R0b206IDNweDtcbiAgICAgIHJpZ2h0OiAzcHg7XG4gICAgICB3aWR0aDogMTB2dztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24oJHByb3A6IGFsbCwgJGR1cjogJHRyYW5zaXRpb24tZHVyYXRpb24pIHtcbiAgdHJhbnNpdGlvbjogJHByb3AgJGR1cjtcbn1cblxuQG1peGluIGhvdmVyZmxvdyB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAmOm5vdCg6aG92ZXIpIHtcbiAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgLmJsaW5kLW1vZGUgJiB7XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgfVxufVxuXG5AbWl4aW4gZWxsaXBzaXMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuQG1peGluIGNyb3NzdGFibGUtbGFyZ2Uge1xuICAuY3Jvc3N0YWJsZV9fdXNlcnMge1xuICAgIGZsZXg6IDcgMSBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiBjcm9zc3RhYmxlLXNtYWxsIHtcbiAgLmNyb3NzdGFibGVfX3VzZXJzIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gYm9keS1maXhlZC1zY3JvbGwge1xuICBib2R5IHtcbiAgICAvKiBwcmV2ZW50cyBzY3JvbGwgYmFyIGZsaWNrZXIgd2hlbiBkcmFnZ2luZyBhIHBpZWNlIG91dCAqL1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuIiwiJWJhc2UtZm9udC1mYWxsYmFjayB7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTYW5zJywgU2Fucy1TZXJpZjtcbn1cblxuJWJhc2UtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTYW5zJywgU2Fucy1TZXJpZjtcbn1cblxuJXJvYm90byB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgU2Fucy1TZXJpZjtcbn1cblxuJXJvYm90by1mYXQge1xuICBmb250LWZhbWlseTogJ1JvYm90bycsIFNhbnMtU2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbiVjaGVzcy1mb250IHtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIENoZXNzJywgJ05vdG8gU2Fucyc7XG59XG5cbiVzYW4ge1xuICBAZXh0ZW5kICVjaGVzcy1mb250O1xuXG4gIC5waWVjZS1sZXR0ZXIgJiB7XG4gICAgQGV4dGVuZCAlYmFzZS1mb250O1xuICB9XG5cbiAgZHJhdyB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuICAgIG1hcmdpbi1sZWZ0OiAxY2g7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuXG4vKiB0ZXh0IHByaW50ZWQgZGlyZWN0bHkgb24gdGhlIHBhZ2UgYmFja2dyb3VuZCBkZXNlcnZlcyBzcGVjaWFsIHRyZWF0bWVudCAodHJhbnNwIHRoZW1lKSAqL1xuJXBhZ2UtZm9udCB7XG4gIGNvbG9yOiAkYy1mb250LXBhZ2U7XG59XG5cbiVwYWdlLXRleHQge1xuICBAZXh0ZW5kICVwYWdlLWZvbnQsICVwYWdlLXRleHQtc2hhZG93ICFvcHRpb25hbDtcbn1cblxuJXBhZ2UtbGluayB7XG4gIEBleHRlbmQgJXBhZ2UtbGluay1mb250ICFvcHRpb25hbDtcblxuICBAZXh0ZW5kICVwYWdlLXRleHQtc2hhZG93ICFvcHRpb25hbDtcbn1cblxuJW1ldGFsIHtcbiAgQGluY2x1ZGUgbWV0YWw7XG59XG5cbiVtZXRhbC1ob3ZlciB7XG4gIEBpbmNsdWRlIG1ldGFsLWhvdmVyO1xufVxuXG4lcGFnZS1tZXRhbCB7XG4gIEBpbmNsdWRlIHBhZ2UtbWV0YWw7XG59XG5cbiVwYWdlLW1ldGFsLWhvdmVyIHtcbiAgQGluY2x1ZGUgcGFnZS1tZXRhbDtcbn1cblxuJW1ldGFsLWJnIHtcbiAgQGluY2x1ZGUgbWV0YWwtYmc7XG59XG5cbiVhY3RpdmUtaW5zZXQtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAzcHggNHB4IGhzbGEoMCwgMCwgMCwgMC4xNSkgaW5zZXQ7XG59XG5cbiVhY3RpdmUge1xuICBAZXh0ZW5kICVhY3RpdmUtaW5zZXQtc2hhZG93O1xuXG4gIGJhY2tncm91bmQ6ICRjLWFjY2VudDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggYmxhY2sgIWltcG9ydGFudDtcbn1cblxuJWFjdGl2ZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IG1peCh3aGl0ZSwgJGMtYWNjZW50LCAyMCUpO1xufVxuXG4lYWN0aXZlLXNvZnQge1xuICBAZXh0ZW5kICVhY3RpdmUtaW5zZXQtc2hhZG93O1xuXG4gIGJhY2tncm91bmQ6ICRjLXNoYWRlO1xuICBjb2xvcjogJGMtZm9udC1jbGVhcmVyO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggJGMtZm9udC1zaGFkb3cgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiVkcm9wZG93bi1zaGFkb3cge1xuICBib3gtc2hhZG93OiAtMXB4IDVweCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4lcG9wdXAtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuJWJ1dHRvbi1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCBoc2xhKDAsIDAsIDAlLCAwLjIyNSk7XG59XG5cbiVidXR0b24tcmFpc2VkLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMHB4IGhzbGEoMCwgMCwgMCwgMC4yMjUpO1xufVxuXG4lYnV0dG9uLW5vbmUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAkYy1mb250O1xuICBhbGlnbi1pdGVtczogbm9ybWFsO1xufVxuXG4lY2hlY2tib3gge1xuICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogJGMtYmctcGFnZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGMtYmctbG93O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuNWVtO1xuXG4gICY6Y2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5LWRpbW1lcjtcbiAgICBib3JkZXItY29sb3I6ICRjLXNlY29uZGFyeS1kaW07XG4gIH1cbn1cblxuJWZvY3VzLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgMCAxMnB4ICRjLWZvbnQtZGltO1xufVxuXG4lemFsZ292ZXJmbG93IHtcbiAgLy8gbWl0aWdhdGUgemFsZ28gdGV4dFxuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4lbm93cmFwLWhpZGRlbiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiVub3dyYXAtZWxsaXBzaXMge1xuICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4lYm94LXBhZGRpbmcge1xuICBwYWRkaW5nOiA1dmggdmFyKC0tYm94LXBhZGRpbmcpO1xufVxuXG4lYm94LXBhZGRpbmctaG9yaXoge1xuICBwYWRkaW5nOiAwIHZhcigtLWJveC1wYWRkaW5nKTtcbn1cblxuJWJyZWFrLXdvcmQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4lYnJlYWstd29yZC1oYXJkIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuXG4gIC8qIHN1cHBvcnQ6IGZpcmVmb3ggKi9cbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuJWJyZWFrLW5vcGUge1xuICBvdmVyZmxvdy13cmFwOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbn1cblxuJWVsbGlwc2lzIHtcbiAgQGluY2x1ZGUgZWxsaXBzaXM7XG59XG5cbiVzcXVhcmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuJXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuXG4gIC8qIDE2LzkgKi9cbiAgLy8gcGFkZGluZy1ib3R0b206IDc1JTsgLyogNC8zICovXG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gKiB7XG4gICAgQGV4dGVuZCAlYWJzLTEwMDtcblxuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG4lZ2FtZS1lbWJlZCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLW5vdC14eC1zbWFsbCkge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNjAlO1xuICB9XG59XG5cbiVkYXRhLWljb24ge1xuICBmb250LXNpemU6IDEuMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LWZhbWlseTogJ2xpY2hlc3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtaWNvbik7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuJWRhdGEtaWNvbi10b3Age1xuICAmOjpiZWZvcmUge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgfVxufVxuXG4lZnVsbHNjcmVlbi1tYXNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6ICRjLXBhZ2UtbWFzaztcbiAgei1pbmRleDogeignZnVsbHNjcmVlbi1tYXNrJyk7XG59XG5cbiVsaW5rLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogeignbGluay1vdmVybGF5Jyk7XG59XG5cbiVhYnMtMTAwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4lZG91YmxlLXRhcCB7XG4gIC8vIHByZXZlbnQgaVBhZCBzYWZhcmkgZnJvbSB6b29taW5nIGluIG9uIGRvdWJsZSB0YXBcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG4iLCIlZmxleC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cblxuJWZsZXgtY2VudGVyIHtcbiAgLyogZXh0ZW5kcyAlZmxleC13cmFwICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiVmbGV4LWNlbnRlci1ub3dyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiVmbGV4LWJldHdlZW4ge1xuICAvKiBleHRlbmRzICVmbGV4LWNlbnRlciAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiVmbGV4LWJldHdlZW4tbm93cmFwIHtcbiAgLyogZXh0ZW5kcyAlZmxleC1jZW50ZXIgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiVmbGV4LWJldHdlZW4tc3RyZXRjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbiVmbGV4LWFyb3VuZCB7XG4gIC8qIGV4dGVuZHMgJWZsZXgtY2VudGVyICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4lZmxleC1jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbjtcbn1cbiIsIiVib3gtcmFkaXVzIHtcbiAgQGluY2x1ZGUgYm94LXJhZGl1cztcbn1cblxuJWJveC1yYWRpdXMtZm9yY2Uge1xuICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLyogaGVscHMgd2l0aCBjbGlwcGluZyBiYWNrZ3JvdW5kIGludG8gYm9yZGVyLXJhZGl1cyAqL1xufVxuXG4lYm94LXJhZGl1cy1sZWZ0IHtcbiAgYm9yZGVyLXJhZGl1czogJGJveC1yYWRpdXMtc2l6ZSAwIDAgJGJveC1yYWRpdXMtc2l6ZTtcbn1cblxuJWJveC1yYWRpdXMtcmlnaHQge1xuICBib3JkZXItcmFkaXVzOiAwICRib3gtcmFkaXVzLXNpemUgJGJveC1yYWRpdXMtc2l6ZSAwO1xufVxuXG4lYm94LXJhZGl1cy10b3Age1xuICBib3JkZXItcmFkaXVzOiAkYm94LXJhZGl1cy1zaXplICRib3gtcmFkaXVzLXNpemUgMCAwO1xufVxuXG4lYm94LXJhZGl1cy1ib3R0b20ge1xuICBib3JkZXItcmFkaXVzOiAwIDAgJGJveC1yYWRpdXMtc2l6ZSAkYm94LXJhZGl1cy1zaXplO1xufVxuXG4lYm94LXJhZGl1cy10b3AtbGVmdCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3gtcmFkaXVzLXNpemUgMCAwIDA7XG59XG5cbiVib3gtcmFkaXVzLXRvcC1yaWdodCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgJGJveC1yYWRpdXMtc2l6ZSAwIDA7XG59XG5cbiVib3gtc2hhZG93IHtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdztcbn1cblxuJWJveC1uZWF0IHtcbiAgQGV4dGVuZCAlYm94LXNoYWRvdywgJWJveC1yYWRpdXM7XG59XG5cbiVib3gtbmVhdC10b3Age1xuICBAZXh0ZW5kICVib3gtc2hhZG93LCAlYm94LXJhZGl1cy10b3A7XG59XG5cbiVib3gtbmVhdC1mb3JjZSB7XG4gIEBleHRlbmQgJWJveC1zaGFkb3csICVib3gtcmFkaXVzLWZvcmNlO1xufVxuIiwiJHZwLW1pbi13aWR0aDogMzIwcHggIWRlZmF1bHQ7XG4kdnAtbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCR2YWx1ZSkge1xuICBAcmV0dXJuICR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSk7XG59XG5cbkBtaXhpbiBmbHVpZC1zaXplKCRwcm9wLCAkbWluLXNpemUsICRtYXgtc2l6ZSwgJG1pbi12dzogJHZwLW1pbi13aWR0aCwgJG1heC12dzogJHZwLW1heC13aWR0aCkge1xuICAkdTE6IHVuaXQoJG1pbi12dyk7XG4gICR1MjogdW5pdCgkbWF4LXZ3KTtcbiAgJHUzOiB1bml0KCRtaW4tc2l6ZSk7XG4gICR1NDogdW5pdCgkbWF4LXNpemUpO1xuXG4gIEBpZiAkdTEgPT0gJHUyIGFuZCAkdTEgPT0gJHUzIGFuZCAkdTEgPT0gJHU0IHtcbiAgICAmIHtcbiAgICAgICN7JHByb3B9OiAkbWluLXNpemU7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluLXZ3KSB7XG4gICAgICAgICN7JHByb3B9OiBjYWxjKFxuICAgICAgICAgICN7JG1pbi1zaXplfSArICN7c3RyaXAtdW5pdCgkbWF4LXNpemUgLSAkbWluLXNpemUpfSAqXG4gICAgICAgICAgICAoKDEwMHZ3IC0gI3skbWluLXZ3fSkgLyAje3N0cmlwLXVuaXQoJG1heC12dyAtICRtaW4tdncpfSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtYXgtdncpIHtcbiAgICAgICAgI3skcHJvcH06ICRtYXgtc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcImZsdWlkLXNpemUgcmVxdWlyZXMgdGhhdCBhbGwgdmFsdWVzIGhhdmUgdGhlIHNhbWUgdW5pdFwiO1xuICB9XG59XG4iLCJjb29yZHMge1xuICAvKiBoYW5kbGUgaGlkZGVuIGNvb3JkcyAqL1xuICAuY29vcmRzLW5vICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBoYW5kbGUgaW5uZXIgY29vcmRzICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgQGluY2x1ZGUgZmx1aWQtc2l6ZSgnZm9udC1zaXplJywgOHB4LCAxMnB4KTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggIzAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgJi5yYW5rcyB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTtcbiAgICB0b3A6IDFweDtcbiAgICByaWdodDogMDtcblxuICAgIC8vIGEgbmVnYXRpdmUgdmFsdWUgY3JlYXRlcyBlbXB0eSBzcGFjZSBvbiB0aGUgcmlnaHQgc2lkZSBpbiBtb2JpbGUgYnJvd3NlcnNcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDAuOGVtO1xuXG4gICAgJi5ibGFjayB7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICB9XG4gIH1cblxuICAmLmZpbGVzIHtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZmxleC1mbG93OiByb3c7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxLjRlbTtcblxuICAgICYuYmxhY2sge1xuICAgICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICBjb29yZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICB9XG4gIH1cblxuICBjb29yZCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAvKiBuZWdhdGUgaW5uZXIgY29vcmRzIGNvbG9ycyAqL1xuICAuaXMzZCAuY2ctd3JhcCBjb29yZHMgY29vcmQge1xuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCAjMDAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMzZCAuY2ctd3JhcCBjb29yZHMuZmlsZXMge1xuICAgIGJvdHRvbTogY2FsYygxcHggLSAyLjUlKTtcblxuICAgIGNvb3JkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0ICdjb29yZHMtY29sb3JzJztcblxuLyogaGFuZGxlIG91dGVyIGNvb3JkcyAqL1xuQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMi11bmlib2FyZCkge1xuICAuY29vcmRzLW91dCBjb29yZHMge1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuXG4gICAgJi5yYW5rcyB7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTJweDtcblxuICAgICAgY29vcmQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDIlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpbGVzIHtcbiAgICAgIGJvdHRvbTogLTE1cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5jb29yZHMtb3V0IGNvb3Jkcy5yYW5rcyxcbiAgLmNvb3Jkcy1vdXQgLmlzMmQgY29vcmRzLmZpbGVzIHtcbiAgICBjb29yZCB7XG4gICAgICBjb2xvcjogJGMtZm9udC1wYWdlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIkY29vcmQtY29sb3ItZGVmYXVsdDogI2ZmZjtcbiRjb29yZC1zaGFkb3ctZGVmYXVsdDogMCAxcHggMnB4ICMwMDA7XG5cbmNvb3JkcyB7XG4gIHRleHQtc2hhZG93OiB2YXIoLS1jZy1jcywgJGNvb3JkLXNoYWRvdy1kZWZhdWx0KTtcbn1cblxuLm9yaWVudGF0aW9uLXdoaXRlIC5maWxlcyBjb29yZDpudGgtY2hpbGQoMm4gKyAxKSxcbi5vcmllbnRhdGlvbi13aGl0ZSAucmFua3MgY29vcmQ6bnRoLWNoaWxkKDJuKSxcbi5vcmllbnRhdGlvbi1ibGFjayAuZmlsZXMgY29vcmQ6bnRoLWNoaWxkKDJuKSxcbi5vcmllbnRhdGlvbi1ibGFjayAucmFua3MgY29vcmQ6bnRoLWNoaWxkKDJuICsgMSkge1xuICBjb2xvcjogdmFyKC0tY2ctY2N3LCAkY29vcmQtY29sb3ItZGVmYXVsdCk7XG59XG5cbi5vcmllbnRhdGlvbi13aGl0ZSAuZmlsZXMgY29vcmQ6bnRoLWNoaWxkKDJuKSxcbi5vcmllbnRhdGlvbi13aGl0ZSAucmFua3MgY29vcmQ6bnRoLWNoaWxkKDJuICsgMSksXG4ub3JpZW50YXRpb24tYmxhY2sgLmZpbGVzIGNvb3JkOm50aC1jaGlsZCgybiArIDEpLFxuLm9yaWVudGF0aW9uLWJsYWNrIC5yYW5rcyBjb29yZDpudGgtY2hpbGQoMm4pIHtcbiAgY29sb3I6IHZhcigtLWNnLWNjYiwgJGNvb3JkLWNvbG9yLWRlZmF1bHQpO1xufVxuIiwiYm9keSB7XG4gIC0tYm9hcmQtc2NhbGU6IDE7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtem9vbS1lbmFibGVkKSB7XG4gICAgLy8gLS16b29tOiA4MDsgZGVmaW5lZCBpbiB0aGUgSFRNTCwgbG9hZGVkIGZyb20gc2VydmVyXG4gICAgLS1ib2FyZC1zY2FsZTogY2FsYygodmFyKC0tem9vbSkgLyAxMDApICogMC43ICsgMC4zKTtcbiAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxLXVuaWJvYXJkKSB7XG4gIGJvZHkge1xuICAgIC0tY29sMTogMTtcbiAgfVxuXG4gIC5tYWluLWJvYXJkIGNnLWJvYXJkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4iLCJib2R5Ojotd2Via2l0LXNjcm9sbGJhcixcbmJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIHdpZHRoOiAwLjVyZW07XG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbn1cblxuYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbn1cblxuYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsXG5ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkYy1mb250LWRpbW1lcjtcbn1cbiIsImJvZHkucmVzaXppbmcge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuY2ctcmVzaXplIHtcbiAgJHJlc2l6ZS13aWR0aDogMjJweDtcblxuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWJvYXJkLXJlc2l6YWJsZSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogI3sxM3B4IC0gJHJlc2l6ZS13aWR0aH07XG4gICAgYm90dG9tOiAjezEzcHggLSAkcmVzaXplLXdpZHRofTtcbiAgICB3aWR0aDogJHJlc2l6ZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRyZXNpemUtd2lkdGg7XG4gICAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICB3aWR0aDogNXB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoN3B4LCA4cHgpIHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFweCwgNnB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWFjY2VudCwgMC41KTtcbiAgICB9XG5cbiAgICAucmVzaXppbmcgJiB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1zZWNvbmRhcnksIDAuNSk7XG4gICAgfVxuICB9XG59XG4iLCIjbW9kYWwge1xuICAmLW92ZXJsYXkge1xuICAgIEBleHRlbmQgJWZ1bGxzY3JlZW4tbWFzaywgJWZsZXgtY2VudGVyO1xuXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAmLXdyYXAge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXMsICVwb3B1cC1zaGFkb3csICVmbGV4LWNvbHVtbjtcblxuICAgIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgbWF4LWhlaWdodDogOTZ2aDtcblxuICAgID4gZGl2IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICB9XG5cbiAgICAuY2xvc2Uge1xuICAgICAgY29sb3I6ICRjLWZvbnQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1zbWFsbCkge1xuICAgICAgICB0b3A6IC0xMnB4O1xuICAgICAgICByaWdodDogLTEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXBvcHVwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNsb3NlOmhvdmVyIHtcbiAgICAgIEBleHRlbmQgJWJveC1zaGFkb3c7XG5cbiAgICAgIGJhY2tncm91bmQ6ICRjLWJhZDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuIiwiLmNvbnRpbnVlLXdpdGgge1xuICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICA+ICo6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgfVxufVxuIiwiLmNvbG9yLWljb24ge1xuICBAaWYgJHRoZW1lLWxpZ2h0IHtcbiAgICAmLndoaXRlOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+6Avic7XG4gICAgfVxuXG4gICAgJi5ibGFjazo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICfugL0nO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJi53aGl0ZTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICfugL0nO1xuICAgIH1cblxuICAgICYuYmxhY2s6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn7oC+JztcbiAgICB9XG4gIH1cblxuICAmLnJhbmRvbTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn7oGfJztcbiAgfVxufVxuIiwiQGluY2x1ZGUgY3Jvc3N0YWJsZS1zbWFsbDtcblxuLmNyb3NzdGFibGUge1xuICBAZXh0ZW5kICVib3gtbmVhdC1mb3JjZTtcblxuICB3aWR0aDogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuOWVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgZmlsbCxcbiAgcG92cyB7XG4gICAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgcG92cyxcbiAgJl9fdXNlcnMsXG4gICZfX3Njb3JlLFxuICAmX19tYXRjaHVwIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8qIOKUgOKUgOKUgCBUYWIgYmFyIChmdWxsIHdpZHRoIGZpcnN0IHJvdywgcmVzdCB1bndyYXBwZWQgb24gc2Vjb25kIHJvdykg4pSA4pSA4pSAICovXG4gICZfX3RhYnMge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cblxuICAmX190YWIge1xuICAgIGZsZXg6IDEgMSA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNWVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1wcmltYXJ5LCAkYy1iZy1ib3gsIDEwJSk7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogJGMtcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkYy1wcmltYXJ5LW92ZXI7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAvKiDilIDilIDilIAgRmlsdGVyZWQgdmlldzogaGlkZSBub24tbWF0Y2hpbmcgcG92cyDilIDilIDilIAgKi9cbiAgJi0tZmlsdGVyZWQgcG92czpub3QoLm1hdGNoaW5nKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJl9fdXNlcnMsXG4gICZfX3Njb3JlIHtcbiAgICBAZXh0ZW5kICVtZXRhbDtcbiAgfVxuXG4gICZfX3VzZXJzIHtcbiAgICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICAgIG1heC13aWR0aDogNDB2dztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRibG9jay1nYXA7XG4gICAgfVxuICB9XG5cbiAgJl9fc2NvcmUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgc3BhbiB7XG4gICAgICBwYWRkaW5nOiAwICRibG9jay1nYXA7XG4gICAgfVxuICB9XG5cbiAgJl9fbWF0Y2h1cCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgMjAlKTtcbiAgfVxuXG4gIHBvdnMge1xuICAgIGEge1xuICAgICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBleHRlbmQgJW1ldGFsO1xuXG4gICAgICBhIHtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEubG9zcyB7XG4gICAgICBvcGFjaXR5OiAwLjI7XG4gICAgfVxuXG4gICAgJi5jdXJyZW50IGEge1xuICAgICAgYmFja2dyb3VuZDogbWl4KCRjLWFjY2VudCwgJGMtYmctYm94LCA3MCUpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5uZXcge1xuICAgICAgYm9yZGVyOiAkYy1ib3JkZXI7XG4gICAgfVxuXG4gICAgYS5sb3NzIHtcbiAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1ub3QteC1zbWFsbCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbiArIDEyKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNlcCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cy1sZWZ0O1xuXG4gICAgYm9yZGVyLWxlZnQ6ICRib3JkZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICB9XG5cbiAgLndpbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICRjLWdvb2Q7XG4gIH1cblxuICAubG9zcyB7XG4gICAgY29sb3I6ICRjLWJhZDtcbiAgfVxuXG4gIC51bmF2YWlsYWJsZSB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbn1cbiIsIi5mYnQge1xuICBAZXh0ZW5kICVidXR0b24tbm9uZTtcblxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMS41O1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAmOmhvdmVyOm5vdCguZGlzYWJsZWQpOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtc2Vjb25kYXJ5LCAkYy1iZy1ib3gsIDc1JSk7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxufVxuIiwiLmNtbi10b2dnbGUge1xuICBAZXh0ZW5kICVkb3VibGUtdGFwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiAtOTk5OTlweDtcbn1cblxuLmNtbi10b2dnbGUgKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgcGFkZGluZzogMXB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkYy1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGV4dGVuZCAlZGF0YS1pY29uO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBleHRlbmQgJW1ldGFsO1xuXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAyLjVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIH1cbn1cblxuLmNtbi10b2dnbGU6bm90KDpjaGVja2VkKSArIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmFkO1xufVxuXG4uY21uLXRvZ2dsZS0tc3VidGxlOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjLWZvbnQtZGltbWVyO1xufVxuXG4uY21uLXRvZ2dsZTpjaGVja2VkICsgbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1nb29kO1xufVxuXG4uY21uLXRvZ2dsZTpkaXNhYmxlZCArIGxhYmVsIHtcbiAgb3BhY2l0eTogNjAlO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG59XG5cbi5jbW4tdG9nZ2xlOmZvY3VzOm5vdCg6ZGlzYWJsZWQpICsgbGFiZWwge1xuICBAZXh0ZW5kICVmb2N1cy1zaGFkb3c7XG59XG5cbi5jbW4tdG9nZ2xlOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgKyBsYWJlbCB7XG4gICAgQGV4dGVuZCAlZm9jdXMtc2hhZG93O1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgdHJhbnNpdGlvbjogbWFyZ2luICR0cmFuc2l0aW9uLWR1cmF0aW9uLCBjb2xvciAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAZXh0ZW5kICVtZXRhbC1ob3ZlcjtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24obWFyZ2luKTtcbiAgICB9XG4gIH1cbn1cblxuLmNtbi10b2dnbGU6bm90KDpjaGVja2VkKSArIGxhYmVsIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn7oC/JztcbiAgICBjb2xvcjogJGMtYmFkO1xuICB9XG59XG5cbi5jbW4tdG9nZ2xlLS1zdWJ0bGU6bm90KDpjaGVja2VkKSArIGxhYmVsIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBjb2xvcjogJGMtZm9udC1kaW1tZXI7XG4gIH1cbn1cblxuLmNtbi10b2dnbGU6Y2hlY2tlZCArIGxhYmVsIHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICfugLgnO1xuICAgIGNvbG9yOiAkYy1nb29kO1xuICB9XG59XG4iLCJAbWl4aW4gcmFuZ2UtdGh1bWIge1xuICBAaW5jbHVkZSBtZXRhbDtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYy1mb250LWRpbW1lcjtcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiAxLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbkBtaXhpbiByYW5nZS10cmFjayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbiAgYm9yZGVyLXJhZGl1czogMC41ZW07XG59XG5cbmlucHV0LnJhbmdlIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDA7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICBAaW5jbHVkZSByYW5nZS10cmFjaztcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICBAaW5jbHVkZSByYW5nZS10aHVtYjtcblxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIEBpbmNsdWRlIHJhbmdlLXRyYWNrO1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgcmFuZ2UtdGh1bWI7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ2V4dGVuZCc7XG5cbiRjLWluYWNjdXJhY3k6ICM1NmI0ZTk7XG4kYy1taXN0YWtlOiAjZTY5ZjAwO1xuJGMtYmx1bmRlcjogI2RmNTM1MztcblxuLnR2aWV3MiB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cbiAgJi1jb2x1bW4ge1xuICAgIEBleHRlbmQgJWZsZXgtd3JhcDtcbiAgfVxuXG4gICYtaW5saW5lIHtcbiAgICBwYWRkaW5nOiA3cHggM3B4IDdweCA3cHg7XG4gIH1cblxuICBtb3ZlIHtcbiAgICBAZXh0ZW5kICVtb3ZlO1xuXG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5pbmFjY3VyYWN5IHtcbiAgICAgIGNvbG9yOiAkYy1pbmFjY3VyYWN5O1xuICAgIH1cbiAgICAmLm1pc3Rha2Uge1xuICAgICAgY29sb3I6ICRjLW1pc3Rha2U7XG4gICAgfVxuICAgICYuYmx1bmRlciB7XG4gICAgICBjb2xvcjogJGMtYmx1bmRlcjtcbiAgICB9XG4gIH1cblxuICAmLWNvbHVtbiBtb3ZlIHtcbiAgICBmb250LXNpemU6IDEuMDkyZW07XG4gICAgcGFkZGluZzogMCAycHg7XG4gIH1cblxuICAmLWlubGluZSBtb3ZlIHtcbiAgICBwYWRkaW5nOiAwLjI1ZW0gMC4xN2VtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICBtb3ZlLnBhcmVudCB7XG4gICAgY29sb3I6ICRjLXByaW1hcnk7XG4gIH1cblxuICBjb21tZW50IGEge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICBtb3ZlLmN1cnJlbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWFjY2VudDtcbiAgfVxuXG4gIG1vdmUuYWN0aXZlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCAyNSUpO1xuICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICB9XG5cbiAgJi1pbmxpbmUgbW92ZS5hY3RpdmUsXG4gIGxpbmUgbW92ZS5hY3RpdmUge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgNDAlKTtcbiAgICBjb2xvcjogJGMtZm9udC1jbGVhcmVyO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCA2MCUpO1xuICB9XG5cbiAgbW92ZS5ub25nYW1lIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBtb3ZlOm5vdCguZW1wdHkpOmhvdmVyIHtcbiAgICAmLFxuICAgIGluZGV4LFxuICAgIGV2YWwge1xuICAgICAgYmFja2dyb3VuZDogJGMtcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkYy1wcmltYXJ5LW92ZXI7XG4gICAgfVxuICB9XG5cbiAgJi1pbmxpbmUgbW92ZTpob3ZlciB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cztcbiAgfVxuXG4gIG1vdmUuZW1wdHkge1xuICAgIGNvbG9yOiAkYy1mb250LWRpbW1lcjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICBtb3ZlIGluZGV4IHtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gIH1cblxuICBtb3ZlLmNvbnRleHQtbWVudSB7XG4gICAgYmFja2dyb3VuZDogJGMtYWNjZW50O1xuICAgIGNvbG9yOiAkYy1hY2NlbnQtb3ZlcjtcblxuICAgIGluZGV4IHtcbiAgICAgIGNvbG9yOiAkYy1hY2NlbnQtb3ZlcjtcbiAgICB9XG4gIH1cblxuICAmLWNvbHVtbiBtb3ZlIGluZGV4IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgfVxuXG4gICYtY29sdW1uIG1vdmUgaW5kZXg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gICYtaW5saW5lIG1vdmUgaW5kZXgge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMTEuMTElO1xuICB9XG5cbiAgbGluZSBtb3ZlIHtcbiAgICBjb2xvcjogJGMtZm9udDtcbiAgfVxuXG4gICYtY29sdW1uID4gbW92ZSB7XG4gICAgZmxleDogMCAwIDQzLjUlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiAxLjE4NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1ZW07XG4gICAgcGFkZGluZzogMCAwLjNlbSAwIDAuNWVtO1xuICB9XG5cbiAgJi1jb2x1bW4gPiBpbmRleCArIG1vdmUge1xuICAgIGJvcmRlci1yaWdodDogJGMtYm9yZGVyO1xuICB9XG5cbiAgZXZhbCB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuXG4gICAgZmxleDogMyAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gIH1cblxuICBnbHlwaCB7XG4gICAgQGV4dGVuZCAlYmFzZS1mb250O1xuXG4gICAgbWFyZ2luLWxlZnQ6IDAuMDhlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG5cbiAgLm1vZnctc3RhciB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuMTVlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICYtLWNvbXBsZXRlIHtcbiAgICAgIGNvbG9yOiAjNGNhZjUwOyAvLyBncmVlbiDigJQgY29tcGxldGUgbm9taW5hdGlvblxuICAgIH1cblxuICAgICYtLWRyYWZ0IHtcbiAgICAgIGNvbG9yOiAjZTZiODAwOyAvLyB5ZWxsb3cg4oCUIGRyYWZ0L2luY29tcGxldGUgbm9taW5hdGlvblxuICAgIH1cbiAgfVxuXG4gIHRpY2sge1xuICAgIEBleHRlbmQgJXJvYm90bztcblxuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgc2hhcGVzIHtcbiAgICBmb250LXNpemU6IDAuN2VtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJGMtZ29vZDtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGV4dGVuZCAlZGF0YS1pY29uO1xuICAgICAgY29udGVudDogJ+6Avic7XG4gICAgfVxuICB9XG5cbiAgJi1jb2x1bW4gPiBtb3ZlIGdseXBoIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXNpemU6IDAuODJlbTtcbiAgfVxuXG4gICYtY29sdW1uID4gaW5kZXgge1xuICAgIGZsZXg6IDAgMCAxMyU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmlnaHQ6ICRib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgbGluZS1oZWlnaHQ6IDIuMDdlbTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW1tZXI7XG4gIH1cblxuICA+IGludGVycnVwdCB7XG4gICAgZm9udC1zaXplOiA5NSU7XG4gIH1cblxuICAmLWNvbHVtbiA+IGludGVycnVwdCB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLWJvcmRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtYm9yZGVyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFNjb3R0aXNoIFByb2dyZXNzaXZlIENoZXNzOiBvbmUgc2VyaWVzIHBlciByb3cg4oCUIGluZGV4IHwgcGF3biB8IGNvdW50IHwgbW92ZXNcbiAgJi1jb2x1bW4gZGl2LnBnciB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgID4gaW5kZXgge1xuICAgICAgZmxleDogMCAwIDEwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuMDdlbTtcbiAgICAgIGNvbG9yOiAkYy1mb250LWRpbW1lcjtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiAucGdyLXN5bSB7XG4gICAgICBmbGV4OiAwIDAgMTAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuMDdlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgfVxuXG4gICAgPiAucGdyLWNudCB7XG4gICAgICBmbGV4OiAwIDAgMTIlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuMDdlbTtcbiAgICAgIGNvbG9yOiAkYy1mb250LWRpbW1lcjtcbiAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIH1cblxuICAgID4gbW92ZSB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgZm9udC1zaXplOiAxLjE4NWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNzVlbTtcbiAgICAgIHBhZGRpbmc6IDAgMC4zZW0gMCAwLjVlbTtcbiAgICAgIC8vIE92ZXJyaWRlIG5vcm1hbCBtb3ZlLWxldmVsIGhvdmVyIOKAlCBpbmRpdmlkdWFsIHNwYW5zIGhhbmRsZSB0aGVpciBvd24gaG92ZXJcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4zNWVtO1xuICAgICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjLXByaW1hcnk7XG4gICAgICAgICAgY29sb3I6ICRjLXByaW1hcnktb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCAyNSUpO1xuICAgICAgICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1hY2NlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLWNvbHVtbiA+IGludGVycnVwdCA+IGNvbW1lbnQge1xuICAgIEBleHRlbmQgJWJyZWFrLXdvcmQ7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xuICB9XG5cbiAgJi1pbmxpbmUgY29tbWVudCB7XG4gICAgdmVydGljYWwtYWxpZ246IDQ1JTtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgbWFyZ2luOiAwIDAuMmVtIDAgMC4xZW07XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuXG4gIGNvbW1lbnQgLmJ5IHtcbiAgICBAZXh0ZW5kICVub3dyYXAtZWxsaXBzaXMsICVyb2JvdG87XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IC0wLjNlbTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNGVtO1xuICAgIG1heC13aWR0aDogOWVtO1xuICB9XG5cbiAgJi1jb2x1bW4gY29tbWVudC53aGl0ZSB7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZDtcbiAgfVxuXG4gICYtY29sdW1uIGNvbW1lbnQuYmxhY2sge1xuICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuXG4gICYtY29sdW1uIGNvbW1lbnQuaW5hY2N1cmFjeSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYy1pbmFjY3VyYWN5O1xuICB9XG5cbiAgJi1jb2x1bW4gY29tbWVudC5taXN0YWtlIHtcbiAgICBib3JkZXItY29sb3I6ICRjLW1pc3Rha2U7XG4gIH1cblxuICAmLWNvbHVtbiBjb21tZW50LmJsdW5kZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGMtYmx1bmRlcjtcbiAgfVxuXG4gICYtY29sdW1uIGNvbW1lbnQudW5kZWZpbmVkIHtcbiAgICBib3JkZXItY29sb3I6ICM2NjU1OGM7XG4gIH1cblxuICBsaW5lIGNvbW1lbnQge1xuICAgIGZvbnQtc2l6ZTogOTAlO1xuICB9XG5cbiAgJi1jb2x1bW4gbGluZSBjb21tZW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDNweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgbGluZSBjb21tZW50IC5ieSB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gIGxpbmVzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRjLWJvcmRlcjtcbiAgfVxuXG4gID4gaW50ZXJydXB0ID4gbGluZXMge1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIH1cblxuICBsaW5lcy5zaW5nbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICB9XG5cbiAgbGluZXM6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGxpbmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICB9XG5cbiAgJi1jb2x1bW4gbGluZSB7XG4gICAgbWFyZ2luOiAycHggMDtcbiAgfVxuXG4gIGxpbmVzIGxpbmVzIG1vdmUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuXG4gIGxpbmVzIGxpbmVzIHtcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xuICB9XG5cbiAgbGluZXMgbGluZXM6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYy1ib3JkZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogNnB4O1xuICB9XG5cbiAgbGluZXMgbGluZTo6YmVmb3JlIHtcbiAgICBtYXJnaW4tdG9wOiAwLjY1ZW07XG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgY29udGVudDogJyAnO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYy1ib3JkZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gIH1cblxuICBsaW5lcyBsaW5lczpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5cbiAgaW5saW5lOjpiZWZvcmUsXG4gIGlubGluZTo6YWZ0ZXIge1xuICAgIHZlcnRpY2FsLWFsaWduOiAwLjRlbTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuXG4gIGlubGluZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKCc7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgfVxuXG4gIGlubGluZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJztcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgfVxuXG4gICYtaW5saW5lIGlubGluZTo6YmVmb3JlLFxuICAmLWlubGluZSBpbmxpbmU6OmFmdGVyIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMC43ZW07XG4gIH1cblxuICAuY29uY2VhbCB7XG4gICAgb3BhY2l0eTogMC40O1xuICB9XG5cbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIiVtb3ZlIHtcbiAgQGV4dGVuZCAlc2FuLCAlbm93cmFwLWhpZGRlbjtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIkBpbXBvcnQgJ2N0cmwnO1xuQGltcG9ydCAncHYnO1xuIiwiLmNldmFsIHtcbiAgQGV4dGVuZCAlbWV0YWwtYmc7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAmLmVuYWJsZWQge1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgLnNob3ctdGhyZWF0IHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgLnN3aXRjaCB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuXG4gIHBlYXJsIHtcbiAgICBmbGV4OiAwIDAgNzVweDtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGhlbHAsXG4gIC5lbmdpbmUge1xuICAgIEBleHRlbmQgJW5vd3JhcC1oaWRkZW47XG5cbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgfVxuXG4gIC5lbmdpbmUge1xuICAgIC5jbG91ZCB7XG4gICAgICBAZXh0ZW5kICVyb2JvdG8sICVib3gtcmFkaXVzO1xuXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5LWRpbTtcbiAgICAgIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlcjtcbiAgICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgIC5pbmZvIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAuZGVlcGVyIHtcbiAgICAgIGNvbG9yOiAkYy1wcmltYXJ5O1xuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICB9XG5cbiAgICAuZGVlcGVyOjpiZWZvcmUge1xuICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgfVxuICB9XG5cbiAgLnRlY2hub2xvZ3kge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgJi5nb29kIHtcbiAgICAgIGNvbG9yOiAkYy1nb29kO1xuICAgIH1cbiAgfVxuXG4gIC5iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICB0b3A6IDBweDtcbiAgfVxuXG4gIEBrZXlmcmFtZXMgYmFyLWFuaW0ge1xuICAgIGZyb20ge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMDAwMHB4IDA7XG4gICAgfVxuICB9XG5cbiAgLmJhciBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDtcbiAgICB3aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiAkYy1nb29kO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDFzO1xuXG4gICAgJi50aHJlYXQge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmFkO1xuICAgIH1cbiAgfVxuXG4gICYuY29tcHV0aW5nIC5iYXIgc3BhbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1nLXVybCgnYmFyLWhpZ2hsaWdodC5wbmcnKTtcbiAgICBhbmltYXRpb246IGJhci1hbmltIDEwMDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuXG4gIC5zaG93LXRocmVhdCB7XG4gICAgZmxleDogMCA5OSBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgJjpob3Zlcjpub3QoLmhpZGRlbiksXG4gICAgJi5hY3RpdmUge1xuICAgICAgY29sb3I6ICRjLXJlZDtcbiAgICB9XG5cbiAgICAmLmhpZGRlbiB7XG4gICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG4iLCIucHZfYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIGZvbnQtc2l6ZTogMTNweDtcblxuICAucHYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG4gICAgcGFkZGluZy1yaWdodDogMTRweDtcbiAgICBtaW4taGVpZ2h0OiAyZW07XG5cbiAgICAmLnB2LS1ub3dyYXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7IC8vIFwiZmxleFwiIGRvZXNuJ3Qgc3VwcG9ydCBlbGxpcHNpcyBzbyBzd2l0Y2ggYmFjayB0byBcImJsb2NrXCJcbiAgICAgIGZsZXgtd3JhcDogaW5pdGlhbDtcbiAgICAgIGhlaWdodDogMmVtO1xuICAgICAgQGV4dGVuZCAlbm93cmFwLWVsbGlwc2lzO1xuICAgIH1cblxuICAgICZbZGF0YS11Y2ldOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgMjAlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICBzdHJvbmcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICBAZXh0ZW5kICVzYW47XG5cbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgfVxuXG4gICAgJltkYXRhLXVjaV0gLnB2LXNhbjpob3ZlciB7XG4gICAgICBjb2xvcjogJGMtcHJpbWFyeTtcbiAgICB9XG5cbiAgICAucHYtd3JhcC10b2dnbGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLXNlY29uZGFyeTtcbiAgICAgICAgY29sb3I6ICRjLXNlY29uZGFyeS1vdmVyO1xuICAgICAgfVxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ+KWsic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5wdi0tbm93cmFwIC5wdi13cmFwLXRvZ2dsZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gIC5wdi1ib2FyZCB7XG4gICAgQGV4dGVuZCAlcG9wdXAtc2hhZG93O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogODAlO1xuICAgIGxlZnQ6IDM0cHg7XG4gICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLnB2LWJvYXJkLXNxdWFyZSB7XG4gICAgICBAZXh0ZW5kICVzcXVhcmU7XG5cbiAgICAgIC5jZy13cmFwIHtcbiAgICAgICAgQGV4dGVuZCAlYWJzLTEwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIm1haW4ge1xuICBAaW5jbHVkZSBmbHVpZC1zaXplKCctLWdhdWdlLWdhcCcsIDhweCwgMTdweCk7XG59XG5cbi5ldmFsLWdhdWdlIHtcbiAgd2lkdGg6IHZhcigtLWdhdWdlLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogaWYoJHRoZW1lLWxpZ2h0LCAjZmZmLCAjYTBhMGEwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxLXVuaWJvYXJkKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYucmV2ZXJzZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC43KSBpbnNldDtcbiAgfVxuXG4gIHRpY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiAycHggcmlkZ2UgaWYoJHRoZW1lLWxpZ2h0LCAjZWVlLCAjYTBhMGEwKTtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cblxuICB0aWNrLnplcm8ge1xuICAgIHRvcDogNnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIGZhZGUtb3V0KCRjLWFjY2VudCwgMC42KTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICB9XG5cbiAgLmJsYWNrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiBpZigkdGhlbWUtbGlnaHQsICM4ODgsICM2NjYpO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAxcztcbiAgfVxufVxuIiwiLmFuYWx5c2UtY29udHJvbHMge1xuICBAZXh0ZW5kICVkb3VibGUtdGFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmb250LXNpemU6IDEuM3JlbTtcblxuICAuZmJ0IHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzLWJvdHRvbTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5oaWRkZW4ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC5qdW1wcyB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5mYnQge1xuICAgICAgZmxleDogMSAxIDMwJTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZsZXg6IDEgMSAyMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjcHJvbW90aW9uLWNob2ljZSB7XG4gIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWJnLXBhZ2UsIDAuMyk7XG4gIHotaW5kZXg6IHooJ2NnX19wcm9tb3Rpb24nKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1jZy13aWR0aCwgMTAwJSk7XG4gIGhlaWdodDogdmFyKC0tY2ctaGVpZ2h0LCAxMDAlKTtcbiAgcmlnaHQ6IDA7XG5cbiAgc3F1YXJlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiMGIwYjA7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDI1cHggM3B4ICM4MDgwODA7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICB9XG5cbiAgcGllY2Uge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAvKiBjYW5jZWxzIGJsaW5kZm9sZCAqL1xuICB9XG5cbiAgLmlzMmQgJiBwaWVjZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgfVxuXG4gIHNxdWFyZTpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDQ4cHggOHB4ICRjLWFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgfVxuXG4gIC5pczJkICYgc3F1YXJlOmhvdmVyIHBpZWNlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cbiIsIi52YXJpYW50LXJhY2luZ0tpbmdzIC5jZy13cmFwIHtcbiAgJi5jZy13cmFwIGNnLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICBAZXh0ZW5kICVwb3B1cC1zaGFkb3c7XG5cbiAgICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCA5MCUsIDAuMik7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMi41JTtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJi5vcmllbnRhdGlvbi13aGl0ZSBjZy1jb250YWluZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgJi5vcmllbnRhdGlvbi1ibGFjayBjZy1jb250YWluZXI6OmJlZm9yZSB7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG5cbi52YXJpYW50LWtpbmdPZlRoZUhpbGwgY2ctY29udGFpbmVyOjpiZWZvcmUge1xuICB3aWR0aDogMjUlO1xuICBoZWlnaHQ6IDI1JTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjcpO1xuICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCA5MCUsIDAuMik7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzcuNSU7XG4gIGxlZnQ6IDM3LjUlO1xuICB6LWluZGV4OiAxO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ2Ntbi10b2dnbGUnO1xuQGltcG9ydCAnLi4vY29tcG9uZW50L2ZsYXNoJztcblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuXG4uZm9ybS1zcGxpdCB7XG4gIEBleHRlbmQgJWZsZXgtYmV0d2VlbjtcblxuICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbn1cblxuLmZvcm0taGFsZiB7XG4gIGZsZXg6IDEgMSA0OCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG5cbi5mb3JtLXRoaXJkIHtcbiAgZmxleDogMSAxIDMxJTtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEteHgtc21hbGwpIHtcbiAgLmZvcm0taGFsZixcbiAgLmZvcm0tdGhpcmQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgfVxufVxuXG4uZm9ybS1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMi43ZW0gKyAycHgpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5mb3JtLWNvbnRyb2w6aW52YWxpZCxcbi5mb3JtLWdyb3VwLmlzLWludmFsaWQgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogJGMtZXJyb3I7XG59XG5cbi5mb3JtMyAuZXJyb3IsXG4uZm9ybS1oZWxwLFxuLnBhc3N3b3JkLWNvbXBsZXhpdHktbGFiZWwge1xuICBmb250LXNpemU6IDkwJTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLmZvcm0zIC5lcnJvciB7XG4gIGNvbG9yOiAkYy1lcnJvcjtcbn1cblxuLmZvcm0taGVscCxcbi5wYXNzd29yZC1jb21wbGV4aXR5LWxhYmVsIHtcbiAgY29sb3I6ICRjLWZvbnQtZGltO1xufVxuXG4uZm9ybS1jaGVjayB7XG4gIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5mb3JtLWNoZWNrIC5mb3JtLWxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZm9ybS1hY3Rpb25zIHtcbiAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuXG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbn1cblxuLmZvcm0tYWN0aW9ucy5zaW5nbGUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uZm9ybTMgaHIge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6ICRib3JkZXI7XG59XG5cbi5wYXNzd29yZC1jb21wbGV4aXR5IHtcbiAgbWFyZ2luLXRvcDogLTJyZW07XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cbi5wYXNzd29yZC1jb21wbGV4aXR5LW1ldGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1nYXA6IDAuMjVyZW07XG4gIGhlaWdodDogMC40cmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gID4gKiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgICB3aWR0aDogMjUlO1xuICB9XG59XG4iLCIuZmxhc2gge1xuICBtYXJnaW46IDFlbSAwIDJlbSAwO1xuXG4gICZfX2NvbnRlbnQge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgICBwYWRkaW5nOiAxZW0gMmVtO1xuICAgIGJhY2tncm91bmQ6ICRjLWdvb2Q7XG4gICAgY29sb3I6ICRjLWdvb2Qtb3ZlcjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICVkYXRhLWljb247XG5cbiAgICAgIGNvbnRlbnQ6ICfugLgnO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6ICRjLWdvb2Qtb3ZlcjtcbiAgICB9XG4gIH1cblxuICAmLXdhcm5pbmcgLmZsYXNoX19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy13YXJuO1xuICAgIGNvbG9yOiAkYy13YXJuLW92ZXI7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGV4dGVuZCAlZGF0YS1pY29uO1xuXG4gICAgICBjb250ZW50OiAn7oCFJztcbiAgICB9XG4gIH1cblxuICAmLWZhaWx1cmUgLmZsYXNoX19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iYWQ7XG4gICAgY29sb3I6ICRjLWJhZC1vdmVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBleHRlbmQgJWRhdGEtaWNvbjtcblxuICAgICAgY29udGVudDogJ+6BnSc7XG4gICAgfVxuICB9XG59XG4iLCIkYy10YWJzLWFjdGl2ZTogJGMtYWNjZW50ICFkZWZhdWx0O1xuXG4udGFicy1ob3JpeiB7XG4gIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcCwgJXBhZ2UtdGV4dDtcblxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGMtYm9yZGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1ub3QteHgtc21hbGwpIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNWVtIDAuMmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yLCAwLjI1cyk7XG5cbiAgICBtaW4td2lkdGg6IDE1JTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEteHgtc21hbGwpIHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtdGFicy1hY3RpdmUsIDAuMyk7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA5NiU7XG4gICAgICBsZWZ0OiAyJTtcbiAgICAgIGJvdHRvbTogLTJweDtcblxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDAuMjVzKTtcblxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGMtdGFicy1hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgLnVucmVhZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICB9XG59XG4iLCIuc2xpc3Qge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcblxuICB0aGVhZCB7XG4gICAgQGV4dGVuZCAlbWV0YWwsICVyb2JvdG87XG5cbiAgICB0aCB7XG4gICAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjhyZW07XG4gICAgfVxuXG4gICAgdGgubGFyZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgIHBhZGRpbmc6IDFyZW07XG5cbiAgICAubGFiZWwge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gIH1cblxuICB0ZDpmaXJzdC1jaGlsZCxcbiAgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICB9XG5cbiAgJi1wYWQge1xuICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tYm94LXBhZGRpbmcpO1xuICAgIH1cblxuICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ib3gtcGFkZGluZyk7XG4gICAgfVxuICB9XG5cbiAgJi1pbnZlcnQge1xuICAgIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgIH1cblxuICAgIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLmNvbnRleHQtc3RyZWFtZXJzIHtcbiAgbWF4LWhlaWdodDogMjB2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNvbnRleHQtc3RyZWFtZXIge1xuICBAZXh0ZW5kICVub3dyYXAtaGlkZGVuLCAlYm94LXJhZGl1cy1ib3R0b20sICVib3gtc2hhZG93LCAlZmxleC1jZW50ZXItbm93cmFwO1xuXG4gIGhlaWdodDogMi4yZW07XG4gIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBtaXgoJGMtc2Vjb25kYXJ5LCAkYy1iZy1wYWdlLCA2MCUpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLXBhZ2UsIDgwJSk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvYmFzZS9zY3JvbGxiYXInO1xuXG5AaW1wb3J0ICd0YWInO1xuQGltcG9ydCAnbWVtYmVycyc7XG5AaW1wb3J0ICdkaXNjdXNzaW9uJztcbkBpbXBvcnQgJ3BhbGFudGlyJztcblxuLm1jaGF0IHtcbiAgQGV4dGVuZCAlYm94LW5lYXQtZm9yY2UsICVmbGV4LWNvbHVtbjtcblxuICBncmlkLWFyZWE6IGNoYXQ7XG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAmX19jb250ZW50IHtcbiAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5ub3RlIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjdlbTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICByZXNpemU6IG5vbmU7XG5cbiAgICAgIC8vIFByZXZlbnQgU2FmYXJpIGlPUyBhdXRvLXpvb20gd2hlbiBmb2N1c2VkICh0cmlnZ2VyZWQgd2hlbiBmb250LXNpemUgPCAxNnB4KVxuICAgICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWluLWhlaWdodDogMTVlbTtcbn1cbiIsIi5tY2hhdCB7XG4gICZfX3RhYnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX190YWIge1xuICAgIEBleHRlbmQgJXJvYm90bywgJW5vd3JhcC1oaWRkZW4sICVib3gtcmFkaXVzLXRvcDtcblxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjRlbSAxMHB4O1xuXG4gICAgLy8gYmFja2dyb3VuZDogJGMtc2hhZGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAkYy1mb250LXBhZ2U7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtYWNjZW50LCAkYy1iZy1ib3gsIDE1JSk7XG4gICAgfVxuXG4gICAgJi1hY3RpdmUge1xuICAgICAgY29sb3I6ICRjLWZvbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3ggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAZXh0ZW5kICVjaGVja2JveDtcbiAgICB9XG5cbiAgICAmLWFjdGl2ZSBpbnB1dCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIEBleHRlbmQgJW5vd3JhcC1lbGxpcHNpcztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtb3B0aW9uYWwgLm1jaGF0X190YWIuZGlzY3Vzc2lvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuIiwiLmNoYXRfX21lbWJlcnMge1xuICBAZXh0ZW5kICVwYWdlLXRleHQ7XG5cbiAgZm9udC1zaXplOiAwLjllbTtcblxuICAvLyBtaW4taGVpZ2h0OiA1ZW07XG4gIC8vIG1heC1oZWlnaHQ6IDllbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgJl9fbnVtYmVyIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNlbnRlci1ub3dyYXA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxY2g7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjJjaDtcbiAgICB9XG4gIH1cbn1cbiIsIi5tY2hhdCB7XG4gICZfX21lc3NhZ2VzIHtcbiAgICBAZXh0ZW5kICVicmVhay13b3JkO1xuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWF4LWhlaWdodDogNTB2aDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDMtdW5pYm9hcmQpIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgY3Vyc29yOiBpbml0aWFsO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG5cbiAgICBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwLjVlbSA1cHggMC41ZW0gMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuXG4gICAgICAmLm1lIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkYy1zZWNvbmRhcnktZGltO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgICAgIH1cblxuICAgICAgJi5ob3N0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYy1zZWNvbmRhcnktZGltLCAwLjQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZWxldGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAuc3lzdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5hbm5vdW5jZW1lbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuMWVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAuY29sb3IsXG4gICAgLnVzZXItbGluayB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNGVtO1xuICAgICAgbWF4LXdpZHRoOiAxMTBweDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG5cbiAgICBsaW5lLnBhdHJvbiB7XG4gICAgICBmb250LXNpemU6IDEuMWVtO1xuICAgICAgd2lkdGg6IDEuMmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkYy1icmFnO1xuICAgIH1cblxuICAgIC51dGl0bGUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgfVxuXG4gICAgYTpub3QoLnVzZXItbGluaykge1xuICAgICAgQGV4dGVuZCAlcm9ib3RvO1xuICAgIH1cblxuICAgIGkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNXB4O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICBjb2xvcjogJGMtYWNjZW50O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsaTpob3ZlciBpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAycHggJGMtYmctYm94LCAwIDAgNXB4ICRjLWJnLWJveCwgMCAwIDEwcHggJGMtYmctYm94O1xuICAgIH1cblxuICAgIGxpLm1lIGkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICZfX3NheSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAzcHggMjBweCAzcHggNHB4O1xuXG4gICAgLy8gUHJldmVudCBTYWZhcmkgaU9TIGF1dG8tem9vbSB3aGVuIGlucHV0IGlzIGZvY3VzZWQgKHRyaWdnZXJlZCB3aGVuIGZvbnQtc2l6ZSA8IDE2cHgpXG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgICYud2hpc3BlciB7XG4gICAgICBjb2xvcjogJGMtZ29vZDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgfVxufVxuIiwiQGtleWZyYW1lcyBwYWxhbnRpci1nbG93aW5nIHtcbiAgNDAlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtc2Vjb25kYXJ5LCAkYy1iZy1ib3gsIDMwJSk7XG4gIH1cblxuICA2MCUge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1wcmltYXJ5LCAkYy1iZy1ib3gsIDMwJSk7XG4gIH1cblxuICA3MCUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cblxuLnBhbGFudGlyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIGFuaW1hdGlvbjogcGFsYW50aXItZ2xvd2luZyAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiAwIDNweCAwIDA7XG5cbiAgJi1zbG90IHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgb3BhY2l0eTogMC42O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gICYtb2ZmIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cblxuICAmLW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1nb29kO1xuICAgIGNvbG9yOiAkYy1nb29kLW92ZXI7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iYWQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkYy1iYWQtb3ZlciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICB0b3A6IDFweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuIiwiLnBvY2tldCB7XG4gIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDYyLjUlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDItdW5pYm9hcmQpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpIGluc2V0O1xuICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gIH1cblxuICAmLWMxIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMTB2bWluO1xuICB9XG5cbiAgJi1jMiB7XG4gICAgQGV4dGVuZCAlc3F1YXJlO1xuICB9XG5cbiAgcGllY2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGV4dGVuZCAlYWN0aXZlLCAlYm94LXJhZGl1cztcblxuICAgICAgY29udGVudDogYXR0cihkYXRhLW5iKTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuOWVtO1xuICAgICAgcGFkZGluZzogM3B4IDAuM2VtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIH1cblxuICAgICZbZGF0YS1uYj0nMCddIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIG9wYWNpdHk6IDAuMTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYucHJlbW92ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICAgIH1cbiAgfVxuXG4gICYudXNhYmxlIHtcbiAgICBwaWVjZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQ6aG92ZXIge1xuICAgICAgICBAZXh0ZW5kICVib3gtcmFkaXVzLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJsaW5kZm9sZCAmOm5vdCgudXNhYmxlKSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vYW5hbHlzZS5iYXNlJztcbkBpbXBvcnQgJy4uL2FjcGwnO1xuXG5AaW1wb3J0ICdsYXlvdXQnO1xuQGltcG9ydCAnbGlzdCc7XG5AaW1wb3J0ICdjaGFwdGVycyc7XG5AaW1wb3J0ICdtZW1iZXJzJztcbkBpbXBvcnQgJ3BsYXllcic7XG5AaW1wb3J0ICdtb2RhbCc7XG5AaW1wb3J0ICdlZGl0b3InO1xuQGltcG9ydCAnYnV0dG9ucyc7XG5AaW1wb3J0ICdpbnZpdGUnO1xuQGltcG9ydCAnZGVzYyc7XG5AaW1wb3J0ICdwYW5lbC9tZXRhZGF0YSc7XG5AaW1wb3J0ICdwYW5lbC9jb21tZW50JztcbkBpbXBvcnQgJ3BhbmVsL2dseXBoJztcbkBpbXBvcnQgJ3BhbmVsL3NoYXJlJztcbkBpbXBvcnQgJ3BhbmVsL211bHRpYm9hcmQnO1xuQGltcG9ydCAncGFuZWwvc2VydmVyLWV2YWwnO1xuQGltcG9ydCAncGFuZWwvbWVzc2FnZSc7XG4iLCJAaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG4lYm9yZGVyLWJvdHRvbS1hY3RpdmUge1xuICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDIpIHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGMtc2Vjb25kYXJ5O1xuICB9XG59XG5cbkBpbXBvcnQgJ2xheW91dCc7XG5AaW1wb3J0ICd0b29scyc7XG5AaW1wb3J0ICdhY3Rpb24tbWVudSc7XG5AaW1wb3J0ICdleHBsb3Jlci9leHBsb3Jlcic7XG5AaW1wb3J0ICd0cmFpbmluZyc7XG5AaW1wb3J0ICdwcmFjdGljZSc7XG5AaW1wb3J0ICdmb3JrJztcbkBpbXBvcnQgJ3NpZGUnO1xuQGltcG9ydCAnY29udGV4dC1tZW51JztcbkBpbXBvcnQgJ3BsYXllci1jbG9jayc7XG5AaW1wb3J0ICdtb2Z3JztcblxuLy8gQGltcG9ydCAnc2lkZS1jbG9jayc7XG4iLCIkbXEtY29sMTogJG1xLWNvbDEtdW5pYm9hcmQ7XG4kbXEtY29sMjogJG1xLWNvbDItdW5pYm9hcmQ7XG4kbXEtY29sMzogJG1xLWNvbDMtdW5pYm9hcmQ7XG5cbiRtZXRhLWhlaWdodDogdmFyKC0tbWV0YS1oZWlnaHQpO1xuJGNoYXQtaGVpZ2h0OiB2YXIoLS1jaGF0LWhlaWdodCk7XG4iLCJib2R5IHtcbiAgLyogcHJldmVudHMgc2Nyb2xsIGJhciBmbGlja2VyIG9uIHBhZ2UgaGVpZ2h0IGNoYW5nZXMgKi9cbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4jbWFpbi13cmFwIHtcbiAgLS1tYWluLW1heC13aWR0aDogY2FsYygxMDB2aCAtICN7JHNpdGUtaGVhZGVyLW91dGVyLWhlaWdodH0gLSAjeyRjb2wxLXVuaWJvYXJkLWNvbnRyb2xzfSk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMikge1xuICAgIC0tbWFpbi1tYXgtd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLmFuYWx5c2Uge1xuICBncmlkLWFyZWE6IG1haW47XG4gIGRpc3BsYXk6IGdyaWQ7XG5cbiAgJl9fc2lkZSB7XG4gICAgZ3JpZC1hcmVhOiBzaWRlO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgbWFyZ2luOiAkYmxvY2stZ2FwO1xuICB9XG5cbiAgJl9fYm9hcmQge1xuICAgIGdyaWQtYXJlYTogYm9hcmQ7XG4gIH1cblxuICAucmVsYXktdG91ciB7XG4gICAgZ3JpZC1yb3ctc3RhcnQ6IGJvYXJkO1xuICAgIGdyaWQtcm93LWVuZDogdG9vbHM7XG4gICAgZ3JpZC1jb2x1bW46IGJvYXJkO1xuICB9XG5cbiAgJl9fdG9vbHMge1xuICAgIGdyaWQtYXJlYTogdG9vbHM7XG4gIH1cblxuICAmX19jb250cm9scyB7XG4gICAgZ3JpZC1hcmVhOiBjb250cm9scztcbiAgfVxuXG4gICZfX3VuZGVyYm9hcmQge1xuICAgIGdyaWQtYXJlYTogdW5kZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxLXVuaWJvYXJkKSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBoZWxwcyB0cnVuY2F0aW5nIGxvbmcgc3R1ZHkgbmFtZXNcbiAgICB9XG4gIH1cblxuICAmX19hY3BsIHtcbiAgICBncmlkLWFyZWE6IGFjcGw7XG4gIH1cblxuICAuY2hhdF9fbWVtYmVycyB7XG4gICAgZ3JpZC1hcmVhOiB1Y2hhdDtcbiAgfVxuXG4gIC5ldmFsLWdhdWdlIHtcbiAgICBncmlkLWFyZWE6IGdhdWdlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAtLW1ldGEtaGVpZ2h0OiBhdXRvO1xuICAtLWNoYXQtaGVpZ2h0OiBmaXQtY29udGVudCgwKTtcbiAgJi0td2lraSB7XG4gICAgLS1jaGF0LWhlaWdodDogMDtcbiAgfVxuXG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIG1pbm1heCgyMGVtLCAzMHZoKTtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAnYm9hcmQnXG4gICAgJ2NvbnRyb2xzJ1xuICAgICd0b29scydcbiAgICAnc2lkZSdcbiAgICAnYWNwbCdcbiAgICAndW5kZXInXG4gICAgJ2NoYXQnXG4gICAgJ3VjaGF0JztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAkY29sMi11bmlib2FyZC13aWR0aCB2YXIoLS1nYXVnZS1nYXApICRjb2wyLXVuaWJvYXJkLXRhYmxlO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogZml0LWNvbnRlbnQoMCk7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICdib2FyZCAgICAgIGdhdWdlIHRvb2xzJ1xuICAgICAgJ3VuZGVyICAgICAgLiAgICAgY29udHJvbHMnXG4gICAgICAndW5kZXIgICAgICAuICAgICBhY3BsJ1xuICAgICAgJ3VuZGVyICAgICAgLiAgICAgc2lkZSdcbiAgICAgICdjaGF0ICAgICAgIC4gICAgIHNpZGUnXG4gICAgICAndWNoYXQgICAgICAuICAgICBzaWRlJztcbiAgICBncmlkLXJvdy1nYXA6IDA7XG5cbiAgICAmX19zaWRlLFxuICAgIC5jaGF0X19tZW1iZXJzLFxuICAgIC5tY2hhdCB7XG4gICAgICBtYXJnaW46ICRibG9jay1nYXAgMCAwIDA7XG4gICAgfVxuXG4gICAgJl9fdW5kZXJib2FyZCB7XG4gICAgICBtYXJnaW4tdG9wOiAyM3B4O1xuICAgIH1cblxuICAgIC5ldmFsLWdhdWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5yZWxheS10b3VyIHtcbiAgICAgIGdyaWQtcm93LWVuZDogdW5kZXI7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMi11bmlib2FyZC1zcXVlZXplKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAkY29sMi11bmlib2FyZC1zcXVlZXplLXdpZHRoIHZhcigtLWdhdWdlLWdhcCkgJGNvbDItdW5pYm9hcmQtc3F1ZWV6ZS10YWJsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDMpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRjb2wzLXVuaWJvYXJkLXNpZGUgJGJsb2NrLWdhcCAkY29sMy11bmlib2FyZC13aWR0aCB2YXIoLS1nYXVnZS1nYXApICRjb2wzLXVuaWJvYXJkLXRhYmxlO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogJG1ldGEtaGVpZ2h0ICRjaGF0LWhlaWdodCAyLjVlbSAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICdzaWRlICAgIC4gYm9hcmQgZ2F1Z2UgdG9vbHMnXG4gICAgICAnY2hhdCAgICAuIGJvYXJkIGdhdWdlIHRvb2xzJ1xuICAgICAgJ3VjaGF0ICAgLiB1bmRlciAuICAgICBjb250cm9scydcbiAgICAgICd1Y2hhdCAgIC4gdW5kZXIgLiAgICAgYWNwbCc7XG5cbiAgICAmX19zaWRlIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLm1jaGF0IHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgY3Jvc3N0YWJsZS1sYXJnZTtcbiAgfVxufVxuIiwiLmFuYWx5c2Uge1xuICAmX190b29scyB7XG4gICAgQGV4dGVuZCAlYm94LW5lYXQtZm9yY2UsICVmbGV4LWNvbHVtbjtcblxuICAgIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcblxuICAgIC5jZXZhbCB7XG4gICAgICBmbGV4OiAwIDAgMzhweDtcbiAgICB9XG5cbiAgICAuc3ViLWJveCB7XG4gICAgICBAZXh0ZW5kICVib3JkZXItYm90dG9tLWFjdGl2ZTtcblxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS45ZW07XG4gICAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgNDAlKTtcbiAgICAgICAgcGFkZGluZzogMCA3cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbXAtb2ZmX19oaW50IHtcbiAgICAgIEBleHRlbmQgJW1ldGFsLWJnO1xuXG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICBwYWRkaW5nOiAwLjNlbSAxZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIEBleHRlbmQgJWJ1dHRvbi1ub25lO1xuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgIGNvbG9yOiAkYy1saW5rO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkYy1saW5rLWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbW92ZXMge1xuICAgIGZsZXg6IDIgMSAwO1xuXG4gICAgLy8gMCBzaXplIGZvcmNlcyB2ZXJ0aWNhbCBzY3JvbGxiYXJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgIC8vIGVsc2UgYSBzY3JvbGxiYXIgYXBwZWFycyBzb21ldGltZXNcbiAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qIHJlcXVpcmVkIHNvIGxpbmU6OmJlZm9yZSBzY3JvbGxzIGFsb25nIHRoZSBtb3ZlcyEgKi9cbiAgICAucmVzdWx0LFxuICAgIC5zdGF0dXMge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnJlc3VsdCB7XG4gICAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgcGFkZGluZzogNXB4IDAgM3B4IDA7XG4gICAgfVxuXG4gICAgLnN0YXR1cyB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fY29udHJvbHMge1xuICAgIGhlaWdodDogJGNvbDMtdW5pYm9hcmQtY29udHJvbHM7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgLmp1bXBzIHtcbiAgICAgIGZsZXg6IDMgMSBhdXRvO1xuICAgIH1cblxuICAgIC5mYnQge1xuICAgICAgQGV4dGVuZCAlcGFnZS10ZXh0O1xuXG4gICAgICBmbGV4OiAwIDAgMi41cmVtO1xuICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcztcbiAgICB9XG5cbiAgICAuYWN0aXZlIHtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIH1cblxuICAgIDo6YmVmb3JlIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMSkge1xuICAgICAgaGVpZ2h0OiAkY29sMS11bmlib2FyZC1jb250cm9scztcblxuICAgICAgLmZidCB7XG4gICAgICAgIGZsZXg6IDAgMCAzLjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYWN0aW9uLW1lbnUge1xuICBAZXh0ZW5kICVib3JkZXItYm90dG9tLWFjdGl2ZTtcblxuICBmbGV4OiAxIDEgMDtcblxuICAvLyAwIHNpemUgZm9yY2VzIHZlcnRpY2FsIHNjcm9sbGJhclxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6ICRibG9jay1nYXA7XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWFyZ2luOiAkYmxvY2stZ2FwIDAgM3B4IDA7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAwLjVlbTtcbiAgICAgIHdpZHRoOiA0NSU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAmX190b29scyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICAgPiAqIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuXG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogNzVweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgY29sb3I6ICRjLWZvbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hdXRvcGxheSB7XG4gICAgQGV4dGVuZCAlZmxleC13cmFwO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBwYWRkaW5nOiA3cHggMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBmb3JtLmRlbGV0ZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuXG4gICAgLmJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgfVxuICB9XG5cbiAgLnNldHRpbmcge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi10b3A6ICRibG9jay1nYXA7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGxhYmVsIHtcbiAgICAgIGZsZXg6IDQgMSBhdXRvO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPSdyYW5nZSddIHtcbiAgICAgIGZsZXg6IDEgNCBhdXRvO1xuICAgICAgcGFkZGluZzogMCAwIDAgMWVtO1xuICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIDFjaDtcblxuICAgICAgJlttaW49JzAnXSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJhbmdlX3ZhbHVlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxKSB7XG4gICAgLmFic2V0LWlubGluZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIGZvcmNlIGlubGluZSBvbiBtb2JpbGVcbiAgfVxufVxuIiwiQGltcG9ydCAnLi9jb25maWcnO1xuXG4uZXhwbG9yZXItYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAzIDEgMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmb250LXNpemU6IDAuOWVtO1xuXG4gICYucmVkdWNlZCB7XG4gICAgZmxleDogMC4zIDMgMHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBmbGV4OiAxIDIgMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5vdmVybGF5IHtcbiAgICBAZXh0ZW5kICVsaW5rLW92ZXJsYXk7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi5sb2FkaW5nIC5vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRib2R5IHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICB9XG5cbiAgJi5sb2FkaW5nIHRib2R5IHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cblxuICAudGl0bGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIH1cbiAgLmV4cGxvcmVyLXRpdGxlIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNlbnRlci1ub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuOWVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgJGMtYmctYm94LCAzMCUpO1xuICAgIC5kZGxvYWRlciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgICB9XG4gICAgLmFjdGl2ZSB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWNlbnRlci1ub3dyYXA7XG4gICAgICBwYWRkaW5nOiAwIDdweDtcbiAgICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICAgICAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgJGMtYmctYm94LCA0MCUpO1xuICAgICAgc3Ryb25nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVjaDtcbiAgICAgIH1cbiAgICAgICYucGxheWVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAubG9uZyB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTAuMWNoO1xuICAgIH1cbiAgICBidXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCAwLjVjaDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjLWZvbnQtY2xlYXI7XG4gICAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgNTAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLm1lc3NhZ2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIHRyIHtcbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iZy16ZWJyYTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgMjAlKTtcbiAgICB9XG4gIH1cblxuICB0ZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICB9XG5cbiAgLm1vdmVzIHtcbiAgICB0aCB7XG4gICAgICBAZXh0ZW5kICVyb2JvdG87XG4gICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhlbTtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgNDAlKTtcbiAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgIH1cbiAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBAZXh0ZW5kICVzYW47XG5cbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gICAgfVxuXG4gICAgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDdweDtcbiAgICB9XG5cbiAgICB0Ym9keSB0ci5zdW0ge1xuICAgICAgLyogc3VtIHJvdyAqL1xuICAgICAgYmFja2dyb3VuZDogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgMjUlKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyKSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLXgtc2hvcnQpIHtcbiAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmFyIHNwYW4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAwIHNvbGlkIGZhZGUtb3V0KCRjLWZvbnQsIDAuODMpO1xuICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMXM7XG4gIH1cblxuICAud2hpdGUge1xuICAgIGJhY2tncm91bmQ6IGlmKCR0aGVtZS1saWdodCwgI2ZmZiwgI2NjYyk7XG4gICAgYm94LXNoYWRvdzogMCAtNXB4IDdweCByZ2JhKDAsIDAsIDAsIGlmKCR0aGVtZS1saWdodCwgMC4xLCAwLjI1KSkgaW5zZXQ7XG5cbiAgICBAaWYgJHRoZW1lLWRhcmsge1xuICAgICAgY29sb3I6ICMyMjI7XG4gICAgfVxuICB9XG5cbiAgLmRyYXdzLFxuICAuYmxhY2sge1xuICAgIGNvbG9yOiBpZigkdGhlbWUtbGlnaHQsICNmZmYsICNkZGQpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDdweCByZ2JhKDI1NSwgMjU1LCAyNTUsIGlmKCR0aGVtZS1saWdodCwgMC4yLCAwLjEpKSBpbnNldDtcbiAgfVxuXG4gIC5kcmF3cyB7XG4gICAgYmFja2dyb3VuZDogaWYoJHRoZW1lLWxpZ2h0LCAjYTBhMGEwLCAjNjY2KTtcbiAgfVxuXG4gIC5ibGFjayB7XG4gICAgYmFja2dyb3VuZDogaWYoJHRoZW1lLWxpZ2h0LCAjNTU1LCAjMzMzKTtcbiAgICBjb2xvcjogI2RkZDtcbiAgfVxuXG4gIC5iYXIgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cy1sZWZ0O1xuXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgfVxuXG4gIC5iYXIgc3BhbjpsYXN0LWNoaWxkIHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzLXJpZ2h0O1xuXG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIH1cblxuICAuZ2FtZXMge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogNXB4IDAgNXB4IDdweDtcbiAgICAgIG1heC13aWR0aDogMTEwcHg7XG4gICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIEBleHRlbmQgJWVsbGlwc2lzO1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlc3VsdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIH1cbiAgfVxuXG4gIC5nYW1lX21lbnUge1xuICAgIGJhY2tncm91bmQ6ICRjLXNlY29uZGFyeTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC5nYW1lX3RpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlcjtcbiAgICAgIG1hcmdpbjogM3B4IDAgMXB4IDA7XG4gICAgfVxuXG4gICAgLm1lbnUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgIH1cblxuICAgICAgYTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFibGViYXNlIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBleHRlbmQgJXNhbjtcblxuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgICB9XG5cbiAgICB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDdweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIHJlc3VsdCB7XG4gICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgfVxuICB9XG5cbiAgLnRvY29uZiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICB3aWR0aDogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwLjg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAmLnJlZHVjZWQgLm1lc3NhZ2Uge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuXG4gIC5tZXNzYWdlIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxuXG4gICY6bm90KC5yZWR1Y2VkKSAubWVzc2FnZSBoMyxcbiAgJi5yZWR1Y2VkOmhvdmVyIC5tZXNzYWdlIGgzIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5tZXNzYWdlIHAge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gIH1cblxuICAmLnJlZHVjZWQgLm1lc3NhZ2UgcCxcbiAgJi5yZWR1Y2VkIC5tZXNzYWdlIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYucmVkdWNlZDpob3ZlciAubWVzc2FnZSBwLFxuICAmLnJlZHVjZWQ6aG92ZXIgLm1lc3NhZ2UgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5tZXNzYWdlIGJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwIDMwcHg7XG4gIH1cbn1cbiIsIi5leHBsb3Jlcl9fY29uZmlnIHtcbiAgc2VjdGlvbixcbiAgLnRvZ2dsZSB7XG4gICAgbWFyZ2luOiAwLjRlbSAkYmxvY2stZ2FwIDAgJGJsb2NrLWdhcDtcbiAgfVxuXG4gIHNlY3Rpb24uc2F2ZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDE1cHggMCAxMHB4IDA7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgfVxuXG4gIC5jaG9pY2VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIEBleHRlbmQgJW1ldGFsO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgICAgIGJvcmRlcjogJGJvcmRlcjtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMXB4IDFweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgQGV4dGVuZCAlYm94LXJhZGl1cy1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBAZXh0ZW5kICVib3gtcmFkaXVzLXJpZ2h0O1xuXG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQGV4dGVuZCAlbWV0YWwtaG92ZXI7XG4gICAgICB9XG5cbiAgICAgICZbYXJpYS1wcmVzc2VkPSd0cnVlJ10sXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLXNlY29uZGFyeTtcbiAgICAgICAgY29sb3I6ICRjLXNlY29uZGFyeS1vdmVyO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDAgMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgICAgJlthcmlhLXByZXNzZWQ9J3RydWUnXSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMikgaW5zZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hbWUge1xuICAgID4gZGl2IHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuICAgIH1cbiAgICAucGxheWVyLW5hbWUge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJveC1yYWRpdXMtc2l6ZSAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgICYuYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgd2hpdGUsIDgwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbG9yIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxY2g7XG4gICAgfVxuICB9XG5cbiAgLnRvZ2dsZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgfVxuXG4gIC5kYXRlIHtcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWJldHdlZW4tbm93cmFwO1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgcGFkZGluZzogMC4xZW0gMC41ZW07XG4gICAgICAmOmludmFsaWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtZXJyb3IsICRjLWJnLWJveCwgMzAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19wbGF5ZXJfX2Nob2ljZSB7XG4gICAgbWF4LXdpZHRoOiA3MGNoICFpbXBvcnRhbnQ7XG5cbiAgICA+IGRpdiB7XG4gICAgICAvLyBmb3IgdXNlciBjb21wbGV0ZVxuICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW5wdXQtd3JhcHBlciB7XG4gICAgICAvLyBmb3IgdXNlciBjb21wbGV0ZVxuICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICB9XG4gICAgLnByZXZpb3VzIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtd3JhcDtcbiAgICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW46IDAuM2VtIDAuMmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi50cmFpbmluZy1ib3gge1xuICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICBmbGV4OiAxLjUgMSAwcHg7XG5cbiAgLmZlZWRiYWNrIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgLmZpbmQsXG4gICAgLmZhaWwge1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLnByb2dyZXNzIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRjLXNoYWRlO1xuICB9XG5cbiAgLnByb2dyZXNzIGRpdiB7XG4gICAgYmFja2dyb3VuZDogJGMtZ29vZDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5wbGF5ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuXG4gIC5uby1zcXVhcmUge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIH1cblxuICAuaXMzZCAmIGRpdi5uby1zcXVhcmUge1xuICAgIGhlaWdodDogODJweDtcbiAgfVxuXG4gIHBpZWNlIHtcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogNjRweDtcbiAgICBsaW5lLWhlaWdodDogNjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuaW5zdHJ1Y3Rpb24gPiAqIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5pbnN0cnVjdGlvbiA+IHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICB9XG5cbiAgLmNob2ljZXMge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZlbTtcbiAgICBtYXJnaW46IDVweCAwIC01cHggMDtcbiAgfVxuXG4gIC5jaG9pY2VzIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIucHJhY3RpY2UtYm94IHtcbiAgZmxleDogMCAwIDEzNXB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAuY29tbWVudCB7XG4gICAgZmxleDogMCAwIDMwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy16ZWJyYTtcbiAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbiAgfVxuXG4gICYuZ29vZE1vdmUgLnByb2dyZXNzIGRpdiB7XG4gICAgYmFja2dyb3VuZDogJGMtZ29vZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICYuaW5hY2N1cmFjeSAudGl0bGUsXG4gICYuaW5hY2N1cmFjeSAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1icmFnO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJi5taXN0YWtlIC50aXRsZSxcbiAgJi5ibHVuZGVyIC50aXRsZSxcbiAgJi5taXN0YWtlIC5wcm9ncmVzcyBkaXYsXG4gICYuYmx1bmRlciAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iYWQ7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAuY29tbWVudCAud2FpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICB9XG5cbiAgLnZlcmRpY3Qge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLnZlcmRpY3Q6OmJlZm9yZSB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAmLmdvb2RNb3ZlIC52ZXJkaWN0IHtcbiAgICBjb2xvcjogJGMtZ29vZDtcbiAgfVxuXG4gICYuZ29vZE1vdmUgLnZlcmRpY3Q6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJGMtZ29vZDtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICBmb250LXNpemU6IDEuN2VtO1xuICB9XG5cbiAgJi5pbmFjY3VyYWN5IC52ZXJkaWN0IHtcbiAgICBjb2xvcjogJGMtYnJhZztcbiAgfVxuXG4gICYuaW5hY2N1cmFjeSAudmVyZGljdDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1icmFnO1xuICAgIGNvbnRlbnQ6ICc/JztcbiAgfVxuXG4gICYubWlzdGFrZSAudmVyZGljdCxcbiAgJi5ibHVuZGVyIC52ZXJkaWN0IHtcbiAgICBjb2xvcjogJGMtYmFkO1xuICB9XG5cbiAgJi5taXN0YWtlIC52ZXJkaWN0OjpiZWZvcmUsXG4gICYuYmx1bmRlciAudmVyZGljdDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iYWQ7XG4gICAgY29udGVudDogJ+Kclyc7XG4gIH1cblxuICAuY29tbWVudCBtb3ZlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBjb2xvcjogJGMtbGluaztcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICB9XG59XG4iLCIkYy1mb3JrOiAkYy1wcmltYXJ5O1xuXG4uYW5hbHlzZV9fZm9yayB7XG4gIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gIGZsZXg6IDAgMCBhdXRvO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDEpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgbW92ZSB7XG4gICAgQGV4dGVuZCAlc2FuLCAlZmxleC1jZW50ZXI7XG5cbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtZm9yaywgJGMtYmctYm94LCAyNSUpO1xuICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDAuMmVtIDFlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtYmctYm94O1xuXG4gICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYy1iZy1ib3g7XG4gICAgfVxuICB9XG5cbiAgbW92ZTpob3ZlcixcbiAgJjpub3QoOmhvdmVyKSBtb3ZlLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtZm9yaywgJGMtYmctYm94LCAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gIGdseXBoIHtcbiAgICBAZXh0ZW5kICViYXNlLWZvbnQ7XG5cbiAgICBtYXJnaW4tbGVmdDogMnB4O1xuICB9XG5cbiAgZXZhbCB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuXG4gICAgZmxleDogMyAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxufVxuIiwiLmFuYWx5c2Uge1xuICAmX19zaWRlIHtcbiAgICBhbGlnbi1zZWxmOiBzdGFydDtcblxuICAgIC5iYWNrLXRvLWdhbWUge1xuICAgICAgbWFyZ2luLXRvcDogMmVtO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wzKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwdmg7XG4gICAgICB9XG5cbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICAuYW5hbHlzZV9fd2lraSB7XG4gICAgICBtYXJnaW4tdG9wOiAydmg7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDMpIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbSAwIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLXdpa2kgLmFuYWx5c2VfX3NpZGUge1xuICAgIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuICAgIGFsaWduLXNlbGY6IGF1dG87XG4gIH1cbiAgJl9fd2lraSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cbiAgICBoMSxcbiAgICBoMiB7XG4gICAgICBAaW5jbHVkZSBmbHVpZC1zaXplKCdmb250LXNpemUnLCAxN3B4LCAyM3B4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuN3JlbTtcbiAgICB9XG4gIH1cbn1cbiIsIiNhbmFseXNlLWNtIHtcbiAgQGV4dGVuZCAlYm94LXJhZGl1cywgJXBvcHVwLXNoYWRvdztcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogeignY29udGV4dC1tZW51Jyk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgJi52aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC50aXRsZSB7XG4gICAgQGV4dGVuZCAlc2FuLCAlbWV0YWw7XG5cbiAgICBwYWRkaW5nOiAwLjRlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIGNvbG9yOiAkYy1mb250O1xuICAgIHBhZGRpbmc6IDAuNWVtIDAuNmVtIDAuNWVtIDAuM2VtO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtYWNjZW50LCAkYy1iZy1ib3gsIDEwJSk7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9tYXRlcmlhbCc7XG5cbiRjbG9jay1oZWlnaHQ6IDIwcHg7XG5cbi5hbmFseXNlX19wbGF5ZXJfc3RyaXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gICYudG9wIHtcbiAgICB0b3A6ICN7LSRjbG9jay1oZWlnaHR9O1xuXG4gICAgLmlzM2QgJiB7XG4gICAgICB0b3A6ICN7LSRjbG9jay1oZWlnaHQgLSAzNXB4fTtcbiAgICB9XG4gIH1cblxuICAmLmJvdHRvbSB7XG4gICAgdG9wOiB2YXIoLS1jZy1oZWlnaHQsIDEwMCUpO1xuICAgIHotaW5kZXg6IDE7IC8vIG92ZXIgdGhlIGJvYXJkIGNvb3Jkc1xuXG4gICAgLmlzM2QgJiB7XG4gICAgICB0b3A6IGNhbGModmFyKC0tY2ctaGVpZ2h0LCAxMDAlKSArIDE1cHgpO1xuICAgIH1cbiAgfVxuXG4gIC8qIFdoZXJlIHRvIHB1dCB0aGVtIGluIGNvbDEgbGF5b3V0PyBJdCBtb3ZlcyB0aGUgZW50aXJlIGJvYXJkIGFuZCBjb250cm9scyBkb3duIGZvciBsaXR0bGUgYmVuZWZpdCAqL1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYW5hbHlzZV9fY2xvY2sge1xuICBAZXh0ZW5kICVtZXRhbCwgJWJveC1zaGFkb3c7XG5cbiAgcGFkZGluZzogMCAwLjVlbTtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gIGhlaWdodDogJGNsb2NrLWhlaWdodDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAmLnRvcCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cy10b3A7XG5cbiAgICAuaXMzZCAmIHtcbiAgICAgIEBleHRlbmQgJWJveC1yYWRpdXM7XG4gICAgfVxuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXMtYm90dG9tO1xuICB9XG5cbiAgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1wcmltYXJ5LCAkYy1iZy1ib3gsIDMwJSk7XG4gIH1cblxuICB0ZW50aHMge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG59XG5cbi5tYXRlcmlhbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDFweDtcblxuICBtcGllY2Uge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcblxuICAgICYucGF3biB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgfVxuICB9XG4gIHNjb3JlIHtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICB9XG59XG5cbi5tYXRlcmlhbC10b3Age1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4ubWF0ZXJpYWwtYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuIiwiLm1hdGVyaWFsIHtcbiAgQGV4dGVuZCAlZmxleC1jZW50ZXItbm93cmFwO1xuXG4gIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgbXBpZWNlIHtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAmLnBhd24ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL3BpZWNlL21vbm8vUC5zdmcpO1xuICAgIH1cblxuICAgICYuYmlzaG9wIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9waWVjZS9tb25vL0Iuc3ZnKTtcbiAgICB9XG5cbiAgICAmLmtuaWdodCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vcGllY2UvbW9uby9OLnN2Zyk7XG4gICAgfVxuXG4gICAgJi5yb29rIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9waWVjZS9tb25vL1Iuc3ZnKTtcbiAgICB9XG5cbiAgICAmLnF1ZWVuIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9waWVjZS9tb25vL1Euc3ZnKTtcbiAgICB9XG5cbiAgICAmLmtpbmcge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL3BpZWNlL21vbm8vSy5zdmcpO1xuICAgIH1cblxuICAgIEBpZiAkdGhlbWUgPT0gJ3RyYW5zcCcge1xuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMykgZHJvcC1zaGFkb3coMCAxcHggMXB4ICMwMDApO1xuICAgIH1cbiAgfVxuXG4gIHNjb3JlIHtcbiAgICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIH1cbn1cbiIsIi8vIE1vdmUgb2YgdGhlIFdlZWsgbm9taW5hdGlvbiBvdmVybGF5XG4vLyBSZW5kZXJlZCBhcyBwb3NpdGlvbjphYnNvbHV0ZSBpbnNpZGUgPGJvZHk+LCBwb3NpdGlvbmVkIGp1c3QgYmVsb3cgdGhlIGJvYXJkLlxuLy8gU2Nyb2xscyB3aXRoIHRoZSBtYWluIHBhZ2Ugc2Nyb2xsYmFyIOKAlCBubyBpbnRlcm5hbCBzY3JvbGxiYXIgbmVlZGVkLlxuLy8gei1pbmRleCAxMDAxIGtlZXBzIGl0IGFib3ZlIHRoZSBzcGlubmluZyBjb2hlbmNvaW4gZ2lmICh6LWluZGV4IDk5OSkuXG5cbi5tb2Z3LW5vbS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlOyAvLyBzZXQgYnkgSlM7IHNjcm9sbHMgd2l0aCBwYWdlXG4gIHotaW5kZXg6IDEwMDE7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAkYy1hY2NlbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcblxuICAvLyDilIDilIAgSGVhZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjU1cmVtIDFyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgZ2FwOiAwLjVyZW07XG5cbiAgICAubW9mdy1zYW4ge1xuICAgICAgQGV4dGVuZCAlY2hlc3MtZm9udDtcbiAgICAgIGNvbG9yOiAkYy1hY2NlbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBleHRlbmQgJWJ1dHRvbi1ub25lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMCAwLjJyZW07XG4gICAgJjpob3ZlciB7IGNvbG9yOiAkYy1mb250OyB9XG4gIH1cblxuICAvLyDilIDilIAgQm9keSAobm8gc2Nyb2xsIOKAlCBwYWdlIGhhbmRsZXMgaXQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAmX19ib2R5IHtcbiAgICAvLyBwbGFpbiBibG9jazsgY29udGVudCBleHBhbmRzIG5hdHVyYWxseVxuICB9XG5cbiAgLy8g4pSA4pSAIFNlY3Rpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAmX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG5cbiAgLy8g4pSA4pSAIEFjdGlvbnMgYmFyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAmX19hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMC41cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbiAgfVxuXG4gIC8vIOKUgOKUgCBMYWJlbHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICZfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIH1cblxuICAmX19vcHRpb25hbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIC8vIOKUgOKUgCBUYWcgZ3JpZCAoZmxhdCBjaGVja2JveGVzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgJl9fdGFnLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTYwcHgsIDFmcikpO1xuICAgIGdhcDogMC4ycmVtIDAuNXJlbTtcbiAgfVxuXG4gICZfX3RhZy1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjNyZW07XG4gICAgZm9udC1zaXplOiAwLjg4cmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAwLjEycmVtIDA7XG4gICAgY29sb3I6ICRjLWZvbnQ7XG4gICAgJjpob3ZlciB7IGNvbG9yOiAkYy1hY2NlbnQ7IH1cbiAgICAmOmZpcnN0LWNoaWxkIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgfVxuXG4gICZfX3RhZy1jYiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFjY2VudC1jb2xvcjogJGMtYWNjZW50O1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgfVxuXG4gIC8vIOKUgOKUgCBDb250aW51YXRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICZfX2NvbnQtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC4zcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEuOHJlbTtcbiAgfVxuXG4gICZfX2NvbnQtY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuMnJlbTtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtYWNjZW50LCAkYy1iZy1ib3gsIDE0JSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWl4KCRjLWFjY2VudCwgJGMtYm9yZGVyLCA0MCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiAwLjEycmVtIDAuM3JlbTtcbiAgICBmb250LXNpemU6IDAuODhyZW07XG5cbiAgICAubW9mdy1jb250LXNhbiB7IEBleHRlbmQgJWNoZXNzLWZvbnQ7IH1cbiAgfVxuXG4gICZfX2NvbnQtcmVtb3ZlIHtcbiAgICBAZXh0ZW5kICVidXR0b24tbm9uZTtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAwIDAuMXJlbTtcbiAgICAmOmhvdmVyIHsgY29sb3I6ICRjLWJhZDsgfVxuICB9XG5cbiAgJl9fY29udC1hcnJvdyB7IGNvbG9yOiAkYy1mb250LWRpbTsgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbiAgJl9fY29udC1oaW50IHtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICB9XG5cbiAgJl9fY29udC1lbXB0eSB7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvLyDilIDilIAgTm90ZSB0ZXh0YXJlYSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgJl9fbm90ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwLjM1cmVtIDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy1pbnB1dDtcbiAgICBib3JkZXI6ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAkYy1mb250O1xuICAgIGZvbnQtc2l6ZTogMC44OHJlbTtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6ICRjLWFjY2VudDsgfVxuICB9XG5cbiAgLy8g4pSA4pSAIEJ1dHRvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICZfX2J0biB7XG4gICAgQGV4dGVuZCAlYnV0dG9uLW5vbmU7XG4gICAgcGFkZGluZzogMC4zOHJlbSAwLjg1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LXNpemU6IDAuODhyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIG9wYWNpdHkgMC4xMnM7XG4gICAgJjpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4gICAgJi0tY2FuY2VsIHtcbiAgICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7IGJhY2tncm91bmQ6ICRjLWJnLXplYnJhOyB9XG4gICAgfVxuXG4gICAgJi0tZHJhZnQge1xuICAgICAgY29sb3I6ICNjMDhhMGY7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjYzA4YTBmO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgYmFja2dyb3VuZDogbWl4KCNjMDhhMGYsICRjLWJnLWJveCwgMTIlKTsgfVxuICAgIH1cblxuICAgICYtLXN1Ym1pdCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1hY2NlbnQ7XG4gICAgICBjb2xvcjogJGMtYWNjZW50LW92ZXI7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAkYy1hY2NlbnQ7XG4gICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMSk7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hZHZpY2Utc3VtbWFyeSB7XG4gIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuXG4gIGNvbG9yOiAkYy1mb250LXBhZ2U7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1ZW07XG4gIG1hcmdpbi10b3A6IDFlbTtcblxuICAmX19zaWRlID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGksXG4gICAgc3Ryb25nIHtcbiAgICAgIGZsZXg6IDAgMSA0Y2g7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgICYuc3ltYm9sIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGMtbGluaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29sb3ItaWNvbjo6YmVmb3JlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDAuNmVtIDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxKSB7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJsb2NrLWdhcDtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIG1hcmdpbjogMDtcblxuICAgICZfX3NpZGUge1xuICAgICAgZmxleDogMCAwIGNhbGMoNTAlIC0gI3skYmxvY2stZ2FwfSk7XG4gICAgICBtYXJnaW4tbGVmdDogJGJsb2NrLWdhcDtcbiAgICB9XG5cbiAgICA+IGEge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHlzZV9fdW5kZXJib2FyZCB7XG4gIG1hcmdpbi10b3A6ICN7JGJsb2NrLWdhcCAvIDJ9O1xufVxuIiwiJXN0dWR5LWxpc3Qge1xuICBAZXh0ZW5kICVib3gtbmVhdDtcblxuICBAaW5jbHVkZSBob3ZlcmZsb3c7XG5cbiAgbWF4LWhlaWdodDogMThlbTtcbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gID4gZGl2IHtcbiAgICBAZXh0ZW5kICVmbGV4LWJldHdlZW4tbm93cmFwO1xuXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGMtZm9udC1jbGVhcjtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1saW5rLCAkYy1iZy1ib3gsIDEwJSk7XG4gICAgfVxuICB9XG5cbiAgLmFjdCB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICBjb2xvcjogJGMtZm9udDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOTlweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBvcGFjaXR5OiAwLjE1O1xuICAgIHBhZGRpbmc6IDAuNGVtO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgfVxuXG4gID4gZGl2OmhvdmVyIC5hY3Qge1xuICAgIG9wYWNpdHk6IDAuNztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGMtcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkYy1wcmltYXJ5LW92ZXI7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5hZGQge1xuICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbiVzdHVkeS1saXN0LW9uZ29pbmcge1xuICBvbmdvaW5nIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNlbnRlcjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAwLjdlbTtcbiAgICBjb2xvcjogJGMtcmVkO1xuICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xuICB9XG59XG4iLCIkc3Bhbi13aWR0aDogMS43ZW07XG5cbi5zdHVkeV9fY2hhcHRlcnMge1xuICBAZXh0ZW5kICVzdHVkeS1saXN0LCAlc3R1ZHktbGlzdC1vbmdvaW5nO1xuXG4gIG1heC1oZWlnaHQ6IDE4ZW07XG5cbiAgaDMge1xuICAgIEBleHRlbmQgJWJyZWFrLXdvcmQ7XG5cbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuYWN0aXZlLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWNlbnRlcjtcblxuICAgICAgZmxleDogMCAwICRzcGFuLXdpZHRoO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJGMtbGluaztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG5cbiAgICByZXMge1xuICAgICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG1hcmdpbi1yaWdodDogMC43cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5kZGxvYWRlciB7XG4gICAgd2lkdGg6ICRzcGFuLXdpZHRoO1xuICAgIGhlaWdodDogJHNwYW4td2lkdGg7XG4gIH1cblxuICAuc29ydGFibGUtZ2hvc3Qge1xuICAgIG9wYWNpdHk6IDAuNztcblxuICAgICYsXG4gICAgLnN0YXR1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1zZWNvbmRhcnkgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLnN0dWR5X19tZW1iZXJzIHtcbiAgQGV4dGVuZCAlc3R1ZHktbGlzdDtcblxuICAubGVmdCB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXItbm93cmFwO1xuXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC51c2VyLWxpbmsge1xuICAgIEBleHRlbmQgJWVsbGlwc2lzO1xuXG4gICAgbWFyZ2luOiAwLjVlbSAwO1xuICB9XG5cbiAgLnN0YXR1cyB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMi40ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjFlbTtcbiAgICB0cmFuc2l0aW9uOiAyLjVzO1xuICB9XG5cbiAgaSB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdHJhbnNpdGlvbjogMi41cztcbiAgfVxuXG4gIC5jb250cmliIGkge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuXG4gIC5vbmxpbmUgaSB7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIGNvbG9yOiAkYy1nb29kO1xuICB9XG5cbiAgLm9ubGluZS5jb250cmliIGkge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA+IGRpdjpudGgtY2hpbGQoNG4tMykgLnN0YXR1cy5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICM0MmE1ZjU7XG4gIH1cblxuICA+IGRpdjpudGgtY2hpbGQoNG4tMikgLnN0YXR1cy5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIH1cblxuICA+IGRpdjpudGgtY2hpbGQoNG4tMSkgLnN0YXR1cy5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNmZGQ4MzU7XG4gIH1cblxuICA+IGRpdjpudGgtY2hpbGQoNG4tMCkgLnN0YXR1cy5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7XG4gIH1cblxuICAuc3RhdHVzLmFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAgIGkge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAubGVhdmUge1xuICAgIGNvbG9yOiAkYy1iYWQ7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgPiBkaXY6aG92ZXIgLmxlYXZlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1iYWQ7XG4gIH1cblxuICAuYWRkIHtcbiAgICBAZXh0ZW5kICVyb2JvdG87XG5cbiAgICAmOmhvdmVyIGkge1xuICAgICAgY29sb3I6ICRjLWxpbms7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuYWRtaW4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGJ1dHRvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICB9XG4gIH1cblxuICBtLWNvbmZpZyxcbiAgLmVkaXRpbmcge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1hY2NlbnQsICRjLWJnLWJveCwgMTAlKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgbS1jb25maWcge1xuICAgIEBleHRlbmQgJWZsZXgtYmV0d2VlbjtcblxuICAgIHBhZGRpbmc6IDAuNGVtIDAuOGVtIDFlbSAwLjhlbTtcblxuICAgIC5yb2xlIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpdGNoIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9tYXRlcmlhbCc7XG5cbiRwbGF5ZXItaGVpZ2h0OiAxLjZyZW07XG5cbi5hbmFseXNlLmhhcy1wbGF5ZXJzIHtcbiAgY2ctYm9hcmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyKSB7XG4gICAgLmFuYWx5c2VfX3VuZGVyYm9hcmQge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYygjeyRwbGF5ZXItaGVpZ2h0IC8gMn0gKyAjeyRibG9jay1nYXAgLyAyfSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMSkge1xuICAgIC5hbmFseXNlX19jb250cm9scyB7XG4gICAgICBtYXJnaW4tdG9wOiAkcGxheWVyLWhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLnN0dWR5X19wbGF5ZXIge1xuICBAZXh0ZW5kICVmbGV4LWJldHdlZW4tbm93cmFwLCAlbWV0YWwsICVib3gtc2hhZG93O1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aWR0aDogdmFyKC0tY2ctd2lkdGgsIDEwMCUpO1xuICBoZWlnaHQ6ICRwbGF5ZXItaGVpZ2h0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICYtdG9wIHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzLXRvcDtcblxuICAgIHRvcDogI3stJHBsYXllci1oZWlnaHR9O1xuXG4gICAgLmlzM2QgJiB7XG4gICAgICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gICAgICB0b3A6IGNhbGMoI3stJHBsYXllci1oZWlnaHR9IC0gMzVweCk7XG4gICAgfVxuICB9XG5cbiAgJi1ib3Qge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXMtYm90dG9tO1xuXG4gICAgdG9wOiB2YXIoLS1jZy1oZWlnaHQsIDEwMCUpO1xuICB9XG5cbiAgLmxlZnQge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC5yZXN1bHQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjhlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjhlbTtcbiAgICBib3JkZXItcmlnaHQ6ICRib3JkZXI7XG4gIH1cblxuICAuYW5hbHlzZV9fY2xvY2sge1xuICAgIEBleHRlbmQgJXJvYm90bywgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIGhlaWdodDogMTAwJTtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIHBhZGRpbmc6IDAgMC44ZW0gMCAwLjRlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCAwIDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICYtYm90IC5hbmFseXNlX19jbG9jayB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCAwO1xuICB9XG5cbiAgJi50aWNraW5nIC5hbmFseXNlX19jbG9jayB7XG4gICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5O1xuICAgIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlcjtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC5pbmZvIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICA+ICoge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgIGZsZXg6IDE7XG4gICAgfVxuICB9XG5cbiAgLm5hbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVjaDtcbiAgICBmbGV4OiAzO1xuICB9XG5cbiAgLmVsbyB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbn1cblxuLm1hdGVyaWFsIHtcbiAgcGFkZGluZzogMCA2cHg7XG5cbiAgbXBpZWNlIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAmLnBhd24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgIH1cbiAgfVxuXG4gIHNjb3JlIHtcbiAgICBjb2xvcjogIzc3NztcbiAgfVxufVxuXG4ubWF0ZXJpYWwtdG9wIHtcbiAgbWFyZ2luLXRvcDogMC4yZW07XG59XG5cbi5tYXRlcmlhbC1ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAwLjE1ZW07XG59XG4iLCIjbW9kYWwtd3JhcCB7XG4gIG1pbi13aWR0aDogODB2dztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS14LXNtYWxsKSB7XG4gICAgbWluLXdpZHRoOiA1MDBweDtcbiAgfVxuXG4gIC5mb3JtMyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIC5lZGl0b3Ige1xuICAgICAgbWFyZ2luOiAtMzBweCAwIDMwcHggMDtcblxuICAgICAgLnNwaW5uZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogODBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC42ZW07XG5cbiAgICAgICYsXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuXG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgY29sb3I6ICRjLXByaW1hcnk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRlc3RydWN0aXZlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG5cbiAgICBmb3JtIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJi5jaGFwdGVyLW5ldyAudGFicy1ob3JpeiB7XG4gICAgbWFyZ2luOiAtMWVtIDAgMS42ZW0gMDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vLi4vZWRpdG9yL2Nzcy9zcGFyZSc7XG5AaW1wb3J0ICcuLi8uLi8uLi9lZGl0b3IvY3NzL3Rvb2xzJztcblxuLmJvYXJkLWVkaXRvci13cmFwIHtcbiAgbWluLWhlaWdodDogMjgwcHg7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcblxuICAuc3Bpbm5lciB7XG4gICAgcGFkZGluZy10b3A6IDkwcHg7XG4gIH1cbn1cblxuLmJvYXJkLWVkaXRvciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjgwcHggMnZtaW4gMjEwcHg7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogbWluLWNvbnRlbnQgYXV0byBtaW4tY29udGVudDtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJy4gICAgICAgICAgICAuIGUtdG9vbHMnICdzcGFyZS10b3AgICAgLiBlLXRvb2xzJyAnZS1ib2FyZCAgICAgIC4gZS10b29scycgJ3NwYXJlLWJvdHRvbSAuIGUtdG9vbHMnICcuICAgICAgICAgICAgLiBlLXRvb2xzJztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgLm1haW4tYm9hcmQge1xuICAgIGdyaWQtYXJlYTogZS1ib2FyZDtcbiAgfVxuXG4gIGNnLWJvYXJkIHtcbiAgICBjdXJzb3I6IGluaGVyaXQ7XG4gIH1cblxuICAmX190b29scyB7XG4gICAgZ3JpZC1hcmVhOiBlLXRvb2xzO1xuICB9XG5cbiAgLnNwYXJlIHtcbiAgICAmLXRvcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxdmg7XG4gICAgfVxuXG4gICAgJi1ib3R0b20ge1xuICAgICAgZ3JpZC1hcmVhOiBzcGFyZS1ib3R0b207XG4gICAgICBtYXJnaW4tdG9wOiAxdmg7XG4gICAgfVxuICB9XG5cbiAgLm1ldGFkYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy16ZWJyYTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG59XG4iLCIuYm9hcmQtZWRpdG9yIC5zcGFyZSB7XG4gIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZDogJGMtZm9udC1kaW1tZXI7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMykgaW5zZXQ7XG5cbiAgJi10b3Age1xuICAgIGdyaWQtYXJlYTogc3BhcmUtdG9wO1xuICAgIG1hcmdpbi1ib3R0b206IDJ2aDtcbiAgfVxuXG4gICYtYm90dG9tIHtcbiAgICBncmlkLWFyZWE6IHNwYXJlLWJvdHRvbTtcbiAgICBtYXJnaW4tdG9wOiAydmg7XG4gIH1cblxuICAubm8tc3F1YXJlIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1wcmltYXJ5LCAwLjgpO1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQtc3F1YXJlIHtcbiAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLXByaW1hcnksIDAuNSk7XG4gICAgfVxuXG4gICAgZGl2IHtcbiAgICAgIEBleHRlbmQgJXNxdWFyZTtcbiAgICB9XG5cbiAgICAmLnBvaW50ZXIge1xuICAgICAgQGV4dGVuZCAlYm94LXJhZGl1cy1sZWZ0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtZ29vZCwgMC44KTtcbiAgICAgIH1cblxuICAgICAgJi5zZWxlY3RlZC1zcXVhcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1nb29kLCAwLjQpO1xuICAgICAgfVxuXG4gICAgICBwaWVjZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltZy11cmwoJ2ljb25zL3BvaW50ZXIuc3ZnJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi50cmFzaCB7XG4gICAgICBAZXh0ZW5kICVib3gtcmFkaXVzLXJpZ2h0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtYmFkLCAwLjgpO1xuICAgICAgfVxuXG4gICAgICAmLnNlbGVjdGVkLXNxdWFyZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWJhZCwgMC40KTtcbiAgICAgIH1cblxuICAgICAgcGllY2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWctdXJsKCdpY29ucy90cmFzaC5zdmcnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMzZCAmIC5uby1zcXVhcmUgZGl2IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTAuNzIlO1xuICB9XG5cbiAgcGllY2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAuaXMzZCAmIHtcbiAgICAgIC8qIG9yaWdpbmFsIHNpemU6IHdpZHRoOiAxNDAuNjI1JTsgaGVpZ2h0OiAxNzkuNjg3NSU7IHNpemUgb24gM0QgYm9hcmQsIHdpdGggaGVpZ2h0L3dpZHRoID0gOTAuNzg1NzElICovXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTQwLjc0NjUlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogLTM0JTtcbiAgICB9XG4gIH1cblxuICBwaWVjZS5wb2ludGVyLFxuICBwaWVjZS50cmFzaCB7XG4gICAgbWFyZ2luOiAxNCU7XG4gICAgd2lkdGg6IDcyJTtcbiAgICBoZWlnaHQ6IDcyJTtcblxuICAgIC5pczNkICYge1xuICAgICAgd2lkdGg6IDYyJTtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi5ib2FyZC1lZGl0b3Ige1xuICAmX190b29scyB7XG4gICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgICBncmlkLWFyZWE6IHRvb2xzO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgID4gKiB7XG4gICAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICBAZXh0ZW5kICVwYWdlLWxpbmsgIW9wdGlvbmFsO1xuXG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgJi5wb3NpdGlvbnMgb3B0aW9uOmNoZWNrZWQge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1ldGFkYXRhIHtcbiAgICAgIEBleHRlbmQgJWJveC1uZWF0O1xuXG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgLmNvbG9yIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgfVxuXG4gICAgICAuY2FzdGxpbmcge1xuICAgICAgICBkaXYge1xuICAgICAgICAgIEBleHRlbmQgJWZsZXgtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsLFxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogM3B4O1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuXG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgQGV4dGVuZCAlcGFnZS1saW5rICFvcHRpb25hbDtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRjLXN0dWR5LWJ1dHRvbjogJGMtYWNjZW50O1xuXG4uc3R1ZHlfX2J1dHRvbnMge1xuICBAZXh0ZW5kICVmbGV4LWJldHdlZW47XG5cbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjLWJvcmRlcjtcblxuICBzcGFuIHtcbiAgICBmb250LXNpemU6IDEuMTVlbTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAubGVmdC1idXR0b25zIHtcbiAgICBmbGV4OiA5IDEgYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5yaWdodCB7XG4gICAgZmxleDogMSA5IDEwJTtcbiAgfVxuXG4gIC5iZWhpbmQge1xuICAgIGJhY2tncm91bmQ6ICRjLWJhZDtcbiAgICBjb2xvcjogJGMtYmFkLW92ZXI7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICB9XG5cbiAgLm1vZGUge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcCwgJWJveC1yYWRpdXMtdG9wLCAlcGFnZS10ZXh0O1xuXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBwYWRkaW5nOiAwIDAuNGVtO1xuICAgIG9wYWNpdHk6IDAuODtcblxuICAgIGk6OmJlZm9yZSB7XG4gICAgICBmb250LXNpemU6IDEuNGVtO1xuICAgICAgY29udGVudDogJ+6Avyc7XG4gICAgICBjb2xvcjogJGMtYmFkO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XG4gICAgfVxuXG4gICAgJi5vbiBpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+6AuCc7XG4gICAgICBjb2xvcjogJGMtZ29vZDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuLyogcmV1c2VkIGJ5IGNvbnRleHQgbWVudSAqL1xuLmdseXBoLWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICfigYknO1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuIiwiLnN0dWR5X19pbnZpdGUge1xuICBtYXgtd2lkdGg6IDUwZW07XG5cbiAgPiBkaXYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG5cbiAgICAvLyByZXF1aXJlZCBieSB1c2VyIGF1dG9jb21wbGV0ZVxuICB9XG5cbiAgLmluZm8ge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXMsICVmbGV4LWNlbnRlci1ub3dyYXA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYy1hY2NlbnQ7XG4gICAgY29sb3I6ICRjLXByaW1hcnktb3ZlcjtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiAzLjZlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAudXNlcnMge1xuICAgIEBleHRlbmQgJWZsZXgtYmV0d2VlbjtcblxuICAgIG1heC13aWR0aDogMTAwY2g7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICAgICAgZmxleDogMCAwIDQ4JTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuN2VtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAzMHZoO1xuICB9XG5cbiAgLmlucHV0LXdyYXBwZXIge1xuICAgIC8vIGZvciB1c2VyIGNvbXBsZXRlXG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCIuc3R1ZHktZGVzYyB7XG4gIEBleHRlbmQgJWJveC1uZWF0O1xuXG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgcGFkZGluZzogMC43ZW0gMWVtO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICYuZW1wdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICB9XG4gIH1cblxuICAuY29udHJpYiB7XG4gICAgQGV4dGVuZCAlcG9wdXAtc2hhZG93O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtYWNjZW50LCAkYy1iZy1ib3gsIDEwJSk7XG4gICAgcGFkZGluZzogMC41ZW0gMC44ZW07XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgJjpob3ZlciAuY29udHJpYiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuY29udHJpYiBhIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICB9XG5cbiAgLmVtYmVkIHtcbiAgICBAZXh0ZW5kICV2aWRlbztcblxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyZW0pO1xuICAgIG1hcmdpbjogLTAuN2VtIC0xZW07XG4gIH1cbn1cblxuLnN0dWR5LWRlc2MtZm9ybSB7XG4gIC50aXRsZSB7XG4gICAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMmVtO1xuICB9XG59XG4iLCIuc3R1ZHlfX21ldGFkYXRhIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gIGgyIHtcbiAgICBAZXh0ZW5kICVtZXRhbCwgJWZsZXgtYmV0d2Vlbi1ub3dyYXA7XG5cbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG5cbiAgICAubmFtZSB7XG4gICAgICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICAgICAgcGFkZGluZzogMC43cmVtIDA7XG4gICAgfVxuXG4gICAgLmNyZWRpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgbWFyZ2luOiAwLjJyZW0gMCAtMC4zcmVtIDA7XG4gICAgfVxuXG4gICAgLmxpa2luZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICB9XG5cbiAgICAubGlraW5nOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogJGMtcmVkO1xuICAgIH1cbiAgfVxufVxuXG4uc3R1ZHlfX3RhZ3Mge1xuICBib3JkZXI6IG5vbmU7XG5cbiAgdGgge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHBhZGRpbmc6IDAgMC4zZW0gMCAxZW0gIWltcG9ydGFudDtcbiAgfVxuXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgaW5wdXQsXG4gIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuNmVtIDFlbSAwLjZlbSAwLjdlbTtcbiAgICBsaW5lLWhlaWdodDogMS43O1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgaW5wdXQ6aG92ZXIsXG4gIGlucHV0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCAxMCUpO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uc3R1ZHlfX3RvcGljcyB7XG4gIEBleHRlbmQgJWZsZXgtY2VudGVyLCAlcm9ib3RvO1xuXG4gIG1hcmdpbjogMWVtO1xuXG4gIC50b3BpYyB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cztcblxuICAgIGJhY2tncm91bmQ6IG1peCgkYy1wcmltYXJ5LCAkYy1iZy1ib3gsIDE3JSk7XG4gICAgcGFkZGluZzogMC4yZW0gMC42ZW07XG4gICAgbWFyZ2luOiAwLjJlbTtcbiAgfVxuXG4gIC5tYW5hZ2Uge1xuICAgIG1hcmdpbjogMC4yZW07XG4gIH1cbn1cblxuLnN0dWR5LXRvcGljcyBmb3JtIHtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbn1cbiIsIi5zdHVkeV9fY29tbWVudHMge1xuICBmb3JtIHAge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cblxuICAuZ290by1jdXJyZW50IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAjY29tbWVudC10ZXh0IHtcbiAgICBAZXh0ZW5kICVib3gtc2hhZG93O1xuXG4gICAgaGVpZ2h0OiAxMmVtO1xuICB9XG5cbiAgLnN0dWR5X193aWtpIHtcbiAgICBAZXh0ZW5kICVib3gtbmVhdDtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gICAgcGFkZGluZzogMC44ZW0gMWVtO1xuICAgIG1hcmdpbi10b3A6IDF2aDtcbiAgICAmLmVtcHR5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5zdHVkeV9fY29tbWVudCB7XG4gIEBleHRlbmQgJWJveC1uZWF0O1xuXG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgcGFkZGluZzogMC44ZW0gMWVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcblxuICAudGV4dCB7XG4gICAgQGV4dGVuZCAlYnJlYWstd29yZDtcblxuICAgIG1hcmdpbi10b3A6IDAuM2VtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLmVkaXQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjpob3ZlciAuZWRpdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuZWRpdDpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC51c2VyLWxpbmssXG4gIC5ub2RlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuIiwiLnN0dWR5X19nbHlwaHMge1xuICBAZXh0ZW5kICVib3gtbmVhdCwgJWZsZXgtY2VudGVyO1xuXG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgPiBkaXYge1xuICAgIGZsZXg6IDEgMCAzMCU7XG4gIH1cblxuICBidXR0b24ge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcCwgJWJ1dHRvbi1ub25lO1xuXG4gICAgaGVpZ2h0OiAyLjNlbTtcbiAgICBsaW5lLWhlaWdodDogMi4zZW07XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29udGVudDogYXR0cihkYXRhLXN5bWJvbCk7XG4gICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aWR0aDogMmVtO1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctbG93O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgICAgY29sb3I6ICRjLXNlY29uZGFyeTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgfVxuXG4gICAgJi5hY3RpdmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1zZWNvbmRhcnk7XG4gICAgICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuc3R1ZHlfX3NoYXJlIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBwYWRkaW5nOiAxLjVlbSAxLjJlbTtcblxuICBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuXG4gIC5wbHktd3JhcCB7XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuXG4gIC5wbHkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4zZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5kb3dubG9hZHMge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogMCAycHggMC41ZW0gMnB4O1xuICAgIH1cbiAgfVxufVxuIiwiLnN0dWR5X19tdWx0aWJvYXJkIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuXG4gICYubG9hZGluZyB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgJi5ub3BhZ2VyIHtcbiAgICBwYWRkaW5nOiAyZW07XG4gIH1cblxuICAudG9wIHtcbiAgICBAZXh0ZW5kICVmbGV4LWJldHdlZW47XG5cbiAgICBwYWRkaW5nOiAwLjRlbSAxLjVlbTtcbiAgfVxuXG4gIC5wYWdlciB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICAucGFnZSB7XG4gICAgICBtYXJnaW46IDAgMC40ZW07XG4gICAgfVxuICB9XG5cbiAgLmZidCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cztcblxuICAgIHBhZGRpbmc6IDAuNmVtIDFlbTtcbiAgfVxuXG4gIC5wbGF5aW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAucGxheWluZyBpbnB1dCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgfVxuXG4gIC5ub3ctcGxheWluZyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzMCUsIDFmcikpO1xuXG4gICAgYSB7XG4gICAgICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gICAgICBjb2xvcjogJGMtZm9udDtcbiAgICAgIHBhZGRpbmc6IDAuNGVtO1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQpO1xuXG4gICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1iZy1ib3gsIDAuNik7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhMjtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWxpbmssIDAuNik7XG4gICAgICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5O1xuICAgICAgICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXI7XG4gICAgICB9XG5cbiAgICAgIGNnLWJvYXJkIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucGxheWVyIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtYmV0d2Vlbi1ub3dyYXA7XG5cbiAgICAgIGhlaWdodDogMS41ZW07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYW1lIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogM2VtO1xuICAgIH1cbiAgfVxufVxuIiwiLnN0dWR5X19zZXJ2ZXItZXZhbCB7XG4gIEBleHRlbmQgJWJveC1uZWF0O1xuXG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICYucGFkZGVkIHtcbiAgICBwYWRkaW5nOiA0ZW07XG4gIH1cblxuICAmLnJlYWR5IHtcbiAgICBoZWlnaHQ6IDE1ZW07XG4gIH1cbn1cblxuLmFkdmljZS1zdW1tYXJ5IHRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuIiwiLnN0dWR5X19tZXNzYWdlIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBwYWRkaW5nOiAzZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAxZW0gYXV0bztcbiAgfVxuXG4gIC5zcGlubmVyIHtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcbiAgfVxufVxuIiwiQGltcG9ydCAndmFyaWFibGVzJztcblxuJHBvY2tldC1jb2wxLWhlaWdodDogYXV0bztcbiRwb2NrZXQtaGVpZ2h0OiA2MHB4O1xuXG4ucG9ja2V0IHtcbiAgJi10b3Age1xuICAgIGdyaWQtYXJlYTogcG9ja2V0LXRvcDtcbiAgfVxuXG4gICYtYm90dG9tIHtcbiAgICBncmlkLWFyZWE6IHBvY2tldC1ib3Q7XG4gIH1cblxuICAmLWMxIHtcbiAgICBtYXgtd2lkdGg6ICRwb2NrZXQtaGVpZ2h0O1xuICB9XG59XG5cbi5hbmFseXNlLnZhcmlhbnQtY3Jhenlob3VzZSB7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogJHBvY2tldC1jb2wxLWhlaWdodCBhdXRvICRwb2NrZXQtY29sMS1oZWlnaHQgYXV0byBtaW5tYXgoMjBlbSwgMzB2aCk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgJ3BvY2tldC10b3AnXG4gICAgJ2JvYXJkJ1xuICAgICdwb2NrZXQtYm90J1xuICAgICdjb250cm9scydcbiAgICAndG9vbHMnXG4gICAgJ3NpZGUnXG4gICAgJ2FjcGwnXG4gICAgJ3VuZGVyJ1xuICAgICdjaGF0J1xuICAgICd1Y2hhdCc7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMikge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogJHBvY2tldC1oZWlnaHQgYXV0byAkcG9ja2V0LWhlaWdodDtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgJ2JvYXJkICAgICAgZ2F1Z2UgcG9ja2V0LXRvcCdcbiAgICAgICdib2FyZCAgICAgIGdhdWdlIHRvb2xzJ1xuICAgICAgJ2JvYXJkICAgICAgZ2F1Z2UgcG9ja2V0LWJvdCdcbiAgICAgICd1bmRlciAgICAgIC4gICAgIGNvbnRyb2xzJ1xuICAgICAgJ3VuZGVyICAgICAgLiAgICAgYWNwbCdcbiAgICAgICd1bmRlciAgICAgIC4gICAgIHNpZGUnXG4gICAgICAnY2hhdCAgICAgICAuICAgICBzaWRlJ1xuICAgICAgJ3VjaGF0ICAgICAgLiAgICAgc2lkZSc7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wzKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAkcG9ja2V0LWhlaWdodCAkbWV0YS1oZWlnaHQgJGNoYXQtaGVpZ2h0ICRwb2NrZXQtaGVpZ2h0O1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAnc2lkZSAgICAuIGJvYXJkIGdhdWdlIHBvY2tldC10b3AnXG4gICAgICAnc2lkZSAgICAuIGJvYXJkIGdhdWdlIHRvb2xzJ1xuICAgICAgJ2NoYXQgICAgLiBib2FyZCBnYXVnZSB0b29scydcbiAgICAgICdjaGF0ICAgIC4gYm9hcmQgZ2F1Z2UgcG9ja2V0LWJvdCdcbiAgICAgICd1Y2hhdCAgIC4gdW5kZXIgLiAgICAgY29udHJvbHMnXG4gICAgICAndWNoYXQgICAuIHVuZGVyIC4gICAgIGFjcGwnO1xuICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDEpIHtcbiAgLnBvY2tldCB7XG4gICAgJi10b3Age1xuICAgICAgbWFyZ2luLWJvdHRvbTogI3stJGJsb2NrLWdhcH07XG4gICAgfVxuXG4gICAgJi1ib3R0b20ge1xuICAgICAgbWFyZ2luLXRvcDogI3stJGJsb2NrLWdhcH07XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBRUVBLFlBQVk7QUFrQlosNkRBQTZEO0FBYzdELG1CQUFtQjtBQU1uQixrQ0FBa0M7QUFFbEMsc0JBQXNCO0FBTXRCLG9DQUFvQztBQUVwQyxvQkFBb0I7QUFNcEIsaUNBQWlDO0FBRWpDLGdCQUFnQjtBQUloQiwrQkFBK0I7QUFFL0IsZ0JBQWdCO0FBS2hCLCtCQUErQjtBQUUvQixpQkFBaUI7QUFJakIsa0JBQWtCO0FBSWxCLGNBQWM7QUFJZCxnQkFBZ0I7QUFJaEIsaUJBQWlCO0FBSWpCLCtCQUErQjtBQThCL0IsYUFBYTtBQU1iLGFBQWE7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 */
