@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 */
.slist thead, .mchat__tab, .mchat__messages a:not(.user-link), .tour__main__header .time, .tour__actor-info .stats td:last-child, .tour__actor-info .sublist th {
  font-family: 'Roboto', Sans-Serif;
}

/* text printed directly on the page background deserves special treatment (transp theme) */
.chat__members {
  color: #999999;
}

.slist thead, .tour__controls, .tour__actor-info .stats h2 {
  background: linear-gradient(to bottom, #3c3934, #33312e 100%);
}

#modal-wrap {
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
}

.fbt {
  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;
}

.context-streamer, .mchat__tab, .tour__meta section .setup {
  white-space: nowrap;
  overflow: hidden;
}

.mchat__tab span, .tour__standing .player .name, .tour__player-info .pairings td:nth-child(2) {
  white-space: nowrap;
}

.mchat__messages, .tour__meta .description, .tour__team-standing .team team, .tour__team-standing .players {
  overflow-wrap: break-word;
  word-break: break-word;
}

.mchat__tab span, .tour__standing .player .name, .tour__player-info .pairings td:nth-child(2), .podium > div, .tour__duels strong {
  overflow: hidden;
  text-overflow: ellipsis;
}

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

.tour__controls .pager, #modal-overlay {
  /* extends %flex-wrap */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.context-streamer, .chat__members__number, .tour__meta section[data-icon], .tour__featured .mini-game__player, .tour__board .mini-game__player, .tour__main__header, .tour__standing .player .user-link {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}

.tour__featured .mini-game__user .user-link, .tour__controls, .tour__duels line {
  /* extends %flex-center */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
}

.mchat, .mchat__content, .tour__side, .tour__featured, .tour__board, .tour__main__header .clock-created, .tour__ur-playing, .tour__stats, .tour__duels a, .tour__actor-info .stats, #modal-wrap {
  display: flex;
  flex-flow: column;
}

.mchat__tab input, .mchat, .tour__meta, .tour__board, .tour__actor-info, .tour__stats, .tour__meta .tour__prize, .tour__duels .rank, #modal-wrap {
  border-radius: 3px;
}

.mchat, .tour__meta, .tour__board, .tour__actor-info {
  overflow: hidden;
  /* helps with clipping background into border-radius */
}

.mchat__tab {
  border-radius: 3px 3px 0 0;
}

.context-streamer {
  border-radius: 0 0 3px 3px;
}

.tour__stats, .mchat, .tour__meta, .tour__board, .tour__actor-info, .context-streamer, .tour__controls, #modal-wrap .close:hover {
  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);
}

.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;
}

@keyframes bar-glider-anim {
  0% {
    transform: translateX(-1300px);
  }
  100% {
    transform: translateX(2100px);
  }
}

.bar-glider {
  position: relative;
  overflow: hidden;
}

.bar-glider::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 70px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.3));
  animation: bar-glider-anim 3s linear infinite;
}

.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;
}

.pull-quote {
  margin: 0 auto;
}

.pull-quote p {
  color: #bababa;
  position: relative;
  margin: 0 0.7em;
  padding: 1em 0;
  border: 1px solid #404040;
  border-width: 1px 0;
  font-style: italic;
  font-size: 1.1rem;
}

.pull-quote p:after {
  content: '';
  position: absolute;
  bottom: -9px;
  left: 42px;
  width: 15px;
  height: 15px;
  background: #262421;
  border-left: 2px solid #404040;
  border-bottom: 1px solid #404040;
  transform: skew(45deg) rotate(-45deg);
}

.pull-quote.long p {
  font-size: 1rem;
}

.pull-quote footer {
  margin: 10px;
  line-height: 20px;
  text-align: right;
}

.pull-quote footer:before {
  content: '\2014\2009';
}

.fire-trophy {
  text-shadow: 0 0.008em 0.127em #fefcc9, 0.055em -0.066em 0.2em #feec85, -0.111em -0.127em 0.272em #ffae34, 0.111em -0.272em 0.411em #ec760c, -0.111em -0.456em 0.416em #cd4606, 0 -0.533em 0.577em #973716, 0.055em -0.55em 0.533em #451b0e;
}

@keyframes fire-trophy {
  0% {
    text-shadow: 0 0.008em 0.127em #fefcc9, 0.055em -0.066em 0.2em #feec85, -0.111em -0.127em 0.272em #ffae34, 0.111em -0.272em 0.411em #ec760c, -0.111em -0.456em 0.416em #cd4606, 0 -0.533em 0.577em #973716, 0.055em -0.55em 0.533em #451b0e;
  }
  100% {
    text-shadow: 0 0 0.111em #fefcc9, 0.055em -0.055em 0.166em #fefcc9, -0.111em -0.111em 0.222em #feec85, 0.122em -0.233em 0.333em #ffae34, -0.122em -0.322em 0.277em #ec760c, 0 -0.456em 0.444em #cd4606, 0.055em -0.5em 0.444em #973716;
  }
}

.fire-trophy {
  color: #bababa;
  font-size: 90px;
  display: block;
}

.fire-trophy:hover {
  animation: fire-trophy 1.5s ease-in-out infinite alternate;
}

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

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

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

.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;
}

.podium-wrap {
  position: relative;
  padding-bottom: 20px;
}

.podium-wrap #confetti {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 1;
  transition: opacity 25s;
}

.podium-wrap #confetti.faded {
  opacity: 0;
}

.podium {
  position: relative;
  z-index: 2;
}

.podium > div {
  display: inline-block;
  text-align: center;
  overflow: visible;
}

.podium > div.lame {
  opacity: 0.5;
}

.podium > div.lame .user-link {
  text-decoration: line-through;
  font-weight: normal;
}

.podium > div.lame .trophy {
  opacity: 0.3;
  filter: grayscale(100%) contrast(10%);
}

.podium .first {
  width: 33%;
  font-size: 1.6em;
}

.podium .second {
  font-size: 1.3em;
  width: 33%;
}

.podium .third {
  font-size: 1.2em;
  width: 33%;
}

.podium .trophy {
  margin: 0 auto 0.5em auto;
  background: center / contain no-repeat;
}

.podium .first .trophy {
  position: relative;
  height: 9em;
  width: 9em;
  background-image: url("../images/trophy/lichess-massive.svg");
  isolation: isolate;
}

.podium .first .trophy::after {
  content: '';
  position: absolute;
  inset: 0;
  background: center / contain no-repeat;
  background-image: url("../images/trophy/lichess-massive.svg");
  pointer-events: none;
  z-index: 3;
}

.podium .trophy-mascot {
  position: absolute;
  top: -0.05em;
  left: 50%;
  width: 9.6em;
  height: 10.2em;
  transform: translateX(-50%);
  overflow: visible;
  pointer-events: auto;
  z-index: 2;
  cursor: pointer;
}

.podium .trophy-mascot__sprite {
  position: absolute;
  left: 50%;
  bottom: -0.1em;
  transform: translateX(-50%) translateY(-5em);
  will-change: transform;
}

.podium .trophy-mascot__sprite--companion {
  transform: translateX(-50%) translateY(-6em);
}

.podium .trophy-mascot__sprite--popping {
  animation: trophy-mascot-pop 6.4s ease-out 0.8s forwards;
}

.podium .trophy-mascot__sprite--companion.trophy-mascot__sprite--popping {
  animation: trophy-mascot-pop-companion 6.4s ease-out 0.8s forwards;
}

.podium .trophy-mascot__video {
  display: block;
  width: 12.3em;
  height: auto;
}

@keyframes trophy-mascot-pop {
  0% {
    transform: translateX(-50%) translateY(-5em);
  }
  100% {
    transform: translateX(-50%) translateY(-8.2em);
  }
}

@keyframes trophy-mascot-pop-companion {
  0% {
    transform: translateX(-50%) translateY(-6em);
  }
  100% {
    transform: translateX(-50%) translateY(-9.2em);
  }
}

.podium .second .trophy {
  height: 9em;
  width: 7em;
  background-image: url("../images/trophy/lichess-silver-1.svg");
}

.podium .third .trophy {
  height: 7em;
  width: 7em;
  background-image: url("../images/trophy/lichess-bronze-2.svg");
}

@media (max-width: 499px) {
  .podium .trophy {
    display: none;
  }
}

.podium .user-link {
  font-weight: bold;
  letter-spacing: -1px;
}

.podium .stats {
  margin: 0.5em auto 0 auto;
  font-size: 0.7em;
}

.podium .stats th {
  letter-spacing: -1px;
  text-align: left;
}

.podium .stats td {
  font-weight: bold;
  padding-left: 5px;
  text-align: right;
}

.podium .third .stats {
  font-size: 0.8em;
}

.now-playing {
  display: grid;
  --np-min-width: 200px;
  grid-template-columns: repeat(auto-fill, minmax(var(--np-min-width), 1fr));
}

@media (max-width: 499px) {
  .now-playing {
    --np-min-width: 50%;
  }
}

.now-playing > a {
  color: #bababa;
  padding: 0.3em;
}

.now-playing .indicator {
  color: #d64f00;
  margin-top: -3px;
  display: block;
}

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

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;
  }
}

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

.tour__outer_main {
  position: relative;
}

.tour__outer_main #confetti {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 1;
  transition: opacity 4s;
}

.tour__outer_main #confetti.faded {
  opacity: 0;
}

.tour {
  display: grid;
  grid-template-areas: 'main' 'side' 'uchat' 'table';
  grid-gap: 2vmin;
}

.tour__side {
  grid-area: side;
}

.tour__table, .tour__stats, .tour__player {
  grid-area: table;
}

.tour__table {
  position: relative;
  overflow: visible;
}

.tour__main {
  grid-area: main;
}

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

@media (min-width: 800px) {
  .tour {
    grid-template-columns: minmax(500px, calc( 100vh * 0.9 - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem)) minmax(240px, 400px);
    grid-template-rows: calc(100vh - calc(var(--site-header-height) + var(--site-header-margin)) - 2vmin - 3rem) min-content;
    grid-template-areas: 'main  side' 'main  uchat' 'table table';
  }
  .tour__table {
    display: flex;
  }
  .tour__table > * {
    flex: 0 0 50%;
  }
  .tour .mchat__messages {
    max-height: inherit;
  }
}

@media (min-width: 1260px) {
  .tour {
    grid-template-columns: minmax(230px, 20vw) minmax(500px, calc( 100vh * 0.9 - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem)) minmax(240px, 400px);
    grid-template-rows: calc(100vh - calc(var(--site-header-height) + var(--site-header-margin)) - 2vmin - 3rem) auto;
    grid-template-areas: 'side  main table' 'uchat main table';
  }
  .tour__table {
    flex-flow: column;
  }
  .tour__table > * {
    flex: inherit;
  }
}

.mascot {
  width: 400px;
  height: 260px;
  position: relative;
  overflow: hidden;
  pointer-events: auto;
  /* REMOVE this: animation: none !important; */
}

.tour-mascot-featured-dock,
#tour-mascot-mount {
  position: relative;
  overflow: visible;
  min-height: 232px;
  width: 100%;
  z-index: 90;
}

.tour-mascot-featured-dock .mascot-bottom,
#tour-mascot-mount .mascot-bottom {
  position: relative;
  top: 0;
  z-index: 91;
}

.tour-mascot-featured-dock .mascot,
#tour-mascot-mount .mascot {
  position: relative;
  width: 100%;
  height: 232px;
  overflow: visible;
  z-index: 92;
}

.tour-mascot-featured-dock .mascot-sprite,
#tour-mascot-mount .mascot-sprite {
  position: absolute;
  top: -8px;
  bottom: auto;
  left: 0;
  z-index: 93;
  animation: none;
}

/* wrapper that moves left/right */
.mascot-sprite {
  position: absolute;
  left: 0;
  top: 0;
  will-change: transform;
  cursor: grab;
  /* ✅ pacing by default - use left instead of transform */
  animation: mascotPace 6s linear infinite alternate;
  /* ✅ pause animation when chasing */
}

.mascot-sprite.mascot--chasing {
  animation-play-state: paused !important;
}

.mascot--dragging .mascot-sprite {
  cursor: grabbing;
  animation: none !important;
}

.mascot.mascot--free-drag {
  position: fixed !important;
  left: 0;
  top: 0;
  width: 100vw !important;
  height: 100vh !important;
  overflow: visible !important;
  z-index: 2147483646 !important;
  pointer-events: none !important;
}

.mascot.mascot--free-drag .mascot-sprite {
  pointer-events: auto;
  z-index: 2147483647;
  animation: none !important;
}

/* do NOT animate the video; JS flips it */
.mascot-video {
  display: block;
  width: 280px;
  height: auto;
  will-change: transform;
}

/* Hat overlay — positioned to match Spine/C01/Hat.png rendered on the capy's head.
 * Base canvas: 788x504 → CSS 280px wide (scale 0.3553).
 * Hat content bbox in frame: top=220 left=333 (yellow pixels). Cropped PNG is 77x66px.
 * CSS: top = 220*(280/788) ≈ 78px, left = 333*(280/788) ≈ 118px, width = 77*(280/788) ≈ 27px */
.mascot-hat {
  position: absolute;
  width: 27px;
  top: 78px;
  left: 118px;
  pointer-events: none;
  transform-origin: center center;
  will-change: transform;
}

.mascot--paused .mascot-sprite {
  animation-play-state: paused !important;
}

@keyframes mascotPace {
  from {
    left: 0;
  }
  to {
    left: calc(400px - 280px);
  }
}

.mascot-bubble {
  position: absolute;
  left: 50%;
  top: 0px;
  transform: translateX(-50%);
  display: none;
  padding: 6px 10px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.15);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
}

.mascot-bubble::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -6px;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: rgba(255, 255, 255, 0.95);
  border-left: 1px solid rgba(0, 0, 0, 0.15);
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}

.capy-park-wrap {
  grid-column: 1 / -1;
  position: relative;
  padding-top: 140px;
}

.capy-park-wrap__sign {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  pointer-events: none;
  overflow: visible;
}

.capy-park-wrap__sign img {
  width: 406px;
  display: block;
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.85));
}

.capy-playground {
  position: relative;
  height: 660px;
  background: linear-gradient(180deg, #1a3a0a 0%, #2e5c12 45%, #3d7a18 100%);
  overflow: hidden;
  border-radius: 8px;
}

@media (orientation: portrait) and (max-width: 767px) {
  .capy-playground {
    height: 800px;
  }
}

.capy-playground__fence::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 64px;
  pointer-events: none;
  z-index: 10;
  background-image: url("/assets/images/playground/fence-h-sm.png");
  background-repeat: repeat-x;
  background-size: auto 100%;
  background-position: left top;
  -webkit-mask-image: linear-gradient(to right, black 0, black calc(50% - 144px), transparent calc(50% - 144px), transparent calc(50% + 144px), black calc(50% + 144px), black 100%);
  mask-image: linear-gradient(to right, black 0, black calc(50% - 144px), transparent calc(50% - 144px), transparent calc(50% + 144px), black calc(50% + 144px), black 100%);
}

.capy-playground__fence::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 64px;
  pointer-events: none;
  z-index: 10;
  background-image: url("/assets/images/playground/fence-h-sm.png");
  background-repeat: repeat-x;
  background-size: auto 100%;
  background-position: left bottom;
}

.capy-playground__fence {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
}

.capy-playground__fence-left {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 64px;
  pointer-events: none;
  z-index: 11;
  background-image: url("/assets/images/playground/fence-v.png");
  background-repeat: repeat-y;
  background-size: 100% auto;
  background-position: left top;
  transform: scaleX(-1);
}

.capy-playground__fence-right {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 64px;
  pointer-events: none;
  z-index: 11;
  background-image: url("/assets/images/playground/fence-v.png");
  background-repeat: repeat-y;
  background-size: 100% auto;
  background-position: left top;
}

.capy-playground__post {
  display: block;
  position: absolute;
  width: 80px;
  height: 80px;
  pointer-events: none;
  z-index: 12;
  background-image: url("/assets/images/playground/fence-post.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.capy-playground__post--tl {
  top: -8px;
  left: -8px;
}

.capy-playground__post--tr {
  top: -8px;
  right: -8px;
}

.capy-playground__post--bl {
  bottom: -8px;
  left: -8px;
}

.capy-playground__post--br {
  bottom: -8px;
  right: -8px;
}

.capy-playground__ball {
  background: radial-gradient(circle at 38% 32%, #ff9a9a 0%, #ee2222 45%, #990000 100%);
  box-shadow: 2px 4px 10px rgba(0, 0, 0, 0.5), inset -3px -3px 8px rgba(0, 0, 0, 0.3), inset 3px 3px 8px rgba(255, 200, 200, 0.4);
}

.playground-page {
  padding: 0;
  max-width: none;
  width: 100%;
  box-sizing: border-box;
  grid-column: 1 / -1;
}

.playground-page .capy-park-wrap--standalone .capy-playground {
  height: auto;
  min-height: 500px;
  border-radius: 0;
  border-left: none;
  border-right: none;
  background: none;
}

.capy-chessboard {
  position: absolute;
  top: 64px;
  left: 64px;
  right: 64px;
  bottom: 64px;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(8, 1fr);
  pointer-events: none;
  z-index: 0;
}

.capy-chessboard__sq--light {
  background: #f0d9b5;
}

.capy-chessboard__sq--dark {
  background: #b58863;
}

.capy-playground__hotkeys {
  position: absolute;
  top: 8px;
  right: 14px;
  z-index: 25;
  display: flex;
  flex-direction: column;
  gap: 3px;
  pointer-events: none;
  user-select: none;
}

.capy-playground__hotkeys__row {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #fff;
  font-size: 11px;
  font-family: sans-serif;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7);
}

.capy-playground__hotkeys__row kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 3px;
  font-size: 11px;
  font-weight: bold;
  color: #fff;
  font-family: sans-serif;
}

.capy-bubble {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transition: opacity 0.18s ease;
  white-space: nowrap;
  margin-bottom: 2px;
}

.capy-bubble--visible {
  opacity: 1;
}

.capy-bubble__text {
  background: #fff;
  color: #333;
  border: 2px solid #bbb;
  border-radius: 14px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: bold;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
  line-height: 1.4;
}

.capy-bubble__trail {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-top: 3px;
}

.capy-bubble__trail span {
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid #bbb;
  display: block;
}

.capy-bubble__trail span:nth-child(1) {
  width: 7px;
  height: 7px;
}

.capy-bubble__trail span:nth-child(2) {
  width: 5px;
  height: 5px;
}

.capy-bubble__trail span:nth-child(3) {
  width: 3px;
  height: 3px;
}

.tour__side .mchat {
  flex: 1 1 7em;
  margin-top: 2vmin;
}

@media (min-width: 800px) {
  .tour__side .mchat {
    min-height: inherit;
  }
}

.tour__meta {
  background: #262421;
  padding: 1.2vmin 2vmin;
}

.tour__meta section {
  margin-bottom: 2vmin;
}

.tour__meta section::before {
  font-size: 3rem;
  margin-right: 4%;
}

.tour__meta section p {
  margin: 0;
}

.tour__meta section time {
  opacity: 1;
}

.tour__meta section .defender::before {
  font-size: 1.6em;
  vertical-align: -0.26em;
  margin: 0 0.15em 0 -0.15em;
}

.tour__meta section.conditions::before {
  opacity: 0.7;
}

.tour__meta section.conditions.accepted,
.tour__meta section.conditions .accepted {
  color: #629924;
}

.tour__meta section.conditions.refused,
.tour__meta section.conditions .refused {
  color: #cc3333;
}

.tour__meta section.conditions .condition:first-child.accepted::after,
.tour__meta section.conditions .condition + .condition.accepted::after {
  content: '\a0\2713';
}

.tour__meta section.conditions .condition:first-child.refused::after,
.tour__meta section.conditions .condition + .condition.refused::after {
  content: '\a0\2718';
}

.tour__meta .description {
  max-height: 20vh;
  overflow-y: auto;
}

.tour__meta .tour__prize {
  padding: 1em 2vmin;
  background: #302e2c;
  margin-bottom: 1em;
  font-size: 0.9em;
}

.chat__members {
  overflow: visible;
  /* fixes invisible spectators on firefox, col2 */
}

@media (max-width: 799px) and (orientation: portrait) {
  .chat__members {
    margin: 0 2vmin;
  }
}

.tour__featured .mini-game__player i {
  flex: 0 0 auto;
}

.tour__featured .mini-game__player i::before {
  color: #d64f00;
  margin-right: 5px;
}

.tour__featured .mini-game__user {
  display: flex;
}

.tour__featured .mini-game__user strong {
  text-align: center;
  margin-right: 1ch;
}

.tour__featured .mini-game__user .user-link {
  flex: 1 1 100%;
  margin-right: 1em;
}

.tour__boards {
  margin: 2vmin 0;
  grid-gap: 1ch;
  --np-min-width: 200px;
}

.tour__board .mini-game__player {
  padding: 0.2em;
}

.tour__board .mini-game__user {
  display: flex;
}

.tour__board .mini-game__user strong {
  text-align: center;
  margin-right: 1ch;
}

.tour__main__header {
  position: relative;
  z-index: 1;
  min-height: 7em;
  padding: 0 3vmin;
}

.tour__main__header h1 {
  font-size: 2.2rem;
  flex: 9 1 auto;
  margin: 0;
  overflow: hidden;
}

.tour__main__header h1 a {
  /* GM wikipedia */
  color: #8cacca;
}

.tour__main__header h1 a:hover {
  color: #3692e7;
}

.tour__main__header img {
  flex: 0 0 60px;
  display: block;
  width: 60px;
  height: 60px;
  padding: 6px;
}

.tour__main__header .img {
  margin-right: 1rem;
}

.tour__main__header i::before {
  font-size: 2.2rem;
}

.tour-shed .tour__main__header h1 {
  letter-spacing: 2px;
}

.tour-shed-weekly .tour__main__header i::before {
  font-size: 35px;
}

.tour-shed-monthly .tour__main__header i::before,
.tour-shed-weekend .tour__main__header i::before {
  font-size: 40px;
}

.tour-shed-yearly .tour__main__header i::before {
  font-size: 45px;
}

.tour-shed-weekend .tour__main__header h1,
.tour-shed-yearly .tour__main__header h1 {
  letter-spacing: 3px;
}

.tour__main__header .clock {
  flex: 0 0 auto;
  font-weight: bold;
  color: #999999;
}

.tour__main__header .clock-created {
  text-align: right;
}

.tour-sched .tour__main__header h1,
.tour-sched .tour__main__header .img {
  color: #bf811d;
}

.tour__main-finished .tour__main__header h1 {
  text-align: center;
}

.tour-sched-marathon .tour__main-finished .tour__main__header h1 {
  padding-left: 0;
}

.tour__main__header .time {
  font-size: 1.5em;
  margin-left: 0.2em;
}

.tour__main__header .shy {
  line-height: 20px;
  font-size: 0.9em;
  font-weight: bold;
  text-transform: uppercase;
  opacity: 0.6;
  white-space: nowrap;
}

.tour-sched-marathon .tour__main__header h1 {
  color: #4166a0 !important;
  padding-left: 90px;
  letter-spacing: 2px;
}

.tour-sched-marathon .tour__main__header .fire-trophy {
  position: absolute;
  top: 0;
  left: 10px;
  width: 70px;
  height: 80px;
  opacity: 0.7;
  transition: 1s;
  font-family: 'lichess';
  filter: hue-rotate(190deg);
}

.tour-sched-marathon .tour__main__header .fire-trophy:hover {
  opacity: 1;
}

.tour-sched-shield .tour__main__header h1 {
  padding-left: 90px;
  letter-spacing: 2px;
}

.tour-sched-shield .tour__main__header h1 .shield-trophy {
  position: absolute;
  top: -8px;
  left: 12px;
  display: block;
  width: 67px;
  height: 80px;
  background: url(../images/trophy/shield-gold.png) no-repeat;
  background-size: contain;
  font-family: 'lichess';
  font-size: 40px;
  line-height: 80px;
  text-align: center;
  color: #333 !important;
  text-shadow: 0 0 6px #fff;
}

.tour__notice {
  color: #fff;
  background: #629924;
  text-align: center;
  padding: 0.5em 0;
  opacity: 0.8;
}

.tour__notice.closed {
  background: #3692e7;
}

.tour__ur-playing {
  text-align: center;
  font-size: 1.5em;
  position: relative;
}

.tour__ur-playing::before, .tour__ur-playing::after {
  content: '';
  font-size: 2rem;
  position: absolute;
  top: 30px;
}

.tour__ur-playing::before {
  left: 30px;
}

.tour__ur-playing::after {
  right: 30px;
}

.tour__controls {
  padding: 0 0px;
  position: relative;
}

.tour__controls .fbt {
  padding: 0.6em 0.8em;
  text-transform: uppercase;
  line-height: 1.3;
}

@media (min-width: 500px) {
  .tour__controls .fbt {
    padding: 0.6em 1em;
  }
}

@keyframes tour-delay {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

.tour__controls .delay {
  background: rgba(117, 153, 0, 0.5);
  width: 0%;
}

.tour__controls .delay button {
  opacity: 0.7;
  color: #999999;
  mix-blend-mode: luminosity;
}

.tour__controls .highlight {
  position: absolute;
  right: 5px;
  top: -3px;
  padding: 8px 20px;
  border-radius: 8px;
  color: #fff;
  text-decoration: none;
  background: #82bf56;
  border-bottom: 5px solid #759900;
  text-shadow: 0 -1px #759900;
  transition: all 0.1s;
  transform: translate(0px, 0px);
}

.tour__controls .highlight:hover {
  filter: brightness(1.06);
}

.tour__controls .highlight:active {
  transform: translate(0px, 5px);
  border-bottom-width: 1px;
  text-shadow: 0 0 #759900;
  filter: brightness(1);
}

.tour__controls .spinner {
  margin: 0;
  width: 1.5em;
  height: 1.5em;
  margin-right: 0.7em;
}

.tour__controls .pager {
  user-select: none;
}

.tour__controls .pager .page {
  margin: 0 3px;
  white-space: nowrap;
}

.tour__controls .pager input {
  border: none;
  background: rgba(98, 153, 36, 0.2);
}

.tour__controls .pager .search,
.tour__controls .pager input {
  height: 100%;
}

.tour__standing {
  border: none;
}

.tour__standing .player {
  padding-left: 0px;
  padding-right: 0px;
}

.tour__standing .player .name {
  display: inline-block;
  padding-right: 5px;
  max-width: 140px;
}

.tour__standing .user-link.long {
  letter-spacing: -0.7px;
}

.tour__standing .user-link .rating {
  font-style: italic;
  font-size: 0.8em;
}

.tour__standing tr.long .user-link .rating {
  display: block;
  padding-left: 0px;
}

.tour__standing tr {
  transition: all 150ms;
  user-select: none;
}

.tour__standing .loading tbody {
  opacity: 0.6;
  transition: opacity 0.3s;
}

.tour__standing:not(.created):not(.loading) tbody tr:hover {
  background: #2b455d;
  cursor: pointer;
}

.tour__standing tr.me td:first-child {
  background: linear-gradient(to right, #507623 0px, #507623 5px, rgba(0, 0, 0, 0) 5px, rgba(0, 0, 0, 0) 100%);
}

.tour__standing tr.active td:last-child {
  background: linear-gradient(to left, #3171ac 0px, #3171ac 5px, rgba(0, 0, 0, 0) 5px, rgba(0, 0, 0, 0) 100%);
}

.tour__standing td.rank {
  padding: 1em 0.5em 1em 10px;
  width: 1px;
  /* helps keeping it as small as possible */
}

.tour__standing td.rank i {
  opacity: 0.4;
  font-size: 0.8em;
}

.tour__standing .sheet {
  text-align: right;
  padding-right: 0;
  padding-left: 0;
  letter-spacing: 0.1em;
}

.tour__standing .sheet > * {
  display: inline-block;
}

.tour__standing .sheet score {
  opacity: 0.7;
}

.tour__standing tr.long .sheet {
  font-size: 0.9rem;
  letter-spacing: 0.06em;
}

.tour__standing tr.xlong .sheet {
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

.tour__standing double {
  color: #bf811d;
  /* font-weight: bold; */
}

.tour__standing streak {
  color: #629924;
  /* font-weight: bold; */
}

.tour__standing .total {
  text-align: right;
  font-weight: bold;
  padding-right: 2vmin;
}

.tour__stats {
  background: #262421;
  padding: 1.7em 0;
  align-self: flex-start;
}

.tour__stats h2 {
  font-size: 1.5em;
  margin-bottom: 1em;
  text-align: center;
}

.tour__stats table {
  margin: auto;
}

.tour__stats td {
  font-weight: bold;
  padding-left: 1em;
  text-align: right;
  line-height: 2em;
}

.tour__stats__links {
  margin: 2em auto 0 auto;
}

.tour__stats__links a {
  display: block;
  margin: 0.5em 0;
}

.tour__duels {
  margin: 2vmin 0 0 0;
}

@media (min-width: 800px) {
  .tour__duels {
    margin: 0 0 0 2vmin;
  }
}

@media (min-width: 1260px) {
  .tour__duels {
    margin: 2vmin 0 0 0;
  }
}

.tour__duels h2 {
  font-size: 1.5em;
  margin-bottom: 0.2em;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.tour__duels a {
  color: #bababa;
  padding: 0.5em 0.7em;
  white-space: nowrap;
  line-height: 1.9em;
  border-top: 1px solid #272625;
  transition: all 150ms;
}

.tour__duels a:hover {
  background: #1d2e3d;
}

.tour__duels strong {
  font-size: 1.2em;
  color: #999999;
  display: block;
  max-width: 60%;
}

.tour__duels .rank {
  padding: 0.1em 0.5em;
  background: #302e2c;
}

.tour__duels .b .utitle,
.tour__duels .b .rank {
  margin-right: 0.3em;
}

.tour__duels .a .utitle,
.tour__duels .a .rank {
  margin-left: 0.3em;
}

.tour__actor-info {
  background: #262421;
  position: relative;
  align-self: flex-start;
}

.tour__actor-info .spinner {
  margin: 5em auto;
}

.tour__actor-info .close {
  position: absolute;
  top: 4px;
  right: 5px;
  opacity: 0.6;
  transition: all 150ms;
  color: #cc3333;
}

.tour__actor-info .close:hover {
  opacity: 1;
}

.tour__actor-info .stats {
  justify-content: center;
}

.tour__actor-info .stats h2 {
  font-size: 1.4em;
  padding: 0.6rem 1rem;
  border-bottom: 1px solid #404040;
}

.tour__actor-info .stats table {
  margin: 1em auto;
}

.tour__actor-info .stats td {
  font-weight: bold;
  padding-left: 10px;
  text-align: right;
  line-height: 1.8em;
}

.tour__actor-info .sublist {
  width: 100%;
}

.tour__actor-info .sublist tr {
  cursor: pointer;
  transition: background-color 150ms;
}

.tour__actor-info .sublist tr:nth-child(odd) {
  background: #302e2c;
}

.tour__actor-info .sublist tr:hover {
  background: #282f35;
}

.tour__actor-info .sublist th,
.tour__actor-info .sublist td {
  padding: 0.3em;
}

.tour__actor-info .sublist th {
  padding-left: 7px;
}

.tour__player-info .pairings {
  width: 100%;
}

.tour__player-info .pairings tr {
  cursor: pointer;
  transition: background-color 150ms;
}

.tour__player-info .pairings tr:nth-child(odd) {
  background: #302e2c;
}

.tour__player-info .pairings tr:hover {
  background: #282f35;
}

.tour__player-info .pairings th,
.tour__player-info .pairings td {
  padding: 0.3em;
}

.tour__player-info .pairings th {
  border-left: 3px solid transparent;
  transition: all 150ms;
}

.tour__player-info .pairings tr:hover th {
  border-color: #bababa;
}

.tour__player-info .pairings tr.win:hover th {
  border-color: #629924;
}

.tour__player-info .pairings tr.loss:hover th {
  border-color: #cc3333;
}

.tour__player-info .pairings td:nth-child(2) {
  max-width: 200px;
}

.tour__player-info .pairings td:last-child {
  font-weight: bold;
  opacity: 0.8;
}

.tour__player-info .pairings tr.win td:last-child {
  color: #629924;
  opacity: 1;
}

.tour__player-info .pairings tr.loss td:last-child {
  color: #cc3333;
  opacity: 1;
}

.tour__player-info .color-icon {
  opacity: 0.6;
}

.tour__team-info .players {
  width: 100%;
}

.tour__team-info .players tr {
  cursor: pointer;
  transition: background-color 150ms;
}

.tour__team-info .players tr:nth-child(odd) {
  background: #302e2c;
}

.tour__team-info .players tr:hover {
  background: #282f35;
}

.tour__team-info .players th,
.tour__team-info .players td {
  padding: 0.3em 1em;
}

.tour__team-info .players td:last-child {
  text-align: right;
}

.tour__team-info .players .rating {
  font-style: italic;
  font-size: 0.8em;
}

.tour__team-info .players .leader::before {
  color: #bf811d;
  margin-right: 0.15em;
}

.tour .pull-quote {
  margin-top: 30px;
  width: 300px;
}

.tour .box.created {
  padding-bottom: 2em;
  /* as quote margin */
}

.tour__faq {
  padding: 4em var(--box-padding);
  display: none;
}

@media (min-width: 800px) {
  .tour__faq {
    display: block;
  }
}

.tour__faq h2 {
  margin: 1.5em 0 0.5em 0;
}

/* temp hack */
.tour-id-teSmrRnx .podium .trophy {
  transform: rotate(180deg);
}

@keyframes tour-goat-run-ltr {
  from {
    transform: translateX(-200px) translateY(-50%);
  }
  to {
    transform: translateX(calc(100vw + 200px)) translateY(-50%);
  }
}

@keyframes tour-goat-run-rtl {
  from {
    transform: translateX(calc(100vw + 200px)) translateY(-50%);
  }
  to {
    transform: translateX(-200px) translateY(-50%);
  }
}

.tour__goat-run {
  position: fixed;
  top: 50%;
  left: 0;
  z-index: 9999;
  pointer-events: none;
}

.tour__goat-run--ltr {
  animation: tour-goat-run-ltr 4.5s linear forwards;
}

.tour__goat-run--rtl {
  animation: tour-goat-run-rtl 4.5s linear forwards;
}

.tour__goat-run__img {
  height: 143px;
  display: block;
}

.tour__goat-run__img--flipped {
  transform: scaleX(-1);
}

.tour__goat-run__icon {
  display: none;
}

.goat-icon {
  height: 18px;
  vertical-align: middle;
  margin-left: 4px;
}

#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;
}

team {
  padding: 1px 5px;
  font-size: 0.8em;
  font-weight: bold;
  color: #bf811d;
}

team.ttc-0 {
  color: #a42eff;
}

team.ttc-1 {
  color: #5757ff;
}

team.ttc-2 {
  color: #008000;
}

team.ttc-3 {
  color: #b22222;
}

team.ttc-4 {
  color: #ec7a51;
}

team.ttc-5 {
  color: #9acd32;
}

team.ttc-6 {
  color: #ff4500;
}

team.ttc-7 {
  color: #2e8b57;
}

team.ttc-8 {
  color: #daa520;
}

team.ttc-9 {
  color: #d27e1e;
}

.tour__player-info team {
  margin: 1rem auto 0 auto;
  padding: 0.15rem 0.8rem;
  font-size: 1em;
  cursor: pointer;
}

.tour__standing .rating {
  padding-right: 5px;
}

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

.tour__team-standing tbody tr:nth-child(even) {
  background: #262421;
}

.tour__team-standing .team {
  cursor: pointer;
}

.tour__team-standing .team:hover {
  color: #3692e7;
}

.tour__team-standing .team team {
  font-size: 1rem;
}

.tour__team-standing .players {
  color: #999999;
}

.tour__team-standing score {
  font-weight: bold;
  padding: 0 2px;
  cursor: pointer;
}

.tour__team-standing score:hover {
  color: #bf811d;
}

.tour__team-standing score.top username {
  font-weight: normal;
}

.tour__team-standing .total {
  text-align: right;
  font-weight: bold;
  padding-right: 2vmin;
}

.tour__team-standing tr.active td:last-child {
  background: linear-gradient(to left, #3171ac 0px, #3171ac 5px, rgba(0, 0, 0, 0) 5px, rgba(0, 0, 0, 0) 100%);
}

.tour__main .tour__team-standing tr:hover {
  background: #2b455d !important;
}

.tour__team-standing td {
  padding: 1rem 0.5rem;
}

.tour__team-standing .more-teams {
  padding: 0 !important;
}

.tour__team-standing .more-teams a {
  padding: 1rem 0;
  display: block;
  text-align: center;
}

.tour__team-standing--full td {
  padding: 2rem 1rem;
}

.tour__team-standing--full td.team {
  color: #bf811d;
  font-weight: bold;
}

.team-battle__list a {
  display: block;
}

.team-battle__choice button {
  width: 100%;
  margin-top: 1rem;
}

.tour__duels team {
  line-height: normal;
}

.team-picker ul {
  text-align: left;
  font-size: 1.1em;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91cm5hbWVudC9jc3MvYnVpbGQvdG91cm5hbWVudC5zaG93LnRlYW0tYmF0dGxlLmRhcmsuY3NzIiwic291cmNlcyI6WyJ0b3VybmFtZW50L2Nzcy9idWlsZC90b3VybmFtZW50LnNob3cudGVhbS1iYXR0bGUuZGFyay5zY3NzIiwiY29tbW9uL2Nzcy90aGVtZS9fZGFyay5zY3NzIiwiY29tbW9uL2Nzcy90aGVtZS9fZGVmYXVsdC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fZnVuY3Rpb25zLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9idWlsZC9fdG91cm5hbWVudC5zaG93LnRlYW0tYmF0dGxlLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9idWlsZC9fdG91cm5hbWVudC5zaG93LnNjc3MiLCJjb21tb24vY3NzL19wbHVnaW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19sZWdhY3ktc2V0dGluZ3Muc2NzcyIsImNvbW1vbi9jc3MvYWJzdHJhY3QvX2FsbC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fei1pbmRleC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fbWVkaWEtcXVlcmllcy5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fdmFyaWFibGVzLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L191bmlib2FyZC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fbWl4aW5zLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19leHRlbmRzLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19mbGV4LnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19ib3guc2NzcyIsImNvbW1vbi9jc3MvYWJzdHJhY3QvX2ZsdWlkLXNpemUuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19mYnQuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19iYXItZ2xpZGVyLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fc2xpc3Quc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19xdW90ZS5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX2ZpcmUtdHJvcGh5LnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fY29sb3ItaWNvbi5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX2NvbnRleHQtc3RyZWFtZXIuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19wb2RpdW0uc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19ub3ctcGxheWluZy5zY3NzIiwiY2hhdC9jc3MvX2NoYXQuc2NzcyIsImNvbW1vbi9jc3MvYmFzZS9fc2Nyb2xsYmFyLnNjc3MiLCJjaGF0L2Nzcy9fdGFiLnNjc3MiLCJjaGF0L2Nzcy9fbWVtYmVycy5zY3NzIiwiY2hhdC9jc3MvX2Rpc2N1c3Npb24uc2NzcyIsImNoYXQvY3NzL19wYWxhbnRpci5zY3NzIiwidG91cm5hbWVudC9jc3MvX3Nob3cuc2NzcyIsInRvdXJuYW1lbnQvY3NzL19sYXlvdXQuc2NzcyIsInRvdXJuYW1lbnQvY3NzL19zaWRlLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9fZmVhdHVyZWQuc2NzcyIsInRvdXJuYW1lbnQvY3NzL19ib2FyZHMuc2NzcyIsInRvdXJuYW1lbnQvY3NzL19hcHAtaGVhZGVyLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9fYXBwLW5vdGljZS5zY3NzIiwidG91cm5hbWVudC9jc3MvX2FwcC1jb250cm9sLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9fYXBwLXN0YW5kaW5nLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9fc3RhdHMuc2NzcyIsInRvdXJuYW1lbnQvY3NzL19kdWVsLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9fYWN0b3ItaW5mby5zY3NzIiwidG91cm5hbWVudC9jc3MvX3BsYXllci1pbmZvLnNjc3MiLCJ0b3VybmFtZW50L2Nzcy9fdGVhbS1pbmZvLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fbW9kYWwuc2NzcyIsInRvdXJuYW1lbnQvY3NzL190ZWFtLWJhdHRsZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvdGhlbWUvZGFyayc7XG5AaW1wb3J0ICd0b3VybmFtZW50LnNob3cudGVhbS1iYXR0bGUnO1xuIiwiQGltcG9ydCAnZGVmYXVsdCc7XG5cbiR0aGVtZTogJ2RhcmsnO1xuJGNvbG9yLXNjaGVtZTogJ2RhcmsnO1xuJHRoZW1lLWxpZ2h0OiBmYWxzZTtcbiR0aGVtZS1kYXJrOiB0cnVlO1xuXG5AZnVuY3Rpb24gYy1kaW1tZXIoJGNvbG9yLCAkd2VpZ2h0OiAyMCUpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuQGZ1bmN0aW9uIGMtY2xlYXJlcigkY29sb3IsICR3ZWlnaHQ6IDIwJSkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICR3ZWlnaHQpO1xufVxuXG4kYy1iZy1wYWdlOiBoc2woJGMtc2l0ZS1odWUsIDEwJSwgOCUpO1xuJGMtYmctaGlnaDogaHNsKCRjLXNpdGUtaHVlLCA3JSwgMTQlKTtcbiRjLWJnLWxvdzogaHNsKCRjLXNpdGUtaHVlLCA3JSwgMjIlKTtcblxuLyogZXZlbiByb3dzIGluIGxpc3Qgb3IgdGFibGVzLCBzdWJ0bGUgc2hhZGUgb2YgJGMtYmctaGlnaCAqL1xuJGMtYmctemVicmE6IGhzbCgkYy1zaXRlLWh1ZSwgNSUsIDE4JSk7XG4kYy1iZy16ZWJyYTI6IGhzbCgkYy1zaXRlLWh1ZSwgNSUsIDIzJSk7XG5cbiRjLWJvZHktZ3JhZGllbnQ6IGhzbCgkYy1zaXRlLWh1ZSwgMTIlLCAxNiUpO1xuXG4kYy1mb250OiBoc2woMCwgMCUsIDczJSk7XG4kYy1mb250LWRpbTogYy1saWdodCgkYy1mb250LCA2MCUpO1xuJGMtZm9udC1kaW1tZXI6IGMtbGlnaHQoJGMtZm9udCwgNDIlKTtcbiRjLWZvbnQtY2xlYXI6IGMtbGlnaHQoJGMtZm9udCwgODAlKTtcbiRjLWZvbnQtY2xlYXJlcjogYy1saWdodCgkYy1mb250LCA4OSUpO1xuJGMtc2hhZGU6IGMtbGlnaHQoJGMtZm9udCwgMzAlKTtcbiRjLWZvbnQtcGFnZTogJGMtZm9udC1kaW07XG5cbi8qIFByaW1hcnk6IGJsdWUgKi9cbiRjLXByaW1hcnk6IGhzbCgyMDksIDc5JSwgNTYlKTtcbiRjLXByaW1hcnktZGltOiBjLWRpbW1lcigkYy1wcmltYXJ5LCAxNSUpO1xuJGMtcHJpbWFyeS1jbGVhcjogYy1jbGVhcmVyKCRjLXByaW1hcnkpO1xuXG4vKiBTZWNvbmRhcnk6IGdyZWVuICovXG4kYy1zZWNvbmRhcnk6IGhzbCg4OCwgNjIlLCAzNyUpO1xuJGMtc2Vjb25kYXJ5LWRpbTogYy1kaW1tZXIoJGMtc2Vjb25kYXJ5KTtcbiRjLXNlY29uZGFyeS1kaW1tZXI6IGMtZGltbWVyKCRjLXNlY29uZGFyeSwgNDAlKTtcblxuLyogQnJhZzogZ29sZCAqL1xuJGMtYnJhZzogaHNsKDM3LCA3NCUsIDQzJSk7XG5cbi8qIEZhbmN5OiBwaW5rICovXG4kYy1mYW5jeTogaHNsKDI5NCwgNjIlLCA0OCUpO1xuXG4vKiBHb29kOiBncmVlbiAqL1xuJGMtZ29vZDogJGMtc2Vjb25kYXJ5O1xuJGMtZ29vZC1vdmVyOiAkYy1zZWNvbmRhcnktb3ZlcjtcblxuLyogV2Fybjogb3JhbmdlICovXG4kYy13YXJuOiAkYy1icmFnO1xuJGMtd2Fybi1vdmVyOiAkYy1icmFnLW92ZXI7XG5cbi8qIEJhZDogcmVkICovXG4kYy1iYWQ6ICRjLWVycm9yO1xuJGMtYmFkLW92ZXI6ICRjLWVycm9yLW92ZXI7XG5cbiRjLWxpbms6ICRjLXByaW1hcnk7XG4kYy1saW5rLWRpbTogJGMtcHJpbWFyeS1kaW07XG4kYy1saW5rLWNsZWFyOiAkYy1wcmltYXJ5LWNsZWFyO1xuJGMtbGluay1ob3ZlcjogYy1jbGVhcmVyKHNhdHVyYXRlKCRjLXByaW1hcnksIDEwMCUpLCAyNSUpO1xuXG4kYy1iZy1ib3g6ICRjLWJnLWhpZ2g7XG4kYy1iZy1ib3gtb3BhcXVlOiAkYy1iZy1ib3g7XG4kYy1iZy1pbnB1dDogYy1saWdodCgkYy1iZy1wYWdlLCAxMyUpO1xuXG4kYy1iZy1wb3B1cDogJGMtYmctbG93O1xuJGMtcG9wdXA6ICRjLWZvbnQtY2xlYXI7XG5cbiRjLWJnLWhlYWRlci1kcm9wZG93bjogJGMtYmctcG9wdXA7XG4kYy1oZWFkZXItZHJvcGRvd246ICRjLXBvcHVwO1xuXG4kYy1ib3Q6ICRjLWZhbmN5O1xuXG4kYy1wYWdlLWlucHV0OiAkYy1iZy1ib3g7XG5cbiRjLWJvcmRlcjogaHNsKDAsIDAlLCAyNSUpO1xuJGMtYm9yZGVyLXBhZ2U6IGhzbCgwLCAwJSwgMjIlKTtcbiRib3JkZXI6ICRib3JkZXItd2lkdGggJGJvcmRlci1zdHlsZSAkYy1ib3JkZXI7XG5cbiRjLWZvbnQtc2hhZG93OiBibGFjaztcbiR0ZXh0LXNoYWRvdzogbm9uZTtcblxuQG1peGluIG1ldGFsLWJnIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgaHNsKCRjLXNpdGUtaHVlLCA3JSwgMjIpLCBoc2woJGMtc2l0ZS1odWUsIDUlLCAxOSkgMTAwJSk7XG59XG5cbkBtaXhpbiBtZXRhbCB7XG4gIEBpbmNsdWRlIG1ldGFsLWJnO1xufVxuXG5AbWl4aW4gbWV0YWwtaG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2woJGMtc2l0ZS1odWUsIDclLCAyNSksIGhzbCgkYy1zaXRlLWh1ZSwgNSUsIDIyKSAxMDAlKTtcbiAgY29sb3I6ICRjLWZvbnQtY2xlYXI7XG59XG5cbkBtaXhpbiBwYWdlLW1ldGFsIHtcbiAgQGluY2x1ZGUgbWV0YWw7XG59XG5cbkBtaXhpbiBwYWdlLW1ldGFsLWhvdmVyIHtcbiAgQGluY2x1ZGUgbWV0YWwtaG92ZXI7XG59XG5cbkBtaXhpbiB0aGVtZS1zdHlsZSB7XG59XG4iLCJAaW1wb3J0ICcuLi9hYnN0cmFjdC9mdW5jdGlvbnMnO1xuXG4vKiBDb2xvcnMgKi9cblxuQGZ1bmN0aW9uIGMtZGltbWVyKCRjb2xvciwgJHdlaWdodDogMTclKSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHdlaWdodCk7XG59XG5cbkBmdW5jdGlvbiBjLWNsZWFyZXIoJGNvbG9yLCAkd2VpZ2h0OiAxNyUpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuJGMtc2l0ZS1odWU6IDM3O1xuXG4kYy1iZy1wYWdlOiBoc2woJGMtc2l0ZS1odWUsIDEwJSwgOTIlKTtcblxuLy8gaHNsKDIxMCwgMTclLCA5NSUpXG4kYy1iZy1oaWdoOiBoc2woMCwgMCUsIDEwMCUpO1xuJGMtYmctbG93OiBoc2woMCwgMCUsIDg5JSk7XG5cbi8qIGV2ZW4gcm93cyBpbiBsaXN0IG9yIHRhYmxlcywgc3VidGxlIHNoYWRlIG9mICRjLWJnLWhpZ2ggKi9cbiRjLWJnLXplYnJhOiBoc2woJGMtc2l0ZS1odWUsIDEyJSwgOTYuNSUpO1xuJGMtYmctemVicmEyOiBoc2woJGMtc2l0ZS1odWUsIDEyJSwgOTIlKTtcblxuJGMtYm9keS1ncmFkaWVudDogaHNsKCRjLXNpdGUtaHVlLCAxMiUsIDg0JSk7XG5cbiRjLWZvbnQ6IGhzbCgwLCAwJSwgMzAlKTtcbiRjLWZvbnQtZGltOiBjLWxpZ2h0KCRjLWZvbnQsIDQ3JSk7XG4kYy1mb250LWRpbW1lcjogYy1saWdodCgkYy1mb250LCA3MCUpO1xuJGMtZm9udC1jbGVhcjogYy1saWdodCgkYy1mb250LCAxMiUpO1xuJGMtZm9udC1jbGVhcmVyOiBjLWxpZ2h0KCRjLWZvbnQsIDAlKTtcbiRjLXNoYWRlOiBjLWRpbW1lcigkYy1mb250LCA4MCUpO1xuJGMtZm9udC1wYWdlOiBjLWxpZ2h0KCRjLWZvbnQsIDM3JSk7XG5cbi8qIFByaW1hcnk6IGJsdWUgKi9cbiRjLXByaW1hcnk6IGhzbCgyMDksIDc3JSwgNDYlKTtcbiRjLXByaW1hcnktZGltOiBjLWRpbW1lcigkYy1wcmltYXJ5KTtcbiRjLXByaW1hcnktY2xlYXI6IGMtY2xlYXJlcigkYy1wcmltYXJ5KTtcbiRjLXByaW1hcnktb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIHByaW1hcnkgYmFja2dyb3VuZCAqL1xuXG4vKiBTZWNvbmRhcnk6IGdyZWVuICovXG4kYy1zZWNvbmRhcnk6IGhzbCg4OCwgNjIlLCAzNyUpO1xuJGMtc2Vjb25kYXJ5LWRpbTogYy1kaW1tZXIoJGMtc2Vjb25kYXJ5KTtcbiRjLXNlY29uZGFyeS1kaW1tZXI6IGMtZGltbWVyKCRjLXNlY29uZGFyeSwgNDAlKTtcbiRjLXNlY29uZGFyeS1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgc2Vjb25kYXJ5IGJhY2tncm91bmQgKi9cblxuLyogQWNjZW50OiBvcmFuZ2UgKi9cbiRjLWFjY2VudDogaHNsKDIyLCAxMDAlLCA0MiUpO1xuJGMtYWNjZW50LWRpbTogYy1kaW1tZXIoJGMtYWNjZW50KTtcbiRjLWFjY2VudC1jbGVhcjogYy1jbGVhcmVyKCRjLWFjY2VudCk7XG4kYy1hY2NlbnQtb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIGFjY2VudCBiYWNrZ3JvdW5kICovXG5cbi8qIEJyYWc6IGdvbGQgKi9cbiRjLWJyYWc6IGhzbCgzNywgNzQlLCA0OCUpO1xuJGMtYnJhZy1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgYnJhZyBiYWNrZ3JvdW5kICovXG5cbi8qIEVycm9yOiByZWQgKi9cbiRjLXJlZDogaHNsKDAsIDYwJSwgNTAlKTtcbiRjLWVycm9yOiAkYy1yZWQ7XG4kYy1lcnJvci1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgYnJhZyBiYWNrZ3JvdW5kICovXG5cbi8qIEdvb2Q6IGdyZWVuICovXG4kYy1nb29kOiAkYy1zZWNvbmRhcnk7XG4kYy1nb29kLW92ZXI6ICRjLXNlY29uZGFyeS1vdmVyO1xuXG4vKiBXYXJuOiBvcmFuZ2UgKi9cbiRjLXdhcm46ICRjLWJyYWc7XG4kYy13YXJuLW92ZXI6ICRjLWJyYWctb3ZlcjtcblxuLyogQmFkOiByZWQgKi9cbiRjLWJhZDogJGMtZXJyb3I7XG4kYy1iYWQtb3ZlcjogJGMtZXJyb3Itb3ZlcjtcblxuLyogSGVhcnQ6IHJlZCAqL1xuJGMtaGVhcnQ6ICRjLWVycm9yO1xuJGMtaGVhcnQtb3ZlcjogJGMtZXJyb3Itb3ZlcjtcblxuLyogRmFuY3k6IHBpbmsgKi9cbiRjLWZhbmN5OiBoc2woMjk0LCA2MSUsIDYyJSk7XG4kYy1mYW5jeS1vdmVyOiB3aGl0ZTtcblxuLyogdGV4dCBvdmVyIGJyYWcgYmFja2dyb3VuZCAqL1xuXG4kYy1saW5rOiAkYy1wcmltYXJ5O1xuJGMtbGluay1kaW06ICRjLXByaW1hcnktZGltO1xuJGMtbGluay1jbGVhcjogJGMtcHJpbWFyeS1jbGVhcjtcbiRjLWxpbmstaG92ZXI6IGMtY2xlYXJlcihzYXR1cmF0ZSgkYy1wcmltYXJ5LCAxMDAlKSwgMzUlKTtcbiRjLWxpbmstb3ZlcjogJGMtcHJpbWFyeS1vdmVyO1xuXG4kYy1iZy1ib3g6ICRjLWJnLWhpZ2g7XG4kYy1iZy1ib3gtb3BhcXVlOiAkYy1iZy1ib3g7XG4kYy1iZy1pbnB1dDogYy1saWdodCgkYy1iZy1wYWdlLCA5OCUpO1xuXG4kYy1ib3JkZXI6IGhzbCgwLCAwJSwgODUlKTtcbiRjLWJvcmRlci1wYWdlOiBoc2woMCwgMCUsIDgwJSk7XG5cbiRjLXBhZ2UtbWFzazogaHNsYSgwLCAwLCAwJSwgMC42KTtcblxuJGMtYmctcG9wdXA6ICRjLWJnLWhpZ2g7XG4kYy1wb3B1cDogJGMtZm9udDtcblxuJGMtYmctaGVhZGVyLWRyb3Bkb3duOiAkYy1iZy1wb3B1cDtcbiRjLWhlYWRlci1kcm9wZG93bjogJGMtcG9wdXA7XG5cbiRjLWZvbnQtc2hhZG93OiB3aGl0ZTtcbiR0ZXh0LXNoYWRvdzogMCAxcHggMCAkYy1mb250LXNoYWRvdztcblxuJGMtYm90OiAkYy1mYW5jeTtcblxuJGMtcGFnZS1pbnB1dDogJGMtYmctbG93O1xuXG4vKiBCb3JkZXJzICovXG5cbiRib3JkZXItd2lkdGg6IDFweDtcbiRib3JkZXItc3R5bGU6IHNvbGlkO1xuJGJvcmRlcjogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlICRjLWJvcmRlcjtcblxuLyogU2hhZG93cyAqL1xuXG4kYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4vLyAkYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTU3KTtcbiIsIkBmdW5jdGlvbiBjLWxpZ2h0KCRjb2xvciwgJHZhbHVlKSB7XG4gIEByZXR1cm4gY2hhbmdlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHZhbHVlKTtcbn1cblxuQGZ1bmN0aW9uIGltZy11cmwoJHBhdGgpIHtcbiAgQHJldHVybiB1cmwoJyN7JGltZy1wYXRofS8jeyRwYXRofScpO1xufVxuIiwiQGltcG9ydCAndG91cm5hbWVudC5zaG93JztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L21vZGFsJztcbkBpbXBvcnQgJy4uL3RlYW0tYmF0dGxlJztcbiIsIkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvcGx1Z2luJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L2ZidCc7XG5AaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9iYXItZ2xpZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L3NsaXN0JztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L3F1b3RlJztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L2ZpcmUtdHJvcGh5JztcbkBpbXBvcnQgJy4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L2NvbG9yLWljb24nO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvY29udGV4dC1zdHJlYW1lcic7XG5AaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9wb2RpdW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvbm93LXBsYXlpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vY2hhdC9jc3MvY2hhdCc7XG5AaW1wb3J0ICcuLi9zaG93JztcbiIsIi8qIENvbW1vbiBpbXBvcnRzIGZvciBhbGwgQ1NTIG1vZHVsZXMgKi9cblxuQGltcG9ydCAnLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50JztcblxuQGltcG9ydCAnYWJzdHJhY3QvYWxsJztcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcyBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkc2V0dGluZykge1xuICBAaWYgYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnQsICRzZXR0aW5nKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCcmVha3BvaW50LVNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwge1xuICAgIEB3YXJuIFwiV29yZHMgaW4gQnJlYWtwb2ludCBzZXR0aW5ncyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IHNwYWNlcywgbm90IGRhc2hlcyBvciB1bmRlcnNjb3Jlcy4gUGxlYXNlIHJlcGxhY2UgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBiZXR3ZWVuIHdvcmRzIHdpdGggc3BhY2VzLiBTZXR0aW5ncyB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIHVudGlsIGNoYW5nZWQuXCI7XG4gIH1cbiAgJGJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkYnJlYWtwb2ludCwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRicmVha3BvaW50LWNoYW5nZTogYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYmtwdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cbkBtaXhpbiBia3B0LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlbW92ZSBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59XG5cbkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSBhbmQgdHlwZS1vZihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3ticmVha3BvaW50LWdldChcXCdiYXNlIGZvbnQgc2l6ZVxcJyl9IGlzIG5vdCBzZXQgaW4gdmFsaWQgdW5pdHMgZm9yIGZvbnQgc2l6ZSEnO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcbiAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxNnB4ICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICclJyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdlbScge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTJwdCAqIDFlbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4vLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgbWluL21heCBwYWlyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIHN0cmluZyB2YWx1ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICAnb3JpZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2x1bWlub3NpdHknO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgYnJlYWtwb2ludC1taW4tbWF4KCRpdGVtKSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgaXMgYSBtZWRpYSB0eXBlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAgJ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdicmFpbGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYm9zc2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRoZWxkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWVjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHYnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xuICBAZWFjaCAkbWVkaWEgaW4gJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXMge1xuICAgIEBpZiAoJGZlYXR1cmUgPT0gJG1lZGlhKSBvciAoJGZlYXR1cmUgPT0gJ25vdCAjeyRtZWRpYX0nKSBvciAoJGZlYXR1cmUgPT0gJ29ubHkgI3skbWVkaWF9Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBzdGFuZCBhbG9uZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XG4gICRyZXNvbHV0aW9uczogJ2RldmljZS1waXhlbC1yYXRpbycsICdkcHInO1xuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgICRyZXNvbHV0aW9uczogYXBwZW5kKCRyZXNvbHV0aW9ucywgJ3Jlc29sdXRpb24nKTtcbiAgfVxuXG4gIEBlYWNoICRyZXNvIGluICRyZXNvbHV0aW9ucyB7XG4gICAgQGlmIGluZGV4KCRmZWF0dXJlLCAkcmVzbykgb3IgaW5kZXgoJGZlYXR1cmUsICdtaW4tI3skcmVzb30nKSBvciBpbmRleCgkZmVhdHVyZSwgJ21heC0jeyRyZXNvfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGFyc2VyIFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwicGFyc2Vycy9xdWVyeVwiO1xuQGltcG9ydCBcInBhcnNlcnMvc2luZ2xlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9kb3VibGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3RyaXBsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvcmVzb2x1dGlvblwiO1xuXG4kTWVtby1FeGlzdHM6IGZ1bmN0aW9uLWV4aXN0cyhtZW1vLWdldCkgYW5kIGZ1bmN0aW9uLWV4aXN0cyhtZW1vLXNldCk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBGdW5jdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkcXVlcnksICRjb250ZXh0cy4uLikge1xuICAkcnVuOiB0cnVlO1xuICAkcmV0dXJuOiAoKTtcblxuICAvLyBHcmFiIHRoZSBNZW1vIE91dHB1dCBpZiBNZW1vaXphdGlvbiBjYW4gYmUgYSB0aGluZ1xuICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAkcmV0dXJuOiBtZW1vLWdldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMpO1xuXG4gICAgQGlmICRyZXR1cm4gIT0gbnVsbCB7XG4gICAgICAkcnVuOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRNZW1vLUV4aXN0cyBvciAkcnVuIHtcbiAgICAvLyBJbnRlcm5hbCBWYXJpYWJsZXNcbiAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAkcXVlcnktZmFsbGJhY2s6IGZhbHNlO1xuICAgICRyZXR1cm46ICgpO1xuXG4gICAgLy8gUmVzZXJ2ZSBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkaG9sZGVyLWNvbnRleHQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI7XG4gICAgJGhvbGRlci1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDtcblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG5cbiAgICAvLyBUZXN0IHRvIHNlZSBpZiBpdCdzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3RcbiAgICAkb3ItbGlzdDogaWYobGlzdC1zZXBhcmF0b3IoJHF1ZXJ5KSA9PSAnY29tbWEnLCB0cnVlLCBmYWxzZSk7XG5cblxuICAgIEBpZiAoJG9yLWxpc3QgPT0gZmFsc2UgYW5kIGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gZmFsc2UpIHtcbiAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgICAgICRsYXN0OiBudGgoJHF1ZXJ5LCAkbGVuZ3RoKTtcbiAgICAgICRxdWVyeS1mYWxsYmFjazogYnJlYWtwb2ludC1uby1xdWVyeSgkbGFzdCk7XG5cbiAgICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSB7XG4gICAgICAgICRsZW5ndGg6ICRsZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gdHJ1ZSkge1xuICAgICAgICAkbXE6ICgpO1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJG1xOiBhcHBlbmQoJG1xLCBudGgoJHF1ZXJ5LCAkaSksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJG1xKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJHF1ZXJ5LXN0cmluZzogJHF1ZXJ5LXN0cmluZyArIGlmKCRpID09IDEsICcnLCAnLCAnKSArIGJyZWFrcG9pbnQtcGFyc2UobnRoKCRxdWVyeSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRyZXR1cm46ICgncXVlcnknOiAkcXVlcnktc3RyaW5nLFxuICAgICAgICAnZmFsbGJhY2snOiAkcXVlcnktZmFsbGJhY2ssXG4gICAgICAgICdjb250ZXh0IGhvbGRlcic6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsXG4gICAgICAgICdxdWVyeSBjb3VudCc6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnRcbiAgICApO1xuICAgIEBpZiBsZW5ndGgoJGNvbnRleHRzKSA+IDAgYW5kIG50aCgkY29udGV4dHMsIDEpICE9IGZhbHNlIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICAgICAgfVxuICAgICAgJGNvbnRleHQtbWFwOiAoKTtcbiAgICAgIEBlYWNoICRjb250ZXh0IGluICRjb250ZXh0cyB7XG4gICAgICAgICRjb250ZXh0LW1hcDogbWFwLW1lcmdlKCRjb250ZXh0LW1hcCwgKCRjb250ZXh0OiBicmVha3BvaW50LWdldC1jb250ZXh0KCRjb250ZXh0KSkpO1xuICAgICAgfVxuICAgICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sIChjb250ZXh0OiAkY29udGV4dC1tYXApKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuICAgIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICAgJGhvbGRlcjogbWVtby1zZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzLCAkcmV0dXJuKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2VuZXJhbCBCcmVha3BvaW50IFBhcnNlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpIHtcbiAgLy8gSW5jcmVhc2UgbnVtYmVyIG9mICdhbmQnIHF1ZXJpZXNcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCArIDEgIWdsb2JhbDtcblxuICAvLyBTZXQgdXAgTWVkaWEgVHlwZVxuICAkcXVlcnktcHJpbnQ6ICcnO1xuXG4gICRmb3JjZS1hbGw6ICgoYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykgPT0gdHJ1ZSkgYW5kIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpID09ICdhbGwnKSk7XG4gICRlbXB0eS1tZWRpYTogdHJ1ZTtcbiAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpICE9ICdhbGwnKSB7XG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG4gIH1cblxuXG4gICRxdWVyeS1yZXNvbHV0aW9uOiBmYWxzZTtcblxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XG5cblxuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxuICAkZmlyc3Q6IHRydWU7XG5cbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRmZWF0dXJlKTtcblxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgLy8gRmVhdHVyZSBpcyBjdXJyZW50bHkgYSBsaXN0LCBncmFiIHRoZSBhY3R1YWwgdmFsdWVcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xuXG4gICAgICAvLyBNZWRpYSBUeXBlIG11c3QgYnkgY29udmVudGlvbiBiZSB0aGUgZmlyc3QgaXRlbSwgc28gaXQncyBzYWZlIHRvIGZsYXQgb3ZlcnJpZGUgJHF1ZXJ5LXByaW50LCB3aGljaCByaWdodCBub3cgc2hvdWxkIG9ubHkgYmUgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZVxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xuICAgICAgICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRmZWF0dXJlICE9ICdhbGwnKSB7XG4gICAgICAgICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcbiAgICAgICAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcbiAgICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtZWRpYSwgJHF1ZXJ5LXByaW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgZG91YmxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkgIT0gZmFsc2UpIHtcbiAgICAgICAgJHF1ZXJ5LXJlc29sdXRpb246ICRmZWF0dXJlO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBudWxsO1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxuICAgICAgICAvLyB3ZSBjaGVjayB0byBzZWUgaWYgb25lIGlzIGEgc2luZ2xlLXN0cmluZyB2YWx1ZSxcbiAgICAgICAgLy8gdGhlbiB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xuICAgICAgICAkYmV0YTogbnRoKCRmZWF0dXJlLCAyKTtcbiAgICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYWxwaGEpIG9yIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYmV0YSkge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgdHJpcGxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAoJHF1ZXJ5LXJlc29sdXRpb24gIT0gZmFsc2UpIHtcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBmZWF0dXJlIHRoYXQncyBiZWVuIGRldGVjdGVkIHNvIGZhciBhbmQgYXBwZW5kICdmYWxzZScgdG8gdGhlIHRoZSB2YWx1ZSBsaXN0IHRvIGluY3JlbWVudCB0aGVpciBjb3VudGVyc1xuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XG4gICAgJHYtaG9sZGVyOiAkdjtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgICBAaWYgJGYgPT0gJ21lZGlhJyB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KSB7XG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XG4gICRmZWF0dXJlLWhvbGRlcjogKCk7XG4gICRxdWVyeS1ob2xkZXI6ICgpO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xuICAgIEBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSBvciAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG5cbiAgICAgICRudW1iZXI6ICcnO1xuICAgICAgJHZhbHVlOiAnJztcblxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMik7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxuICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkdmFsdWUpIHtcbiAgICAgICAgQGlmIHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEgbWVkaWEgdHlwZSwgc3BsaXQgdGhlIHF1ZXJ5XG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDIpKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSB7XG4gICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIHN0cmluZ3MgYW5kIG5laXRoZXIgYXJlIHNpbmdsZXMsIHdlIHJvbGwgd2l0aCB0aGF0LlxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XG4gICAgLy8gSWYgd2UndmUgZ290IHRocmVlIGl0ZW1zIGFuZCBub25lIGlzIGEgbGlzdCwgd2UgY2hlY2sgdG8gc2VlXG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDMpKSAhPSAnbGlzdCcge1xuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cbiAgICAgIEBpZiAobm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDMpKSkgYW5kICAoKG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAzKSkpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gbGV0J3MgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBpdGVtIGlzIGEgbWVkaWEgdHlwZVxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAyKSwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGZlYXR1cmUgdGhhdCBjYW4gc3RhbmQgYWxvbmUsIHdlIGxldCBpdFxuICBAaWYgKGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkpIHtcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcbiAgICAvLyBTZXQgQ29udGV4dFxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkZmVhdHVyZSk7XG4gIH1cbiAgLy8gSWYgaXQncyBub3QgYSBzdGFuZCBhbG9uZSBmZWF0dXJlLCB3ZSBwYXNzIGl0IG9mZiB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLlxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICcoJyArICRwYXJzZWQgKyAnKSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJyk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGRlZmF1bHQsICRmZWF0dXJlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7YnJlYWtwb2ludC10by1iYXNlLWVtKCRmZWF0dXJlKX0nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcbkBpbXBvcnQgXCJkb3VibGUvZG91YmxlLXN0cmluZ1wiO1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XG4gICRzZWNvbmQ6IG50aCgkZmVhdHVyZSwgMik7XG5cbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdudW1iZXInIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIHRoZXkgYXJlIGJvdGggc3RyaW5ncywgd2Ugc2VuZCBpdCB0aHJvdWdoIHRoZSBzdHJpbmcgcGFyc2VyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpciwgd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgcGFpcicpO1xuICAkbWluOiAnJztcbiAgJG1heDogJyc7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZGVmYXVsdH0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxuICBAaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmaXJzdCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkc2Vjb25kKSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiTmVpdGhlciAjeyRmaXJzdH0gbm9yICN7JHNlY29uZH0gaXMgYSB2YWxpZCBtZWRpYSBxdWVyeSBuYW1lLlwiO1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn0iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJ0cmlwbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBzZXBhcmF0ZSB0aGUgc3RyaW5nIGZlYXR1cmVzIGZyb20gdGhlIHZhbHVlIG51bWJlcnNcbiAgJHN0cmluZzogbnVsbDtcbiAgJG51bWJlcnM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJGZlYXR1cmUge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IHN0cmluZyB7XG4gICAgICAkc3RyaW5nOiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgdHlwZS1vZigkbnVtYmVycykgPT0gJ251bGwnIHtcbiAgICAgICAgJG51bWJlcnM6ICR2YWw7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXJzOiBhcHBlbmQoJG51bWJlcnMsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJHN0cmluZywgbnRoKCRudW1iZXJzLCAxKSwgbnRoKCRudW1iZXJzLCAyKSk7XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcblxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGZlYXR1cmV9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGZlYXR1cmV9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGZlYXR1cmV9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRmZWF0dXJlfTogI3skbWF4fSknO1xufVxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIGFuZCAkcXVlcnktcmVzb2x1dGlvbiB7XG4gICAgJHJlc29sdXRpb25zOiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHF1ZXJ5LXJlc29sdXRpb24pO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbnMpO1xuICAgICRxdWVyeS1ob2xkZXI6ICcnO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICRxdWVyeTogJyN7JHF1ZXJ5LXByaW50fSAjeyRsZWFkZXJ9I3tudGgoJHJlc29sdXRpb25zLCAkaSl9JztcbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJHF1ZXJ5O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAnI3skcXVlcnktaG9sZGVyfSwgI3skcXVlcnl9JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFJldHVybiB3aXRoIGF0dGFjaGVkIHJlc29sdXRpb25cbiAgICBAcmV0dXJuICRxdWVyeS1wcmludDtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcmVzb2x1dGlvbikge1xuICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb24pO1xuXG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgICRmZWF0dXJlOiAnJztcbiAgICAkdmFsdWU6ICcnO1xuXG4gICAgLy8gRmluZCB3aGljaCBpcyBudW1iZXJcbiAgICBAaWYgdHlwZS1vZihudGgoJHJlc29sdXRpb24sIDEpKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAyKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgbWluL21heC9zdGFuZGFyZFxuICAgIEBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21pbi1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtaW4tJztcbiAgICB9XG4gICAgQGVsc2UgaWYgaW5kZXgoJHJlc29sdXRpb24sICdtYXgtcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWF4LSc7XG4gICAgfVxuXG4gICAgJHN0YW5kYXJkOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWV9KSc7XG5cbiAgICAvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGRwcHgsXG4gICAgQGlmIHVuaXQoJHZhbHVlKSAhPSAnZHBweCcge1xuICAgICAgJGJhc2U6IDk2ZHBpO1xuICAgICAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZHBjbScge1xuICAgICAgICAkYmFzZTogMjQzLjg0ZHBjbTtcbiAgICAgIH1cbiAgICAgIC8vIFdyaXRlIG91dCBmZWF0dXJlIHRlc3RzXG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkZmFsbGJhY2s6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZSAvIDFkcHB4ICogOTZkcGl9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkZmFsbGJhY2ssIHNwYWNlKTtcbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW5vLXF1ZXJ5KCRxdWVyeSkge1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09ICdsaXN0JyB7XG4gICAgJGtleXdvcmQ6IG50aCgkcXVlcnksIDEpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGtleXdvcmQpID09ICdzdHJpbmcnIGFuZCAoJGtleXdvcmQgPT0gJ25vLXF1ZXJ5JyBvciAka2V5d29yZCA9PSAnbm8gcXVlcnknIG9yICRrZXl3b3JkID09ICdmYWxsYmFjaycpIHtcbiAgICAgIEByZXR1cm4gbnRoKCRxdWVyeSwgMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgdGhlIEJyZWFrcG9pbnRzIHZhcmlhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4kQlJFQUtQT0lOVFM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA+IDAgYW5kIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtZXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGFkZCBicmVha3BvaW50cyBmb3IgcmVzcG9uZC10by4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KClgIHRvIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgpYC4gVGhlIGBhZGQtYnJlYWtwb2ludCgpYCBmdW5jdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIjtcbiAgICAkQlJFQUtQT0lOVFM6ICRicmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRicmVha3BvaW50czogKCkgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRCUkVBS1BPSU5UUykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBgcmVzcG9uZC10b2AgZXhwZWN0cyBhIG1hcC4gUGxlYXNlIGNoZWNrIHRoZSB2YWx1ZSBvZiAkQlJFQUtQT0lOVFMgdmFyaWFibGUuXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdClgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBBZGQgQnJlYWtwb2ludCB0byBCcmVha3BvaW50c1xuLy8gVE9ETzogUmVtb3ZlIGZ1bmN0aW9uIGluIG5leHQgcmVsZWFzZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPT0gMCB7XG4gICAgQHJldHVybiAkb3V0cHV0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgIEByZXR1cm4gJGJyZWFrcG9pbnRzO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCRicmVha3BvaW50cywgJG91dHB1dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICAkQlJFQUtQT0lOVFM6ICRvdXRwdXQgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICAkQlJFQUtQT0lOVFM6ICRCUkVBS1BPSU5UUyAhZ2xvYmFsO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgICRCUkVBS1BPSU5UUzogbWFwLW1lcmdlKCRCUkVBS1BPSU5UUywgJG91dHB1dCkgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGdldC1icmVha3BvaW50KCRuYW1lOiBmYWxzZSkge1xuICBAaWYgJG5hbWUgPT0gZmFsc2Uge1xuICAgIEByZXR1cm4gJEJSRUFLUE9JTlRTO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkbmFtZSk7XG4gIH1cbn1cbiIsIkBtaXhpbiBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZyB7XG4gICRsZWdhY3lWYXJzOiAoXG4gICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXG4gICAgJ2RlZmF1bHQtZmVhdHVyZSc6ICdkZWZhdWx0IGZlYXR1cmUnLFxuICAgICdmb3JjZS1tZWRpYS1hbGwnOiAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLFxuICAgICd0by1lbXMnOiAndG8gZW1zJyxcbiAgICAncmVzb2x1dGlvbnMnOiAndHJhbnNmb3JtIHJlc29sdXRpb25zJyxcbiAgICAnbm8tcXVlcmllcyc6ICdubyBxdWVyaWVzJyxcbiAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXG4gICAgJ2Jhc2UtZm9udC1zaXplJzogJ2Jhc2UgZm9udCBzaXplJyxcbiAgICAnbGVnYWN5LXN5bnRheCc6ICdsZWdhY3kgc3ludGF4J1xuICApO1xuXG4gIEBlYWNoICRsZWdhY3ksICRuZXcgaW4gJGxlZ2FjeVZhcnMge1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XG4gICAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGNoYW5nZSBzZXR0aW5ncyBmb3IgQnJlYWtwb2ludC4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludC0jeyRsZWdhY3l9OiB7e3NldHRpbmd9fWAgdG8gYEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCcjeyRuZXd9Jywge3tzZXR0aW5nfX0pYC4gVmFyaWFibGUgc2V0dGluZ3MsIGFzIHdlbGwgYXMgdGhpcyB3YXJuaW5nIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgfVxuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBIYW5kIGNvcnJlY3QgZWFjaCBzZXR0aW5nXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgbWVkaWEnLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgZmVhdHVyZScsICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsJykgYW5kICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCAhPSBicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJywgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC10by1lbXMnKSBhbmQgJGJyZWFrcG9pbnQtdG8tZW1zICE9IGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsICRicmVha3BvaW50LXRvLWVtcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtcmVzb2x1dGlvbnMnKSBhbmQgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgIT0gYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJywgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJpZXMnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcmllcycsICRicmVha3BvaW50LW5vLXF1ZXJpZXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcnkgZmFsbGJhY2tzJywgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZScpIGFuZCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSAhPSBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2Jhc2UgZm9udCBzaXplJywgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWxlZ2FjeS1zeW50YXgnKSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCAhPSBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbGVnYWN5IHN5bnRheCcsICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXgpO1xuICB9XG59IiwiQGltcG9ydCAnZnVuY3Rpb25zJztcbkBpbXBvcnQgJ3otaW5kZXgnO1xuQGltcG9ydCAnbWVkaWEtcXVlcmllcyc7XG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAndW5pYm9hcmQnO1xuQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2V4dGVuZHMnO1xuQGltcG9ydCAnZmxleCc7XG5AaW1wb3J0ICdib3gnO1xuQGltcG9ydCAnZmx1aWQtc2l6ZSc7XG4iLCIvLy8gWi1pbmRleGVzIG1hcCwgZ2F0aGVyaW5nIGFsbCBaIGxheWVycyBvZiB0aGUgYXBwbGljYXRpb25cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7U3RyaW5nfSBrZXkgLSBMYXllcuKAmXMgbmFtZVxuLy8vIEBwcm9wIHtOdW1iZXJ9IHZhbHVlIC0gWiB2YWx1ZSBtYXBwZWQgdG8gdGhlIGtleVxuJHotaW5kZXhlczogKFxuICAnY2dfX3Byb21vdGlvbic6IDIwNSxcbiAgJ2NnX19waWVjZS5kcmFnZ2luZyc6IDIwNCxcbiAgJ2NnX19ib2FyZC5vdmVybGF5JzogMTAwLFxuICAnY2dfX3BpZWNlLmFuaW0nOiAzLFxuICAnY2dfX3N2Zy5jZy1zaGFwZXMnOiAyLFxuICAnY2dfX3N2Zy5jZy1jdXN0b20tc3Zncyc6IDQsXG4gICdjZ19fcGllY2UnOiAyLFxuICAnY2dfX3BpZWNlLmZhZGluZyc6IDEsXG4gICdwb3dlcnRpcCc6IDEyMCxcbiAgJ2NvbXBsZXRlJzogMTEyLFxuICAnaW5xdWlyeSc6IDExMSxcbiAgJ3plbi10b2dnbGUnOiAxMTAsXG4gICdtb2RhbCc6IDExMCxcbiAgJ21zZWxlY3QnOiAxMTAsXG4gICd0b3BuYXYnOiAxMTAsXG4gICdmdWxsc2NyZWVuLW1hc2snOiAxMDksXG4gICdkcm9wZG93bic6IDEwOCxcbiAgJ2NvbnRleHQtbWVudSc6IDEwNyxcbiAgJ3NpdGUtaGVhZGVyJzogMTA2LFxuICAncmVjb25uZWN0aW5nJzogMTA1LFxuICAndG91ci1yZW1pbmRlcic6IDEwNCxcbiAgJ216LW1lbnUnOiA0LFxuICAnYWJvdmUtbGluay1vdmVybGF5JzogMyxcbiAgJ2ZyaWVuZC1ib3gnOiAyLFxuICAnbGluay1vdmVybGF5JzogMixcbiAgJ2dhbWUtYm9va21hcmsnOiAyLFxuICAnc3VibmF2LXNpZGUnOiAyLFxuICAnZGVmYXVsdCc6IDAsXG4pO1xuXG4vLy8gR2V0IGEgei1pbmRleCB2YWx1ZSBmcm9tIGEgbGF5ZXIgbmFtZVxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRsYXllciAtIExheWVy4oCZcyBuYW1lXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vIEByZXF1aXJlICR6LWluZGV4ZXNcbkBmdW5jdGlvbiB6KCRsYXllcikge1xuICBAcmV0dXJuIG1hcC1nZXQoJHotaW5kZXhlcywgJGxheWVyKTtcbn1cbiIsIi8qIFdpZHRocyAqL1xuXG4kbXEteHgtc21hbGw6IG1pbi13aWR0aCA1MDBweDtcbiRtcS14LXNtYWxsOiBtaW4td2lkdGggNjUwcHg7XG4kbXEtc21hbGw6IG1pbi13aWR0aCA4MDBweDtcbiRtcS1tZWRpdW06IG1pbi13aWR0aCA5ODBweDtcbiRtcS1sYXJnZTogbWluLXdpZHRoIDExMjBweDtcbiRtcS14LWxhcmdlOiBtaW4td2lkdGggMTI2MHB4O1xuXG4kbXEtbm90LXh4LXNtYWxsOiBtYXgtd2lkdGggNDk5cHg7XG4kbXEtbm90LXgtc21hbGw6IG1heC13aWR0aCA2NDlweDtcbiRtcS1ub3Qtc21hbGw6IG1heC13aWR0aCA3OTlweDtcbiRtcS1ub3QtbWVkaXVtOiBtYXgtd2lkdGggOTc5cHg7XG4kbXEtbm90LWxhcmdlOiBtYXgtd2lkdGggMTExOXB4O1xuJG1xLW5vdC14LWxhcmdlOiBtYXgtd2lkdGggMTI1OXB4O1xuXG4vKiBIZWlnaHRzICovXG5cbiRtcS14LXNob3J0OiBtaW4taGVpZ2h0IDQwMHB4O1xuJG1xLXNob3J0OiBtaW4taGVpZ2h0IDUwMHB4O1xuJG1xLXRhbGw6IG1pbi1oZWlnaHQgNjAwcHg7XG4kbXEteC10YWxsOiBtaW4taGVpZ2h0IDcwMHB4O1xuXG4kbXEtbm90LXgtc2hvcnQ6IG1heC1oZWlnaHQgMzk5cHg7XG5cbi8qIE9yaWVudGF0aW9ucyAqL1xuXG4kbXEtcG9ydHJhaXQ6IG9yaWVudGF0aW9uIHBvcnRyYWl0O1xuJG1xLWxhbmRzY2FwZTogb3JpZW50YXRpb24gbGFuZHNjYXBlO1xuXG4vKiBDYXBhYmlsaXRpZXMgKi9cblxuJG1xLWhvdmVyLXllczogJ2hvdmVyOiBob3Zlcic7XG4kbXEtaG92ZXItbm86IGhvdmVyIG5vbmU7XG5cbi8qIEFsaWFzZXMgKi9cblxuJG1xLW1haW4tbWFyZ2luOiAkbXEtc21hbGw7XG5cbiRtcS10b3BuYXYtdmlzaWJsZTogJG1xLW1lZGl1bTtcbiRtcS10b3BuYXYtaGlkZGVuOiAkbXEtbm90LW1lZGl1bTtcblxuJG1xLXNpdGUtaGVhZGVyLXRhbGw6ICRtcS10YWxsO1xuXG4kbXEtc3VibmF2LXRvcDogJG1xLW5vdC1zbWFsbDtcbiRtcS1zdWJuYXYtc2lkZTogJG1xLXNtYWxsO1xuXG4kbXEtem9vbS1lbmFibGVkOiAkbXEtc21hbGwgJG1xLXNob3J0O1xuIiwiJGRlYnVnOiBmYWxzZTtcblxuJGZvbnQtcGF0aDogJy4uL2ZvbnQnO1xuJGltZy1wYXRoOiAnLi4vaW1hZ2VzJztcblxuJHZpZXdwb3J0LW1pbi13aWR0aDogMzIwcHg7XG5cbiRibG9jay1nYXA6IDJ2bWluO1xuJGJsb2NrLWdhcC1oYWxmOiAxdm1pbjtcblxuJGJsb2NrLWdhcC1oOiAydmg7XG4kYmxvY2stZ2FwLXc6IDJ2dztcbiRibG9jay1nYXAtdy1oYWxmOiAxdnc7XG5cbiRib3gtcmFkaXVzLXNpemU6IDNweDtcblxuJHNpdGUtaGVhZGVyLXRhbGwtaGVpZ2h0OiA2MHB4O1xuJHNpdGUtaGVhZGVyLXNob3J0LWhlaWdodDogNDBweDtcblxuJHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xuXG4kbWFpbi1tYXgtd2lkdGg6IDEzMDBweCAhZGVmYXVsdDtcblxuJG1haW4tbWFyZ2luOiB2YXIoLS1tYWluLW1hcmdpbik7XG4kc2l0ZS1oZWFkZXItaGVpZ2h0OiB2YXIoLS1zaXRlLWhlYWRlci1oZWlnaHQpO1xuXG4kc2l0ZS1oZWFkZXItbWFyZ2luOiB2YXIoLS1zaXRlLWhlYWRlci1tYXJnaW4pO1xuXG4kc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0OiBjYWxjKCN7JHNpdGUtaGVhZGVyLWhlaWdodH0gKyAjeyRzaXRlLWhlYWRlci1tYXJnaW59KTtcbiIsIi8qIFVuaWJvYXJkOiBrZWVwIHRoZSBzYW1lIHBhZ2UgbGF5b3V0IGFjcm9zcyBwYWdlcyAqL1xuXG4kbXEtYm9hcmQtcmVzaXphYmxlOiAkbXEtc21hbGw7XG4kbXEtY29sMS11bmlib2FyZDogJG1xLW5vdC1zbWFsbCAkbXEtcG9ydHJhaXQ7XG4kbXEtY29sMi11bmlib2FyZDogJG1xLXNtYWxsLCAkbXEtbGFuZHNjYXBlO1xuJG1xLWNvbDMtdW5pYm9hcmQ6ICRtcS14LWxhcmdlO1xuXG4vKiB3aGVuIHRoZSB3aWR0aCBpcyBhcHByb3ByaWF0ZSBmb3IgY29sMSwgYnV0IGxhbmRzY2FwZSBwcmV2ZW50cyBpdCAqL1xuJG1xLWNvbDItdW5pYm9hcmQtc3F1ZWV6ZTogJG1xLW5vdC1zbWFsbCAkbXEtbGFuZHNjYXBlO1xuXG4kY29sMy11bmlib2FyZC1zaWRlOiBtaW5tYXgoMjMwcHgsIDIwdncpO1xuJGNvbDMtdW5pYm9hcmQtdGFibGU6IG1pbm1heCgyNDBweCwgNDAwcHgpO1xuJGNvbDMtdW5pYm9hcmQtY29udHJvbHM6IDNyZW07XG5cbiRjb2wzLXVuaWJvYXJkLW1pbi13aWR0aDogY2FsYyg3MHZtaW4gKiB2YXIoLS1ib2FyZC1zY2FsZSkpO1xuJGNvbDMtdW5pYm9hcmQtbWF4LXdpZHRoOiBjYWxjKDEwMHZoICogdmFyKC0tYm9hcmQtc2NhbGUpIC0gI3skc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0fSAtICN7JGNvbDMtdW5pYm9hcmQtY29udHJvbHN9KTtcbiRjb2wzLXVuaWJvYXJkLXdpZHRoOiBtaW5tYXgoJGNvbDMtdW5pYm9hcmQtbWluLXdpZHRoLCAkY29sMy11bmlib2FyZC1tYXgtd2lkdGgpO1xuXG4kY29sMy11bmlib2FyZC1kZWZhdWx0LXNjYWxlOiAwLjk7XG5cbi8vIHpvb206IDg1JVxuJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC1taW4td2lkdGg6IDUwMHB4O1xuJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC1tYXgtd2lkdGg6IGNhbGMoXG4gIDEwMHZoICogI3skY29sMy11bmlib2FyZC1kZWZhdWx0LXNjYWxlfSAtICN7JHNpdGUtaGVhZGVyLW91dGVyLWhlaWdodH0gLSAjeyRjb2wzLXVuaWJvYXJkLWNvbnRyb2xzfVxuKTtcbiRjb2wzLXVuaWJvYXJkLWRlZmF1bHQtd2lkdGg6IG1pbm1heCgjeyRjb2wzLXVuaWJvYXJkLWRlZmF1bHQtbWluLXdpZHRofSwgI3skY29sMy11bmlib2FyZC1kZWZhdWx0LW1heC13aWR0aH0pO1xuXG4kY29sMi11bmlib2FyZC10YWJsZTogJGNvbDMtdW5pYm9hcmQtdGFibGU7XG4kY29sMi11bmlib2FyZC1jb250cm9sczogJGNvbDMtdW5pYm9hcmQtY29udHJvbHM7XG4kY29sMi11bmlib2FyZC13aWR0aDogJGNvbDMtdW5pYm9hcmQtd2lkdGg7XG4kY29sMi11bmlib2FyZC1kZWZhdWx0LXdpZHRoOiAkY29sMy11bmlib2FyZC1kZWZhdWx0LXdpZHRoO1xuXG4kY29sMi11bmlib2FyZC1zcXVlZXplLXRhYmxlOiBtaW5tYXgoMjAwcHgsIDI0MHB4KTtcbiRjb2wyLXVuaWJvYXJkLXNxdWVlemUtd2lkdGg6IG1pbm1heChjYWxjKDU1dm1pbiksIGNhbGMoMTAwdmggLSAjeyRzaXRlLWhlYWRlci1vdXRlci1oZWlnaHR9IC0gI3skYmxvY2stZ2FwfSkpO1xuXG4kY29sMS11bmlib2FyZC1jb250cm9sczogNXJlbTtcbiIsIkBtaXhpbiBib3gtcmFkaXVzIHtcbiAgYm9yZGVyLXJhZGl1czogJGJveC1yYWRpdXMtc2l6ZTtcbn1cblxuQG1peGluIGJveC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbn1cblxuQG1peGluIGJveC1uZWF0IHtcbiAgQGluY2x1ZGUgYm94LXJhZGl1cztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdztcbn1cblxuQG1peGluIGRlYnVnLXpvb20taW5wdXQge1xuICAjem9vbS1pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLXpvb20tZW5hYmxlZCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBib3R0b206IDNweDtcbiAgICAgIHJpZ2h0OiAzcHg7XG4gICAgICB3aWR0aDogMTB2dztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24oJHByb3A6IGFsbCwgJGR1cjogJHRyYW5zaXRpb24tZHVyYXRpb24pIHtcbiAgdHJhbnNpdGlvbjogJHByb3AgJGR1cjtcbn1cblxuQG1peGluIGhvdmVyZmxvdyB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAmOm5vdCg6aG92ZXIpIHtcbiAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgLmJsaW5kLW1vZGUgJiB7XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgfVxufVxuXG5AbWl4aW4gZWxsaXBzaXMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuQG1peGluIGNyb3NzdGFibGUtbGFyZ2Uge1xuICAuY3Jvc3N0YWJsZV9fdXNlcnMge1xuICAgIGZsZXg6IDcgMSBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiBjcm9zc3RhYmxlLXNtYWxsIHtcbiAgLmNyb3NzdGFibGVfX3VzZXJzIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gYm9keS1maXhlZC1zY3JvbGwge1xuICBib2R5IHtcbiAgICAvKiBwcmV2ZW50cyBzY3JvbGwgYmFyIGZsaWNrZXIgd2hlbiBkcmFnZ2luZyBhIHBpZWNlIG91dCAqL1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuIiwiJWJhc2UtZm9udC1mYWxsYmFjayB7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTYW5zJywgU2Fucy1TZXJpZjtcbn1cblxuJWJhc2UtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTYW5zJywgU2Fucy1TZXJpZjtcbn1cblxuJXJvYm90byB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgU2Fucy1TZXJpZjtcbn1cblxuJXJvYm90by1mYXQge1xuICBmb250LWZhbWlseTogJ1JvYm90bycsIFNhbnMtU2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbiVjaGVzcy1mb250IHtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIENoZXNzJywgJ05vdG8gU2Fucyc7XG59XG5cbiVzYW4ge1xuICBAZXh0ZW5kICVjaGVzcy1mb250O1xuXG4gIC5waWVjZS1sZXR0ZXIgJiB7XG4gICAgQGV4dGVuZCAlYmFzZS1mb250O1xuICB9XG5cbiAgZHJhdyB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuICAgIG1hcmdpbi1sZWZ0OiAxY2g7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuXG4vKiB0ZXh0IHByaW50ZWQgZGlyZWN0bHkgb24gdGhlIHBhZ2UgYmFja2dyb3VuZCBkZXNlcnZlcyBzcGVjaWFsIHRyZWF0bWVudCAodHJhbnNwIHRoZW1lKSAqL1xuJXBhZ2UtZm9udCB7XG4gIGNvbG9yOiAkYy1mb250LXBhZ2U7XG59XG5cbiVwYWdlLXRleHQge1xuICBAZXh0ZW5kICVwYWdlLWZvbnQsICVwYWdlLXRleHQtc2hhZG93ICFvcHRpb25hbDtcbn1cblxuJXBhZ2UtbGluayB7XG4gIEBleHRlbmQgJXBhZ2UtbGluay1mb250ICFvcHRpb25hbDtcblxuICBAZXh0ZW5kICVwYWdlLXRleHQtc2hhZG93ICFvcHRpb25hbDtcbn1cblxuJW1ldGFsIHtcbiAgQGluY2x1ZGUgbWV0YWw7XG59XG5cbiVtZXRhbC1ob3ZlciB7XG4gIEBpbmNsdWRlIG1ldGFsLWhvdmVyO1xufVxuXG4lcGFnZS1tZXRhbCB7XG4gIEBpbmNsdWRlIHBhZ2UtbWV0YWw7XG59XG5cbiVwYWdlLW1ldGFsLWhvdmVyIHtcbiAgQGluY2x1ZGUgcGFnZS1tZXRhbDtcbn1cblxuJW1ldGFsLWJnIHtcbiAgQGluY2x1ZGUgbWV0YWwtYmc7XG59XG5cbiVhY3RpdmUtaW5zZXQtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAzcHggNHB4IGhzbGEoMCwgMCwgMCwgMC4xNSkgaW5zZXQ7XG59XG5cbiVhY3RpdmUge1xuICBAZXh0ZW5kICVhY3RpdmUtaW5zZXQtc2hhZG93O1xuXG4gIGJhY2tncm91bmQ6ICRjLWFjY2VudDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggYmxhY2sgIWltcG9ydGFudDtcbn1cblxuJWFjdGl2ZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IG1peCh3aGl0ZSwgJGMtYWNjZW50LCAyMCUpO1xufVxuXG4lYWN0aXZlLXNvZnQge1xuICBAZXh0ZW5kICVhY3RpdmUtaW5zZXQtc2hhZG93O1xuXG4gIGJhY2tncm91bmQ6ICRjLXNoYWRlO1xuICBjb2xvcjogJGMtZm9udC1jbGVhcmVyO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggJGMtZm9udC1zaGFkb3cgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiVkcm9wZG93bi1zaGFkb3cge1xuICBib3gtc2hhZG93OiAtMXB4IDVweCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4lcG9wdXAtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuJWJ1dHRvbi1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCBoc2xhKDAsIDAsIDAlLCAwLjIyNSk7XG59XG5cbiVidXR0b24tcmFpc2VkLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMHB4IGhzbGEoMCwgMCwgMCwgMC4yMjUpO1xufVxuXG4lYnV0dG9uLW5vbmUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAkYy1mb250O1xuICBhbGlnbi1pdGVtczogbm9ybWFsO1xufVxuXG4lY2hlY2tib3gge1xuICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogJGMtYmctcGFnZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGMtYmctbG93O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuNWVtO1xuXG4gICY6Y2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5LWRpbW1lcjtcbiAgICBib3JkZXItY29sb3I6ICRjLXNlY29uZGFyeS1kaW07XG4gIH1cbn1cblxuJWZvY3VzLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgMCAxMnB4ICRjLWZvbnQtZGltO1xufVxuXG4lemFsZ292ZXJmbG93IHtcbiAgLy8gbWl0aWdhdGUgemFsZ28gdGV4dFxuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4lbm93cmFwLWhpZGRlbiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiVub3dyYXAtZWxsaXBzaXMge1xuICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4lYm94LXBhZGRpbmcge1xuICBwYWRkaW5nOiA1dmggdmFyKC0tYm94LXBhZGRpbmcpO1xufVxuXG4lYm94LXBhZGRpbmctaG9yaXoge1xuICBwYWRkaW5nOiAwIHZhcigtLWJveC1wYWRkaW5nKTtcbn1cblxuJWJyZWFrLXdvcmQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4lYnJlYWstd29yZC1oYXJkIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuXG4gIC8qIHN1cHBvcnQ6IGZpcmVmb3ggKi9cbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuJWJyZWFrLW5vcGUge1xuICBvdmVyZmxvdy13cmFwOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbn1cblxuJWVsbGlwc2lzIHtcbiAgQGluY2x1ZGUgZWxsaXBzaXM7XG59XG5cbiVzcXVhcmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuJXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuXG4gIC8qIDE2LzkgKi9cbiAgLy8gcGFkZGluZy1ib3R0b206IDc1JTsgLyogNC8zICovXG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gKiB7XG4gICAgQGV4dGVuZCAlYWJzLTEwMDtcblxuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG4lZ2FtZS1lbWJlZCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLW5vdC14eC1zbWFsbCkge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNjAlO1xuICB9XG59XG5cbiVkYXRhLWljb24ge1xuICBmb250LXNpemU6IDEuMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LWZhbWlseTogJ2xpY2hlc3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBzcGVhazogbm9uZTtcbiAgY29udGVudDogYXR0cihkYXRhLWljb24pO1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbiVkYXRhLWljb24tdG9wIHtcbiAgJjo6YmVmb3JlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIH1cbn1cblxuJWZ1bGxzY3JlZW4tbWFzayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkYy1wYWdlLW1hc2s7XG4gIHotaW5kZXg6IHooJ2Z1bGxzY3JlZW4tbWFzaycpO1xufVxuXG4lbGluay1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IHooJ2xpbmstb3ZlcmxheScpO1xufVxuXG4lYWJzLTEwMCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuJWRvdWJsZS10YXAge1xuICAvLyBwcmV2ZW50IGlQYWQgc2FmYXJpIGZyb20gem9vbWluZyBpbiBvbiBkb3VibGUgdGFwXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuIiwiJWZsZXgtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG59XG5cbiVmbGV4LWNlbnRlciB7XG4gIC8qIGV4dGVuZHMgJWZsZXgtd3JhcCAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4lZmxleC1jZW50ZXItbm93cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4lZmxleC1iZXR3ZWVuIHtcbiAgLyogZXh0ZW5kcyAlZmxleC1jZW50ZXIgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4lZmxleC1iZXR3ZWVuLW5vd3JhcCB7XG4gIC8qIGV4dGVuZHMgJWZsZXgtY2VudGVyICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4lZmxleC1iZXR3ZWVuLXN0cmV0Y2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4lZmxleC1hcm91bmQge1xuICAvKiBleHRlbmRzICVmbGV4LWNlbnRlciAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuJWZsZXgtY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW47XG59XG4iLCIlYm94LXJhZGl1cyB7XG4gIEBpbmNsdWRlIGJveC1yYWRpdXM7XG59XG5cbiVib3gtcmFkaXVzLWZvcmNlIHtcbiAgQGV4dGVuZCAlYm94LXJhZGl1cztcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8qIGhlbHBzIHdpdGggY2xpcHBpbmcgYmFja2dyb3VuZCBpbnRvIGJvcmRlci1yYWRpdXMgKi9cbn1cblxuJWJveC1yYWRpdXMtbGVmdCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3gtcmFkaXVzLXNpemUgMCAwICRib3gtcmFkaXVzLXNpemU7XG59XG5cbiVib3gtcmFkaXVzLXJpZ2h0IHtcbiAgYm9yZGVyLXJhZGl1czogMCAkYm94LXJhZGl1cy1zaXplICRib3gtcmFkaXVzLXNpemUgMDtcbn1cblxuJWJveC1yYWRpdXMtdG9wIHtcbiAgYm9yZGVyLXJhZGl1czogJGJveC1yYWRpdXMtc2l6ZSAkYm94LXJhZGl1cy1zaXplIDAgMDtcbn1cblxuJWJveC1yYWRpdXMtYm90dG9tIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwICRib3gtcmFkaXVzLXNpemUgJGJveC1yYWRpdXMtc2l6ZTtcbn1cblxuJWJveC1yYWRpdXMtdG9wLWxlZnQge1xuICBib3JkZXItcmFkaXVzOiAkYm94LXJhZGl1cy1zaXplIDAgMCAwO1xufVxuXG4lYm94LXJhZGl1cy10b3AtcmlnaHQge1xuICBib3JkZXItcmFkaXVzOiAwICRib3gtcmFkaXVzLXNpemUgMCAwO1xufVxuXG4lYm94LXNoYWRvdyB7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3c7XG59XG5cbiVib3gtbmVhdCB7XG4gIEBleHRlbmQgJWJveC1zaGFkb3csICVib3gtcmFkaXVzO1xufVxuXG4lYm94LW5lYXQtdG9wIHtcbiAgQGV4dGVuZCAlYm94LXNoYWRvdywgJWJveC1yYWRpdXMtdG9wO1xufVxuXG4lYm94LW5lYXQtZm9yY2Uge1xuICBAZXh0ZW5kICVib3gtc2hhZG93LCAlYm94LXJhZGl1cy1mb3JjZTtcbn1cbiIsIiR2cC1taW4td2lkdGg6IDMyMHB4ICFkZWZhdWx0O1xuJHZwLW1heC13aWR0aDogMTIwMHB4ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkdmFsdWUpIHtcbiAgQHJldHVybiAkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpO1xufVxuXG5AbWl4aW4gZmx1aWQtc2l6ZSgkcHJvcCwgJG1pbi1zaXplLCAkbWF4LXNpemUsICRtaW4tdnc6ICR2cC1taW4td2lkdGgsICRtYXgtdnc6ICR2cC1tYXgtd2lkdGgpIHtcbiAgJHUxOiB1bml0KCRtaW4tdncpO1xuICAkdTI6IHVuaXQoJG1heC12dyk7XG4gICR1MzogdW5pdCgkbWluLXNpemUpO1xuICAkdTQ6IHVuaXQoJG1heC1zaXplKTtcblxuICBAaWYgJHUxID09ICR1MiBhbmQgJHUxID09ICR1MyBhbmQgJHUxID09ICR1NCB7XG4gICAgJiB7XG4gICAgICAjeyRwcm9wfTogJG1pbi1zaXplO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi12dykge1xuICAgICAgICAjeyRwcm9wfTogY2FsYyhcbiAgICAgICAgICAjeyRtaW4tc2l6ZX0gKyAje3N0cmlwLXVuaXQoJG1heC1zaXplIC0gJG1pbi1zaXplKX0gKlxuICAgICAgICAgICAgKCgxMDB2dyAtICN7JG1pbi12d30pIC8gI3tzdHJpcC11bml0KCRtYXgtdncgLSAkbWluLXZ3KX0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXZ3KSB7XG4gICAgICAgICN7JHByb3B9OiAkbWF4LXNpemU7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJmbHVpZC1zaXplIHJlcXVpcmVzIHRoYXQgYWxsIHZhbHVlcyBoYXZlIHRoZSBzYW1lIHVuaXRcIjtcbiAgfVxufVxuIiwiLmZidCB7XG4gIEBleHRlbmQgJWJ1dHRvbi1ub25lO1xuXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCk6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgNzUlKTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1zZWNvbmRhcnkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG59XG4iLCJAa2V5ZnJhbWVzIGJhci1nbGlkZXItYW5pbSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEzMDBweCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjEwMHB4KTtcbiAgfVxufVxuXG4uYmFyLWdsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSk7XG4gICAgYW5pbWF0aW9uOiBiYXItZ2xpZGVyLWFuaW0gM3MgbGluZWFyIGluZmluaXRlO1xuICB9XG59XG4iLCIuc2xpc3Qge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcblxuICB0aGVhZCB7XG4gICAgQGV4dGVuZCAlbWV0YWwsICVyb2JvdG87XG5cbiAgICB0aCB7XG4gICAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjhyZW07XG4gICAgfVxuXG4gICAgdGgubGFyZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgIHBhZGRpbmc6IDFyZW07XG5cbiAgICAubGFiZWwge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gIH1cblxuICB0ZDpmaXJzdC1jaGlsZCxcbiAgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICB9XG5cbiAgJi1wYWQge1xuICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tYm94LXBhZGRpbmcpO1xuICAgIH1cblxuICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ib3gtcGFkZGluZyk7XG4gICAgfVxuICB9XG5cbiAgJi1pbnZlcnQge1xuICAgIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgIH1cblxuICAgIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLnB1bGwtcXVvdGUge1xuICBtYXJnaW46IDAgYXV0bztcblxuICBwIHtcbiAgICBjb2xvcjogJGMtZm9udDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwIDAuN2VtO1xuICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIGJvcmRlcjogJGJvcmRlcjtcbiAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDEuMXJlbTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC05cHg7XG4gICAgICBsZWZ0OiA0MnB4O1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRjLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1ib3JkZXI7XG4gICAgICB0cmFuc2Zvcm06IHNrZXcoNDVkZWcpIHJvdGF0ZSgtNDVkZWcpO1xuICAgIH1cbiAgfVxuXG4gICYubG9uZyBwIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cblxuICBmb290ZXIge1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTRcXDIwMDknO1xuICAgIH1cbiAgfVxufVxuIiwiJWZpcmUtdHJvcGh5LXNoYWRvdyB7XG4gIHRleHQtc2hhZG93OiAwIDAuMDA4ZW0gMC4xMjdlbSAjZmVmY2M5LCAwLjA1NWVtIC0wLjA2NmVtIDAuMmVtICNmZWVjODUsIC0wLjExMWVtIC0wLjEyN2VtIDAuMjcyZW0gI2ZmYWUzNCxcbiAgICAwLjExMWVtIC0wLjI3MmVtIDAuNDExZW0gI2VjNzYwYywgLTAuMTExZW0gLTAuNDU2ZW0gMC40MTZlbSAjY2Q0NjA2LCAwIC0wLjUzM2VtIDAuNTc3ZW0gIzk3MzcxNixcbiAgICAwLjA1NWVtIC0wLjU1ZW0gMC41MzNlbSAjNDUxYjBlO1xufVxuXG5Aa2V5ZnJhbWVzIGZpcmUtdHJvcGh5IHtcbiAgMCUge1xuICAgIHRleHQtc2hhZG93OiAwIDAuMDA4ZW0gMC4xMjdlbSAjZmVmY2M5LCAwLjA1NWVtIC0wLjA2NmVtIDAuMmVtICNmZWVjODUsIC0wLjExMWVtIC0wLjEyN2VtIDAuMjcyZW0gI2ZmYWUzNCxcbiAgICAgIDAuMTExZW0gLTAuMjcyZW0gMC40MTFlbSAjZWM3NjBjLCAtMC4xMTFlbSAtMC40NTZlbSAwLjQxNmVtICNjZDQ2MDYsIDAgLTAuNTMzZW0gMC41NzdlbSAjOTczNzE2LFxuICAgICAgMC4wNTVlbSAtMC41NWVtIDAuNTMzZW0gIzQ1MWIwZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMC4xMTFlbSAjZmVmY2M5LCAwLjA1NWVtIC0wLjA1NWVtIDAuMTY2ZW0gI2ZlZmNjOSwgLTAuMTExZW0gLTAuMTExZW0gMC4yMjJlbSAjZmVlYzg1LFxuICAgICAgMC4xMjJlbSAtMC4yMzNlbSAwLjMzM2VtICNmZmFlMzQsIC0wLjEyMmVtIC0wLjMyMmVtIDAuMjc3ZW0gI2VjNzYwYywgMCAtMC40NTZlbSAwLjQ0NGVtICNjZDQ2MDYsXG4gICAgICAwLjA1NWVtIC0wLjVlbSAwLjQ0NGVtICM5NzM3MTY7XG4gIH1cbn1cblxuLmZpcmUtdHJvcGh5IHtcbiAgQGV4dGVuZCAlZmlyZS10cm9waHktc2hhZG93O1xuXG4gIGNvbG9yOiAkYy1mb250O1xuICBmb250LXNpemU6IDkwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gICY6aG92ZXIge1xuICAgIGFuaW1hdGlvbjogZmlyZS10cm9waHkgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG4gIH1cbn1cbiIsIi5jb2xvci1pY29uIHtcbiAgQGlmICR0aGVtZS1saWdodCB7XG4gICAgJi53aGl0ZTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICfugL4nO1xuICAgIH1cblxuICAgICYuYmxhY2s6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn7oC9JztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICYud2hpdGU6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn7oC9JztcbiAgICB9XG5cbiAgICAmLmJsYWNrOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+6Avic7XG4gICAgfVxuICB9XG5cbiAgJi5yYW5kb206OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+6Bnyc7XG4gIH1cbn1cbiIsIi5jb250ZXh0LXN0cmVhbWVycyB7XG4gIG1heC1oZWlnaHQ6IDIwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jb250ZXh0LXN0cmVhbWVyIHtcbiAgQGV4dGVuZCAlbm93cmFwLWhpZGRlbiwgJWJveC1yYWRpdXMtYm90dG9tLCAlYm94LXNoYWRvdywgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICBoZWlnaHQ6IDIuMmVtO1xuICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgJGMtYmctcGFnZSwgNjAlKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tbGVmdDogMC40ZW07XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtc2Vjb25kYXJ5LCAkYy1iZy1wYWdlLCA4MCUpO1xuICB9XG59XG4iLCIucG9kaXVtLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXG4gICNjb25mZXR0aSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1cztcblxuICAgICYuZmFkZWQge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuLnBvZGl1bSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcblxuICA+IGRpdiB7XG4gICAgQGV4dGVuZCAlZWxsaXBzaXM7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgJi5sYW1lIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIC51c2VyLWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIH1cbiAgICAgIC50cm9waHkge1xuICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpIGNvbnRyYXN0KDEwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZpcnN0IHtcbiAgICAvLyBzYW1lIHdpZHRoIHRvIGZpdCBpbiBtdWx0aXBsZSBmaXJzdCBwbGFjZXNcbiAgICB3aWR0aDogMzMlO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gIH1cblxuICAuc2Vjb25kIHtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIHdpZHRoOiAzMyU7XG4gIH1cblxuICAudGhpcmQge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgd2lkdGg6IDMzJTtcbiAgfVxuXG4gIC50cm9waHkge1xuICAgIG1hcmdpbjogMCBhdXRvIDAuNWVtIGF1dG87XG4gICAgYmFja2dyb3VuZDogY2VudGVyIC8gY29udGFpbiBuby1yZXBlYXQ7XG4gIH1cblxuICAuZmlyc3QgLnRyb3BoeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogOWVtO1xuICAgIHdpZHRoOiA5ZW07XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1nLXVybCgndHJvcGh5L2xpY2hlc3MtbWFzc2l2ZS5zdmcnKTtcbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgICAgYmFja2dyb3VuZDogY2VudGVyIC8gY29udGFpbiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWctdXJsKCd0cm9waHkvbGljaGVzcy1tYXNzaXZlLnN2ZycpO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgfVxuXG4gIC50cm9waHktbWFzY290IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMC4wNWVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogOS42ZW07XG4gICAgaGVpZ2h0OiAxMC4yZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIHotaW5kZXg6IDI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLnRyb3BoeS1tYXNjb3RfX3Nwcml0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IC0wLjFlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNWVtKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG5cbiAgLnRyb3BoeS1tYXNjb3RfX3Nwcml0ZS0tY29tcGFuaW9uIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNmVtKTtcbiAgfVxuXG4gIC50cm9waHktbWFzY290X19zcHJpdGUtLXBvcHBpbmcge1xuICAgIGFuaW1hdGlvbjogdHJvcGh5LW1hc2NvdC1wb3AgNi40cyBlYXNlLW91dCAwLjhzIGZvcndhcmRzO1xuICB9XG5cbiAgLnRyb3BoeS1tYXNjb3RfX3Nwcml0ZS0tY29tcGFuaW9uLnRyb3BoeS1tYXNjb3RfX3Nwcml0ZS0tcG9wcGluZyB7XG4gICAgYW5pbWF0aW9uOiB0cm9waHktbWFzY290LXBvcC1jb21wYW5pb24gNi40cyBlYXNlLW91dCAwLjhzIGZvcndhcmRzO1xuICB9XG5cbiAgLnRyb3BoeS1tYXNjb3RfX3ZpZGVvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTIuM2VtO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIEBrZXlmcmFtZXMgdHJvcGh5LW1hc2NvdC1wb3Age1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01ZW0pO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTguMmVtKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIHRyb3BoeS1tYXNjb3QtcG9wLWNvbXBhbmlvbiB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTZlbSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtOS4yZW0pO1xuICAgIH1cbiAgfVxuXG4gIC5zZWNvbmQgLnRyb3BoeSB7XG4gICAgaGVpZ2h0OiA5ZW07XG4gICAgd2lkdGg6IDdlbTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWctdXJsKCd0cm9waHkvbGljaGVzcy1zaWx2ZXItMS5zdmcnKTtcbiAgfVxuXG4gIC50aGlyZCAudHJvcGh5IHtcbiAgICBoZWlnaHQ6IDdlbTtcbiAgICB3aWR0aDogN2VtO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltZy11cmwoJ3Ryb3BoeS9saWNoZXNzLWJyb256ZS0yLnN2ZycpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtbm90LXh4LXNtYWxsKSB7XG4gICAgLnRyb3BoeSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC51c2VyLWxpbmsge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICB9XG5cbiAgLnN0YXRzIHtcbiAgICBtYXJnaW46IDAuNWVtIGF1dG8gMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG5cbiAgICB0aCB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aGlyZCAuc3RhdHMge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gIH1cbn1cbiIsIi5ub3ctcGxheWluZyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIC0tbnAtbWluLXdpZHRoOiAyMDBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1ub3QteHgtc21hbGwpIHtcbiAgICAtLW5wLW1pbi13aWR0aDogNTAlO1xuICB9XG5cbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tbnAtbWluLXdpZHRoKSwgMWZyKSk7XG5cbiAgPiBhIHtcbiAgICBjb2xvcjogJGMtZm9udDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcbiAgfVxuXG4gIC5pbmRpY2F0b3Ige1xuICAgIGNvbG9yOiAkYy1hY2NlbnQ7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGNnLWJvYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi9jb21tb24vY3NzL2Jhc2Uvc2Nyb2xsYmFyJztcblxuQGltcG9ydCAndGFiJztcbkBpbXBvcnQgJ21lbWJlcnMnO1xuQGltcG9ydCAnZGlzY3Vzc2lvbic7XG5AaW1wb3J0ICdwYWxhbnRpcic7XG5cbi5tY2hhdCB7XG4gIEBleHRlbmQgJWJveC1uZWF0LWZvcmNlLCAlZmxleC1jb2x1bW47XG5cbiAgZ3JpZC1hcmVhOiBjaGF0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG5cbiAgJl9fY29udGVudCB7XG4gICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYubm90ZSB0ZXh0YXJlYSB7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMS43ZW07XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgcmVzaXplOiBub25lO1xuXG4gICAgICAvLyBQcmV2ZW50IFNhZmFyaSBpT1MgYXV0by16b29tIHdoZW4gZm9jdXNlZCAodHJpZ2dlcmVkIHdoZW4gZm9udC1zaXplIDwgMTZweClcbiAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1pbi1oZWlnaHQ6IDE1ZW07XG59XG4iLCJib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXIsXG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgd2lkdGg6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xufVxuXG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbn1cblxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRjLWZvbnQtZGltbWVyO1xufVxuIiwiLm1jaGF0IHtcbiAgJl9fdGFicyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgQGV4dGVuZCAlcm9ib3RvLCAlbm93cmFwLWhpZGRlbiwgJWJveC1yYWRpdXMtdG9wO1xuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNGVtIDEwcHg7XG5cbiAgICAvLyBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRjLWZvbnQtcGFnZTtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1hY2NlbnQsICRjLWJnLWJveCwgMTUlKTtcbiAgICB9XG5cbiAgICAmLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGMtZm9udDtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLWJveCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBleHRlbmQgJWNoZWNrYm94O1xuICAgIH1cblxuICAgICYtYWN0aXZlIGlucHV0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgQGV4dGVuZCAlbm93cmFwLWVsbGlwc2lzO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1vcHRpb25hbCAubWNoYXRfX3RhYi5kaXNjdXNzaW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4iLCIuY2hhdF9fbWVtYmVycyB7XG4gIEBleHRlbmQgJXBhZ2UtdGV4dDtcblxuICBmb250LXNpemU6IDAuOWVtO1xuXG4gIC8vIG1pbi1oZWlnaHQ6IDVlbTtcbiAgLy8gbWF4LWhlaWdodDogOWVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmX19udW1iZXIge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFjaDtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMmNoO1xuICAgIH1cbiAgfVxufVxuIiwiLm1jaGF0IHtcbiAgJl9fbWVzc2FnZXMge1xuICAgIEBleHRlbmQgJWJyZWFrLXdvcmQ7XG5cbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtYXgtaGVpZ2h0OiA1MHZoO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMy11bmlib2FyZCkge1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG5cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgZm9udC1zaXplOiAwLjllbTtcblxuICAgIGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IDAuNWVtIDVweCAwLjVlbSAxMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XG5cbiAgICAgICYubWUge1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRjLXNlY29uZGFyeS1kaW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgICAgfVxuXG4gICAgICAmLmhvc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjLXNlY29uZGFyeS1kaW0sIDAuNCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlbGV0ZWQge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgIC5zeXN0ZW0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmFubm91bmNlbWVudCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5jb2xvcixcbiAgICAudXNlci1saW5rIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMC40ZW07XG4gICAgICBtYXgtd2lkdGg6IDExMHB4O1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cblxuICAgIGxpbmUucGF0cm9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICB3aWR0aDogMS4yZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6ICRjLWJyYWc7XG4gICAgfVxuXG4gICAgLnV0aXRsZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICB9XG5cbiAgICBhOm5vdCgudXNlci1saW5rKSB7XG4gICAgICBAZXh0ZW5kICVyb2JvdG87XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgcGFkZGluZzogMXB4IDVweDtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIGNvbG9yOiAkYy1hY2NlbnQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxpOmhvdmVyIGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCAkYy1iZy1ib3gsIDAgMCA1cHggJGMtYmctYm94LCAwIDAgMTBweCAkYy1iZy1ib3g7XG4gICAgfVxuXG4gICAgbGkubWUgaSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fc2F5IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDNweCAyMHB4IDNweCA0cHg7XG5cbiAgICAvLyBQcmV2ZW50IFNhZmFyaSBpT1MgYXV0by16b29tIHdoZW4gaW5wdXQgaXMgZm9jdXNlZCAodHJpZ2dlcmVkIHdoZW4gZm9udC1zaXplIDwgMTZweClcbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuXG4gICAgJi53aGlzcGVyIHtcbiAgICAgIGNvbG9yOiAkYy1nb29kO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuICB9XG59XG4iLCJAa2V5ZnJhbWVzIHBhbGFudGlyLWdsb3dpbmcge1xuICA0MCUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cblxuICA1MCUge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgMzAlKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgMzAlKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuXG4ucGFsYW50aXIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgYW5pbWF0aW9uOiBwYWxhbnRpci1nbG93aW5nIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDAgM3B4IDAgMDtcblxuICAmLXNsb3Qge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgJi1vZmYge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuXG4gICYtb24ge1xuICAgIGJhY2tncm91bmQ6ICRjLWdvb2Q7XG4gICAgY29sb3I6ICRjLWdvb2Qtb3ZlcjtcbiAgICBhbmltYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJhZCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRjLWJhZC1vdmVyICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRvcDogMXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4iLCIkbXEtY29sMTogJG1xLWNvbDEtdW5pYm9hcmQ7XG4kbXEtY29sMjogJG1xLXNtYWxsO1xuJG1xLWNvbDM6ICRtcS1jb2wzLXVuaWJvYXJkO1xuXG5AaW1wb3J0ICdsYXlvdXQnO1xuQGltcG9ydCAnc2lkZSc7XG5AaW1wb3J0ICdmZWF0dXJlZCc7XG5AaW1wb3J0ICdib2FyZHMnO1xuQGltcG9ydCAnYXBwLWhlYWRlcic7XG5AaW1wb3J0ICdhcHAtbm90aWNlJztcbkBpbXBvcnQgJ2FwcC1jb250cm9sJztcbkBpbXBvcnQgJ2FwcC1zdGFuZGluZyc7XG5AaW1wb3J0ICdzdGF0cyc7XG5AaW1wb3J0ICdkdWVsJztcbkBpbXBvcnQgJ2FjdG9yLWluZm8nO1xuQGltcG9ydCAncGxheWVyLWluZm8nO1xuQGltcG9ydCAndGVhbS1pbmZvJztcblxuLnRvdXIge1xuICAucHVsbC1xdW90ZSB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB3aWR0aDogMzAwcHg7XG4gIH1cblxuICAuYm94LmNyZWF0ZWQge1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG5cbiAgICAvKiBhcyBxdW90ZSBtYXJnaW4gKi9cbiAgfVxufVxuXG4udG91cl9fZmFxIHtcbiAgcGFkZGluZzogNGVtIHZhcigtLWJveC1wYWRkaW5nKTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBoMiB7XG4gICAgbWFyZ2luOiAxLjVlbSAwIDAuNWVtIDA7XG4gIH1cbn1cblxuLyogdGVtcCBoYWNrICovXG4udG91ci1pZC10ZVNtclJueCAucG9kaXVtIC50cm9waHkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4vLyBHb2F0IHJ1biBhbmltYXRpb246IHRyaWdnZXJlZCB3aGVuIHRoZSBsb2NhbCBwbGF5ZXIgYmVhdHMgdGhlIGhpZ2hlc3QtcmF0ZWQgcGxheWVyXG5Aa2V5ZnJhbWVzIHRvdXItZ29hdC1ydW4tbHRyIHtcbiAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwcHgpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMHZ3ICsgMjAwcHgpKSB0cmFuc2xhdGVZKC01MCUpOyB9XG59XG5cbkBrZXlmcmFtZXMgdG91ci1nb2F0LXJ1bi1ydGwge1xuICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTAwdncgKyAyMDBweCkpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwcHgpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cbn1cblxuLnRvdXJfX2dvYXQtcnVuIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJi0tbHRyIHsgYW5pbWF0aW9uOiB0b3VyLWdvYXQtcnVuLWx0ciA0LjVzIGxpbmVhciBmb3J3YXJkczsgfVxuICAmLS1ydGwgeyBhbmltYXRpb246IHRvdXItZ29hdC1ydW4tcnRsIDQuNXMgbGluZWFyIGZvcndhcmRzOyB9XG5cbiAgJl9faW1nIHtcbiAgICBoZWlnaHQ6IDE0M3B4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICYtLWZsaXBwZWQgeyB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cbiAgfVxuXG4gICZfX2ljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmdvYXQtaWNvbiB7XG4gIGhlaWdodDogMThweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cbiIsIkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDIpIHtcbiAgI21haW4td3JhcCB7XG4gICAgLS1tYWluLW1heC13aWR0aDogYXV0bztcbiAgfVxufVxuXG4udG91cl9fb3V0ZXJfbWFpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAjY29uZmV0dGkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA0cztcblxuICAgICYuZmFkZWQge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuJGNoYXQtb3B0aW1hbC1zaXplOiBjYWxjKDEwMHZoIC0gI3skc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0fSAtICN7JGJsb2NrLWdhcH0gLSAzcmVtKTtcblxuLnRvdXIge1xuICBkaXNwbGF5OiBncmlkO1xuXG4gICZfX3NpZGUge1xuICAgIGdyaWQtYXJlYTogc2lkZTtcbiAgfVxuXG4gICZfX3RhYmxlLFxuICAmX19zdGF0cyxcbiAgJl9fcGxheWVyIHtcbiAgICBncmlkLWFyZWE6IHRhYmxlO1xuICB9XG5cbiAgJl9fdGFibGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gICZfX21haW4ge1xuICAgIGdyaWQtYXJlYTogbWFpbjtcbiAgfVxuXG4gIC5jaGF0X19tZW1iZXJzIHtcbiAgICBncmlkLWFyZWE6IHVjaGF0O1xuICB9XG5cbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ21haW4nICdzaWRlJyAndWNoYXQnICd0YWJsZSc7XG4gIGdyaWQtZ2FwOiAkYmxvY2stZ2FwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDIpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRjb2wyLXVuaWJvYXJkLWRlZmF1bHQtd2lkdGggJGNvbDItdW5pYm9hcmQtdGFibGU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAkY2hhdC1vcHRpbWFsLXNpemUgbWluLWNvbnRlbnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ21haW4gIHNpZGUnICdtYWluICB1Y2hhdCcgJ3RhYmxlIHRhYmxlJztcblxuICAgICZfX3RhYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgID4gKiB7XG4gICAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1jaGF0X19tZXNzYWdlcyB7XG4gICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDMpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRjb2wzLXVuaWJvYXJkLXNpZGUgJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC13aWR0aCAkY29sMy11bmlib2FyZC10YWJsZTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICRjaGF0LW9wdGltYWwtc2l6ZSBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdzaWRlICBtYWluIHRhYmxlJyAndWNoYXQgbWFpbiB0YWJsZSc7XG5cbiAgICAmX190YWJsZSB7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcblxuICAgICAgPiAqIHtcbiAgICAgICAgZmxleDogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm1hc2NvdCB7XG4gIHdpZHRoOiA0MDBweDtcbiAgaGVpZ2h0OiAyNjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgLyogUkVNT1ZFIHRoaXM6IGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OyAqL1xufVxuXG4udG91ci1tYXNjb3QtZmVhdHVyZWQtZG9jayxcbiN0b3VyLW1hc2NvdC1tb3VudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG1pbi1oZWlnaHQ6IDIzMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogOTA7XG59XG5cbi50b3VyLW1hc2NvdC1mZWF0dXJlZC1kb2NrIC5tYXNjb3QtYm90dG9tLFxuI3RvdXItbWFzY290LW1vdW50IC5tYXNjb3QtYm90dG9tIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDkxO1xufVxuXG4udG91ci1tYXNjb3QtZmVhdHVyZWQtZG9jayAubWFzY290LFxuI3RvdXItbWFzY290LW1vdW50IC5tYXNjb3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIzMnB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgei1pbmRleDogOTI7XG59XG5cbi50b3VyLW1hc2NvdC1mZWF0dXJlZC1kb2NrIC5tYXNjb3Qtc3ByaXRlLFxuI3RvdXItbWFzY290LW1vdW50IC5tYXNjb3Qtc3ByaXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC04cHg7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTM7XG4gIGFuaW1hdGlvbjogbm9uZTtcbn1cblxuLyogd3JhcHBlciB0aGF0IG1vdmVzIGxlZnQvcmlnaHQgKi9cbi5tYXNjb3Qtc3ByaXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGN1cnNvcjogZ3JhYjtcblxuICAvKiDinIUgcGFjaW5nIGJ5IGRlZmF1bHQgLSB1c2UgbGVmdCBpbnN0ZWFkIG9mIHRyYW5zZm9ybSAqL1xuICBhbmltYXRpb246IG1hc2NvdFBhY2UgNnMgbGluZWFyIGluZmluaXRlIGFsdGVybmF0ZTtcblxuICAvKiDinIUgcGF1c2UgYW5pbWF0aW9uIHdoZW4gY2hhc2luZyAqL1xuICAmLm1hc2NvdC0tY2hhc2luZyB7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5tYXNjb3QtLWRyYWdnaW5nIC5tYXNjb3Qtc3ByaXRlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tYXNjb3QubWFzY290LS1mcmVlLWRyYWcge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ2ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tYXNjb3QubWFzY290LS1mcmVlLWRyYWcgLm1hc2NvdC1zcHJpdGUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgei1pbmRleDogMjE0NzQ4MzY0NztcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIGRvIE5PVCBhbmltYXRlIHRoZSB2aWRlbzsgSlMgZmxpcHMgaXQgKi9cbi5tYXNjb3QtdmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDI4MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi8qIEhhdCBvdmVybGF5IOKAlCBwb3NpdGlvbmVkIHRvIG1hdGNoIFNwaW5lL0MwMS9IYXQucG5nIHJlbmRlcmVkIG9uIHRoZSBjYXB5J3MgaGVhZC5cbiAqIEJhc2UgY2FudmFzOiA3ODh4NTA0IOKGkiBDU1MgMjgwcHggd2lkZSAoc2NhbGUgMC4zNTUzKS5cbiAqIEhhdCBjb250ZW50IGJib3ggaW4gZnJhbWU6IHRvcD0yMjAgbGVmdD0zMzMgKHllbGxvdyBwaXhlbHMpLiBDcm9wcGVkIFBORyBpcyA3N3g2NnB4LlxuICogQ1NTOiB0b3AgPSAyMjAqKDI4MC83ODgpIOKJiCA3OHB4LCBsZWZ0ID0gMzMzKigyODAvNzg4KSDiiYggMTE4cHgsIHdpZHRoID0gNzcqKDI4MC83ODgpIOKJiCAyN3B4ICovXG4ubWFzY290LWhhdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDI3cHg7XG4gIHRvcDogNzhweDtcbiAgbGVmdDogMTE4cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4ubWFzY290LS1wYXVzZWQgLm1hc2NvdC1zcHJpdGUgeyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkICFpbXBvcnRhbnQ7IH1cblxuQGtleWZyYW1lcyBtYXNjb3RQYWNlIHtcbiAgZnJvbSB7IGxlZnQ6IDA7IH1cbiAgdG8gICB7IGxlZnQ6IGNhbGMoNDAwcHggLSAyODBweCk7IH1cbn1cblxuLm1hc2NvdC1idWJibGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjE1KTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAyO1xufVxuXG4ubWFzY290LWJ1YmJsZTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTZweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xNSk7XG59XG5cbi8vIOKUgOKUgCBDYXB5YmFyYSBQYXJrIChmaW5pc2hlZCB0b3VybmFtZW50LCBvdXRzaWRlIHRoZSBtYWluIGJveCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uY2FweS1wYXJrLXdyYXAge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAxNDBweDsgLy8gc3BhY2UgYWJvdmUgcGxheWdyb3VuZCBmb3Igc2lnbiB0byBwcm90cnVkZVxuXG4gICZfX3NpZ24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogNDA2cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCA2cHggMThweCByZ2JhKDAsMCwwLC44NSkpO1xuICAgIH1cbiAgfVxufVxuXG4uY2FweS1wbGF5Z3JvdW5kIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDY2MHB4O1xuXG4gIEBtZWRpYSAob3JpZW50YXRpb246IHBvcnRyYWl0KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBoZWlnaHQ6IDgwMHB4O1xuICB9XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxYTNhMGEgMCUsICMyZTVjMTIgNDUlLCAjM2Q3YTE4IDEwMCUpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgLy8gVG9wIGZlbmNlOiB3b29kZW4gc3ByaXRlIHRpbGUg4oCUIGZ1bGwgd2lkdGg7IGNvcm5lciBwb3N0cyBjb3ZlciB0aGUgZW5kc1xuICAmX19mZW5jZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9wbGF5Z3JvdW5kL2ZlbmNlLWgtc20ucG5nJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xuICAgIC8vIEN1dG91dCBmb3IgdGhlIGVudHJhbmNlIHNpZ24g4oCUIDI4OHB4IGdhcCBjZW50cmVkIChwaWxsYXIgb3V0ZXIgZWRnZXMgYXQgwrExNDRweClcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgIGJsYWNrIDAsIGJsYWNrIGNhbGMoNTAlIC0gMTQ0cHgpLFxuICAgICAgdHJhbnNwYXJlbnQgY2FsYyg1MCUgLSAxNDRweCksIHRyYW5zcGFyZW50IGNhbGMoNTAlICsgMTQ0cHgpLFxuICAgICAgYmxhY2sgY2FsYyg1MCUgKyAxNDRweCksIGJsYWNrIDEwMCVcbiAgICApO1xuICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgIGJsYWNrIDAsIGJsYWNrIGNhbGMoNTAlIC0gMTQ0cHgpLFxuICAgICAgdHJhbnNwYXJlbnQgY2FsYyg1MCUgLSAxNDRweCksIHRyYW5zcGFyZW50IGNhbGMoNTAlICsgMTQ0cHgpLFxuICAgICAgYmxhY2sgY2FsYyg1MCUgKyAxNDRweCksIGJsYWNrIDEwMCVcbiAgICApO1xuICB9XG5cbiAgLy8gQm90dG9tIGZlbmNlOiB3b29kZW4gc3ByaXRlIHRpbGUg4oCUIGZ1bGwgd2lkdGg7IGNvcm5lciBwb3N0cyBjb3ZlciB0aGUgZW5kc1xuICAmX19mZW5jZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwO1xuICAgIGhlaWdodDogNjRweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL3BsYXlncm91bmQvZmVuY2UtaC1zbS5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBib3R0b207XG4gIH1cblxuICAmX19mZW5jZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG5cbiAgLy8gTGVmdCBmZW5jZTogdmVydGljYWwgc3ByaXRlIOKAlCBmdWxsIGhlaWdodCBpbmNsdWRpbmcgY29ybmVycywgc2l0cyBvdmVyIHRvcC9ib3R0b20gZmVuY2VzXG4gICZfX2ZlbmNlLWxlZnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7IGxlZnQ6IDA7IGJvdHRvbTogMDtcbiAgICB3aWR0aDogNjRweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxMTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL3BsYXlncm91bmQvZmVuY2Utdi5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOyAvLyBtaXJyb3Igc28gcG9zdCB0aXBzIHBvaW50IG91dHdhcmQgKGxlZnQpXG4gIH1cblxuICAvLyBSaWdodCBmZW5jZTogc2FtZSB0aWxlIHVuLW1pcnJvcmVkIOKAlCBwb3N0IHRpcHMgcG9pbnQgb3V0d2FyZCAocmlnaHQpXG4gICZfX2ZlbmNlLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwOyByaWdodDogMDsgYm90dG9tOiAwO1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDExO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvcGxheWdyb3VuZC9mZW5jZS12LnBuZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbiAgfVxuXG4gIC8vIENvcm5lciBwb3N0cyDigJQgcm9wZS13cmFwcGVkIGxvZyBwb3N0IGF0IGVhY2ggY29ybmVyLCBhYm92ZSBhbGwgZmVuY2UgdGlsZXMuXG4gIC8vIDgww5c4MHB4ICgxNnB4IGxhcmdlciB0aGFuIDY0cHggZmVuY2Ugem9uZSkgc28gdGhlIHBvc3Qgb3ZlcmxhcHMgYm90aCBmZW5jZSB0aWxlXG4gIC8vIGVuZHMgd2l0aCBtYXJnaW47IG5lZ2F0aXZlIG9mZnNldCBvZiA4cHggY2VudGVycyBpdCBvbiB0aGUgY29ybmVyIGFuZCBjbGlwcyBjbGVhbmx5XG4gIC8vIHZpYSB0aGUgcGxheWdyb3VuZCdzIG92ZXJmbG93OmhpZGRlbi4gYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgc2hvd3MgdGhlIHdpZGVzdFxuICAvLyByb3BlLXdyYXBwZWQgc2VjdGlvbiwgd2hpY2ggaXMgZnVsbHkgb3BhcXVlIHdpdGggbm8gZWRnZSB0cmFuc3BhcmVuY3kuXG4gICZfX3Bvc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9wbGF5Z3JvdW5kL2ZlbmNlLXBvc3QucG5nJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAmLS10bCB7IHRvcDogLThweDsgbGVmdDogLThweDsgfVxuICAgICYtLXRyIHsgdG9wOiAtOHB4OyByaWdodDogLThweDsgfVxuICAgICYtLWJsIHsgYm90dG9tOiAtOHB4OyBsZWZ0OiAtOHB4OyB9XG4gICAgJi0tYnIgeyBib3R0b206IC04cHg7IHJpZ2h0OiAtOHB4OyB9XG4gIH1cblxuICAvLyBSZWQgYmFsbFxuICAmX19iYWxsIHtcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM4JSAzMiUsXG4gICAgICAjZmY5YTlhIDAlLCAjZWUyMjIyIDQ1JSwgIzk5MDAwMCAxMDAlXG4gICAgKTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMnB4IDRweCAxMHB4IHJnYmEoMCwwLDAsLjUpLFxuICAgICAgaW5zZXQgLTNweCAtM3B4IDhweCByZ2JhKDAsMCwwLC4zKSxcbiAgICAgIGluc2V0IDNweCAzcHggOHB4IHJnYmEoMjU1LDIwMCwyMDAsLjQpO1xuICB9XG59XG5cbi8vIOKUgOKUgCBTdGFuZGFsb25lIGZ1bGwtcGFnZSBwbGF5Z3JvdW5kIChHRVQgL3BsYXlncm91bmQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnBsYXlncm91bmQtcGFnZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7IC8vIHNwYW4gYWxsIDUgZ3JpZCBjb2x1bW5zIHNvIHdlIGdldCBmdWxsIHZpZXdwb3J0IHdpZHRoXG5cbiAgLmNhcHktcGFyay13cmFwLS1zdGFuZGFsb25lIHtcbiAgICAuY2FweS1wbGF5Z3JvdW5kIHtcbiAgICAgIGhlaWdodDogYXV0bzsgLy8gb3ZlcnJpZGUgYmFzZSBoZWlnaHQ6NjYwcHggc28gYXNwZWN0LXJhdGlvOjEvMSAoc2V0IGlubGluZSkgZGV0ZXJtaW5lcyB0aGUgaGVpZ2h0XG4gICAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIDjDlzggY2hlc3MgYm9hcmQg4oCUIGZpbGxzIHRoZSBmdWxsIGZlbmNlLXRvLWZlbmNlIGludGVyaW9yIG9mIHRoZSAobm93IHNxdWFyZSkgY29udGFpbmVyXG4uY2FweS1jaGVzc2JvYXJkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDY0cHg7IGxlZnQ6IDY0cHg7IHJpZ2h0OiA2NHB4OyBib3R0b206IDY0cHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDgsIDFmcik7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDgsIDFmcik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xuXG4gICZfX3NxLS1saWdodCB7IGJhY2tncm91bmQ6ICNmMGQ5YjU7IH1cbiAgJl9fc3EtLWRhcmsgIHsgYmFja2dyb3VuZDogI2I1ODg2MzsgfVxufVxuXG4vLyBUaG91Z2h0IGJ1YmJsZSBzaG93biB3aGVuIGNhcHkgYWN0aXZhdGVzIGEgbW92ZW1lbnQgbW9kZVxuLmNhcHktcGxheWdyb3VuZF9faG90a2V5cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiAxNHB4O1xuICB6LWluZGV4OiAyNTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAzcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuNyk7XG5cbiAgICBrYmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtaW4td2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xNSk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgfVxuICB9XG59XG5cbi5jYXB5LWJ1YmJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDIwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMThzIGVhc2U7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcblxuICAmLS12aXNpYmxlIHsgb3BhY2l0eTogMTsgfVxuXG4gICZfX3RleHQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjM1KTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG5cbiAgLy8gVGhyZWUgZGVjcmVhc2luZyBkb3RzIOKAlCB0aG91Z2h0IHRyYWlsIHRvd2FyZCB0aGUgY2FweVxuICAmX190cmFpbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAycHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuXG4gICAgc3BhbiB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjYmJiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIHNwYW46bnRoLWNoaWxkKDEpIHsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7IH1cbiAgICBzcGFuOm50aC1jaGlsZCgyKSB7IHdpZHRoOiA1cHg7IGhlaWdodDogNXB4OyB9XG4gICAgc3BhbjpudGgtY2hpbGQoMykgeyB3aWR0aDogM3B4OyBoZWlnaHQ6IDNweDsgfVxuICB9XG59XG4iLCIudG91cl9fc2lkZSB7XG4gIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuXG4gIC5tY2hhdCB7XG4gICAgZmxleDogMSAxIDdlbTtcbiAgICBtYXJnaW4tdG9wOiAkYmxvY2stZ2FwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMikge1xuICAgICAgbWluLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuLnRvdXJfX21ldGEge1xuICBAZXh0ZW5kICVib3gtbmVhdC1mb3JjZTtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBhZGRpbmc6ICN7JGJsb2NrLWdhcCAqIDAuNn0gJGJsb2NrLWdhcDtcblxuICBzZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmxvY2stZ2FwO1xuXG4gICAgJltkYXRhLWljb25dIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0JTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuc2V0dXAge1xuICAgICAgQGV4dGVuZCAlbm93cmFwLWhpZGRlbjtcbiAgICB9XG5cbiAgICB0aW1lIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmRlZmVuZGVyOjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAtMC4yNmVtO1xuICAgICAgbWFyZ2luOiAwIDAuMTVlbSAwIC0wLjE1ZW07XG4gICAgfVxuXG4gICAgJi5jb25kaXRpb25zIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgJi5hY2NlcHRlZCxcbiAgICAgIC5hY2NlcHRlZCB7XG4gICAgICAgIGNvbG9yOiAkYy1nb29kO1xuICAgICAgfVxuXG4gICAgICAmLnJlZnVzZWQsXG4gICAgICAucmVmdXNlZCB7XG4gICAgICAgIGNvbG9yOiAkYy1iYWQ7XG4gICAgICB9XG5cbiAgICAgIC5jb25kaXRpb246Zmlyc3QtY2hpbGQsXG4gICAgICAuY29uZGl0aW9uICsgLmNvbmRpdGlvbiB7XG4gICAgICAgICYuYWNjZXB0ZWQ6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnXFxhMFxcMjcxMyc7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJlZnVzZWQ6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnXFxhMFxcMjcxOCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGVzY3JpcHRpb24ge1xuICAgIEBleHRlbmQgJWJyZWFrLXdvcmQ7XG5cbiAgICBtYXgtaGVpZ2h0OiAyMHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAudG91cl9fcHJpemUge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgICBwYWRkaW5nOiAxZW0gMnZtaW47XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cblxuLmNoYXRfX21lbWJlcnMge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAvKiBmaXhlcyBpbnZpc2libGUgc3BlY3RhdG9ycyBvbiBmaXJlZm94LCBjb2wyICovXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDEpIHtcbiAgICBtYXJnaW46IDAgJGJsb2NrLWdhcDtcbiAgfVxufVxuIiwiLnRvdXJfX2ZlYXR1cmVkIHtcbiAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgLm1pbmktZ2FtZV9fcGxheWVyIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNlbnRlci1ub3dyYXA7XG5cbiAgICAmIGkge1xuICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAkYy1hY2NlbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5taW5pLWdhbWVfX3VzZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBzdHJvbmcge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxY2g7XG4gICAgfVxuXG4gICAgLnVzZXItbGluayB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWJldHdlZW47XG5cbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgfVxuICB9XG59XG4iLCIudG91cl9fYm9hcmRzIHtcbiAgbWFyZ2luOiAkYmxvY2stZ2FwIDA7XG4gIGdyaWQtZ2FwOiAxY2g7XG4gIC0tbnAtbWluLXdpZHRoOiAyMDBweDtcbn1cblxuLnRvdXJfX2JvYXJkIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQtZm9yY2UsICVmbGV4LWNvbHVtbjtcblxuICAubWluaS1nYW1lX19wbGF5ZXIge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIHBhZGRpbmc6IDAuMmVtO1xuICB9XG5cbiAgLm1pbmktZ2FtZV9fdXNlciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIHN0cm9uZyB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFjaDtcbiAgICB9XG4gIH1cbn1cbiIsIi50b3VyX19tYWluX19oZWFkZXIge1xuICBAZXh0ZW5kICVmbGV4LWNlbnRlci1ub3dyYXA7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBtaW4taGVpZ2h0OiA3ZW07XG4gIHBhZGRpbmc6IDAgI3skYmxvY2stZ2FwICogMS41fTtcblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgZmxleDogOSAxIGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBhIHtcbiAgICAgIC8qIEdNIHdpa2lwZWRpYSAqL1xuICAgICAgY29sb3I6IG1peCgkYy1saW5rLCAkYy1mb250LCAzNSUpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRjLWxpbms7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBmbGV4OiAwIDAgNjBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgcGFkZGluZzogNnB4O1xuICB9XG5cbiAgLmltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG5cbiAgaTo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgfVxuXG4gIC50b3VyLXNoZWQgJiBoMSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgfVxuXG4gIC50b3VyLXNoZWQtd2Vla2x5ICYgaTo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDM1cHg7XG4gIH1cblxuICAudG91ci1zaGVkLW1vbnRobHkgJiBpOjpiZWZvcmUsXG4gIC50b3VyLXNoZWQtd2Vla2VuZCAmIGk6OmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICB9XG5cbiAgLnRvdXItc2hlZC15ZWFybHkgJiBpOjpiZWZvcmUge1xuICAgIGZvbnQtc2l6ZTogNDVweDtcbiAgfVxuXG4gIC50b3VyLXNoZWQtd2Vla2VuZCAmIGgxLFxuICAudG91ci1zaGVkLXllYXJseSAmIGgxIHtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICB9XG5cbiAgLmNsb2NrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogJGMtZm9udC1kaW07XG5cbiAgICAmLWNyZWF0ZWQge1xuICAgICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50b3VyLXNjaGVkICYgaDEsXG4gIC50b3VyLXNjaGVkICYgLmltZyB7XG4gICAgY29sb3I6ICRjLWJyYWc7XG4gIH1cblxuICAudG91cl9fbWFpbi1maW5pc2hlZCAmIGgxIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAudG91ci1zY2hlZC1tYXJhdGhvbiAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAudGltZSB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuXG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4yZW07XG4gIH1cblxuICAuc2h5IHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAudG91ci1zY2hlZC1tYXJhdGhvbiAmIGgxIHtcbiAgICBjb2xvcjogIzQxNjZhMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogOTBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB9XG5cbiAgLnRvdXItc2NoZWQtbWFyYXRob24gJiAuZmlyZS10cm9waHkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMTBweDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIHRyYW5zaXRpb246IDFzO1xuICAgIGZvbnQtZmFtaWx5OiAnbGljaGVzcyc7XG4gICAgZmlsdGVyOiBodWUtcm90YXRlKDE5MGRlZyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLnRvdXItc2NoZWQtc2hpZWxkICYge1xuICAgIGgxIHtcbiAgICAgIHBhZGRpbmctbGVmdDogOTBweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG5cbiAgICAgIC5zaGllbGQtdHJvcGh5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogNjdweDtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3Ryb3BoeS9zaGllbGQtZ29sZC5wbmcpIG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBmb250LWZhbWlseTogJ2xpY2hlc3MnO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA4MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgNnB4ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudG91cl9fbm90aWNlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICRjLWdvb2Q7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMC41ZW0gMDtcbiAgb3BhY2l0eTogMC44O1xuXG4gICYuY2xvc2VkIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1wcmltYXJ5O1xuICB9XG59XG5cbi50b3VyX191ci1wbGF5aW5nIHtcbiAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJ+6BiCc7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDMwcHg7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGxlZnQ6IDMwcHg7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgcmlnaHQ6IDMwcHg7XG4gIH1cbn1cbiIsIi50b3VyX19jb250cm9scyB7XG4gIEBleHRlbmQgJW1ldGFsLCAlZmxleC1iZXR3ZWVuLCAlYm94LXNoYWRvdztcblxuICBwYWRkaW5nOiAwIDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5mYnQge1xuICAgIHBhZGRpbmc6IDAuNmVtIDAuOGVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEteHgtc21hbGwpIHtcbiAgICAgIHBhZGRpbmc6IDAuNmVtIDFlbTtcbiAgICB9XG5cbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHRvdXItZGVsYXkge1xuICAgIDAlIHtcbiAgICAgIHdpZHRoOiAwJTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5kZWxheSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMTcsIDE1MywgMCwgMC41KTtcbiAgICB3aWR0aDogMCU7XG5cbiAgICBidXR0b24ge1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgICAgbWl4LWJsZW5kLW1vZGU6IGx1bWlub3NpdHk7XG4gICAgfVxuICB9XG5cbiAgLmhpZ2hsaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgdG9wOiAtM3B4O1xuICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogIzgyYmY1NjtcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzc1OTkwMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4ICM3NTk5MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNik7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCA1cHgpO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAjNzU5OTAwO1xuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDEpO1xuICAgIH1cbiAgfVxuXG4gIC5zcGlubmVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEuNWVtO1xuICAgIGhlaWdodDogMS41ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjdlbTtcbiAgfVxuXG4gIC5wYWdlciB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIC5wYWdlIHtcbiAgICAgIG1hcmdpbjogMCAzcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLXNlY29uZGFyeSwgMC44KTtcbiAgICB9XG5cbiAgICAuc2VhcmNoLFxuICAgIGlucHV0IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi50b3VyX19zdGFuZGluZyB7XG4gIGJvcmRlcjogbm9uZTtcblxuICAucGxheWVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG5cbiAgICAudXNlci1saW5rIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcbiAgICB9XG5cbiAgICAubmFtZSB7XG4gICAgICBAZXh0ZW5kICVub3dyYXAtZWxsaXBzaXM7XG5cbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgfVxuICB9XG5cbiAgLnVzZXItbGluay5sb25nIHtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuN3B4O1xuICB9XG5cbiAgLnVzZXItbGluayAucmF0aW5nIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgfVxuXG4gIHRyLmxvbmcgLnVzZXItbGluayAucmF0aW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgfVxuXG4gIHRyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAubG9hZGluZyB0Ym9keSB7XG4gICAgb3BhY2l0eTogMC42O1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5LCAwLjNzKTtcbiAgfVxuXG4gICY6bm90KC5jcmVhdGVkKTpub3QoLmxvYWRpbmcpIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCAzMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIHRyLm1lIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAkYy1tZS1ib3JkZXI6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgNzAlKTtcblxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgIHRvIHJpZ2h0LFxuICAgICAgJGMtbWUtYm9yZGVyIDBweCxcbiAgICAgICRjLW1lLWJvcmRlciA1cHgsXG4gICAgICByZ2JhKDAsIDAsIDAsIDApIDVweCxcbiAgICAgIHJnYmEoMCwgMCwgMCwgMCkgMTAwJVxuICAgICk7XG4gIH1cblxuICB0ci5hY3RpdmUgdGQ6bGFzdC1jaGlsZCB7XG4gICAgJGMtYWN0aXZlLWJvcmRlcjogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgNzAlKTtcblxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgIHRvIGxlZnQsXG4gICAgICAkYy1hY3RpdmUtYm9yZGVyIDBweCxcbiAgICAgICRjLWFjdGl2ZS1ib3JkZXIgNXB4LFxuICAgICAgcmdiYSgwLCAwLCAwLCAwKSA1cHgsXG4gICAgICByZ2JhKDAsIDAsIDAsIDApIDEwMCVcbiAgICApO1xuICB9XG5cbiAgdGQucmFuayB7XG4gICAgcGFkZGluZzogMWVtIDAuNWVtIDFlbSAxMHB4O1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAvKiBoZWxwcyBrZWVwaW5nIGl0IGFzIHNtYWxsIGFzIHBvc3NpYmxlICovXG4gICAgaSB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIH1cbiAgfVxuXG4gIC5zaGVldCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuXG4gICAgJiA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIHNjb3JlIHtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gIH1cblxuICB0ci5sb25nIC5zaGVldCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgfVxuXG4gIHRyLnhsb25nIC5zaGVldCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIH1cblxuICBkb3VibGUge1xuICAgIGNvbG9yOiAkYy1icmFnO1xuXG4gICAgLyogZm9udC13ZWlnaHQ6IGJvbGQ7ICovXG4gIH1cblxuICBzdHJlYWsge1xuICAgIGNvbG9yOiAkYy1zZWNvbmRhcnk7XG5cbiAgICAvKiBmb250LXdlaWdodDogYm9sZDsgKi9cbiAgfVxuXG4gIC50b3RhbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1yaWdodDogJGJsb2NrLWdhcDtcbiAgfVxufVxuIiwiLnRvdXJfX3N0YXRzIHtcbiAgQGV4dGVuZCAlZmxleC1jb2x1bW4sICVib3gtbmVhdDtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBhZGRpbmc6IDEuN2VtIDA7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICB0ZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgfVxuXG4gICZfX2xpbmtzIHtcbiAgICBtYXJnaW46IDJlbSBhdXRvIDAgYXV0bztcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnRvdXJfX2R1ZWxzIHtcbiAgQGV4dGVuZCAlcGFnZS10ZXh0LXNoYWRvdyAhb3B0aW9uYWw7XG5cbiAgbWFyZ2luOiAkYmxvY2stZ2FwIDAgMCAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDIpIHtcbiAgICBtYXJnaW46IDAgMCAwICRibG9jay1nYXA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wzKSB7XG4gICAgbWFyZ2luOiAkYmxvY2stZ2FwIDAgMCAwO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB9XG5cbiAgYSB7XG4gICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgICBjb2xvcjogJGMtZm9udDtcbiAgICBwYWRkaW5nOiAwLjVlbSAwLjdlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjllbTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgbWl4KCRjLWJnLXBhZ2UsICRjLWJvcmRlci1wYWdlLCA1MCUpO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWl4KCRjLWxpbmssICRjLWJnLXBhZ2UsIDIwJSk7XG4gICAgfVxuICB9XG5cbiAgbGluZSB7XG4gICAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogNjAlO1xuICB9XG5cbiAgLnJhbmsge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgICBwYWRkaW5nOiAwLjFlbSAwLjVlbTtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy16ZWJyYTtcbiAgfVxuXG4gIC5iIC51dGl0bGUsXG4gIC5iIC5yYW5rIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xuICB9XG5cbiAgLmEgLnV0aXRsZSxcbiAgLmEgLnJhbmsge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgfVxufVxuIiwiLnRvdXJfX2FjdG9yLWluZm8ge1xuICBAZXh0ZW5kICVib3gtbmVhdC1mb3JjZTtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuICAuc3Bpbm5lciB7XG4gICAgbWFyZ2luOiA1ZW0gYXV0bztcbiAgfVxuXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNHB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgb3BhY2l0eTogMC42O1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgIGNvbG9yOiAkYy1yZWQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLnN0YXRzIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgaDIge1xuICAgICAgQGV4dGVuZCAlbWV0YWw7XG5cbiAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgICBwYWRkaW5nOiAwLjZyZW0gMXJlbTtcbiAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgfVxuXG4gICAgdGFibGUge1xuICAgICAgbWFyZ2luOiAxZW0gYXV0bztcbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuOGVtO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBAZXh0ZW5kICVyb2JvdG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnN1Ymxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdHIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtbGluaywgJGMtYmctYm94LCAxMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgIEBleHRlbmQgJXJvYm90bztcblxuICAgICAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gICAgfVxuICB9XG59XG4iLCIudG91cl9fcGxheWVyLWluZm8ge1xuICAucGFpcmluZ3Mge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdHIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtbGluaywgJGMtYmctYm94LCAxMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgdHI6aG92ZXIgdGgge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYy1mb250O1xuICAgIH1cblxuICAgIHRyLndpbjpob3ZlciB0aCB7XG4gICAgICBib3JkZXItY29sb3I6ICRjLWdvb2Q7XG4gICAgfVxuXG4gICAgdHIubG9zczpob3ZlciB0aCB7XG4gICAgICBib3JkZXItY29sb3I6ICRjLWJhZDtcbiAgICB9XG5cbiAgICB0ZDpudGgtY2hpbGQoMikge1xuICAgICAgQGV4dGVuZCAlbm93cmFwLWVsbGlwc2lzO1xuXG4gICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIH1cblxuICAgIHRkOmxhc3QtY2hpbGQge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxuXG4gICAgdHIud2luIHRkOmxhc3QtY2hpbGQge1xuICAgICAgY29sb3I6ICRjLWdvb2Q7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIHRyLmxvc3MgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICBjb2xvcjogJGMtYmFkO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAuY29sb3ItaWNvbiB7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG59XG4iLCIudG91cl9fdGVhbS1pbmZvIHtcbiAgLnBsYXllcnMge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdHIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtbGluaywgJGMtYmctYm94LCAxMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDFlbTtcbiAgICB9XG5cbiAgICB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC5yYXRpbmcge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICB9XG5cbiAgICAubGVhZGVyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAkYy1icmFnO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMTVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiNtb2RhbCB7XG4gICYtb3ZlcmxheSB7XG4gICAgQGV4dGVuZCAlZnVsbHNjcmVlbi1tYXNrLCAlZmxleC1jZW50ZXI7XG5cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gICYtd3JhcCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cywgJXBvcHVwLXNoYWRvdywgJWZsZXgtY29sdW1uO1xuXG4gICAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICBtYXgtaGVpZ2h0OiA5NnZoO1xuXG4gICAgPiBkaXYge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBjb2xvcjogJGMtZm9udDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLXNtYWxsKSB7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIHJpZ2h0OiAtMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYmctcG9wdXA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xvc2U6aG92ZXIge1xuICAgICAgQGV4dGVuZCAlYm94LXNoYWRvdztcblxuICAgICAgYmFja2dyb3VuZDogJGMtYmFkO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG59XG4iLCIkdGVhbS1jb2xvcnM6IChcbiAgMDogaHNsKDI3NCwgMTAwJSwgNTklKSxcbiAgMTogaHNsKDI0MCwgMTAwJSwgNjclKSxcbiAgMjogIzAwODAwMCxcbiAgMzogI2IyMjIyMixcbiAgNDogaHNsKDE2LCA4MCUsIDYyJSksXG4gIDU6ICM5YWNkMzIsXG4gIDY6ICNmZjQ1MDAsXG4gIDc6ICMyZThiNTcsXG4gIDg6ICNkYWE1MjAsXG4gIDk6IGhzbCgzMiwgNzUlLCA0NyUpLFxuKTtcblxudGVhbSB7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJGMtYnJhZztcbn1cblxuQGVhY2ggJGluZGV4LCAkY29sb3IgaW4gJHRlYW0tY29sb3JzIHtcbiAgdGVhbS50dGMtI3skaW5kZXh9IHtcbiAgICBjb2xvcjogI3skY29sb3J9O1xuICB9XG59XG5cbi50b3VyX19wbGF5ZXItaW5mbyB0ZWFtIHtcbiAgbWFyZ2luOiAxcmVtIGF1dG8gMCBhdXRvO1xuICBwYWRkaW5nOiAwLjE1cmVtIDAuOHJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRvdXJfX3N0YW5kaW5nIHtcbiAgLnJhdGluZyB7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICB9XG59XG5cbi50b3VyX190ZWFtLXN0YW5kaW5nIHtcbiAgdGJvZHkgdHIge1xuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICAgIH1cbiAgfVxuXG4gIC50ZWFtIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYy1saW5rO1xuICAgIH1cblxuICAgIHRlYW0ge1xuICAgICAgQGV4dGVuZCAlYnJlYWstd29yZDtcblxuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gIC5wbGF5ZXJzIHtcbiAgICBAZXh0ZW5kICVicmVhay13b3JkO1xuXG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICB9XG5cbiAgc2NvcmUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjLWJyYWc7XG4gICAgfVxuXG4gICAgJi50b3Age1xuICAgICAgdXNlcm5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50b3RhbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1yaWdodDogJGJsb2NrLWdhcDtcbiAgfVxuXG4gIHRyLmFjdGl2ZSB0ZDpsYXN0LWNoaWxkIHtcbiAgICAkYy1hY3RpdmUtYm9yZGVyOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCA3MCUpO1xuXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgdG8gbGVmdCxcbiAgICAgICRjLWFjdGl2ZS1ib3JkZXIgMHB4LFxuICAgICAgJGMtYWN0aXZlLWJvcmRlciA1cHgsXG4gICAgICByZ2JhKDAsIDAsIDAsIDApIDVweCxcbiAgICAgIHJnYmEoMCwgMCwgMCwgMCkgMTAwJVxuICAgICk7XG4gIH1cblxuICAudG91cl9fbWFpbiAmIHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCAzMCUpICFpbXBvcnRhbnQ7XG4gIH1cblxuICB0ZCB7XG4gICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gIH1cblxuICAubW9yZS10ZWFtcyB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLS1mdWxsIHtcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAycmVtIDFyZW07XG5cbiAgICAgICYudGVhbSB7XG4gICAgICAgIGNvbG9yOiAkYy1icmFnO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnRlYW0tYmF0dGxlIHtcbiAgJl9fbGlzdCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLnRlYW0tYmF0dGxlX19jaG9pY2Uge1xuICBidXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cblxuLnRvdXJfX2R1ZWxzIHRlYW0ge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4udGVhbS1waWNrZXIge1xuICB1bCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBRUVBLFlBQVk7QUFrQlosNkRBQTZEO0FBYzdELG1CQUFtQjtBQU1uQixrQ0FBa0M7QUFFbEMsc0JBQXNCO0FBTXRCLG9DQUFvQztBQUVwQyxvQkFBb0I7QUFNcEIsaUNBQWlDO0FBRWpDLGdCQUFnQjtBQUloQiwrQkFBK0I7QUFFL0IsZ0JBQWdCO0FBS2hCLCtCQUErQjtBQUUvQixpQkFBaUI7QUFJakIsa0JBQWtCO0FBSWxCLGNBQWM7QUFJZCxnQkFBZ0I7QUFJaEIsaUJBQWlCO0FBSWpCLCtCQUErQjtB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 */
