@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i,
center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details,
embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

:root {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

*, *:after, *:before {
  box-sizing: inherit;
}
*:focus, *:after:focus, *:before:focus {
  outline: 0;
}

html {
  height: 100%;
  font-size: 62.5%;
  block-size: 100%;
  inline-size: 100%;
}

body {
  min-block-size: 100%;
  min-inline-size: 100%;
}

html, body {
  min-height: 100%;
}

p:empty, pre:empty, blockquote:empty, ol:empty, ul:empty, li:empty, legend:empty, figcaption:empty, body:empty, article:empty, nav:empty, aside:empty, section:empty, header:empty, footer:empty, address:empty {
  display: none;
}

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
  display: block;
}

svg, symbol {
  overflow: visible;
}

details {
  display: block;
}

summary {
  display: list-item;
  -webkit-appearance: none;
}
summary::-webkit-details-marker, summary::marker {
  display: none;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  width: 100%;
}

address {
  font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
  -webkit-margin-before: 0em;
  -webkit-margin-after: 0em;
  -webkit-margin-start: 0px;
  -webkit-margin-end: 0px;
  font-weight: normal;
}

hr {
  border: none;
  height: 1px;
  box-sizing: content-box;
  overflow: visible;
}

blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
  background-color: white;
  color: black;
  padding: 16px;
  position: relative;
  z-index: 9999;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  touch-action: manipulation;
}

button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button, input {
  overflow: visible;
}

button, select {
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
button:focus,
[type=button]:focus,
[type=reset]:focus,
[type=submit]:focus {
  outline: 0;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

[disabled] {
  cursor: default;
}

img {
  border-style: none;
}

em {
  font-style: italic;
}

a {
  background-color: transparent;
  text-decoration: none;
  touch-action: manipulation;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

b, strong {
  font-weight: bold;
}

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

textarea {
  resize: none;
  overflow: auto;
}

pre {
  background-color: white;
  color: black;
  text-transform: none;
  text-decoration: none;
  text-align: left;
  display: block;
  font-size: 16px;
  padding: 16px;
  position: relative;
  z-index: 999;
}

body.devmode img:not([alt]) {
  border: 2px red dashed;
}

body {
  width: 100vw;
}
@media (min-width: 321px) {
  body {
    overflow-x: hidden;
  }
}

:where(*) {
  scroll-margin-top: var(--navigation-height, 2rem);
}

.async-hide {
  opacity: 0 !important;
}

main:empty {
  display: none;
}

figure.image,
picture.image {
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
}
figure.image img,
picture.image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}

video-container {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  display: block;
  position: relative;
  width: 100%;
  background-color: black;
}
@supports not (aspect-ratio: 16/9) {
  video-container {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  video-container > * {
    position: absolute;
  }
}
video-container iframe, video-container canvas {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100% !important;
  width: 100% !important;
}

*:has(> .container-inline) {
  container-type: inline-size;
}

mark {
  background-color: #0095ff;
  color: white;
  border-radius: calc(var(--border-radius, 6px) / 2);
  padding: 0 5px;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}

details {
  outline: none;
}

summary {
  -webkit-appearance: none;
}
summary::-webkit-details-marker, summary::marker {
  display: none;
}

header .button.brochure {
  --font-colour: #131f6b;
  --background-colour: transparent;
  --padding: 5px 0px;
  --icon-size: 32px;
  --border-colour: transparent;
  --border-radius: 0;
  --hover-font-colour: #df3035;
  --hover-border-colour: transparent;
  --hover-background-colour: transparent;
  flex-direction: row-reverse;
  text-transform: uppercase;
}
header .button.brochure svg {
  margin-right: calc(var(--gap) * 0.5);
  margin-left: 0;
  fill: #df3035;
}

.button {
  --font-colour: white;
  --background-colour: var(--primary);
  --border-colour: transparent;
  --padding: 8px 20px;
  --font-size: 16px;
  --border-radius: 50px;
  --hover-font-colour: var(--primary);
  --hover-background-colour: white;
  --hover-border-colour: initial;
  --hover-padding: var(--padding);
  --hover-font-size: var(--font-size);
  --hover-border-radius: var(--border-radius);
  --icon-size: 1.1em;
  cursor: pointer;
  display: inline-flex;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  border-style: solid;
  border-width: 1px;
  font-weight: bold;
  place-content: center;
  place-items: center;
  align-self: flex-start;
  text-transform: uppercase;
  color: var(--font-colour);
  background-color: var(--background-colour);
  border-color: var(--border-colour);
  padding: var(--padding);
  font-size: var(--font-size);
  border-radius: var(--border-radius);
  transition: background-color var(--transition-duration) var(--transition-ease), color var(--transition-duration) var(--transition-ease), border var(--transition-duration) var(--transition-ease);
}
.button svg {
  width: var(--icon-size);
  height: var(--icon-size);
  order: 3;
  fill: var(--fill, currentColor);
  margin-left: calc(var(--icon-size) / 2);
  transition: fill var(--transition-duration) var(--transition-ease), stroke var(--transition-duration) var(--transition-ease);
}
.button svg[class*=arrow] {
  --icon-size: 0.9em;
}
.button svg.arrow-left {
  margin-right: calc(var(--icon-size) / 2);
  margin-left: 0 !important;
  order: 1;
}
.button > span {
  order: 2;
  text-wrap: balance;
}
.button.small {
  --padding: 6px 18px;
  --font-size: 12px;
}
.button.small svg {
  margin-left: calc(var(--gap) * 0.5);
}
.button.small svg.arrow-left {
  margin-right: calc(var(--gap) * 0.5);
}
.button.large {
  --padding: 12px 24px;
  --font-size: 24px;
}
.button.outline {
  --background-colour: transparent;
  --font-colour: #131f6b;
  --border-colour: #131f6b;
  --hover-background-colour: #131f6b;
  --hover-font-colour: #131f6b;
  --hover-border-colour: transparent;
}
.button.blue {
  --background-colour: #131f6b;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #131f6b;
}
.button.blue.outline {
  --background-colour: transparent;
  --font-colour: #131f6b;
  --border-colour: #131f6b;
  --hover-background-colour: #131f6b;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.red {
  --background-colour: #df3035;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #df3035;
}
.button.red.outline {
  --background-colour: transparent;
  --font-colour: #df3035;
  --border-colour: #df3035;
  --hover-background-colour: #df3035;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.green {
  --background-colour: #76bb28;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #76bb28;
}
.button.green.outline {
  --background-colour: transparent;
  --font-colour: #76bb28;
  --border-colour: #76bb28;
  --hover-background-colour: #76bb28;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.white {
  --background-colour: #FFFFFF;
  --font-colour: var(--primary, #131f6b);
  --hover-background-colour: var(--primary, #131f6b);
  --hover-font-colour: #FFFFFF;
}
.button.white.outline {
  --background-colour: transparent;
  --font-colour: #FFFFFF;
  --border-colour: #FFFFFF;
  --hover-background-colour: #FFFFFF;
  --hover-font-colour: var(--primary, #131f6b);
  --hover-border-colour: transparent;
}
.button.disabled {
  pointer-events: none;
  --background-colour: #dcdcdc;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #dcdcdc;
}
.button.disabled.outline {
  --background-colour: transparent;
  --font-colour: #dcdcdc;
  --border-colour: #dcdcdc;
  --hover-background-colour: #dcdcdc;
  --hover-font-colour: #dcdcdc;
  --hover-border-colour: transparent;
}
@media (hover: hover) {
  .button:hover {
    color: var(--hover-font-colour);
    background-color: var(--hover-background-colour);
    border-color: var(--hover-border-colour);
    border-radius: var(--hover-border-radius);
    padding: var(--hover-padding);
    font-size: var(--hover-font-size);
  }
}
.button.red svg.tick, .button.red svg.download {
  --stroke: #df3035;
}
.button.blue svg.tick, .button.blue svg.download {
  --stroke: #131f6b;
}
.button.outline svg.tick, .button.outline svg.download {
  --stroke: #FFFFFF;
}
@media (hover: hover) {
  .button:hover.red svg.tick,
  .button:hover.red svg.download {
    --stroke: #FFFFFF;
  }
  .button:hover.red.outline svg.tick, .button:hover.red.outline svg.download {
    --stroke: #df3035;
  }
  .button:hover.blue svg.tick,
  .button:hover.blue svg.download {
    --stroke: #FFFFFF;
  }
  .button:hover.blue.outline svg.tick, .button:hover.blue.outline svg.download {
    --stroke: #131f6b;
  }
  .button:hover.white svg.tick, .button:hover.white svg.download {
    --stroke: #131f6b;
  }
}

button-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  position: relative;
  gap: calc(var(--gap) * 0.5);
}
button-container .button {
  white-space: nowrap;
}

.sticky {
  position: sticky;
  top: 0px;
}

input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
  display: none;
  -webkit-appearance: none;
}

#holding-page header svg {
  max-width: 400px;
}
@media (max-width: 980px) {
  #holding-page {
    display: flex;
    flex-direction: column;
    padding: var(--gutter1);
  }
}

body#error-404 header h2 {
  max-width: 900px;
}
body#error-404 search-bar {
  margin-bottom: var(--spacer0);
}
body#error-404 search-bar input[type=search] {
  border: 1px solid #131f6b;
}

body > .idle-dialog {
  position: sticky;
  box-shadow: initial !important;
  display: flex;
  place-items: center;
  place-content: center;
  bottom: var(--gutter1-);
  z-index: 2;
  /* Start hidden below viewport */
  transform: translateY(100%);
  /* Animation with delayed start */
  animation: slide-in-idle-dialog both;
  animation-timeline: scroll();
  animation-range: calc(var(--navigation-height, 0px)) calc(var(--navigation-height, 0px) + clamp(2rem, 5vh, 3rem) * 2);
}
body > .idle-dialog .button {
  outline: 1px solid rgba(255, 255, 255, 0.5);
}
@keyframes slide-in-idle-dialog {
  to {
    transform: translateY(0rem);
  }
}
#contact-modal {
  --dialog-content-background-colour: #f4f4f4;
}
#contact-modal form .submit-row {
  margin-top: var(--gutter1);
}

body > .back-to-top {
  width: 40px;
  height: 40px;
  position: fixed;
  bottom: var(--gutter1);
  right: var(--gutter1);
  background: var(--back-to-top-background, #292b68);
  border: 2px solid white;
  border-radius: 50%;
  z-index: 9999;
  opacity: 0;
  display: flex;
  pointer-events: none;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), bottom var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  place-content: center;
  place-items: center;
}
body > .back-to-top svg {
  position: relative;
  color: white;
  width: 50%;
  top: -4%;
}
@media (hover: hover) {
  body > .back-to-top:hover {
    background-color: var(--secondary-light, #df3035);
  }
}

footer#footer.in-view ~ .back-to-top {
  bottom: 120px;
}

navigation-bar:not(.in-view) ~ .back-to-top {
  opacity: 1;
  pointer-events: all;
}

:root {
  --primary: #131f6b;
  --secondary: #df3035;
  --breakpoint-min: 320px;
  --breakpoint-small: 480px;
  --breakpoint-small-medium: 980px;
  --breakpoint-medium: 1120px;
  --breakpoint-large: 1400px;
  --breakpoint-max: 1680px;
  --font-colour: #6a6a6a;
  --heading-colour: var(--primary, #131f6b);
  --sub-heading-colour: var(--secondary, #df3035);
  --transition-duration: 0.2s;
  --transition-ease: cubic-bezier(0.42, 0, 0.58, 1);
  --transition-delay: ;
  --breadcrumb-height: 90px;
  --anchors-height: 60px;
  --breadcrumb-and-anchors-sticky-underset: -15px;
  --main-max-width: 900px;
  --navigation-height: 143px;
  --sidebar-width: clamp(300px, 30vw, 500px);
  --gap: 16px;
  --gutter: 3vw;
  --spacer: 4vh;
  --gutter0: clamp(8px, var(--gutter) * 0.5, 12px);
  --gutter0-: calc(-1 * clamp(8px, var(--gutter) * 0.5, 12px));
  --spacer0: clamp(16px, var(--spacer), 32px);
  --spacer0-: calc(-1 * clamp(16px, var(--spacer), 32px));
  --gutter1: clamp(16px, var(--gutter), 32px);
  --gutter1-: calc(-1 * clamp(16px, var(--gutter), 32px));
  --spacer1: clamp(16px, var(--spacer) * 3, 64px);
  --spacer1-: calc(-1 * clamp(16px, var(--spacer) * 3, 64px));
  --gutter2: clamp(16px, var(--gutter) * 2, 48px);
  --gutter2-: calc(-1 * clamp(16px, var(--gutter) * 2, 48px));
  --spacer2: clamp(16px, var(--spacer) * 6, 112px);
  --spacer2-: calc(-1 * clamp(16px, var(--spacer) * 6, 112px));
  --gutter3: clamp(16px, var(--gutter) * 3, 64px);
  --gutter3-: calc(-1 * clamp(16px, var(--gutter) * 3, 64px));
  --spacer3: clamp(16px, var(--spacer) * 9, 160px);
  --spacer3-: calc(-1 * clamp(16px, var(--spacer) * 9, 160px));
  --gutter4: clamp(16px, var(--gutter) * 4, 80px);
  --gutter4-: calc(-1 * clamp(16px, var(--gutter) * 4, 80px));
  --spacer4: clamp(16px, var(--spacer) * 12, 208px);
  --spacer4-: calc(-1 * clamp(16px, var(--spacer) * 12, 208px));
  --gutter5: clamp(16px, var(--gutter) * 5, 96px);
  --gutter5-: calc(-1 * clamp(16px, var(--gutter) * 5, 96px));
  --spacer5: clamp(16px, var(--spacer) * 15, 256px);
  --spacer5-: calc(-1 * clamp(16px, var(--spacer) * 15, 256px));
  --gutter6: clamp(16px, var(--gutter) * 6, 112px);
  --gutter6-: calc(-1 * clamp(16px, var(--gutter) * 6, 112px));
  --spacer6: clamp(16px, var(--spacer) * 18, 304px);
  --spacer6-: calc(-1 * clamp(16px, var(--spacer) * 18, 304px));
  --computed-gutter: calc(((100vw - var(--breakpoint-max)) / 2));
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  :root {
    --sidebar-width: 500px;
  }
  @media (max-width: 1400px) {
    :root {
      --sidebar-width: 300px;
    }
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  :root {
    --gutter0: calc((var(--gutter) * 0.5) + 8px);
    --gutter0-: calc(-1 * calc((var(--gutter) * 0.5) + 8px));
    --spacer0: calc((var(--spacer) * 2) + 16px);
    --spacer0-: calc(-1 * calc((var(--spacer) * 2) + 16px));
    --gutter1: calc((var(--gutter) * 1) + 16px);
    --gutter1-: calc(-1 * calc((var(--gutter) * 1) + 16px));
    --spacer1: calc((var(--spacer) * 4) + 16px);
    --spacer1-: calc(-1 * calc((var(--spacer) * 4) + 16px));
    --gutter2: calc((var(--gutter) * 2) + 16px);
    --gutter2-: calc(-1 * calc((var(--gutter) * 2) + 16px));
    --spacer2: calc((var(--spacer) * 8) + 16px);
    --spacer2-: calc(-1 * calc((var(--spacer) * 8) + 16px));
    --gutter3: calc((var(--gutter) * 3) + 16px);
    --gutter3-: calc(-1 * calc((var(--gutter) * 3) + 16px));
    --spacer3: calc((var(--spacer) * 12) + 16px);
    --spacer3-: calc(-1 * calc((var(--spacer) * 12) + 16px));
    --gutter4: calc((var(--gutter) * 4) + 16px);
    --gutter4-: calc(-1 * calc((var(--gutter) * 4) + 16px));
    --spacer4: calc((var(--spacer) * 16) + 16px);
    --spacer4-: calc(-1 * calc((var(--spacer) * 16) + 16px));
    --gutter5: calc((var(--gutter) * 5) + 16px);
    --gutter5-: calc(-1 * calc((var(--gutter) * 5) + 16px));
    --spacer5: calc((var(--spacer) * 20) + 16px);
    --spacer5-: calc(-1 * calc((var(--spacer) * 20) + 16px));
    --gutter6: calc((var(--gutter) * 6) + 16px);
    --gutter6-: calc(-1 * calc((var(--gutter) * 6) + 16px));
    --spacer6: calc((var(--spacer) * 24) + 16px);
    --spacer6-: calc(-1 * calc((var(--spacer) * 24) + 16px));
  }
}

@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-bold.woff2") format("woff2"), url("../../../assets/fonts/lato-bold.woff") format("woff"), url("../../../assets/fonts/lato-bold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}
@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-semibold.woff2") format("woff2"), url("../../../assets/fonts/lato-semibold.woff") format("woff"), url("../../../assets/fonts/lato-semibold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}
@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-regular.woff2") format("woff2"), url("../../../assets/fonts/lato-regular.woff") format("woff"), url("../../../assets/fonts/lato-regular.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-medium.woff2") format("woff2"), url("../../../assets/fonts/montserrat-medium.woff") format("woff"), url("../../../assets/fonts/montserrat-medium.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-medium-italic.woff2") format("woff2"), url("../../../assets/fonts/montserrat-medium-italic.woff") format("woff"), url("../../../assets/fonts/montserrat-medium-italic.otf") format("opentype");
  font-display: swap;
  font-style: italic;
  font-weight: 500;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-semibold.woff2") format("woff2"), url("../../../assets/fonts/montserrat-semibold.woff") format("woff"), url("../../../assets/fonts/montserrat-semibold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}
body {
  font-family: montserrat, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--font-colour, #6a6a6a);
  line-height: 1.6;
  font-size: 1.5rem;
}
@supports (width: clamp(1px, 5vw, 10px)) {
  body {
    font-size: clamp(1.4rem, 1.5vw, 1.6rem);
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  @media (max-width: 950px) {
    body {
      font-size: 1.4rem;
    }
  }
  @media (min-width: 1601px) {
    body {
      font-size: 1.6rem;
    }
  }
}

h1 {
  font-size: 3.8125em;
  font-size: clamp(2.5em, 5vw, 3.8125em);
  line-height: 1.2;
}

h2 {
  font-size: 2em;
  line-height: 1.3;
}

h3 {
  font-size: 1.5625em;
  line-height: 1.6;
}

h4 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h5 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h6 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--heading-colour, var(--font-colour));
  text-wrap: pretty;
}
h1.sub-heading,
h2.sub-heading,
h3.sub-heading,
h4.sub-heading,
h5.sub-heading,
h6.sub-heading {
  color: var(--sub-heading-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1 span,
h1 strong,
h1 p,
h2 span,
h2 strong,
h2 p,
h3 span,
h3 strong,
h3 p,
h4 span,
h4 strong,
h4 p,
h5 span,
h5 strong,
h5 p,
h6 span,
h6 strong,
h6 p {
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
}

q,
blockquote {
  quotes: "“" "”" "‘" "’";
}
q::before,
blockquote::before {
  content: open-quote;
}
q::after,
blockquote::after {
  content: close-quote;
}

a {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  text-decoration: none;
  text-underline-position: under;
  color: var(--font-colour);
}
a.external {
  display: inline-flex;
  align-items: center;
}
a.external svg.external-link {
  opacity: 0.6;
  width: 0.8em;
  height: 0.8em;
  margin-left: 0.5em;
}

ol,
ul {
  list-style: none;
  list-style-position: inside;
}

li a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

small {
  font-size: 0.625em;
  line-height: 1.8;
}

hr {
  background-color: var(--hr-colour, #dcdcdc);
  margin-top: var(--spacer0);
  margin-bottom: var(--spacer0);
}

.note {
  position: relative;
  display: block;
  background-color: #fff5bf;
  border: 1px solid #ffe13c;
  padding: var(--gutter1);
  border-radius: var(--border-radius, 6px);
}
.note a {
  text-decoration: underline;
  color: #978002;
}
.note::before {
  content: "Please Note";
  text-transform: uppercase;
  position: relative;
  font-size: 10px;
  font-weight: bold;
  color: #978002;
  display: block;
  margin-bottom: calc(var(--gap) * 0.5);
}

side-bar form .freeform-form-success {
  background-color: #50bc08;
  color: white;
  width: calc(100% + 30px);
  padding: calc(var(--gap) * 0.5) var(--gap);
  border-radius: var(--border-radius, 6px);
  margin: 0 -15px var(--gap);
}
side-bar form .submit-row {
  margin-top: var(--gap);
}

form select {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  background-repeat: no-repeat;
  background-position: calc(100% - var(--gap)) center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17.4' height='10.1'%3E%3Cpath d='M16.7.7l-8 8-8-8' fill='none' stroke='%231E1C1C' stroke-width='2' stroke-miterlimit='10'/%3E%3C/svg%3E");
}
form select::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form select::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form select:focus {
  outline-color: #131f6b;
}
form select:focus::-moz-placeholder {
  color: transparent;
}
form select:focus::placeholder {
  color: transparent;
}
form select.autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form input:not([type=checkbox]):not([type=radio]) {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
form input:not([type=checkbox]):not([type=radio])::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form input:not([type=checkbox]):not([type=radio])::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form input:not([type=checkbox]):not([type=radio]):focus {
  outline-color: #131f6b;
}
form input:not([type=checkbox]):not([type=radio]):focus::-moz-placeholder {
  color: transparent;
}
form input:not([type=checkbox]):not([type=radio]):focus::placeholder {
  color: transparent;
}
form input:not([type=checkbox]):not([type=radio]).autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form textarea {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
form textarea::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form textarea::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form textarea:focus {
  outline-color: #131f6b;
}
form textarea:focus::-moz-placeholder {
  color: transparent;
}
form textarea:focus::placeholder {
  color: transparent;
}
form textarea.autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form input:-webkit-autofill,
form input:-webkit-autofill:hover,
form input:-webkit-autofill:focus,
form textarea:-webkit-autofill,
form textarea:-webkit-autofill:hover,
form textarea:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--font-colour, inherit);
  -webkit-box-shadow: 0 0 0px 1000px var(--background-colour, white) inset;
}
form[data-freeform] label + div {
  font-size: 0.75em;
  margin-bottom: calc(var(--gap) * 0.5);
}
form[data-freeform] .freeform-row + .freeform-row > div {
  margin-top: var(--gap);
}
form[data-freeform] .freeform-column {
  margin: 0;
  padding: 0;
}
side-bar form label {
  color: white;
}
side-bar form label ~ div {
  color: white;
}

form#login {
  display: flex;
  flex-direction: column;
}
form#login > label ~ label {
  margin-top: var(--gap);
}
form#login div {
  display: flex;
  justify-content: space-between;
  margin-top: var(--gap);
  font-size: 0.75em;
}
@media (hover: hover) {
  form#login div a:hover {
    color: #df3035;
  }
}
form#login button {
  margin-top: var(--gap);
}

form#reset-password {
  background-color: #131f6b;
  border-radius: var(--border-radius, 6px);
  color: white;
  padding: var(--gutter1);
  display: flex;
  flex-direction: column;
}
form#reset-password button {
  margin-top: var(--gap);
}

required-notice {
  display: block;
  width: 5px;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  background: var(--notice-colour, #50bc08);
  border-top-right-radius: 6px;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  border-bottom-right-radius: 6px;
}
required-notice span {
  pointer-events: none;
  white-space: nowrap;
  font-size: 0.75em;
  top: 50%;
  right: calc(100% + calc(var(--gap) * 0.5));
  border: 1px solid #dcdcdc;
  border-radius: 4px;
  background-color: white;
  padding: 4px calc(var(--gap) * 0.5);
  position: absolute;
  opacity: 0;
  transform: translate(10px, -50%);
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  required-notice:hover span {
    transform: translate(0px, -50%);
    opacity: 1;
  }
}

form[data-handle=contactUs] .freeform-form-success,
form[data-handle=contactUs] .freeform-form-errors,
form[data-handle=powderContact] .freeform-form-success,
form[data-handle=powderContact] .freeform-form-errors {
  background-color: #50bc08;
  color: white;
  grid-column: 1/-1;
  width: 100%;
  padding: calc(var(--gap) * 0.5) var(--gap);
  border-radius: var(--border-radius, 6px);
  margin-bottom: var(--gutter1);
}
form[data-handle=contactUs] .freeform-form-errors,
form[data-handle=powderContact] .freeform-form-errors {
  background-color: #df3035;
}
form[data-handle=contactUs] .form-fields,
form[data-handle=powderContact] .form-fields {
  display: grid;
  grid-gap: var(--gutter1) var(--gutter1);
}
@media (min-width: 601px) {
  form[data-handle=contactUs] .form-fields,
  form[data-handle=powderContact] .form-fields {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  }
  form[data-handle=contactUs] .form-fields .freeform-row:first-child,
  form[data-handle=powderContact] .form-fields .freeform-row:first-child {
    grid-row: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.first-name, form[data-handle=contactUs] .form-fields .freeform-row.last-name, form[data-handle=contactUs] .form-fields .freeform-row.email, form[data-handle=contactUs] .form-fields .freeform-row.company-name, form[data-handle=contactUs] .form-fields .freeform-row.contact-no, form[data-handle=contactUs] .form-fields .freeform-row.y-rqg181k-d,
  form[data-handle=powderContact] .form-fields .freeform-row.first-name,
  form[data-handle=powderContact] .form-fields .freeform-row.last-name,
  form[data-handle=powderContact] .form-fields .freeform-row.email,
  form[data-handle=powderContact] .form-fields .freeform-row.company-name,
  form[data-handle=powderContact] .form-fields .freeform-row.contact-no,
  form[data-handle=powderContact] .form-fields .freeform-row.y-rqg181k-d {
    grid-column: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry,
  form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry {
    grid-column: 2;
    grid-row: 2/span 5;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.submit-row,
  form[data-handle=powderContact] .form-fields .freeform-row.submit-row {
    grid-column: 2;
  }
  form[data-handle=contactUs] .form-fields button[type=submit],
  form[data-handle=powderContact] .form-fields button[type=submit] {
    align-self: flex-end;
  }
}
form[data-handle=contactUs] .form-fields h2,
form[data-handle=powderContact] .form-fields h2 {
  display: flex;
  align-items: center;
}
form[data-handle=contactUs] .form-fields h2 svg.email,
form[data-handle=powderContact] .form-fields h2 svg.email {
  width: 1em;
  margin-right: 0.5em;
  height: 1em;
  fill: #df3035;
}
form[data-handle=contactUs] .form-fields .freeform-row,
form[data-handle=powderContact] .form-fields .freeform-row {
  display: flex;
  flex-direction: column;
  position: relative;
  grid-column: 1/span 2;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry .freeform-instructions,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry .freeform-instructions {
  display: none;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry textarea,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry textarea {
  height: 100%;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry .freeform-column,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry .freeform-column {
  height: 100%;
}
form[data-handle=contactUs] .form-fields .freeform-row .freeform-column,
form[data-handle=powderContact] .form-fields .freeform-row .freeform-column {
  margin: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}
form[data-handle=contactUs] .form-fields .freeform-row .freeform-column label:not(.freeform-input-only-label),
form[data-handle=powderContact] .form-fields .freeform-row .freeform-column label:not(.freeform-input-only-label) {
  display: none;
}
form[data-handle=contactUs] .form-fields .freeform-row.service-centre-contact, form[data-handle=contactUs] .form-fields .freeform-row.lead-status, form[data-handle=contactUs] .form-fields .freeform-row.internal-notes, form[data-handle=contactUs] .form-fields .freeform-row.order-value,
form[data-handle=powderContact] .form-fields .freeform-row.service-centre-contact,
form[data-handle=powderContact] .form-fields .freeform-row.lead-status,
form[data-handle=powderContact] .form-fields .freeform-row.internal-notes,
form[data-handle=powderContact] .form-fields .freeform-row.order-value {
  display: none;
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label {
  font-size: 0.875em;
  grid-column: 1;
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label input,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label input {
  width: 20px;
  height: 20px;
  margin-right: calc(var(--gap) * 0.5);
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label input:checked,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label input:checked {
  background-color: #50bc08;
}
form[data-handle=contactUs] .form-fields select,
form[data-handle=contactUs] .form-fields textarea,
form[data-handle=contactUs] .form-fields input:not([type=submit]),
form[data-handle=powderContact] .form-fields select,
form[data-handle=powderContact] .form-fields textarea,
form[data-handle=powderContact] .form-fields input:not([type=submit]) {
  --border-colour: none;
  --background-colour: white;
}
form[data-handle=contactUs] .freeform-errors,
form[data-handle=powderContact] .freeform-errors {
  color: #df3035;
  font-weight: bold;
  font-size: 0.625em;
  padding: 2px var(--gap);
  position: absolute;
  top: calc(100% - 4px);
  background-color: #df3035;
  color: white;
  width: 100%;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
}
@media (max-width: 400px) {
  form[data-handle=contactUs] button[type=submit],
  form[data-handle=powderContact] button[type=submit] {
    width: 100%;
  }
}
form[data-handle=contactUs] .freeform-input[required]:not(:valid) ~ required-notice,
form[data-handle=powderContact] .freeform-input[required]:not(:valid) ~ required-notice {
  --notice-colour: #df3035;
}
form[data-handle=contactUs]:not(:valid) button[type=submit],
form[data-handle=powderContact]:not(:valid) button[type=submit] {
  pointer-events: none;
  --background-colour: transparent;
  --font-colour: #969695;
  --border-colour: #969695;
  --hover-background-colour: #969695;
  --hover-font-colour: #969695;
  --hover-border-colour: transparent;
}
form[data-handle=contactUs] .service-centre,
form[data-handle=powderContact] .service-centre {
  display: none !important;
}

@media (min-width: 601px) {
  form[data-handle=contactUs] .form-fields {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  }
  form[data-handle=contactUs] .form-fields .freeform-row:first-child {
    grid-row: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.first-name, form[data-handle=contactUs] .form-fields .freeform-row.last-name, form[data-handle=contactUs] .form-fields .freeform-row.email, form[data-handle=contactUs] .form-fields .freeform-row.company-name, form[data-handle=contactUs] .form-fields .freeform-row.contact-no, form[data-handle=contactUs] .form-fields .freeform-row.y-rqg181k-d, form[data-handle=contactUs] .form-fields .freeform-row.product {
    grid-column: 1/2;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry {
    grid-column: 2/-1;
    grid-row: 2/span 6;
  }
}

body#edit form textarea,
body#edit form select,
body#edit form input {
  border: 1px solid black;
}
body#edit form .submit-row {
  order: 20;
}
body#edit form .freeform-row {
  display: none;
}
body#edit form .first-name,
body#edit form .last-name,
body#edit form .email,
body#edit form .product,
body#edit form .detailsofenquiry,
body#edit form .service-centre-contact,
body#edit form .lead-status,
body#edit form .internal-notes,
body#edit form .order-value,
body#edit form .submit-row {
  display: block;
}
body#edit form .first-name .freeform-column select,
body#edit form .first-name .freeform-column textarea,
body#edit form .first-name .freeform-column input,
body#edit form .last-name .freeform-column select,
body#edit form .last-name .freeform-column textarea,
body#edit form .last-name .freeform-column input,
body#edit form .email .freeform-column select,
body#edit form .email .freeform-column textarea,
body#edit form .email .freeform-column input,
body#edit form .product .freeform-column select,
body#edit form .product .freeform-column textarea,
body#edit form .product .freeform-column input,
body#edit form .detailsofenquiry .freeform-column select,
body#edit form .detailsofenquiry .freeform-column textarea,
body#edit form .detailsofenquiry .freeform-column input,
body#edit form .service-centre-contact .freeform-column select,
body#edit form .service-centre-contact .freeform-column textarea,
body#edit form .service-centre-contact .freeform-column input,
body#edit form .lead-status .freeform-column select,
body#edit form .lead-status .freeform-column textarea,
body#edit form .lead-status .freeform-column input,
body#edit form .internal-notes .freeform-column select,
body#edit form .internal-notes .freeform-column textarea,
body#edit form .internal-notes .freeform-column input,
body#edit form .order-value .freeform-column select,
body#edit form .order-value .freeform-column textarea,
body#edit form .order-value .freeform-column input,
body#edit form .submit-row .freeform-column select,
body#edit form .submit-row .freeform-column textarea,
body#edit form .submit-row .freeform-column input {
  display: block !important;
  visibility: visible !important;
}
body#edit form .detailsofenquiry {
  grid-row: 1/span 6;
}
body#edit form .first-name,
body#edit form .last-name,
body#edit form .email,
body#edit form .product,
body#edit form .service-centre-contact {
  pointer-events: none;
}
body#edit form .first-name select,
body#edit form .first-name textarea,
body#edit form .first-name input,
body#edit form .last-name select,
body#edit form .last-name textarea,
body#edit form .last-name input,
body#edit form .email select,
body#edit form .email textarea,
body#edit form .email input,
body#edit form .product select,
body#edit form .product textarea,
body#edit form .product input,
body#edit form .service-centre-contact select,
body#edit form .service-centre-contact textarea,
body#edit form .service-centre-contact input {
  background-color: #eee;
}
body#edit form .detailsofenquiry {
  pointer-events: all;
}
body#edit form .detailsofenquiry textarea {
  background-color: #eee;
}
body#edit form .service-centre-contact .freeform-column label,
body#edit form .lead-status .freeform-column label,
body#edit form .internal-notes .freeform-column label,
body#edit form .order-value .freeform-column label {
  display: block !important;
  visibility: visible !important;
}

modal-wrapper {
  --wrapper-background-colour: rgba(255, 255, 255, 0.95);
  --container-background-colour: white;
  --min-width:300px;
  --max-width:1120px;
  --width:clamp(var(--min-width), 90vw, fit-content);
  --min-height:600px;
  --max-height:calc(100vh - var(--gutter2));
  --height:clamp(var(--min-height), 90vw, fit-content);
  --close-button-size: 30px;
  --nav-button-size: 40px;
  position: fixed;
  inset: 0;
  height: 100%;
  width: 100%;
  background-color: var(--wrapper-background-colour);
  z-index: 10;
  display: flex;
  place-items: center;
  place-content: center;
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1);
  overscroll-behavior: contain;
}
@supports (--v:-webkit-fill-available ) {
  modal-wrapper {
    --max-height:-webkit-fill-available;
  }
}
modal-wrapper.loading {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1) 0.3s;
}
modal-wrapper.loading modal-container {
  opacity: 0;
  transform: translateY(2vh);
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), transform 0.3s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}
modal-wrapper button.close {
  position: absolute;
  top: var(--gutter1);
  right: var(--gutter1);
  width: var(--close-button-size);
  height: var(--close-button-size);
}
modal-wrapper button.close svg {
  border: 2px solid var(--secondary, #df3035);
  border-radius: 50%;
  --fill:var(--secondary, #df3035);
}
modal-wrapper button.close svg circle, modal-wrapper button.close svg path {
  transition: 0.3s cubic-bezier(0.42, 0, 0.58, 1);
}
@media (hover: hover) {
  modal-wrapper button.close:hover svg {
    --fill:white;
    --stroke:var(--secondary, #df3035);
  }
}
modal-wrapper button.navigation {
  position: absolute;
  width: var(--nav-button-size);
  height: var(--nav-button-size);
  top: calc(50% - var(--nav-button-size) / 2);
  background-color: var(--secondary, #df3035);
  border-radius: 50%;
  border: 2px solid var(--secondary, #df3035);
  color: white;
  display: flex;
  place-content: center;
  place-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
modal-wrapper button.navigation.previous {
  left: var(--gutter1);
}
modal-wrapper button.navigation.next {
  right: var(--gutter1);
}
modal-wrapper button.navigation svg {
  width: 50%;
  height: 50%;
}
@media (hover: hover) {
  modal-wrapper button.navigation:hover {
    transform: scale(1.1);
    color: var(--secondary, #df3035);
    background-color: white;
  }
}

modal-container {
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1) 0.3s, transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s;
  width: var(--width);
  height: var(--height);
  max-height: var(--max-height);
  max-width: var(--max-width);
  border: 1px solid #dcdcdc;
  border-radius: var(--border-radius, 6px);
  background-color: var(--container-background-colour);
  position: relative;
  display: flex;
  flex-direction: column;
  margin: var(--gutter1);
  overscroll-behavior: contain;
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  modal-container {
    --width: 60vw;
    max-width: var(--max-width);
    min-width: var(--min-width);
    --height: 80vw;
    max-height: var(--max-height);
    min-height: var(--min-height);
  }
}
modal-container:empty {
  width: calc(var(--max-width) / 2);
  height: calc(var(--max-height) / 2);
}
modal-container:empty:after {
  --size: 20px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, #969695);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
  opacity: 1;
  animation-play-state: running;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
modal-container > button.close {
  position: relative;
  order: -1;
  align-self: flex-end;
  top: initial;
  right: initial;
  margin-top: calc(-1 * var(--close-button-size) / 2);
  margin-bottom: calc(-1 * var(--close-button-size) / 2);
  margin-right: calc(-1 * var(--close-button-size) / 2);
}

modal-content {
  display: block;
  position: sticky;
  overscroll-behavior: contain;
  width: inherit;
  height: inherit;
  max-height: inherit;
  max-width: inherit;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--gutter1);
}
modal-content > * {
  max-width: 100%;
}

modal-wrapper[data-type=image] .image {
  max-height: calc(var(--max-height) - var(--gutter6));
  border: none;
}
modal-wrapper[data-type=image] .image img {
  max-height: calc(100vh - var(--gutter3) - var(--gutter4));
  width: auto;
  height: auto;
  margin: auto;
}

modal-wrapper[data-type=default] modal-content > img[src*=".svg"] {
  width: 100%;
  height: auto;
}

modal-wrapper[data-type=video] {
  --wrapper-background-colour: rgba(0, 0, 0, 0.95);
}
modal-wrapper[data-type=video] modal-container {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  display: block;
  position: relative;
  width: 100%;
  background-color: black;
  background-color: white;
  padding: var(--gap);
}
@supports not (aspect-ratio: 16/9) {
  modal-wrapper[data-type=video] modal-container {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  modal-wrapper[data-type=video] modal-container > * {
    position: absolute;
  }
}
modal-wrapper[data-type=video] modal-container iframe, modal-wrapper[data-type=video] modal-container canvas {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100% !important;
  width: 100% !important;
}
modal-wrapper[data-type=video] modal-container modal-content {
  height: 100%;
  border-radius: var(--border-radius, 6px);
}

.open-in-modal {
  cursor: pointer;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
.open-in-modal:after {
  --size: 20px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, white);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
.open-in-modal.loading {
  pointer-events: none;
}
.open-in-modal.loading:after {
  opacity: 1;
  animation-play-state: running;
}

img.open-in-modal, .open-in-modal img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
}

form input[type=submit].button {
  border-color: transparent;
  border-radius: 50px;
  padding: 10px 20px;
}
form input[type=submit].button.red {
  background-color: #df3035;
  color: #FFFFFF;
}
form input[type=submit].button.red:hover {
  background-color: #bf1d22;
}
form input[type=submit].button.branded {
  background-color: var(--brand-colour);
  color: #FFFFFF;
}
form input[type=submit].button.branded:hover {
  background-color: var(--brand-colour-darker);
}

main {
  padding: 0;
  margin: 0;
}
main.full-bleed {
  height: 100vh;
  width: 100vw;
  display: flex;
}
main.blue {
  background-color: #131f6b;
}
main h1 {
  font-size: 32px;
}
main h2 {
  font-size: 24px;
}
main h3 {
  font-size: 20px;
}
main a {
  color: var(--brand-colour);
  text-decoration: underline;
}
main a:hover {
  color: var(--brand-colour-darker);
}
main h1, main h2, main h3, main h4, main p {
  margin-bottom: 6px;
}
main header {
  height: 190px;
  overflow: hidden;
  padding: 10px 20px;
  display: flex;
}
@media (min-width: 1121px) {
  main header {
    padding: 40px 50px;
  }
}
main header div#left-logos {
  display: flex;
  flex-direction: column;
}
main header div#left-logos a.logo {
  margin-top: 20px;
  display: inline;
}
main header div#left-logos a.logo img {
  max-width: 140px;
}
@media (min-width: 1121px) {
  main header div#left-logos a.logo {
    display: none;
  }
  main header div#left-logos a.logo img {
    max-width: unset;
  }
}
main header h1 {
  color: #131f6b;
}
main header div#page-heading {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (min-width: 1121px) {
  main header div#page-heading {
    margin-left: 50px;
  }
}
@media (min-width: 1121px) {
  main header div#page-heading {
    align-items: center;
    flex-grow: 1;
    flex-direction: row;
  }
}
@media (min-width: 1121px) {
  main header div#page-heading div#heading-links {
    flex-grow: 1;
    text-align: right;
  }
}
main header div#page-heading div#heading-links a.logo {
  display: block;
}
main header div#page-heading div#heading-links a.logo img {
  display: none;
}
@media (min-width: 1121px) {
  main header div#page-heading div#heading-links a.logo img {
    opacity: 0.85;
    display: inline;
  }
}
main table {
  border-collapse: collapse;
  margin: 0;
  font-size: 14px;
  width: 100%;
}
main table th, main table td {
  padding: 12px 16px !important;
  white-space: nowrap;
}
main table th:first-of-type, main table td:first-of-type {
  padding-left: 50px;
}
main table th span.highlight, main table td span.highlight {
  background-color: #fcb002;
}
main table th.right-divider, main table td.right-divider {
  border-right: 3px solid #1e1c1c;
}
main table th.right-divider + th, main table th.right-divider + td, main table td.right-divider + th, main table td.right-divider + td {
  border-left: 3px solid #1e1c1c;
}
main table th.right-divider {
  padding-right: 24px !important;
}
main table thead tr {
  background-color: var(--brand-colour);
  color: #FFFFFF;
  text-align: left;
}
main table tbody tr {
  border-bottom: thin solid #dcdcdc;
  background-color: #f4f4f4;
}
main table tbody tr:nth-of-type(even) {
  background-color: #FFFFFF;
}
main table tbody tr:last-of-type {
  border-bottom: thin solid var(--brand-colour);
}
main section {
  padding: 10px 20px;
}
@media (min-width: 1121px) {
  main section {
    padding: 40px 50px;
  }
}
main section#login {
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
@media (min-width: 1121px) {
  main section#login {
    flex-direction: row;
  }
}
main section#login > div {
  width: 50%;
}
@media (min-width: 1121px) {
  main section#login > div {
    width: unset;
    flex-basis: 50%;
    height: 280px;
    display: flex;
    justify-content: center;
    flex-direction: column;
  }
}
main section#login > div:first-of-type {
  border-bottom: thin solid #3d3f7f;
  padding-bottom: 35px;
}
@media (min-width: 1121px) {
  main section#login > div:first-of-type {
    padding-bottom: 0;
    padding-right: 70px;
    border-bottom: 0;
    border-right: thin solid #3d3f7f;
  }
}
main section#login > div:first-of-type .logo img {
  display: block;
  margin: 0 auto;
}
@media (min-width: 1121px) {
  main section#login > div:first-of-type .logo img {
    margin-right: unset;
  }
}
main section#login > div:first-of-type .logo img:last-of-type {
  margin-top: 10px;
}
main section#login > div:last-of-type {
  padding-top: 35px;
}
@media (min-width: 1121px) {
  main section#login > div:last-of-type {
    padding-top: 0;
    padding-left: 70px;
  }
}
main section#login > div:last-of-type h1 {
  color: #FFFFFF;
  font-size: 24px;
  margin-bottom: 13px;
}
main section#login > div:last-of-type form input[type=text], main section#login > div:last-of-type form input[type=password] {
  margin: 13px 0;
  width: 430px;
}
main section#login > div:last-of-type form input[type=submit] {
  margin-top: 13px;
}
main section#login-verify input[type=text] {
  width: 80%;
}
@media (min-width: 481px) {
  main section#login-verify input[type=text] {
    width: unset;
  }
}
main section#login-verify input[type=submit] {
  width: 19%;
}
@media (min-width: 481px) {
  main section#login-verify input[type=submit] {
    width: unset;
  }
}
main section#dashboard ul {
  display: flex;
  flex-wrap: wrap;
}
main section#dashboard ul li {
  flex-basis: 100%;
  margin-top: 35px;
  height: 170px;
  background-color: #f4f4f4;
  border-radius: 6px;
  align-items: center;
  justify-content: center;
  border: thin solid #e7e7e7;
}
@media (min-width: 1121px) {
  main section#dashboard ul li {
    flex-basis: calc(33.33333% - 60px);
    margin-right: 90px;
    margin-top: 0;
  }
  main section#dashboard ul li:nth-of-type(3) {
    margin-right: 0;
    flex-grow: 1;
  }
  main section#dashboard ul li:nth-child(n+4) {
    margin-top: 70px;
  }
}
main section#dashboard ul li a {
  display: flex;
  color: #131f6b;
  text-decoration: none;
  height: 100%;
  width: 100%;
  align-items: center;
  justify-content: center;
}
main section#dashboard ul li a:hover {
  background-color: #efefef;
}
main section#login-settings {
  width: 100vw;
}
@media (min-width: 1121px) {
  main section#login-settings {
    width: 50vw;
  }
}
main section#login-settings pre {
  background-color: #f4f4f4;
  white-space: pre-wrap;
}
main section#login-settings .important {
  font-weight: bold;
  color: #df3035;
}
main #table-wrapper {
  width: 100%;
  max-height: calc(100vh - 190px);
}
main #table-wrapper.loading {
  visibility: hidden;
}
main #table-wrapper table.dataTable thead th {
  position: relative;
}
main #table-wrapper table.dataTable thead th input.column-search {
  width: 100%;
  padding: 2px 4px;
  margin-top: 4px;
}
main #table-wrapper table.dataTable thead th.sorting, main #table-wrapper table.dataTable thead th.sorting_asc, main #table-wrapper table.dataTable thead th.sorting_desc, main #table-wrapper table.dataTable thead th.sorting_asc_disabled, main #table-wrapper table.dataTable thead th.sorting_desc_disabled {
  cursor: pointer;
  background-repeat: no-repeat;
  background-position-x: right;
  background-position-y: 14px;
}
main #table-wrapper table.dataTable thead th.sorting > div, main #table-wrapper table.dataTable thead th.sorting_asc > div, main #table-wrapper table.dataTable thead th.sorting_desc > div, main #table-wrapper table.dataTable thead th.sorting_asc_disabled > div, main #table-wrapper table.dataTable thead th.sorting_desc_disabled > div {
  position: relative;
  display: flex;
  flex-direction: column;
}
main #table-wrapper table.dataTable thead th.sorting {
  background-image: url("https://cdn.datatables.net/1.11.3/images/sort_both.png");
}
main #table-wrapper table.dataTable thead th.sorting_asc {
  background-image: url("https://cdn.datatables.net/1.11.3/images/sort_asc.png") !important;
}
main #table-wrapper table.dataTable thead th.sorting_desc {
  background-image: url("https://cdn.datatables.net/1.11.3/images/sort_desc.png") !important;
}
main #table-wrapper table.dataTable thead th.sorting_asc_disabled {
  background-image: url("https://cdn.datatables.net/1.11.3/images/sort_asc_disabled.png");
}
main #table-wrapper table.dataTable thead th.sorting_desc_disabled {
  background-image: url("https://cdn.datatables.net/1.11.3/images/sort_desc_disabled.png");
}
main #table-wrapper .dataTables_scrollBody table {
  margin: 0;
  table-layout: fixed;
}
main #table-wrapper .dataTables_scrollBody table thead tr th {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
main #table-wrapper .dataTables_scrollBody table tbody tr td {
  white-space: break-spaces;
}

div#typeahead-container ul.typeahead {
  position: absolute;
  z-index: 10;
}
div#typeahead-container ul.typeahead.dropdown-menu {
  box-shadow: rgba(0, 0, 0, 0.33) 4px 4px 16px;
  background-color: #FFFFFF;
}
div#typeahead-container ul.typeahead.dropdown-menu li {
  font-size: 14px;
}
div#typeahead-container ul.typeahead.dropdown-menu li a {
  display: block;
  text-decoration: none;
  color: #969695;
  padding: 2px 4px;
  border-bottom: thin solid #6a6a6a;
}
div#typeahead-container ul.typeahead.dropdown-menu li a:hover {
  color: var(--brand-colour);
}
div#typeahead-container ul.typeahead.dropdown-menu li:last-of-type a {
  border-bottom: none;
}

div#loading {
  position: fixed;
  width: 200px;
  height: 60px;
  top: calc(50% - 30px);
  left: calc(50% - 100px);
  z-index: 30;
  background-color: var(--brand-colour);
  opacity: 0.9;
  text-align: center;
  color: #FFFFFF;
}
div#loading span {
  line-height: 60px;
}

th.customer-item-ref {
  width: 20ch !important;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBvcnRhbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9ub3JtYWxpc2Vycy9fYnJvd3Nlci5zY3NzIiwiX2NvcmUvX2luZGV4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9oZWxwZXJzL19icmVhay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL3N0eWxpbmcvX2FzcGVjdC1yYXRpby5zY3NzIiwiX2VsZW1lbnRzL3ZpZGVvLnNjc3MiLCJfZWxlbWVudHMvbWFyay5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJfZWxlbWVudHMvYnV0dG9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiX2NvcmUvY3VzdG9tLXByb3BlcnRpZXMuc2NzcyIsIl9jb3JlL3R5cG9ncmFwaHkuc2NzcyIsIl92YXJpYWJsZXMvZm9udHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX3Jlc3BvbnNpdmUtZm9udHNpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsIl92YXJpYWJsZXMvdW5pdHMuc2NzcyIsImNvbXBvbmVudHMvZm9ybXMuc2NzcyIsIl9lbGVtZW50cy9mb3JtLnNjc3MiLCJfdmFyaWFibGVzL3RyYW5zaXRpb24uc2NzcyIsImNvbXBvbmVudHMvbW9kYWwuc2NzcyIsIl9lbGVtZW50cy9sb2FkZXIuc2NzcyIsInBvcnRhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL19wYWxldHRlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDMkJkOzs7Ozs7O0VBT0MsU0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0Esd0JBQUE7QUR6Qkg7O0FDNEJFO0VBQ0Msc0JBQUE7RUFDQSw4QkFBQTtBRHpCSDs7QUM0QkU7RUFFQyxtQkFBQTtBRDFCSDtBQ3lCRztFQUFVLFVBQUE7QUR0QmI7O0FDMEJFO0VBQ0MsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBRHZCSDs7QUMwQkU7RUFDQyxvQkFBQTtFQUNBLHFCQUFBO0FEdkJIOztBQzBCRTtFQUNDLGdCQUFBO0FEdkJIOztBQzJCRztFQUFVLGFBQUE7QUR2QmI7O0FDMEJFO0VBQ0MsY0FBQTtBRHZCSDs7QUMwQkU7RUFBYyxpQkFBQTtBRHRCaEI7O0FDd0JFO0VBQVUsY0FBQTtBRHBCWjs7QUNzQkU7RUFDQyxrQkFBQTtFQUNBLHdCQUFBO0FEbkJIO0FDb0JHO0VBQXVDLGFBQUE7QURqQjFDOztBQ29CRTtFQUFXLGFBQUE7QURoQmI7O0FDa0JFO0VBQVcsYUFBQTtBRGRiOztBQ3dCRTtFQUNDLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSxXQUFBO0FEckJIOztBQ3dCRTtFQUNDLGtCQUFBO0FEckJIOztBQ2dDRTtFQUNDLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7QUQ3Qkg7O0FDd0NFO0VBQ0MsWUFBQTtFQUNBLFdBQUE7RUFDQSx1QkFBQTtFQUNBLGlCQUFBO0FEckNIOztBQ3dDRTtFQUND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QUE7QXZCaXREeEI7QXVCL3NEb0I7RUFDSSx5RkFBQTtBdkJpdER4QjtBdUIvc0RvQjtFQUNJLDBGQUFBO0F2Qml0RHhCO0F1Qi9zRG9CO0VBQ0ksdUZBQUE7QXZCaXREeEI7QXVCL3NEb0I7RUFDSSx3RkFBQTtBdkJpdER4QjtBdUIzc0RZO0VBQ0ksU0FBQTtFQUNBLG1CQUFBO0F2QjZzRGhCO0F1QjFzRHdCO0VBQ0kseUJBQUE7RUFDQSw0QkFBQTtBdkI0c0Q1QjtBdUJ0c0R3QjtFQUNJLHlCQUFBO0F2QndzRDVCOztBdUIvckRJO0VBQ0ksa0JBQUE7RUFDQSxXQUFBO0F2QmtzRFI7QXVCanNEUTtFQUNJLDRDQUFBO0VBQ0EseUJDaFhJO0F4Qm1qRWhCO0F1QmxzRFk7RUFDSSxlQUFBO0F2Qm9zRGhCO0F1Qm5zRGdCO0VBQ0ksY0FBQTtFQUNBLHFCQUFBO0VBQ0EsY2ZoWmI7RWVpWmEsZ0JBQUE7RUFJQSxpQ0FBQTtBdkJrc0RwQjtBdUJyc0RvQjtFQUNJLDBCQUFBO0F2QnVzRHhCO0F1QmpzRG9CO0VBQ0ksbUJBQUE7QXZCbXNEeEI7O0F1QjVyREE7RUFDSSxlQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLHFDQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsY0NqWlk7QXhCZ2xFaEI7QXVCOXJESTtFQUNJLGlCQUFBO0F2QmdzRFI7O0F1QjVyREE7RUFDSSxzQkFBQTtBdkIrckRKIiwiZmlsZSI6InBvcnRhbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsXG5ibG9ja3F1b3RlLCBwcmUsIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLFxuaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSxcbmNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLFxuY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCwgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscyxcbmVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LFxuc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuOnJvb3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbiosICo6YWZ0ZXIsICo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbio6Zm9jdXMsICo6YWZ0ZXI6Zm9jdXMsICo6YmVmb3JlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiA2Mi41JTtcbiAgYmxvY2stc2l6ZTogMTAwJTtcbiAgaW5saW5lLXNpemU6IDEwMCU7XG59XG5cbmJvZHkge1xuICBtaW4tYmxvY2stc2l6ZTogMTAwJTtcbiAgbWluLWlubGluZS1zaXplOiAxMDAlO1xufVxuXG5odG1sLCBib2R5IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cblxucDplbXB0eSwgcHJlOmVtcHR5LCBibG9ja3F1b3RlOmVtcHR5LCBvbDplbXB0eSwgdWw6ZW1wdHksIGxpOmVtcHR5LCBsZWdlbmQ6ZW1wdHksIGZpZ2NhcHRpb246ZW1wdHksIGJvZHk6ZW1wdHksIGFydGljbGU6ZW1wdHksIG5hdjplbXB0eSwgYXNpZGU6ZW1wdHksIHNlY3Rpb246ZW1wdHksIGhlYWRlcjplbXB0eSwgZm9vdGVyOmVtcHR5LCBhZGRyZXNzOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIG1haW4sIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdmcsIHN5bWJvbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbnN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsIHN1bW1hcnk6Om1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5ib2R5IHtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgLXdlYmtpdC1tYXJnaW4tYmVmb3JlOiAwZW07XG4gIC13ZWJraXQtbWFyZ2luLWFmdGVyOiAwZW07XG4gIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiAwcHg7XG4gIC13ZWJraXQtbWFyZ2luLWVuZDogMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5ociB7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLCBxOmJlZm9yZSwgcTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk5OTtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuYnV0dG9uIHtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmJ1dHRvbiwgaW5wdXQsIG9wdGdyb3VwLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLCBpbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sIHNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5idXR0b24sXG5bdHlwZT1idXR0b25dLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9c3VibWl0XSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuYnV0dG9uOmZvY3VzLFxuW3R5cGU9YnV0dG9uXTpmb2N1cyxcblt0eXBlPXJlc2V0XTpmb2N1cyxcblt0eXBlPXN1Ym1pdF06Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1idXR0b25dOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9c3VibWl0XTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9YnV0dG9uXTotbW96LWZvY3VzcmluZyxcblt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZyxcblt0eXBlPXN1Ym1pdF06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5bdHlwZT1zZWFyY2hdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG5iLCBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuY29kZSwga2JkLCBzYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuc3ViLCBzdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbnByZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogYmxhY2s7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk5O1xufVxuXG5ib2R5LmRldm1vZGUgaW1nOm5vdChbYWx0XSkge1xuICBib3JkZXI6IDJweCByZWQgZGFzaGVkO1xufVxuXG5ib2R5IHtcbiAgd2lkdGg6IDEwMHZ3O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDMyMXB4KSB7XG4gIGJvZHkge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxufVxuXG46d2hlcmUoKikge1xuICBzY3JvbGwtbWFyZ2luLXRvcDogdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDJyZW0pO1xufVxuXG4uYXN5bmMtaGlkZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxubWFpbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmZpZ3VyZS5pbWFnZSxcbnBpY3R1cmUuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcG9zaXRpb24sIGNlbnRlciAzMyUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5maWd1cmUuaW1hZ2UgaW1nLFxucGljdHVyZS5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxudmlkZW8tY29udGFpbmVyIHtcbiAgLS1hc3BlY3QtcmF0aW86IDE2Lzk7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNi85KSB7XG4gIHZpZGVvLWNvbnRhaW5lciB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICB2aWRlby1jb250YWluZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbnZpZGVvLWNvbnRhaW5lciBpZnJhbWUsIHZpZGVvLWNvbnRhaW5lciBjYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4qOmhhcyg+IC5jb250YWluZXItaW5saW5lKSB7XG4gIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbn1cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDk1ZmY7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpIC8gMik7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cblxuZGV0YWlscyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbnN1bW1hcnkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyLCBzdW1tYXJ5OjptYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5oZWFkZXIgLmJ1dHRvbi5icm9jaHVyZSB7XG4gIC0tZm9udC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLXBhZGRpbmc6IDVweCAwcHg7XG4gIC0taWNvbi1zaXplOiAzMnB4O1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWJvcmRlci1yYWRpdXM6IDA7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkZjMwMzU7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5oZWFkZXIgLmJ1dHRvbi5icm9jaHVyZSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBmaWxsOiAjZGYzMDM1O1xufVxuXG4uYnV0dG9uIHtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLXByaW1hcnkpO1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLXBhZGRpbmc6IDhweCAyMHB4O1xuICAtLWZvbnQtc2l6ZTogMTZweDtcbiAgLS1ib3JkZXItcmFkaXVzOiA1MHB4O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiB2YXIoLS1wcmltYXJ5KTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogaW5pdGlhbDtcbiAgLS1ob3Zlci1wYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1ob3Zlci1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIC0taG92ZXItYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIC0taWNvbi1zaXplOiAxLjFlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSwgYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSk7XG59XG4uYnV0dG9uIHN2ZyB7XG4gIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gIG9yZGVyOiAzO1xuICBmaWxsOiB2YXIoLS1maWxsLCBjdXJyZW50Q29sb3IpO1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gIHRyYW5zaXRpb246IGZpbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSwgc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSk7XG59XG4uYnV0dG9uIHN2Z1tjbGFzcyo9YXJyb3ddIHtcbiAgLS1pY29uLXNpemU6IDAuOWVtO1xufVxuLmJ1dHRvbiBzdmcuYXJyb3ctbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIG9yZGVyOiAxO1xufVxuLmJ1dHRvbiA+IHNwYW4ge1xuICBvcmRlcjogMjtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuLmJ1dHRvbi5zbWFsbCB7XG4gIC0tcGFkZGluZzogNnB4IDE4cHg7XG4gIC0tZm9udC1zaXplOiAxMnB4O1xufVxuLmJ1dHRvbi5zbWFsbCBzdmcge1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbi5idXR0b24uc21hbGwgc3ZnLmFycm93LWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG4uYnV0dG9uLmxhcmdlIHtcbiAgLS1wYWRkaW5nOiAxMnB4IDI0cHg7XG4gIC0tZm9udC1zaXplOiAyNHB4O1xufVxuLmJ1dHRvbi5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0tYm9yZGVyLWNvbG91cjogIzEzMWY2YjtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2YjtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uYmx1ZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogIzEzMWY2Yjtcbn1cbi5idXR0b24uYmx1ZS5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0tYm9yZGVyLWNvbG91cjogIzEzMWY2YjtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2YjtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24ucmVkIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI2RmMzAzNTtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGYzMDM1O1xufVxuLmJ1dHRvbi5yZWQub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjZGYzMDM1O1xuICAtLWJvcmRlci1jb2xvdXI6ICNkZjMwMzU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICNkZjMwMzU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG4uYnV0dG9uLmdyZWVuIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzc2YmIyODtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjNzZiYjI4O1xufVxuLmJ1dHRvbi5ncmVlbi5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICM3NmJiMjg7XG4gIC0tYm9yZGVyLWNvbG91cjogIzc2YmIyODtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogIzc2YmIyODtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24ud2hpdGUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWZvbnQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYnV0dG9uLndoaXRlLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI2RjZGNkYztcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGNkY2RjO1xufVxuLmJ1dHRvbi5kaXNhYmxlZC5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICNkY2RjZGM7XG4gIC0tYm9yZGVyLWNvbG91cjogI2RjZGNkYztcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI2RjZGNkYztcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI2RjZGNkYztcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1ob3Zlci1mb250LWNvbG91cik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taG92ZXItYm9yZGVyLWNvbG91cik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0taG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgcGFkZGluZzogdmFyKC0taG92ZXItcGFkZGluZyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ob3Zlci1mb250LXNpemUpO1xuICB9XG59XG4uYnV0dG9uLnJlZCBzdmcudGljaywgLmJ1dHRvbi5yZWQgc3ZnLmRvd25sb2FkIHtcbiAgLS1zdHJva2U6ICNkZjMwMzU7XG59XG4uYnV0dG9uLmJsdWUgc3ZnLnRpY2ssIC5idXR0b24uYmx1ZSBzdmcuZG93bmxvYWQge1xuICAtLXN0cm9rZTogIzEzMWY2Yjtcbn1cbi5idXR0b24ub3V0bGluZSBzdmcudGljaywgLmJ1dHRvbi5vdXRsaW5lIHN2Zy5kb3dubG9hZCB7XG4gIC0tc3Ryb2tlOiAjRkZGRkZGO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmJ1dHRvbjpob3Zlci5yZWQgc3ZnLnRpY2ssXG4gIC5idXR0b246aG92ZXIucmVkIHN2Zy5kb3dubG9hZCB7XG4gICAgLS1zdHJva2U6ICNGRkZGRkY7XG4gIH1cbiAgLmJ1dHRvbjpob3Zlci5yZWQub3V0bGluZSBzdmcudGljaywgLmJ1dHRvbjpob3Zlci5yZWQub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjZGYzMDM1O1xuICB9XG4gIC5idXR0b246aG92ZXIuYmx1ZSBzdmcudGljayxcbiAgLmJ1dHRvbjpob3Zlci5ibHVlIHN2Zy5kb3dubG9hZCB7XG4gICAgLS1zdHJva2U6ICNGRkZGRkY7XG4gIH1cbiAgLmJ1dHRvbjpob3Zlci5ibHVlLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIuYmx1ZS5vdXRsaW5lIHN2Zy5kb3dubG9hZCB7XG4gICAgLS1zdHJva2U6ICMxMzFmNmI7XG4gIH1cbiAgLmJ1dHRvbjpob3Zlci53aGl0ZSBzdmcudGljaywgLmJ1dHRvbjpob3Zlci53aGl0ZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjMTMxZjZiO1xuICB9XG59XG5cbmJ1dHRvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zdGlja3kge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDBweDtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4jaG9sZGluZy1wYWdlIGhlYWRlciBzdmcge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gICNob2xkaW5nLXBhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxufVxuXG5ib2R5I2Vycm9yLTQwNCBoZWFkZXIgaDIge1xuICBtYXgtd2lkdGg6IDkwMHB4O1xufVxuYm9keSNlcnJvci00MDQgc2VhcmNoLWJhciB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xufVxuYm9keSNlcnJvci00MDQgc2VhcmNoLWJhciBpbnB1dFt0eXBlPXNlYXJjaF0ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMTMxZjZiO1xufVxuXG5ib2R5ID4gLmlkbGUtZGlhbG9nIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgYm94LXNoYWRvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIGJvdHRvbTogdmFyKC0tZ3V0dGVyMS0pO1xuICB6LWluZGV4OiAyO1xuICAvKiBTdGFydCBoaWRkZW4gYmVsb3cgdmlld3BvcnQgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAvKiBBbmltYXRpb24gd2l0aCBkZWxheWVkIHN0YXJ0ICovXG4gIGFuaW1hdGlvbjogc2xpZGUtaW4taWRsZS1kaWFsb2cgYm90aDtcbiAgYW5pbWF0aW9uLXRpbWVsaW5lOiBzY3JvbGwoKTtcbiAgYW5pbWF0aW9uLXJhbmdlOiBjYWxjKHZhcigtLW5hdmlnYXRpb24taGVpZ2h0LCAwcHgpKSBjYWxjKHZhcigtLW5hdmlnYXRpb24taGVpZ2h0LCAwcHgpICsgY2xhbXAoMnJlbSwgNXZoLCAzcmVtKSAqIDIpO1xufVxuYm9keSA+IC5pZGxlLWRpYWxvZyAuYnV0dG9uIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbkBrZXlmcmFtZXMgc2xpZGUtaW4taWRsZS1kaWFsb2cge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDByZW0pO1xuICB9XG59XG4jY29udGFjdC1tb2RhbCB7XG4gIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6ICNmNGY0ZjQ7XG59XG4jY29udGFjdC1tb2RhbCBmb3JtIC5zdWJtaXQtcm93IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG59XG5cbmJvZHkgPiAuYmFjay10by10b3Age1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogdmFyKC0tZ3V0dGVyMSk7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFjay10by10b3AtYmFja2dyb3VuZCwgIzI5MmI2OCk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBib3R0b20gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbn1cbmJvZHkgPiAuYmFjay10by10b3Agc3ZnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogd2hpdGU7XG4gIHdpZHRoOiA1MCU7XG4gIHRvcDogLTQlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgYm9keSA+IC5iYWNrLXRvLXRvcDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWxpZ2h0LCAjZGYzMDM1KTtcbiAgfVxufVxuXG5mb290ZXIjZm9vdGVyLmluLXZpZXcgfiAuYmFjay10by10b3Age1xuICBib3R0b206IDEyMHB4O1xufVxuXG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gLmJhY2stdG8tdG9wIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuOnJvb3Qge1xuICAtLXByaW1hcnk6ICMxMzFmNmI7XG4gIC0tc2Vjb25kYXJ5OiAjZGYzMDM1O1xuICAtLWJyZWFrcG9pbnQtbWluOiAzMjBweDtcbiAgLS1icmVha3BvaW50LXNtYWxsOiA0ODBweDtcbiAgLS1icmVha3BvaW50LXNtYWxsLW1lZGl1bTogOTgwcHg7XG4gIC0tYnJlYWtwb2ludC1tZWRpdW06IDExMjBweDtcbiAgLS1icmVha3BvaW50LWxhcmdlOiAxNDAwcHg7XG4gIC0tYnJlYWtwb2ludC1tYXg6IDE2ODBweDtcbiAgLS1mb250LWNvbG91cjogIzZhNmE2YTtcbiAgLS1oZWFkaW5nLWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIC0tc3ViLWhlYWRpbmctY29sb3VyOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIC0tdHJhbnNpdGlvbi1lYXNlOiBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAtLWJyZWFkY3J1bWItaGVpZ2h0OiA5MHB4O1xuICAtLWFuY2hvcnMtaGVpZ2h0OiA2MHB4O1xuICAtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0OiAtMTVweDtcbiAgLS1tYWluLW1heC13aWR0aDogOTAwcHg7XG4gIC0tbmF2aWdhdGlvbi1oZWlnaHQ6IDE0M3B4O1xuICAtLXNpZGViYXItd2lkdGg6IGNsYW1wKDMwMHB4LCAzMHZ3LCA1MDBweCk7XG4gIC0tZ2FwOiAxNnB4O1xuICAtLWd1dHRlcjogM3Z3O1xuICAtLXNwYWNlcjogNHZoO1xuICAtLWd1dHRlcjA6IGNsYW1wKDhweCwgdmFyKC0tZ3V0dGVyKSAqIDAuNSwgMTJweCk7XG4gIC0tZ3V0dGVyMC06IGNhbGMoLTEgKiBjbGFtcCg4cHgsIHZhcigtLWd1dHRlcikgKiAwLjUsIDEycHgpKTtcbiAgLS1zcGFjZXIwOiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpLCAzMnB4KTtcbiAgLS1zcGFjZXIwLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlciksIDMycHgpKTtcbiAgLS1ndXR0ZXIxOiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpLCAzMnB4KTtcbiAgLS1ndXR0ZXIxLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlciksIDMycHgpKTtcbiAgLS1zcGFjZXIxOiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMywgNjRweCk7XG4gIC0tc3BhY2VyMS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMywgNjRweCkpO1xuICAtLWd1dHRlcjI6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAyLCA0OHB4KTtcbiAgLS1ndXR0ZXIyLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAyLCA0OHB4KSk7XG4gIC0tc3BhY2VyMjogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDYsIDExMnB4KTtcbiAgLS1zcGFjZXIyLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA2LCAxMTJweCkpO1xuICAtLWd1dHRlcjM6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAzLCA2NHB4KTtcbiAgLS1ndXR0ZXIzLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAzLCA2NHB4KSk7XG4gIC0tc3BhY2VyMzogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDksIDE2MHB4KTtcbiAgLS1zcGFjZXIzLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA5LCAxNjBweCkpO1xuICAtLWd1dHRlcjQ6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA0LCA4MHB4KTtcbiAgLS1ndXR0ZXI0LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA0LCA4MHB4KSk7XG4gIC0tc3BhY2VyNDogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDEyLCAyMDhweCk7XG4gIC0tc3BhY2VyNC06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTIsIDIwOHB4KSk7XG4gIC0tZ3V0dGVyNTogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDUsIDk2cHgpO1xuICAtLWd1dHRlcjUtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDUsIDk2cHgpKTtcbiAgLS1zcGFjZXI1OiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTUsIDI1NnB4KTtcbiAgLS1zcGFjZXI1LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxNSwgMjU2cHgpKTtcbiAgLS1ndXR0ZXI2OiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNiwgMTEycHgpO1xuICAtLWd1dHRlcjYtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDYsIDExMnB4KSk7XG4gIC0tc3BhY2VyNjogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE4LCAzMDRweCk7XG4gIC0tc3BhY2VyNi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTgsIDMwNHB4KSk7XG4gIC0tY29tcHV0ZWQtZ3V0dGVyOiBjYWxjKCgoMTAwdncgLSB2YXIoLS1icmVha3BvaW50LW1heCkpIC8gMikpO1xufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICA6cm9vdCB7XG4gICAgLS1zaWRlYmFyLXdpZHRoOiA1MDBweDtcbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gICAgOnJvb3Qge1xuICAgICAgLS1zaWRlYmFyLXdpZHRoOiAzMDBweDtcbiAgICB9XG4gIH1cbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgOnJvb3Qge1xuICAgIC0tZ3V0dGVyMDogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDAuNSkgKyA4cHgpO1xuICAgIC0tZ3V0dGVyMC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMC41KSArIDhweCkpO1xuICAgIC0tc3BhY2VyMDogY2FsYygodmFyKC0tc3BhY2VyKSAqIDIpICsgMTZweCk7XG4gICAgLS1zcGFjZXIwLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAyKSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjE6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAxKSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyMS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMSkgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXIxOiBjYWxjKCh2YXIoLS1zcGFjZXIpICogNCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjEtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDQpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyMjogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDIpICsgMTZweCk7XG4gICAgLS1ndXR0ZXIyLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiAyKSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjI6IGNhbGMoKHZhcigtLXNwYWNlcikgKiA4KSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogOCkgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXIzOiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMykgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjMtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDMpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyMzogY2FsYygodmFyKC0tc3BhY2VyKSAqIDEyKSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMy06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMTIpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyNDogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDQpICsgMTZweCk7XG4gICAgLS1ndXR0ZXI0LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiA0KSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjQ6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAxNikgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjQtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDE2KSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjU6IGNhbGMoKHZhcigtLWd1dHRlcikgKiA1KSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyNS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNSkgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXI1OiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjApICsgMTZweCk7XG4gICAgLS1zcGFjZXI1LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAyMCkgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXI2OiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNikgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjYtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDYpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyNjogY2FsYygodmFyKC0tc3BhY2VyKSAqIDI0KSArIDE2cHgpO1xuICAgIC0tc3BhY2VyNi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjQpICsgMTZweCkpO1xuICB9XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJsYXRvXCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJsYXRvXCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tc2VtaWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tc2VtaWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJsYXRvXCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbmJvZHkge1xuICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsICM2YTZhNmEpO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cbkBzdXBwb3J0cyAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNHJlbSwgMS41dncsIDEuNnJlbSk7XG4gIH1cbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgYm9keSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAgIGJvZHkge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgfVxuICB9XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAzLjgxMjVlbTtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjVlbSwgNXZ3LCAzLjgxMjVlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyLCB2YXIoLS1mb250LWNvbG91cikpO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cbmgxLnN1Yi1oZWFkaW5nLFxuaDIuc3ViLWhlYWRpbmcsXG5oMy5zdWItaGVhZGluZyxcbmg0LnN1Yi1oZWFkaW5nLFxuaDUuc3ViLWhlYWRpbmcsXG5oNi5zdWItaGVhZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpO1xuICBmb250LWZhbWlseTogbGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuaDEgc3BhbixcbmgxIHN0cm9uZyxcbmgxIHAsXG5oMiBzcGFuLFxuaDIgc3Ryb25nLFxuaDIgcCxcbmgzIHNwYW4sXG5oMyBzdHJvbmcsXG5oMyBwLFxuaDQgc3Bhbixcbmg0IHN0cm9uZyxcbmg0IHAsXG5oNSBzcGFuLFxuaDUgc3Ryb25nLFxuaDUgcCxcbmg2IHNwYW4sXG5oNiBzdHJvbmcsXG5oNiBwIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6IFwi4oCcXCIgXCLigJ1cIiBcIuKAmFwiIFwi4oCZXCI7XG59XG5xOjpiZWZvcmUsXG5ibG9ja3F1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBvcGVuLXF1b3RlO1xufVxucTo6YWZ0ZXIsXG5ibG9ja3F1b3RlOjphZnRlciB7XG4gIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xufVxuXG5hIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xufVxuYS5leHRlcm5hbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuYS5leHRlcm5hbCBzdmcuZXh0ZXJuYWwtbGluayB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgd2lkdGg6IDAuOGVtO1xuICBoZWlnaHQ6IDAuOGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG59XG5cbmxpIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBsaW5lLWhlaWdodDogMS44O1xufVxuXG5ociB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhyLWNvbG91ciwgI2RjZGNkYyk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cblxuLm5vdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMTNjO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbi5ub3RlIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICM5NzgwMDI7XG59XG4ubm90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJQbGVhc2UgTm90ZVwiO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjOTc4MDAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cblxuc2lkZS1iYXIgZm9ybSAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwYmMwODtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWFyZ2luOiAwIC0xNXB4IHZhcigtLWdhcCk7XG59XG5zaWRlLWJhciBmb3JtIC5zdWJtaXQtcm93IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cblxuZm9ybSBzZWxlY3Qge1xuICAtLWZvbnQtY29sb3VyOiAjNmE2YTZhO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIHZhcigtLWdhcCkpIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNy40JyBoZWlnaHQ9JzEwLjEnJTNFJTNDcGF0aCBkPSdNMTYuNy43bC04IDgtOC04JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzFFMUMxQycgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnLyUzRSUzQy9zdmclM0VcIik7XG59XG5mb3JtIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmZvcm0gc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzEzMWY2Yjtcbn1cbmZvcm0gc2VsZWN0OmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmZvcm0gc2VsZWN0LmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKSB7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgLS1ib3JkZXItY29sb3VyOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOjpwbGFjZWhvbGRlciB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSkuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5mb3JtIHRleHRhcmVhIHtcbiAgLS1mb250LWNvbG91cjogIzZhNmE2YTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbmZvcm0gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5mb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzEzMWY2Yjtcbn1cbmZvcm0gdGV4dGFyZWE6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZm9ybSB0ZXh0YXJlYS5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbmZvcm0gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbmZvcm0gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbmZvcm0gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbmZvcm0gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbmZvcm0gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbmZvcm0gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1mb250LWNvbG91ciwgaW5oZXJpdCk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsIHdoaXRlKSBpbnNldDtcbn1cbmZvcm1bZGF0YS1mcmVlZm9ybV0gbGFiZWwgKyBkaXYge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmZvcm1bZGF0YS1mcmVlZm9ybV0gLmZyZWVmb3JtLXJvdyArIC5mcmVlZm9ybS1yb3cgPiBkaXYge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuZm9ybVtkYXRhLWZyZWVmb3JtXSAuZnJlZWZvcm0tY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuc2lkZS1iYXIgZm9ybSBsYWJlbCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbnNpZGUtYmFyIGZvcm0gbGFiZWwgfiBkaXYge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmZvcm0jbG9naW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuZm9ybSNsb2dpbiA+IGxhYmVsIH4gbGFiZWwge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuZm9ybSNsb2dpbiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZm9ybSNsb2dpbiBkaXYgYTpob3ZlciB7XG4gICAgY29sb3I6ICNkZjMwMzU7XG4gIH1cbn1cbmZvcm0jbG9naW4gYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cblxuZm9ybSNyZXNldC1wYXNzd29yZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5mb3JtI3Jlc2V0LXBhc3N3b3JkIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5cbnJlcXVpcmVkLW5vdGljZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWNlLWNvbG91ciwgIzUwYmMwOCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG59XG5yZXF1aXJlZC1ub3RpY2Ugc3BhbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiBjYWxjKDEwMCUgKyBjYWxjKHZhcigtLWdhcCkgKiAwLjUpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNHB4IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTBweCwgLTUwJSk7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgcmVxdWlyZWQtbm90aWNlOmhvdmVyIHNwYW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyxcbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3MsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MDFweCkge1xuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzQwcHgsIDFmcikpO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdzpmaXJzdC1jaGlsZCxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdzpmaXJzdC1jaGlsZCB7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmZpcnN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sYXN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5lbWFpbCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbXBhbnktbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbnRhY3Qtbm8sIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy55LXJxZzE4MWstZCxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5maXJzdC1uYW1lLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lmxhc3QtbmFtZSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5lbWFpbCxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb21wYW55LW5hbWUsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29udGFjdC1ubyxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy55LXJxZzE4MWstZCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnksXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDIvc3BhbiA1O1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5zdWJtaXQtcm93LFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnN1Ym1pdC1yb3cge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgYnV0dG9uW3R5cGU9c3VibWl0XSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIH1cbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgaDIsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBoMiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGgyIHN2Zy5lbWFpbCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGgyIHN2Zy5lbWFpbCB7XG4gIHdpZHRoOiAxZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG4gIGhlaWdodDogMWVtO1xuICBmaWxsOiAjZGYzMDM1O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAyO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWluc3RydWN0aW9ucyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0taW5zdHJ1Y3Rpb25zIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IHRleHRhcmVhLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbixcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4sXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4ge1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsOm5vdCguZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCksXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4gbGFiZWw6bm90KC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc2VydmljZS1jZW50cmUtY29udGFjdCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmxlYWQtc3RhdHVzLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuaW50ZXJuYWwtbm90ZXMsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5vcmRlci12YWx1ZSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc2VydmljZS1jZW50cmUtY29udGFjdCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGVhZC1zdGF0dXMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmludGVybmFsLW5vdGVzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5vcmRlci12YWx1ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBncmlkLWNvbHVtbjogMTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCBpbnB1dCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQ6Y2hlY2tlZCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIHNlbGVjdCxcbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgdGV4dGFyZWEsXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIHNlbGVjdCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIHRleHRhcmVhLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pIHtcbiAgLS1ib3JkZXItY29sb3VyOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZXJyb3JzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZXJyb3JzIHtcbiAgY29sb3I6ICNkZjMwMzU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuNjI1ZW07XG4gIHBhZGRpbmc6IDJweCB2YXIoLS1nYXApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gNHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSBidXR0b25bdHlwZT1zdWJtaXRdLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSB7XG4gIC0tbm90aWNlLWNvbG91cjogI2RmMzAzNTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXTpub3QoOnZhbGlkKSBidXR0b25bdHlwZT1zdWJtaXRdLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XTpub3QoOnZhbGlkKSBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjOTY5Njk1O1xuICAtLWJvcmRlci1jb2xvdXI6ICM5Njk2OTU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICM5Njk2OTU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICM5Njk2OTU7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLnNlcnZpY2UtY2VudHJlLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuc2VydmljZS1jZW50cmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDFweCkge1xuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93OmZpcnN0LWNoaWxkIHtcbiAgICBncmlkLXJvdzogMTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZmlyc3QtbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lmxhc3QtbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmVtYWlsLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29tcGFueS1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29udGFjdC1ubywgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnktcnFnMTgxay1kLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cucHJvZHVjdCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgZ3JpZC1jb2x1bW46IDIvLTE7XG4gICAgZ3JpZC1yb3c6IDIvc3BhbiA2O1xuICB9XG59XG5cbmJvZHkjZWRpdCBmb3JtIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbn1cbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IHtcbiAgb3JkZXI6IDIwO1xufVxuYm9keSNlZGl0IGZvcm0gLmZyZWVmb3JtLXJvdyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUsXG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5vcmRlci12YWx1ZSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgZ3JpZC1yb3c6IDEvc3BhbiA2O1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3Qgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkgdGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsLFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzIC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxubW9kYWwtd3JhcHBlciB7XG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLW1pbi13aWR0aDozMDBweDtcbiAgLS1tYXgtd2lkdGg6MTEyMHB4O1xuICAtLXdpZHRoOmNsYW1wKHZhcigtLW1pbi13aWR0aCksIDkwdncsIGZpdC1jb250ZW50KTtcbiAgLS1taW4taGVpZ2h0OjYwMHB4O1xuICAtLW1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIHZhcigtLWd1dHRlcjIpKTtcbiAgLS1oZWlnaHQ6Y2xhbXAodmFyKC0tbWluLWhlaWdodCksIDkwdncsIGZpdC1jb250ZW50KTtcbiAgLS1jbG9zZS1idXR0b24tc2l6ZTogMzBweDtcbiAgLS1uYXYtYnV0dG9uLXNpemU6IDQwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuQHN1cHBvcnRzICgtLXY6LXdlYmtpdC1maWxsLWF2YWlsYWJsZSApIHtcbiAgbW9kYWwtd3JhcHBlciB7XG4gICAgLS1tYXgtaGVpZ2h0Oi13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG4gIH1cbn1cbm1vZGFsLXdyYXBwZXIubG9hZGluZyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpIDAuM3M7XG59XG5tb2RhbC13cmFwcGVyLmxvYWRpbmcgbW9kYWwtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJ2aCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgd2lkdGg6IHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZSBzdmcge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIC0tZmlsbDp2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Ugc3ZnIGNpcmNsZSwgbW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Ugc3ZnIHBhdGgge1xuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlOmhvdmVyIHN2ZyB7XG4gICAgLS1maWxsOndoaXRlO1xuICAgIC0tc3Ryb2tlOnZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIH1cbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1uYXYtYnV0dG9uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLW5hdi1idXR0b24tc2l6ZSk7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1uYXYtYnV0dG9uLXNpemUpIC8gMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uLnByZXZpb3VzIHtcbiAgbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQge1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHN2ZyB7XG4gIHdpZHRoOiA1MCU7XG4gIGhlaWdodDogNTAlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbm1vZGFsLWNvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSAwLjNzLCB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIDAuM3M7XG4gIHdpZHRoOiB2YXIoLS13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0taGVpZ2h0KTtcbiAgbWF4LWhlaWdodDogdmFyKC0tbWF4LWhlaWdodCk7XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IHZhcigtLWd1dHRlcjEpO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBtb2RhbC1jb250YWluZXIge1xuICAgIC0td2lkdGg6IDYwdnc7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIG1pbi13aWR0aDogdmFyKC0tbWluLXdpZHRoKTtcbiAgICAtLWhlaWdodDogODB2dztcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1taW4taGVpZ2h0KTtcbiAgfVxufVxubW9kYWwtY29udGFpbmVyOmVtcHR5IHtcbiAgd2lkdGg6IGNhbGModmFyKC0tbWF4LXdpZHRoKSAvIDIpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbWF4LWhlaWdodCkgLyAyKTtcbn1cbm1vZGFsLWNvbnRhaW5lcjplbXB0eTphZnRlciB7XG4gIC0tc2l6ZTogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgIzk2OTY5NSk7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIG9wYWNpdHk6IDE7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xufVxuQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbn1cbm1vZGFsLWNvbnRhaW5lciA+IGJ1dHRvbi5jbG9zZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3JkZXI6IC0xO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgdG9wOiBpbml0aWFsO1xuICByaWdodDogaW5pdGlhbDtcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpIC8gMik7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xufVxuXG5tb2RhbC1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbm1vZGFsLWNvbnRlbnQgPiAqIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1pbWFnZV0gLmltYWdlIHtcbiAgbWF4LWhlaWdodDogY2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAtIHZhcigtLWd1dHRlcjYpKTtcbiAgYm9yZGVyOiBub25lO1xufVxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9aW1hZ2VdIC5pbWFnZSBpbWcge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tZ3V0dGVyMykgLSB2YXIoLS1ndXR0ZXI0KSk7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogYXV0bztcbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9ZGVmYXVsdF0gbW9kYWwtY29udGVudCA+IGltZ1tzcmMqPVwiLnN2Z1wiXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSB7XG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNi85KSB7XG4gIG1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgbW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciBpZnJhbWUsIG1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgbW9kYWwtY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cblxuLm9wZW4taW4tbW9kYWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG4ub3Blbi1pbi1tb2RhbDphZnRlciB7XG4gIC0tc2l6ZTogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgd2hpdGUpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbn1cbi5vcGVuLWluLW1vZGFsLmxvYWRpbmcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5vcGVuLWluLW1vZGFsLmxvYWRpbmc6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbn1cblxuaW1nLm9wZW4taW4tbW9kYWwsIC5vcGVuLWluLW1vZGFsIGltZyB7XG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xuICAtbW96LXVzZXItZHJhZzogbm9uZTtcbiAgLW8tdXNlci1kcmFnOiBub25lO1xuICB1c2VyLWRyYWc6IG5vbmU7XG59XG5cbmZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbiB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbn1cbmZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYzMDM1O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbmZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5yZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmYxZDIyO1xufVxuZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmJyYW5kZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvdXIpO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbmZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5icmFuZGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnJhbmQtY29sb3VyLWRhcmtlcik7XG59XG5cbm1haW4ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5tYWluLmZ1bGwtYmxlZWQge1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwdnc7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5tYWluLmJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xufVxubWFpbiBoMSB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbn1cbm1haW4gaDIge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5tYWluIGgzIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxubWFpbiBhIHtcbiAgY29sb3I6IHZhcigtLWJyYW5kLWNvbG91cik7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxubWFpbiBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWJyYW5kLWNvbG91ci1kYXJrZXIpO1xufVxubWFpbiBoMSwgbWFpbiBoMiwgbWFpbiBoMywgbWFpbiBoNCwgbWFpbiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxubWFpbiBoZWFkZXIge1xuICBoZWlnaHQ6IDE5MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMXB4KSB7XG4gIG1haW4gaGVhZGVyIHtcbiAgICBwYWRkaW5nOiA0MHB4IDUwcHg7XG4gIH1cbn1cbm1haW4gaGVhZGVyIGRpdiNsZWZ0LWxvZ29zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbm1haW4gaGVhZGVyIGRpdiNsZWZ0LWxvZ29zIGEubG9nbyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbm1haW4gaGVhZGVyIGRpdiNsZWZ0LWxvZ29zIGEubG9nbyBpbWcge1xuICBtYXgtd2lkdGg6IDE0MHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIGhlYWRlciBkaXYjbGVmdC1sb2dvcyBhLmxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgbWFpbiBoZWFkZXIgZGl2I2xlZnQtbG9nb3MgYS5sb2dvIGltZyB7XG4gICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgfVxufVxubWFpbiBoZWFkZXIgaDEge1xuICBjb2xvcjogIzEzMWY2Yjtcbn1cbm1haW4gaGVhZGVyIGRpdiNwYWdlLWhlYWRpbmcge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMXB4KSB7XG4gIG1haW4gaGVhZGVyIGRpdiNwYWdlLWhlYWRpbmcge1xuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMXB4KSB7XG4gIG1haW4gaGVhZGVyIGRpdiNwYWdlLWhlYWRpbmcge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIxcHgpIHtcbiAgbWFpbiBoZWFkZXIgZGl2I3BhZ2UtaGVhZGluZyBkaXYjaGVhZGluZy1saW5rcyB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5tYWluIGhlYWRlciBkaXYjcGFnZS1oZWFkaW5nIGRpdiNoZWFkaW5nLWxpbmtzIGEubG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxubWFpbiBoZWFkZXIgZGl2I3BhZ2UtaGVhZGluZyBkaXYjaGVhZGluZy1saW5rcyBhLmxvZ28gaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIxcHgpIHtcbiAgbWFpbiBoZWFkZXIgZGl2I3BhZ2UtaGVhZGluZyBkaXYjaGVhZGluZy1saW5rcyBhLmxvZ28gaW1nIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufVxubWFpbiB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbm1haW4gdGFibGUgdGgsIG1haW4gdGFibGUgdGQge1xuICBwYWRkaW5nOiAxMnB4IDE2cHggIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbm1haW4gdGFibGUgdGg6Zmlyc3Qtb2YtdHlwZSwgbWFpbiB0YWJsZSB0ZDpmaXJzdC1vZi10eXBlIHtcbiAgcGFkZGluZy1sZWZ0OiA1MHB4O1xufVxubWFpbiB0YWJsZSB0aCBzcGFuLmhpZ2hsaWdodCwgbWFpbiB0YWJsZSB0ZCBzcGFuLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2IwMDI7XG59XG5tYWluIHRhYmxlIHRoLnJpZ2h0LWRpdmlkZXIsIG1haW4gdGFibGUgdGQucmlnaHQtZGl2aWRlciB7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkICMxZTFjMWM7XG59XG5tYWluIHRhYmxlIHRoLnJpZ2h0LWRpdmlkZXIgKyB0aCwgbWFpbiB0YWJsZSB0aC5yaWdodC1kaXZpZGVyICsgdGQsIG1haW4gdGFibGUgdGQucmlnaHQtZGl2aWRlciArIHRoLCBtYWluIHRhYmxlIHRkLnJpZ2h0LWRpdmlkZXIgKyB0ZCB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzFlMWMxYztcbn1cbm1haW4gdGFibGUgdGgucmlnaHQtZGl2aWRlciB7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcbn1cbm1haW4gdGFibGUgdGhlYWQgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvdXIpO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbm1haW4gdGFibGUgdGJvZHkgdHIge1xuICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkICNkY2RjZGM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG5tYWluIHRhYmxlIHRib2R5IHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbm1haW4gdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCB2YXIoLS1icmFuZC1jb2xvdXIpO1xufVxubWFpbiBzZWN0aW9uIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIHNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDQwcHggNTBweDtcbiAgfVxufVxubWFpbiBzZWN0aW9uI2xvZ2luIHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIxcHgpIHtcbiAgbWFpbiBzZWN0aW9uI2xvZ2luIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG59XG5tYWluIHNlY3Rpb24jbG9naW4gPiBkaXYge1xuICB3aWR0aDogNTAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIHNlY3Rpb24jbG9naW4gPiBkaXYge1xuICAgIHdpZHRoOiB1bnNldDtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgaGVpZ2h0OiAyODBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cbm1haW4gc2VjdGlvbiNsb2dpbiA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCAjM2QzZjdmO1xuICBwYWRkaW5nLWJvdHRvbTogMzVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIxcHgpIHtcbiAgbWFpbiBzZWN0aW9uI2xvZ2luID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmlnaHQ6IHRoaW4gc29saWQgIzNkM2Y3ZjtcbiAgfVxufVxubWFpbiBzZWN0aW9uI2xvZ2luID4gZGl2OmZpcnN0LW9mLXR5cGUgLmxvZ28gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIHNlY3Rpb24jbG9naW4gPiBkaXY6Zmlyc3Qtb2YtdHlwZSAubG9nbyBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogdW5zZXQ7XG4gIH1cbn1cbm1haW4gc2VjdGlvbiNsb2dpbiA+IGRpdjpmaXJzdC1vZi10eXBlIC5sb2dvIGltZzpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxubWFpbiBzZWN0aW9uI2xvZ2luID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctdG9wOiAzNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIHNlY3Rpb24jbG9naW4gPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDcwcHg7XG4gIH1cbn1cbm1haW4gc2VjdGlvbiNsb2dpbiA+IGRpdjpsYXN0LW9mLXR5cGUgaDEge1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxM3B4O1xufVxubWFpbiBzZWN0aW9uI2xvZ2luID4gZGl2Omxhc3Qtb2YtdHlwZSBmb3JtIGlucHV0W3R5cGU9dGV4dF0sIG1haW4gc2VjdGlvbiNsb2dpbiA+IGRpdjpsYXN0LW9mLXR5cGUgZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7XG4gIG1hcmdpbjogMTNweCAwO1xuICB3aWR0aDogNDMwcHg7XG59XG5tYWluIHNlY3Rpb24jbG9naW4gPiBkaXY6bGFzdC1vZi10eXBlIGZvcm0gaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgbWFyZ2luLXRvcDogMTNweDtcbn1cbm1haW4gc2VjdGlvbiNsb2dpbi12ZXJpZnkgaW5wdXRbdHlwZT10ZXh0XSB7XG4gIHdpZHRoOiA4MCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgbWFpbiBzZWN0aW9uI2xvZ2luLXZlcmlmeSBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICB3aWR0aDogdW5zZXQ7XG4gIH1cbn1cbm1haW4gc2VjdGlvbiNsb2dpbi12ZXJpZnkgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgd2lkdGg6IDE5JTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkge1xuICBtYWluIHNlY3Rpb24jbG9naW4tdmVyaWZ5IGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgd2lkdGg6IHVuc2V0O1xuICB9XG59XG5tYWluIHNlY3Rpb24jZGFzaGJvYXJkIHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxubWFpbiBzZWN0aW9uI2Rhc2hib2FyZCB1bCBsaSB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIGhlaWdodDogMTcwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogdGhpbiBzb2xpZCAjZTdlN2U3O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIHNlY3Rpb24jZGFzaGJvYXJkIHVsIGxpIHtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzMzMzJSAtIDYwcHgpO1xuICAgIG1hcmdpbi1yaWdodDogOTBweDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIG1haW4gc2VjdGlvbiNkYXNoYm9hcmQgdWwgbGk6bnRoLW9mLXR5cGUoMykge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cbiAgbWFpbiBzZWN0aW9uI2Rhc2hib2FyZCB1bCBsaTpudGgtY2hpbGQobis0KSB7XG4gICAgbWFyZ2luLXRvcDogNzBweDtcbiAgfVxufVxubWFpbiBzZWN0aW9uI2Rhc2hib2FyZCB1bCBsaSBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICMxMzFmNmI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5tYWluIHNlY3Rpb24jZGFzaGJvYXJkIHVsIGxpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xufVxubWFpbiBzZWN0aW9uI2xvZ2luLXNldHRpbmdzIHtcbiAgd2lkdGg6IDEwMHZ3O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBtYWluIHNlY3Rpb24jbG9naW4tc2V0dGluZ3Mge1xuICAgIHdpZHRoOiA1MHZ3O1xuICB9XG59XG5tYWluIHNlY3Rpb24jbG9naW4tc2V0dGluZ3MgcHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxubWFpbiBzZWN0aW9uI2xvZ2luLXNldHRpbmdzIC5pbXBvcnRhbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNkZjMwMzU7XG59XG5tYWluICN0YWJsZS13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxOTBweCk7XG59XG5tYWluICN0YWJsZS13cmFwcGVyLmxvYWRpbmcge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5tYWluICN0YWJsZS13cmFwcGVyIHRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoIGlucHV0LmNvbHVtbi1zZWFyY2gge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxubWFpbiAjdGFibGUtd3JhcHBlciB0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZywgbWFpbiAjdGFibGUtd3JhcHBlciB0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19hc2MsIG1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmdfZGVzYywgbWFpbiAjdGFibGUtd3JhcHBlciB0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19hc2NfZGlzYWJsZWQsIG1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmdfZGVzY19kaXNhYmxlZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiByaWdodDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAxNHB4O1xufVxubWFpbiAjdGFibGUtd3JhcHBlciB0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZyA+IGRpdiwgbWFpbiAjdGFibGUtd3JhcHBlciB0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19hc2MgPiBkaXYsIG1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmdfZGVzYyA+IGRpdiwgbWFpbiAjdGFibGUtd3JhcHBlciB0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19hc2NfZGlzYWJsZWQgPiBkaXYsIG1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmdfZGVzY19kaXNhYmxlZCA+IGRpdiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbm1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwczovL2Nkbi5kYXRhdGFibGVzLm5ldC8xLjExLjMvaW1hZ2VzL3NvcnRfYm90aC5wbmdcIik7XG59XG5tYWluICN0YWJsZS13cmFwcGVyIHRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aC5zb3J0aW5nX2FzYyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHBzOi8vY2RuLmRhdGF0YWJsZXMubmV0LzEuMTEuMy9pbWFnZXMvc29ydF9hc2MucG5nXCIpICFpbXBvcnRhbnQ7XG59XG5tYWluICN0YWJsZS13cmFwcGVyIHRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aC5zb3J0aW5nX2Rlc2Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwczovL2Nkbi5kYXRhdGFibGVzLm5ldC8xLjExLjMvaW1hZ2VzL3NvcnRfZGVzYy5wbmdcIikgIWltcG9ydGFudDtcbn1cbm1haW4gI3RhYmxlLXdyYXBwZXIgdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmdfYXNjX2Rpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaHR0cHM6Ly9jZG4uZGF0YXRhYmxlcy5uZXQvMS4xMS4zL2ltYWdlcy9zb3J0X2FzY19kaXNhYmxlZC5wbmdcIik7XG59XG5tYWluICN0YWJsZS13cmFwcGVyIHRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aC5zb3J0aW5nX2Rlc2NfZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwczovL2Nkbi5kYXRhdGFibGVzLm5ldC8xLjExLjMvaW1hZ2VzL3NvcnRfZGVzY19kaXNhYmxlZC5wbmdcIik7XG59XG5tYWluICN0YWJsZS13cmFwcGVyIC5kYXRhVGFibGVzX3Njcm9sbEJvZHkgdGFibGUge1xuICBtYXJnaW46IDA7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5tYWluICN0YWJsZS13cmFwcGVyIC5kYXRhVGFibGVzX3Njcm9sbEJvZHkgdGFibGUgdGhlYWQgdHIgdGgge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxubWFpbiAjdGFibGUtd3JhcHBlciAuZGF0YVRhYmxlc19zY3JvbGxCb2R5IHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcbn1cblxuZGl2I3R5cGVhaGVhZC1jb250YWluZXIgdWwudHlwZWFoZWFkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbn1cbmRpdiN0eXBlYWhlYWQtY29udGFpbmVyIHVsLnR5cGVhaGVhZC5kcm9wZG93bi1tZW51IHtcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjMzKSA0cHggNHB4IDE2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5kaXYjdHlwZWFoZWFkLWNvbnRhaW5lciB1bC50eXBlYWhlYWQuZHJvcGRvd24tbWVudSBsaSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbmRpdiN0eXBlYWhlYWQtY29udGFpbmVyIHVsLnR5cGVhaGVhZC5kcm9wZG93bi1tZW51IGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzk2OTY5NTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCAjNmE2YTZhO1xufVxuZGl2I3R5cGVhaGVhZC1jb250YWluZXIgdWwudHlwZWFoZWFkLmRyb3Bkb3duLW1lbnUgbGkgYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1icmFuZC1jb2xvdXIpO1xufVxuZGl2I3R5cGVhaGVhZC1jb250YWluZXIgdWwudHlwZWFoZWFkLmRyb3Bkb3duLW1lbnUgbGk6bGFzdC1vZi10eXBlIGEge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG5kaXYjbG9hZGluZyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIHRvcDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgbGVmdDogY2FsYyg1MCUgLSAxMDBweCk7XG4gIHotaW5kZXg6IDMwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5kaXYjbG9hZGluZyBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG59XG5cbnRoLmN1c3RvbWVyLWl0ZW0tcmVmIHtcbiAgd2lkdGg6IDIwY2ggIWltcG9ydGFudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTm9ybWFsaXNlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlXG4vLy8gQGF1dGhvciBBdXRob3JzIG5hbWVcbi8vLyBAc2VlIGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG5cbiRub3JtYWxpc2UgICAgICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kYmFzZS1lbGVtZW50cyAgICAgOiB0cnVlICFkZWZhdWx0O1xuJHNlY3Rpb24tZWxlbWVudHMgIDogdHJ1ZSAhZGVmYXVsdDtcbiRoZWFkZXItZWxlbWVudHMgICA6IHRydWUgIWRlZmF1bHQ7XG4kZ3JvdXBpbmctZWxlbWVudHMgOiB0cnVlICFkZWZhdWx0O1xuJHRhYmxlLWVsZW1lbnRzICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRmb3JtLWVsZW1lbnRzICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kZW1iZWRkZWQtZWxlbWVudHMgOiB0cnVlICFkZWZhdWx0O1xuJHRleHQtZWxlbWVudHMgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRkZXYtZWxlbWVudHMgICAgICA6IHRydWUgIWRlZmF1bHQ7XG5cbkBpZiAkbm9ybWFsaXNlIHtcblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gQmFzZSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGJhc2UtZWxlbWVudHMge1xuXG5cdFx0aHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLFxuXHRcdGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sXG5cdFx0aW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSxcblx0XHRjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSxcblx0XHRjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLFxuXHRcdGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LFxuXHRcdHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRcdH1cblxuXHRcdDpyb290IHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdFx0fVxuXG5cdFx0KiwgKjphZnRlciwgKjpiZWZvcmUge1xuXHRcdFx0Jjpmb2N1cyB7IG91dGxpbmU6MDsgfTtcblx0XHRcdGJveC1zaXppbmc6aW5oZXJpdDtcblx0XHR9XG5cblx0XHRodG1sIHsgXG5cdFx0XHRoZWlnaHQ6MTAwJTsgXG5cdFx0XHRmb250LXNpemU6NjIuNSU7IFxuXHRcdFx0YmxvY2stc2l6ZTogMTAwJTtcblx0XHRcdGlubGluZS1zaXplOiAxMDAlO1xuXHRcdH1cblxuXHRcdGJvZHkgeyBcblx0XHRcdG1pbi1ibG9jay1zaXplOiAxMDAlO1xuXHRcdFx0bWluLWlubGluZS1zaXplOiAxMDAlO1xuXHRcdH1cblxuXHRcdGh0bWwsIGJvZHkge1xuXHRcdFx0bWluLWhlaWdodDoxMDAlO1xuXHRcdH1cblxuXHRcdHAsIHByZSwgYmxvY2txdW90ZSwgb2wsIHVsLCBsaSwgbGVnZW5kLCBmaWdjYXB0aW9uLCBib2R5LCBhcnRpY2xlLCBuYXYsIGFzaWRlLCBzZWN0aW9uLCBoZWFkZXIsIGZvb3RlciwgYWRkcmVzcyB7XG5cdFx0XHQmOmVtcHR5IHsgZGlzcGxheTpub25lOyB9XG5cdFx0fVxuXG5cdFx0YXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIG1haW4sIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHRzdmcsIHN5bWJvbCB7IG92ZXJmbG93OnZpc2libGU7IH1cblxuXHRcdGRldGFpbHMgeyBkaXNwbGF5OiBibG9jaztcdH1cblxuXHRcdHN1bW1hcnkge1xuXHRcdFx0ZGlzcGxheTogbGlzdC1pdGVtO1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XG5cdFx0XHQmOjotd2Via2l0LWRldGFpbHMtbWFya2VyLCAmOjptYXJrZXIgeyBkaXNwbGF5Om5vbmU7IH1cblx0XHR9XG5cblx0XHR0ZW1wbGF0ZSB7IGRpc3BsYXk6IG5vbmU7XHR9XG5cblx0XHRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIFNlY3Rpb24gRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICRzZWN0aW9uLWVsZW1lbnRzIHtcblxuXHRcdGJvZHkge1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cblx0XHRhZGRyZXNzIHtcblx0XHRcdGZvbnQtc3R5bGU6bm9ybWFsO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIEhlYWRlciBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGhlYWRlci1lbGVtZW50cyB7XG5cblx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWJlZm9yZTowZW07XG5cdFx0XHQtd2Via2l0LW1hcmdpbi1hZnRlcjowZW07XG5cdFx0XHQtd2Via2l0LW1hcmdpbi1zdGFydDowcHg7XG5cdFx0XHQtd2Via2l0LW1hcmdpbi1lbmQ6MHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBHcm91cGluZyBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGdyb3VwaW5nLWVsZW1lbnRzIHtcblxuXHRcdGhyIHtcblx0XHRcdGJvcmRlcjpub25lO1xuXHRcdFx0aGVpZ2h0OjFweDtcblx0XHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0fVxuXG5cdFx0YmxvY2txdW90ZSwgcSB7XG5cdFx0XHRxdW90ZXM6IG5vbmU7XG5cdFx0XHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRjb250ZW50OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHByZSB7XG5cdFx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG5cdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0cGFkZGluZzoxNnB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4Ojk5OTk7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gVGFibGUgRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICR0YWJsZS1lbGVtZW50cyB7XG5cblx0XHR0YWJsZSB7XG5cdFx0XHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRcdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gRm9ybSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGZvcm0tZWxlbWVudHMge1xuXG5cdFx0YnV0dG9uIHtcblx0XHRcdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXHRcdH1cblxuXHRcdGJ1dHRvbixcdGlucHV0LCBvcHRncm91cCxcdHNlbGVjdCxcdHRleHRhcmVhIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdFx0Zm9udC1zaXplOiAxMDAlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0aW5wdXQge1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0c2VsZWN0IHtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdH1cblxuXHRcdGJ1dHRvbixcblx0XHRbdHlwZT1cImJ1dHRvblwiXSxcblx0XHRbdHlwZT1cInJlc2V0XCJdLFxuXHRcdFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdFx0Jjpmb2N1cyB7IG91dGxpbmU6MDsgfVxuXHRcdH1cblxuXHRcdGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblx0XHRbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblx0XHRbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcblx0XHRcdGJvcmRlci1zdHlsZTogbm9uZTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0YnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuXHRcdFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuXHRcdFx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuXHRcdH1cblxuXHRcdGZpZWxkc2V0IHtcblx0XHRcdHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcblx0XHR9XG5cblx0XHRsZWdlbmQge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHR9XG5cblx0XHRwcm9ncmVzcyB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJjaGVja2JveFwiXSxcblx0XHRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuXHRcdFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cblx0XHRbdHlwZT1cInNlYXJjaFwiXSB7XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuXHRcdH1cblxuXHRcdFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHR9XG5cdFx0Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcblx0XHRcdGZvbnQ6IGluaGVyaXQ7XG5cdFx0fVxuXG5cdFx0W2Rpc2FibGVkXSB7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gRW1iZWRkZWQgRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICRlbWJlZGRlZC1lbGVtZW50cyB7XG5cblx0XHRpbWcge1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIFRleHQgRWxlbWVudHNcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cblx0QGlmICR0ZXh0LWVsZW1lbnRzIHtcblxuXHRcdGVtIHtcblx0XHRcdGZvbnQtc3R5bGU6aXRhbGljO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjpub25lO1xuXHRcdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0fVxuXG5cdFx0YWJiclt0aXRsZV0ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuXHRcdH1cblxuXHRcdGIsIHN0cm9uZyB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR9XG5cblx0XHRjb2RlLFx0a2JkLCBzYW1wIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdH1cblxuXHRcdHNtYWxsIHtcblx0XHRcdGZvbnQtc2l6ZTogODAlO1xuXHRcdH1cblxuXHRcdHN1Yiwgc3VwIHtcblx0XHRcdGZvbnQtc2l6ZTogNzUlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0c3ViIHtcblx0XHRcdGJvdHRvbTogLTAuMjVlbTtcblx0XHR9XG5cblx0XHRzdXAge1xuXHRcdFx0dG9wOiAtMC41ZW07XG5cdFx0fVxuXG5cdFx0dGV4dGFyZWEge1xuXHRcdFx0cmVzaXplOm5vbmU7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBEZXZlbG9wbWVudCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGRldi1lbGVtZW50cyB7XG5cblx0XHRwcmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcblx0XHRcdGNvbG9yOmJsYWNrO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06bm9uZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjpub25lO1xuXHRcdFx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdGZvbnQtc2l6ZToxNnB4O1xuXHRcdFx0cGFkZGluZzoxNnB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4Ojk5OTtcblx0XHR9XG5cdFx0XG5cdFx0Ym9keS5kZXZtb2RlIHtcblx0XHRcdGltZzpub3QoW2FsdF0pIHtcblx0XHRcdFx0Ym9yZGVyOiAycHggcmVkIGRhc2hlZDtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdsb2JhbCBTdHlsaW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuYm9keSB7XG4gIHdpZHRoOiAxMDB2dztcbiAgQGluY2x1ZGUgYnJlYWstb3V0KG1pbikge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxufVxuXG46d2hlcmUoKikge1xuICBzY3JvbGwtbWFyZ2luLXRvcDogdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDJyZW0pO1xufVxuXG4uYXN5bmMtaGlkZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxubWFpbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmZpZ3VyZS5pbWFnZSxcbnBpY3R1cmUuaW1hZ2Uge1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcbn1cblxudmlkZW8tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgdmlkZW8tY29udGFpbmVyKCk7XG59XG5cbio6aGFzKD4gLmNvbnRhaW5lci1pbmxpbmUpIHtcbiAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xufVxuXG5tYXJrIHtcbiAgQGluY2x1ZGUgbWFyaygpO1xufVxuXG5kZXRhaWxzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbnN1bW1hcnkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsXG4gICY6Om1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5oZWFkZXIgLmJ1dHRvbiB7XG4gICYuYnJvY2h1cmUge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1icm9jaHVyZSgpO1xuICB9XG59XG5cbi5idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b24oKTtcbiAgJi5yZWQgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skcmVkfTtcbiAgICB9XG4gIH1cbiAgJi5ibHVlIHN2ZyB7XG4gICAgJi50aWNrLFxuICAgICYuZG93bmxvYWQge1xuICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgIH1cbiAgfVxuICAmLm91dGxpbmUgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgJi5yZWQge1xuICAgICAgc3ZnLnRpY2ssXG4gICAgICBzdmcuZG93bmxvYWQge1xuICAgICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgICAgfVxuICAgICAgJi5vdXRsaW5lIHN2ZyB7XG4gICAgICAgICYudGljayxcbiAgICAgICAgJi5kb3dubG9hZCB7XG4gICAgICAgICAgLS1zdHJva2U6ICN7JHJlZH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibHVlIHtcbiAgICAgIHN2Zy50aWNrLFxuICAgICAgc3ZnLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JHdoaXRlfTtcbiAgICAgIH1cbiAgICAgICYub3V0bGluZSBzdmcge1xuICAgICAgICAmLnRpY2ssXG4gICAgICAgICYuZG93bmxvYWQge1xuICAgICAgICAgIC0tc3Ryb2tlOiAjeyRibHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLndoaXRlIHN2ZyB7XG4gICAgICAmLnRpY2ssXG4gICAgICAmLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWNvbnRhaW5lcigpO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cblxuI2hvbGRpbmctcGFnZSB7XG4gIGhlYWRlciBzdmcge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogJGd1dHRlcjtcbiAgfVxufVxuXG5ib2R5I2Vycm9yLTQwNCB7XG4gIGhlYWRlciBoMiB7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgfVxuICBzZWFyY2gtYmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICB9XG4gIH1cbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206ICRndXR0ZXItO1xuICB6LWluZGV4OiAyO1xuXG4gIC8qIFN0YXJ0IGhpZGRlbiBiZWxvdyB2aWV3cG9ydCAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIC8qIEFuaW1hdGlvbiB3aXRoIGRlbGF5ZWQgc3RhcnQgKi9cbiAgYW5pbWF0aW9uOiBzbGlkZS1pbi1pZGxlLWRpYWxvZyBib3RoO1xuICBhbmltYXRpb24tdGltZWxpbmU6IHNjcm9sbCgpO1xuICBhbmltYXRpb24tcmFuZ2U6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkpIGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkgKyBjYWxjKGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKSk7XG5cbiAgLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuNSk7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHJlbSk7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgI2NvbnRhY3QtbW9kYWwge1xuICAgIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6ICN7JGdyZXkzfTtcbiAgICBmb3JtIC5zdWJtaXQtcm93IHtcbiAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XG4gICAgfVxuICB9XG59XG5cbmJvZHkgPiAuYmFjay10by10b3Age1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogJGd1dHRlcjtcbiAgcmlnaHQ6ICRndXR0ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2stdG8tdG9wLWJhY2tncm91bmQsICRibHVlMik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3R0b20gJHRyYW5zaXRpb247XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgc3ZnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgdG9wOiAtNCU7XG4gIH1cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgJHJlZCk7XG4gIH1cbn1cblxuZm9vdGVyI2Zvb3Rlci5pbi12aWV3IH4gLmJhY2stdG8tdG9wIHtcbiAgYm90dG9tOiAxMjBweDtcbn1cblxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+IC5iYWNrLXRvLXRvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW1hZ2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Bvc2l0aW9uJztcblxuQG1peGluIHNyY3NldCgkcG9zaXRpb246ZmFsc2UpIHtcblxuICBkaXNwbGF5ICAgICAgICAgICAgIDogYmxvY2s7XG5cdGJhY2tncm91bmQtcG9zaXRpb24gOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG5cdGJhY2tncm91bmQtc2l6ZSAgICAgOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQgICA6IG5vLXJlcGVhdDtcblx0b3ZlcmZsb3cgICAgICAgICAgICA6IGhpZGRlbjtcblxuXHRAaWYgJHBvc2l0aW9uID09ICdleHBhbmRlZCcgeyBcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5leHBhbmRlZDtcblx0fSBAZWxzZSBpZiAkcG9zaXRpb24gPT0gJ2Jsb3dvdXQnIHsgXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24uYmxvd291dDtcblx0fSBAZWxzZSB7XG5cdFx0cG9zaXRpb24gOiByZWxhdGl2ZTsgXG5cdH1cblx0XG4gIGltZyB7XG4gICAgZGlzcGxheSAgICAgICAgIDogYmxvY2s7XG4gICAgcG9zaXRpb24gICAgICAgIDogYWJzb2x1dGU7XG4gICAgb2JqZWN0LWZpdCAgICAgIDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uIDogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuXHRcdHdpZHRoICAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRoZWlnaHQgICAgICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpOyBcblx0XHRtYXgtd2lkdGggICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG5cdFx0bWF4LWhlaWdodCAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcblx0XHR0b3AgICAgICAgICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICAgICAgICAgOiAwO1xuXHR9XG5cblx0QGNvbnRlbnQ7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBBc3BlY3QgUmF0aW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYXNwZWN0LXJhdGlvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcblxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNi85KVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCRyYXRpbyA6ICcxNi85Jykge1xuXG4gIC0tYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG5cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9KSB7XG4gICAgYXNwZWN0LXJhdGlvOmluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJS8odmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgICA+ICogeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0gXG4gIH1cbn0iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdjb2xsZWN0aW9ucy9zdHlsaW5nL2FzcGVjdC1yYXRpbycgYXMgKjtcblxuQG1peGluIGNvbnRhaW5lcigkcmF0aW86JzE2LzknKSB7XG5cdFxuXHRAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJHJhdGlvKTtcblxuXHRkaXNwbGF5ICAgICAgICAgIDogYmxvY2s7XG5cdHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcblx0d2lkdGggICAgICAgICAgICA6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3IgOiBibGFjaztcblxuXHRpZnJhbWUsIGNhbnZhcyB7XG5cdFx0cG9zaXRpb24gOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5ICA6IGJsb2NrO1xuXHRcdHRvcCAgICAgIDogMDsgXG5cdFx0bGVmdCAgICAgOiAwO1xuXHRcdGhlaWdodCAgIDogMTAwJSAhaW1wb3J0YW50OyBcblx0XHR3aWR0aCAgICA6IDEwMCUgIWltcG9ydGFudDtcblx0fVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cbkBtaXhpbiBtYXJrKCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Vycy1tYXJrO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skYm9yZGVyLXJhZGl1c30gLyAyKTtcbiAgcGFkZGluZzowIDVweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG59XG5cbkBtaXhpbiBtYXJrLXJlc2V0KCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzppbml0aWFsO1xuICB0cmFuc2l0aW9uOiBpbml0aWFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLlxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvd1xuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci5cbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd25cbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGVcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS5cbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LlxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWU6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMjogIzI5MmI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0OiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTU6ICMwMDk1ZmY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZDogI2RmMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2VcbiRncmV5OiAjOTY5Njk1O1xuJGdyZXkyOiAjNmE2YTZhOyAvLyBGb250XG4kZ3JleTM6ICNmNGY0ZjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQ6ICNkY2RjZGM7XG4kZ3JleTU6ICNiMWIxYjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2OiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbiRncmVlbjogIzUwYmMwODtcbiRncmVlbjI6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdzogI2Y2ZjRkYjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MjogI2ZjYjAwMjtcbiRvcmFuZ2U6ICNmZjZhMDA7XG4kb3JhbmdlMjogI2RhOGIwZjtcbiRibGFjazogIzFlMWMxYztcblxuJG1hcms6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5OiB2YXIoLS1wcmltYXJ5LCAjeyRibHVlfSk7XG4kc2Vjb25kYXJ5OiB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLlxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWU6ICRibHVlLFxuICAkcmVkOiAkcmVkLFxuICAkZ3JleTogJGdyZXksXG4gICR5ZWxsb3c6ICR5ZWxsb3csXG4gICRvcmFuZ2U6ICRvcmFuZ2UsXG4gICRncmVlbjogJGdyZWVuLFxuICAkYmxhY2s6ICRibGFja1xuKTtcblxuJG1hcDogKFxuICBibHVlOiAkYmx1ZSxcbiAgcmVkOiAkcmVkLFxuICBncmV5OiAkZ3JleTMsXG4gIHllbGxvdzogJHllbGxvdyxcbiAgb3JhbmdlOiAkb3JhbmdlLFxuICBncmVlbjogJGdyZWVuLFxuICBibGFjazogJGJsYWNrLFxuKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCdXR0b25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnc3R5bGluZycgYXMgKjtcblxuQG1peGluIGJ1dHRvbigkY29sb3VyOiB2YXIoLS1wcmltYXJ5KSkge1xuICAvLyBTdGF0aWMgU3R5bGluZ1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skY29sb3VyfTtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgLS1mb250LXNpemU6IDE2cHg7XG4gIC0tYm9yZGVyLXJhZGl1czogNTBweDtcblxuICAvLyBIb3ZlciAvIEFjdGl2ZSBzdHlsaW5nXG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JGNvbG91cn07XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IGluaXRpYWw7XG4gIC0taG92ZXItcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIC0taG92ZXItZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAtLWhvdmVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXG4gIC0taWNvbi1zaXplOiAxLjFlbTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksXG4gICAgYm9yZGVyIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSk7XG5cbiAgLy8gSWNvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgb3JkZXI6IDM7XG4gICAgZmlsbDogdmFyKC0tZmlsbCwgY3VycmVudENvbG9yKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpLCBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcblxuICAgICZbY2xhc3MqPSdhcnJvdyddIHtcbiAgICAgIC0taWNvbi1zaXplOiAwLjllbTtcbiAgICB9XG4gICAgJi5hcnJvdy1sZWZ0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgPiBzcGFuIHtcbiAgICBvcmRlcjogMjtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIH1cblxuICAvLyBWYXJpYW50IERlY2xhcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzbWFsbDtcbiAgfVxuICAmLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBsYXJnZTtcbiAgfVxuICAmLm91dGxpbmUge1xuICAgIEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJGJsdWUpO1xuICB9XG5cbiAgJi5ibHVlIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkYmx1ZSwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRibHVlLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuICAmLnJlZCB7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJHJlZCwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRyZWQsICR3aGl0ZSk7XG4gICAgfVxuICB9XG4gICYuZ3JlZW4ge1xuICAgIEBpbmNsdWRlIHNvbGlkLXRoZW1lKCRncmVlbjIsIHdoaXRlKTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkZ3JlZW4yLCAkd2hpdGUpO1xuICAgIH1cbiAgfVxuICAmLndoaXRlIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkd2hpdGUsICRwcmltYXJ5KTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkd2hpdGUsICRwcmltYXJ5KTtcbiAgICB9XG4gIH1cbiAgJi5kaXNhYmxlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJGdyZXk0KTtcbiAgICAmLm91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkZ3JleTQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvdmVyIFN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0taG92ZXItZm9udC1jb2xvdXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWhvdmVyLWJvcmRlci1jb2xvdXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWhvdmVyLWJvcmRlci1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IHZhcigtLWhvdmVyLXBhZGRpbmcpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taG92ZXItZm9udC1zaXplKTtcbiAgfVxufVxuXG4vLy8gTGFyZ2UgQnV0dG9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZXNlIGV4dGVuZCB0aGUgc3R5bGluZyBvZiBtYXJrdXAgZWxlbWVudHMgd2l0aCB0aGUgLmJ1dHR0b24gY2xhc3Ncbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuXG4vLy8gQGV4YW1wbGVcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1sYXJnZSB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gbGFyZ2Uge1xuICAtLXBhZGRpbmc6IDEycHggMjRweDtcbiAgLS1mb250LXNpemU6IDI0cHg7XG4gIEBjb250ZW50O1xufVxuXG4vLy8gU21hbGwgQnV0dG9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZXNlIGV4dGVuZCB0aGUgc3R5bGluZyBvZiBtYXJrdXAgZWxlbWVudHMgd2l0aCB0aGUgLmJ1dHR0b24gY2xhc3Ncbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuXG4vLy8gQGV4YW1wbGVcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1zbWFsbCB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gc21hbGwge1xuICAtLXBhZGRpbmc6IDZweCAxOHB4O1xuICAtLWZvbnQtc2l6ZTogMTJweDtcblxuICBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2FwMDtcbiAgICAmLmFycm93LWxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8vIFZhcmllbnQgU3R5bGluZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIHNvbGlkLXRoZW1lKCRzdGF0aWM6ICRwcmltYXJ5LCAkaG92ZXI6IHdoaXRlKSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHN0YXRpY307XG4gIC0tZm9udC1jb2xvdXI6ICN7JGhvdmVyfTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI3skaG92ZXJ9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjeyRzdGF0aWN9O1xufVxuXG5AbWl4aW4gb3V0bGluZS10aGVtZSgkc3RhdGljOiAkcHJpbWFyeSwgJGhvdmVyOiB0cmFuc3BhcmVudCkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI3skc3RhdGljfTtcbiAgLS1ib3JkZXItY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAje2lmKCRob3ZlciA9PSB0cmFuc3BhcmVudCwgJHN0YXRpYywgJGhvdmVyKX07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vLyBCdXR0b24gQ29udGFpbmVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBjb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvLyBtYXJnaW4tbGVmdDokZ2FwMC07XG4gIC8vIHdpZHRoOmNhbGMoMTAwJSArICN7JGdhcH0pO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogJGdhcDA7XG4gIC5idXR0b24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEJlc3Bva2UgQnV0dG9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIGJyb2NodXJlIHtcbiAgLS1mb250LWNvbG91cjogI3skYmx1ZX07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLXBhZGRpbmc6IDVweCAwcHg7XG4gIC0taWNvbi1zaXplOiAzMnB4O1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWJvcmRlci1yYWRpdXM6IDA7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JHJlZH07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZpbGw6ICRyZWQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEN1c3RvbSBQcm9wZXJ0aWVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbjpyb290IHtcblxuICAvLyBDb2xvdXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLXByaW1hcnkgICAgICAgICA6ICN7JGJsdWV9OyBcbiAgLS1zZWNvbmRhcnkgICAgICAgOiAjeyRyZWR9OyBcblxuICAvLyBCcmVha3BvaW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAtLWJyZWFrcG9pbnQtI3skbmFtZX0gOiAjeyR2YWx1ZX07XG4gIH1cblxuICAvLyBGb250cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIC0tZm9udC1jb2xvdXIgICAgICAgIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWhlYWRpbmctY29sb3VyICAgICA6ICN7dmFyKC0tcHJpbWFyeSwgJGJsdWUpfTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXIgOiAje3ZhcigtLXNlY29uZGFyeSwgJHJlZCl9O1xuXG4gIC8vIFRyYW5zaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbiA6ICN7JHRyYW5zaXRpb24tZHVyYXRpb259O1xuICAtLXRyYW5zaXRpb24tZWFzZSAgICAgOiAjeyR0cmFuc2l0aW9uLWVhc2V9O1xuICAtLXRyYW5zaXRpb24tZGVsYXkgICAgOiAjeyR0cmFuc2l0aW9uLWRlbGF5fTtcblxuICAvLyBMYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLWJyZWFkY3J1bWItaGVpZ2h0IDogOTBweDtcbiAgLS1hbmNob3JzLWhlaWdodCA6IDYwcHg7XG4gIC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQgOiAtMTVweDtcbiAgLS1tYWluLW1heC13aWR0aCA6IDkwMHB4O1xuICAtLW5hdmlnYXRpb24taGVpZ2h0OiAxNDNweDtcblxuICAtLXNpZGViYXItd2lkdGggOiBjbGFtcCgjeyRzaWRlYmFyLXdpZHRoIC0gbWF0aC5kaXYoJHNpZGViYXItd2lkdGgsIDEwMCkgKiA0MH0sIDMwdncsICN7JHNpZGViYXItd2lkdGh9KTtcbiAgXG4gIEBzdXBwb3J0cyBub3QgKCB3aWR0aDpjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgICAtLXNpZGViYXItd2lkdGggOiAjeyRzaWRlYmFyLXdpZHRofTtcbiAgICBAaW5jbHVkZSBicmVhay1pbihsYXJnZSkge1xuICAgICAgLS1zaWRlYmFyLXdpZHRoIDogMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gVW5pdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLS1nYXAgICAgOiAjeyRiYXNlLWdhcH07XG4gIC0tZ3V0dGVyIDogI3skYmFzZS1ndXR0ZXJ9O1xuICAtLXNwYWNlciA6ICN7JGJhc2Utc3BhY2VyfTtcbiBcbiAgLy8vIFNldCB0aGUgZ3V0dGVycyBhbmQgc3BhY2VycyB3aXRoIGNsYW1wIFxuICAvLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY2xhbXBcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCA2IHtcblxuICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGkpfTsgXG4gICAgLS1ndXR0ZXIjeyRpfS0gOiAje2d1dHRlcigkaSwgJHVzZS1uZWdhdGl2ZSA6IHRydWUpfTtcblxuICAgICRzcGFjZXItZ3Jvd3RoIDogaWYoJGkgPT0gMCwgMSwgJGkgKiAzKTtcbiAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoKX07IFxuICAgIC0tc3BhY2VyI3skaX0tIDogI3tzcGFjZXIoJHNwYWNlci1ncm93dGgsICR1c2UtbmVnYXRpdmUgOiB0cnVlKX07XG4gIH1cbiAgXG4gIC8vLyBTZXRzIHRoZSBndXR0ZXJzIGFuZCBzcGFjZXJzIHVzaW5nIHRoZSBjYWxjIFxuICAvLy8gbWV0aG9kIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgY2xhbXBcbiAgQHN1cHBvcnRzIG5vdCAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggNiB7XG5cbiAgICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGksICR1c2UtY2xhbXAgOiBmYWxzZSApfTsgXG4gICAgICAtLWd1dHRlciN7JGl9LSA6ICN7Z3V0dGVyKCRpLCAkdXNlLWNsYW1wIDogZmFsc2UsICR1c2UtbmVnYXRpdmUgOiB0cnVlICl9O1xuXG4gICAgICAkc3BhY2VyLWdyb3d0aCA6IGlmKCRpID09IDAsIDIsICRpICogNCk7XG4gICAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoLCAkdXNlLWNsYW1wIDogZmFsc2UgKX07IFxuICAgICAgLS1zcGFjZXIjeyRpfS0gOiAje3NwYWNlcigkc3BhY2VyLWdyb3d0aCwgJHVzZS1jbGFtcCA6IGZhbHNlLCAkdXNlLW5lZ2F0aXZlIDogdHJ1ZSApfTtcbiAgICB9ICAgIFxuICB9XG5cbiAgLy8vIFRoaXMgaXMgdGhlIGNhbGN1bGF0ZWQgd2lkdGggb2YgYSBzaW5nbGUgZ3V0dGVyIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHVzZXJzXG4gIC8vLyB2aWV3cG9ydCBpcyBsYXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCBtZWRpYSBxdWVyeSBicmVha3BvaW50LiBQcmltYXJseSB1c2VkIHRvXG4gIC8vLyBvZmZzZXQgb3ZlcmJsb3duIGNvbnRlbnQgZm9yIHByZXZlbnRpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcgb24gdGhlIDxib2R5Pi5cbiAgLy8gLS1jb21wdXRlZC1ndXR0ZXIgOiBjYWxjKCgoMTAwdncgLSAje3ZhcigtLWJyZWFrcG9pbnQtbWF4KX0pIC8gMikgLSAje3ZhcigtLWd1dHRlcjIpfSk7XG4gIC0tY29tcHV0ZWQtZ3V0dGVyIDogY2FsYygoKDEwMHZ3IC0gI3t2YXIoLS1icmVha3BvaW50LW1heCl9KSAvIDIpKTtcblxuXG59IiwiLy8vIEdsb2JhbCB0eXBvZ3JhcGhpYyBzdHlsaW5nIHRoYXQgZWZmZWN0cyBldmVyeXRoaW5nLlxuLy8vIElmIHlvdSB3YW50IHRvIHVwZGF0ZSBzdHlsaW5nIGZvciBjb250ZW50IGJsb2NrIHRleHQgZmllbGRzLCBpbnRyb2R1Y3Rpb24gZmllbGRzLFxuLy8vIG9yIGFueXRoaW5nIGFzc2lnbmVkIGEgLnRleHQgY2xhc3Mgb24gaXQncyBjb250YWluZXIgdGhlbiBlZGl0IHRoaXMgZmlsZTpcbi8vLyBAc2VlIC9zcmMvc2Fzcy9jb21wb25lbnRzL3RleHRcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xhdG8nO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbGF0byc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdsYXRvJztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ21vbnRzZXJyYXQnO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbW9udHNlcnJhdCc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtb250c2VycmF0JztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmJvZHkge1xuICBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCAkZm9udC1jb2xvdXIpO1xuICBsaW5lLWhlaWdodDogJGZvbnQtbGluZS1oZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250c2l6ZSgkZm9udC1zaXplLW1pbiwgJGZvbnQtc2l6ZS1tYXgpO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDE7XG59XG5oMiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDI7XG59XG5oMyB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDM7XG59XG5oNCB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG59XG5oNSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDU7XG59XG5oNiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDY7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyLCB2YXIoLS1mb250LWNvbG91cikpO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcblxuICAmLnN1Yi1oZWFkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgICBAaW5jbHVkZSBmb250LWxhdG8oc2VtaS1ib2xkKTtcbiAgfVxuXG4gIHNwYW4sXG4gIHN0cm9uZyxcbiAgcCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6ICfigJwnICfigJ0nICfigJgnICfigJknO1xuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICB9XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXI7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICYuZXh0ZXJuYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgc3ZnLmV4dGVybmFsLWxpbmsge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxubGkge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgfVxufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKDEwKTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oci1jb2xvdXIsICRncmV5NCk7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXIwO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbn1cblxuLm5vdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMTNjO1xuICBwYWRkaW5nOiAkZ3V0dGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICM5NzgwMDI7XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnUGxlYXNlIE5vdGUnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzk3ODAwMjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBGb250XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdjb2xvdXJzJyBhcyAqO1xuXG4kY29sb3VyICAgICAgOiAkZ3JleTI7XG4kc2l6ZSAgICAgICAgOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc2l6ZS1taW4gICAgOiAxLjRyZW0gIWRlZmF1bHQ7IFxuJHNpemUtbWF4ICAgIDogMS42cmVtICFkZWZhdWx0OyBcbiRsaW5lLWhlaWdodCA6IDEuNiAhZGVmYXVsdDsgXG5cbiRzaXplLWgxICAgICA6IDYuMWVtICFkZWZhdWx0O1xuJHNpemUtaDEtbWluIDogNGVtICFkZWZhdWx0O1xuJHNpemUtaDIgICAgIDogMy4yZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMyAgICAgOiAyLjVlbSAhZGVmYXVsdDtcbiRzaXplLWg0ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuJHNpemUtaDUgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNiAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiAgXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIExhdG8gRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGZvbnQgaXQgcHJpbWFyaWx5IHVzZWQgZm9yIGhlYWRpbmdzICg8aCo+IHRhZ3MpXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpXG5cbkBtaXhpbiBsYXRvKCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5OmxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdzZW1pLWJvbGQnIG9yICR3ZWlnaHQgPT0gJ3NlbWlib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIE1vbnRzZXJyYXQgRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGlzIHRoZSBiYXNlIGZvbnQgdXNlZCBmb3IgYWxsIHN0YW5kYXJkIGNvcHkgdGhyb3VnaG91dCB0aGUgc2l0ZS5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKVxuXG5AbWl4aW4gbW9udHNlcnJhdCgkd2VpZ2h0OnJlZ3VsYXIpIHtcblxuICBmb250LWZhbWlseTptb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBcbiAgQGlmICggJHdlaWdodCA9PSAncmVndWxhcicpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2l0YWxpYycpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBSZXNwb25zaXZlIEZvbnRzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNyZXNwb25zaXZlLWZvbnRzaXplXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250c2l6ZSgkbWluLCAkbWF4LCAkc2NhbGVyIDogMS41dncsICRicmVha3BvaW50cyA6IChtaW46OTUwcHgsIG1heDoxNjAwcHgpKSB7XG4gIFxuXHQvLyBSZXNwb25zaXZlIGZvbnRzaXplXG4gIEBzdXBwb3J0cyAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIGZvbnQtc2l6ZTpjbGFtcCgjeyRtaW59LCAjeyRzY2FsZXJ9LCAjeyRtYXh9KTsgICBcblx0fVxuXG5cdC8vIFJlc3BvbnNpdmUgZm9udHNpemUgZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCAnY2xhbXAnXG5cdEBzdXBwb3J0cyBub3QgKHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuXHRcdEBpbmNsdWRlIGJyZWFrLmluKG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAnbWluJykpIHsgZm9udC1zaXplOiRtaW47IH1cblx0XHRAaW5jbHVkZSBicmVhay5vdXQobWFwLmdldCgkYnJlYWtwb2ludHMsICdtYXgnKSkgeyBmb250LXNpemU6JG1heDsgfVxuXHR9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhlYWRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJy4vY29sbGVjdGlvbnMvZm9udCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cbi8vIERlZmF1bHQgSGVhZGluZyBWYWx1ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDMuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuMVxuKSAhZGVmYXVsdDtcblxuJGgyIDogKFxuICAnZm9udC1zaXplJyAgIDogMi41cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4zXG4pICFkZWZhdWx0O1xuXG4kaDMgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjJyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNCA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg1IDogKFxuICAnZm9udC1zaXplJyAgIDogMS44cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDYgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjZyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRiYXNlIDogNjIuNSAhZGVmYXVsdDtcbiRzY2FsZXIgOiAxLjV2dyAhZGVmYXVsdDtcbiRlbmFibGUtY3JvcHBpbmcgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFsbGJhY2sgTGluZS1oZWlnaHRzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDEsIFwibGluZS1oZWlnaHRcIikgeyAkaDEgOiBtYXAuc2V0KCRoMSwgJ2xpbmUtaGVpZ2h0JywgMS4xKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDIsIFwibGluZS1oZWlnaHRcIikgeyAkaDIgOiBtYXAuc2V0KCRoMiwgJ2xpbmUtaGVpZ2h0JywgMS4zKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDMsIFwibGluZS1oZWlnaHRcIikgeyAkaDMgOiBtYXAuc2V0KCRoMywgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDQsIFwibGluZS1oZWlnaHRcIikgeyAkaDQgOiBtYXAuc2V0KCRoNCwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDUsIFwibGluZS1oZWlnaHRcIikgeyAkaDUgOiBtYXAuc2V0KCRoNSwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDYsIFwibGluZS1oZWlnaHRcIikgeyAkaDYgOiBtYXAuc2V0KCRoNiwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuXG4vLyBEZWZpbmUgdGhlIHZhcmlhYmxlcyBzbyB0aGV5IGFyZSBzdGlsbCBhY2Nlc2libGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgxLCAnZm9udC1zaXplJyk7XG4kaDEtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgxLCAnbGluZS1oZWlnaHQnKTtcbiRoMS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDEsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgyLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMiwgJ2ZvbnQtc2l6ZScpO1xuJGgyLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDItZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDItc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgyLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMy1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDMsICdmb250LXNpemUnKTtcbiRoMy1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDMsICdsaW5lLWhlaWdodCcpO1xuJGgzLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgzLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMywgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDQtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg0LCAnZm9udC1zaXplJyk7XG4kaDQtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg0LCAnbGluZS1oZWlnaHQnKTtcbiRoNC1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNC1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDQsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg1LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNSwgJ2ZvbnQtc2l6ZScpO1xuJGg1LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDUtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDUtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg1LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDYsICdmb250LXNpemUnKTtcbiRoNi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDYsICdsaW5lLWhlaWdodCcpO1xuJGg2LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg2LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4vLyBIYW5kbGVzIENyb3BzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kX2gxLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDMtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDYtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG5cbiRfaDEtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDQtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcblxuXG4vLyBNaXhpbnMgZm9yIGVhY2ggaGVhZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX3NldC1jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcblxuICBAaWYgKG1ldGEudHlwZS1vZigkY3JvcCkgPT0gJ21hcCcpIHtcblxuICAgICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gICAgJHRvcCAgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwidG9wXCIpKSwgMCk7XG4gICAgJGJvdHRvbSAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwiYm90dG9tXCIpKSwgMCk7XG5cbiAgICBAaW5jbHVkZSBmb250LmNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkdG9wLCAkYm90dG9tKTtcblxuICB9XG5cbn1cblxuQG1peGluIGgxKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgxLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgxLWZvbnQtc2l6ZS1taW4gYW5kICRoMS1mb250LXNpemUtbWluIDwgJGgxLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplLW1pbil9LCAjeyRoMS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDEtZm9udC1zaXplLCAkaDEtbGluZS1oZWlnaHQsICRfaDEtY3JvcC10b3AsICRfaDEtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMS1saW5lLWhlaWdodDsgXG4gICAgfVxuXG4gIH1cblxufVxuXG5AbWl4aW4gaDIoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDItZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDItZm9udC1zaXplLW1pbiBhbmQgJGgyLWZvbnQtc2l6ZS1taW4gPCAkaDItZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMi1mb250LXNpemUtbWluKX0sICN7JGgyLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMi1mb250LXNpemUsICRoMi1saW5lLWhlaWdodCwgJF9oMi1jcm9wLXRvcCwgJF9oMi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgyLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDMoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDMtZm9udC1zaXplLW1pbiBhbmQgJGgzLWZvbnQtc2l6ZS1taW4gPCAkaDMtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMy1mb250LXNpemUtbWluKX0sICN7JGgzLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMy1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMy1mb250LXNpemUsICRoMy1saW5lLWhlaWdodCwgJF9oMy1jcm9wLXRvcCwgJF9oMy1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgzLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDQoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDQtZm9udC1zaXplLW1pbiBhbmQgJGg0LWZvbnQtc2l6ZS1taW4gPCAkaDQtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNC1mb250LXNpemUtbWluKX0sICN7JGg0LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNC1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNC1mb250LXNpemUsICRoNC1saW5lLWhlaWdodCwgJF9oNC1jcm9wLXRvcCwgJF9oNC1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg0LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDUoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDUtZm9udC1zaXplLW1pbiBhbmQgJGg1LWZvbnQtc2l6ZS1taW4gPCAkaDUtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNS1mb250LXNpemUtbWluKX0sICN7JGg1LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNS1mb250LXNpemUsICRoNS1saW5lLWhlaWdodCwgJF9oNS1jcm9wLXRvcCwgJF9oNS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg1LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDYoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDYtZm9udC1zaXplLW1pbiBhbmQgJGg2LWZvbnQtc2l6ZS1taW4gPCAkaDYtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNi1mb250LXNpemUtbWluKX0sICN7JGg2LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wMigkaDYtZm9udC1zaXplLCAkaDYtbGluZS1oZWlnaHQsICRfaDYtY3JvcC10b3AsICRfaDYtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG4vLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWFya25vdHRvbi9kb2dnaXN0eWxlL2Jsb2IvbWFzdGVyL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2Nzc1xuXG4vLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZSB2YWx1ZXMgZGVmaW5lZCBiZWxvdy4gXG5cbkBmb3J3YXJkICdjcmVhdGUvdW5pdHMnIHdpdGggKFxuXG4gIC8vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cbiAgLy8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4gIC8vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiAgLy8vIEByZXN1bHQgOiAkZ2FwMCwgJGdhcCwgJGdhcDIsICRnYXAzLCAkZ2FwNCwgJGdhcDUgLCAkZ2FwNiwgJGdhcDAtLCAkZ2FwLSwgJGdhcDItLCAkZ2FwMy0sICRnYXA0LSwgJGdhcDUtIGFuZCAkZ2FwNi1cbiAgXG4gICRnYXAgOiAxNnB4LFxuXG4gIC8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4gIC8vLyBAcmVzdWx0IDogJHNwYWNlcjAsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXI0LCAkc3BhY2VyNSwgJHNwYWNlcjYsICRzcGFjZXIwLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyLSwgJHNwYWNlcjQtLCAkc3BhY2VyNS0gYW5kICRzcGFjZXI2LVxuICBcbiAgJHNwYWNlciA6IDR2aCwgXG5cbiAgLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbiAgLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbiAgLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbiAgLy8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuICAvLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcbiAgLy8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuICAvLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbiAgLy8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiAgLy8vIEByZXN1bHQgOiAkZ3V0dGVyMCwgJGd1dHRlciwgJGd1dHRlcjIsICRndXR0ZXIzLCAkZ3V0dGVyNCwgJGd1dHRlcjUsICRndXR0ZXI2LCAkZ3V0dGVyMC0sICRndXR0ZXItLCAkZ3V0dGVyMi0sICRndXR0ZXIzLSwgJGd1dHRlcjQtLCAkZ3V0dGVyNS0gYW5kICRndXR0ZXI2LVxuICBcbiAgJGd1dHRlciA6IDN2dywgXG5cbik7XG5cbiRib3JkZXItcmFkaXVzIDogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiRzaWRlYmFyLXdpZHRoIDogNTAwcHg7IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNpZGUtYmFyIGZvcm0ge1xuICAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbjogMCAtMTVweCAkZ2FwO1xuICB9XG4gIC5zdWJtaXQtcm93IHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbmZvcm0ge1xuICBAaW5jbHVkZSBmb3JtLXNlbGVjdCgpO1xuICBAaW5jbHVkZSBmb3JtLWlucHV0KCk7XG4gIEBpbmNsdWRlIGZvcm0tdGV4dGFyZWEoKTtcblxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsIGluaGVyaXQpO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsIHdoaXRlKSBpbnNldDtcbiAgfVxuXG4gICZbZGF0YS1mcmVlZm9ybV0ge1xuICAgIGxhYmVsICsgZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAwO1xuICAgIH1cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgICsgLmZyZWVmb3JtLXJvdyA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuaW5wdXQtZ3JvdXAtb25lLWxpbmUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1jaGVja2JveCgpO1xuICAgIH1cbiAgfVxufVxuXG5zaWRlLWJhciBmb3JtIHtcbiAgbGFiZWwge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB+IGRpdiB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbmZvcm0jbG9naW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICA+IGxhYmVsIH4gbGFiZWwge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbmZvcm0jcmVzZXQtcGFzc3dvcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogJGd1dHRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG59XG5cbnJlcXVpcmVkLW5vdGljZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWNlLWNvbG91ciwgJGdyZWVuKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgc3BhbiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMik7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoMTAwJSArICN7JGdhcDB9KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDRweCAkZ2FwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAtNTAlKTtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgc3BhbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIC01MCUpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuZm9ybVtkYXRhLWhhbmRsZT0nY29udGFjdFVzJ10sXG5mb3JtW2RhdGEtaGFuZGxlPSdwb3dkZXJDb250YWN0J10ge1xuICAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzLFxuICAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XG4gIH1cbiAgLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICB9XG5cbiAgLmZvcm0tZmllbGRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyICRndXR0ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNjAwKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG5cbiAgICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmlyc3QtbmFtZSxcbiAgICAgICAgJi5sYXN0LW5hbWUsXG4gICAgICAgICYuZW1haWwsXG4gICAgICAgICYuY29tcGFueS1uYW1lLFxuICAgICAgICAmLmNvbnRhY3Qtbm8sXG4gICAgICAgICYueS1ycWcxODFrLWQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICB9XG4gICAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgZ3JpZC1yb3c6IDIgLyBzcGFuIDU7XG4gICAgICAgIH1cbiAgICAgICAgJi5zdWJtaXQtcm93IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHN2Zy5lbWFpbCB7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcblxuICAgICAgJi5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgICAgLmZyZWVmb3JtLWluc3RydWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsYWJlbDpub3QoLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAgICYubGVhZC1zdGF0dXMsXG4gICAgICAmLmludGVybmFsLW5vdGVzLFxuICAgICAgJi5vcmRlci12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEsXG4gICAgaW5wdXQ6bm90KFt0eXBlPSdzdWJtaXQnXSkge1xuICAgICAgLS1ib3JkZXItY29sb3VyOiBub25lO1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgLmZyZWVmb3JtLWVycm9ycyB7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoMTApO1xuICAgIHBhZGRpbmc6IDJweCAkZ2FwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtIDRweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gIH1cblxuICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKDQwMCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSB7XG4gICAgLS1ub3RpY2UtY29sb3VyOiAjeyRyZWR9O1xuICB9XG5cbiAgJjpub3QoOnZhbGlkKSB7XG4gICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLW91dGxpbmUtdGhlbWUoJGdyZXkpO1xuICAgIH1cbiAgfVxuXG4gIC5zZXJ2aWNlLWNlbnRyZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbmZvcm1bZGF0YS1oYW5kbGU9J2NvbnRhY3RVcyddIHtcbiAgLmZvcm0tZmllbGRzIHtcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNjAwKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG5cbiAgICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmlyc3QtbmFtZSxcbiAgICAgICAgJi5sYXN0LW5hbWUsXG4gICAgICAgICYuZW1haWwsXG4gICAgICAgICYuY29tcGFueS1uYW1lLFxuICAgICAgICAmLmNvbnRhY3Qtbm8sXG4gICAgICAgICYueS1ycWcxODFrLWQsXG4gICAgICAgICYucHJvZHVjdCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgICAgICB9XG4gICAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gNjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5I2VkaXQge1xuICBmb3JtIHtcbiAgICB0ZXh0YXJlYSxcbiAgICBzZWxlY3QsXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgfVxuICAgIC5zdWJtaXQtcm93IHtcbiAgICAgIG9yZGVyOiAyMDtcbiAgICB9XG5cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5maXJzdC1uYW1lLFxuICAgIC5sYXN0LW5hbWUsXG4gICAgLmVtYWlsLFxuICAgIC5wcm9kdWN0LFxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5LFxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuICAgIC5sZWFkLXN0YXR1cyxcbiAgICAuaW50ZXJuYWwtbm90ZXMsXG4gICAgLm9yZGVyLXZhbHVlLFxuICAgIC5zdWJtaXQtcm93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIHNlbGVjdCxcbiAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgIGdyaWQtcm93OiAxIC8gc3BhbiA2O1xuICAgIH1cblxuICAgIC5maXJzdC1uYW1lLFxuICAgIC5sYXN0LW5hbWUsXG4gICAgLmVtYWlsLFxuICAgIC5wcm9kdWN0LFxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgc2VsZWN0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBpbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAubGVhZC1zdGF0dXMsXG4gICAgLmludGVybmFsLW5vdGVzLFxuICAgIC5vcmRlci12YWx1ZSB7XG4gICAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuXG5AbWl4aW4gX2Jhc2Utc3R5bGluZyB7XG4gIFxuICAtLWZvbnQtY29sb3VyIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWJvcmRlci1yYWRpdXMgOiAjeyRib3JkZXItcmFkaXVzfTtcbiAgLS1ib3JkZXItY29sb3VyIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlciA6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nIDogI3skZ2FwfSAjeyRnYXB9O1xuXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6dmFyKC0tYm9yZGVyKTsgXG4gIHBhZGRpbmc6dmFyKC0tcGFkZGluZyk7IFxuICBmb250LXNpemU6Zm9udC5zaXplKDE0KTsgXG4gIGNvbG9yOnZhciggLS1mb250LWNvbG91cik7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB9XG4gICY6Zm9jdXMge1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOnRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBvdXRsaW5lLWNvbG9yIDogJGJsdWU7IFxuICB9XG4gICYuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtaXhpbiBhbGwtaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5wdXQoJHR5cGU6bnVsbCkge1xuXG4gICRzZWxlY3RvciA6ICdpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pJztcblxuICBAaWYgdHlwZS1vZigkdHlwZSkgIT0gJ251bGwnIHtcbiAgICAkc2VsZWN0b3IgOiAnaW5wdXRbdHlwZT1cIiN7JHR5cGV9XCJdJztcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIHNlbGVjdCgkc3Ryb2tlIDogJGJsYWNrKSB7XG5cbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjYWxjKDEwMCUgLSAjeyRnYXB9KSBjZW50ZXI7IFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTsgICAgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gY2hlY2tib3goKSB7XG5cbn1cblxuQG1peGluIHRleHRhcmVhKCkge1xuXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUcmFuc2l0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcImhlbHBlcnMvZWFzZVwiO1xuXG4kZHVyYXRpb24gOiAwLjJzO1xuJGVhc2UgICAgIDogZWFzZS4kaW4tb3V0O1xuJGRlbGF5ICAgIDogbnVsbDtcblxuJHRyYW5zaXRpb24gOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgJGVhc2UpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICRkZWxheSk7IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbm1vZGFsLXdyYXBwZXIge1xuXG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7cmdiYSgkd2hpdGUsIDAuOTUpfTtcbiAgLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcblxuICAtLW1pbi13aWR0aDozMDBweDtcbiAgLS1tYXgtd2lkdGg6I3skYnJlYWstbWVkaXVtfTtcbiAgLS13aWR0aDpjbGFtcCh2YXIoLS1taW4td2lkdGgpLCA5MHZ3LCBmaXQtY29udGVudCk7XG5cbiAgLS1taW4taGVpZ2h0OjYwMHB4O1xuICAtLW1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtICN7JGd1dHRlcjJ9KTtcbiAgXG4gIC0taGVpZ2h0OmNsYW1wKHZhcigtLW1pbi1oZWlnaHQpLCA5MHZ3LCBmaXQtY29udGVudCk7XG5cbiAgQHN1cHBvcnRzICggLS12Oi13ZWJraXQtZmlsbC1hdmFpbGFibGUgKSB7XG4gICAgLS1tYXgtaGVpZ2h0Oi13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG4gIH1cblxuICAtLWNsb3NlLWJ1dHRvbi1zaXplIDogMzBweDsgXG4gIC0tbmF2LWJ1dHRvbi1zaXplIDogNDBweDsgXG5cbiAgcG9zaXRpb246Zml4ZWQ7XG4gIGluc2V0OjA7XG4gIGhlaWdodDoxMDAlOyBcbiAgd2lkdGg6MTAwJTsgXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHotaW5kZXg6MTA7XG4gIGRpc3BsYXk6ZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgJGVhc2UtaW4tb3V0O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG4gICYubG9hZGluZyB7IFxuICAgIG9wYWNpdHk6MDsgXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCAwLjNzO1xuICAgIG1vZGFsLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OjA7IFxuICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnZoKTsgXG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1xdWFydDtcbiAgICB9XG4gIH1cblxuICBidXR0b24uY2xvc2Uge1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIHRvcDokZ3V0dGVyOyBcbiAgICByaWdodDokZ3V0dGVyOyBcbiAgICB3aWR0aDp2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7IFxuICAgIGhlaWdodDp2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7IFxuICAgIHN2ZyB7IFxuICAgICAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgY2lyY2xlLCBwYXRoIHsgdHJhbnNpdGlvbjowLjNzICRlYXNlLWluLW91dDsgfVxuICAgICAgLS1maWxsOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHN2ZyB7IFxuICAgICAgICAtLWZpbGw6d2hpdGU7XG4gICAgICAgIC0tc3Ryb2tlOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIHdpZHRoOnZhcigtLW5hdi1idXR0b24tc2l6ZSk7IFxuICAgIGhlaWdodDp2YXIoLS1uYXYtYnV0dG9uLXNpemUpOyBcbiAgICB0b3A6Y2FsYyg1MCUgLSAodmFyKC0tbmF2LWJ1dHRvbi1zaXplKSAvIDIpKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjoycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICBjb2xvcjp3aGl0ZTsgXG4gICAgZGlzcGxheTpmbGV4O1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246Y29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjJzICRlYXNlLW91dC1iYWNrO1xuICAgICYucHJldmlvdXMgeyBsZWZ0IDogJGd1dHRlcjsgfVxuICAgICYubmV4dCB7IHJpZ2h0IDogJGd1dHRlcjsgfVxuICAgIHN2ZyB7IFxuICAgICAgd2lkdGg6NTAlO1xuICAgICAgaGVpZ2h0OjUwJTsgXG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgIGNvbG9yOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxubW9kYWwtY29udGFpbmVyIHtcblxuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzICRlYXNlLWluLW91dCAwLjNzLCB0cmFuc2Zvcm0gMC41cyAkZWFzZS1vdXQtcXVhcnQgMC4zcztcbiAgd2lkdGg6dmFyKC0td2lkdGgpO1xuICBoZWlnaHQ6dmFyKC0taGVpZ2h0KTtcbiAgbWF4LWhlaWdodDp2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgbWF4LXdpZHRoOnZhcigtLW1heC13aWR0aCk7XG4gIGJvcmRlcjoxcHggc29saWQgJGdyZXk0OyBcbiAgYm9yZGVyLXJhZGl1czokYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjokZ3V0dGVyO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG4gIEBzdXBwb3J0cyBub3QgKCB3aWR0aDpjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcblxuICAgIC0td2lkdGggOiA2MHZ3O1xuICAgIG1heC13aWR0aDp2YXIoLS1tYXgtd2lkdGgpO1xuICAgIG1pbi13aWR0aDp2YXIoLS1taW4td2lkdGgpO1xuXG4gICAgLS1oZWlnaHQgOiA4MHZ3O1xuICAgIG1heC1oZWlnaHQ6dmFyKC0tbWF4LWhlaWdodCk7XG4gICAgbWluLWhlaWdodDp2YXIoLS1taW4taGVpZ2h0KTtcbiAgfVxuXG4gICY6ZW1wdHkge1xuICAgIHdpZHRoOmNhbGModmFyKC0tbWF4LXdpZHRoKSAvIDIpO1xuICAgIGhlaWdodDpjYWxjKHZhcigtLW1heC1oZWlnaHQpIC8gMik7XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBsb2FkZXIoMjBweCk7XG4gICAgICBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgPiBidXR0b24uY2xvc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvcmRlcjotMTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB0b3A6aW5pdGlhbDtcbiAgICByaWdodDppbml0aWFsO1xuICAgIG1hcmdpbi10b3A6Y2FsYygoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkpIC8gMik7XG4gICAgbWFyZ2luLWJvdHRvbTpjYWxjKCgtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSkgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6Y2FsYygoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkpIC8gMik7XG4gIH1cblxufVxuXG5tb2RhbC1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHdpZHRoOmluaGVyaXQ7XG4gIGhlaWdodDppbmhlcml0O1xuICBtYXgtaGVpZ2h0OmluaGVyaXQ7XG4gIG1heC13aWR0aDppbmhlcml0O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6JGd1dHRlcjtcbiAgPiAqIHsgbWF4LXdpZHRoOjEwMCU7IH1cbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9XCJpbWFnZVwiXSAuaW1hZ2UgeyBcbiAgbWF4LWhlaWdodDpjYWxjKHZhcigtLW1heC1oZWlnaHQpIC0gI3skZ3V0dGVyNn0pO1xuICBib3JkZXI6bm9uZTtcbiAgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAjeyRndXR0ZXIzfSAtICN7JGd1dHRlcjR9KTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOmF1dG87XG4gIH1cbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9XCJkZWZhdWx0XCJdIHtcbiAgbW9kYWwtY29udGVudCA+IGltZyB7XG4gICAgJltzcmMqPVwiLnN2Z1wiXSB7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyB9XG4gIH1cbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9XCJ2aWRlb1wiXSB7XG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7cmdiYShibGFjaywgMC45NSl9O1xuICBtb2RhbC1jb250YWluZXIgeyBcbiAgICBAaW5jbHVkZSB2aWRlby1jb250YWluZXIoKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuICAgIHBhZGRpbmc6JGdhcDsgXG4gICAgbW9kYWwtY29udGVudCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cblxuLm9wZW4taW4tbW9kYWwge1xuICBjdXJzb3I6cG9pbnRlcjtcbiAgdHJhbnNpdGlvbjpvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAmOmFmdGVyIHsgQGluY2x1ZGUgbG9hZGVyKDIwcHgsIHdoaXRlKTsgfVxuICAmLmxvYWRpbmcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICY6YWZ0ZXIgeyBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uKCk7IH1cbiAgfVxufVxuXG5pbWcub3Blbi1pbi1tb2RhbCwgLm9wZW4taW4tbW9kYWwgaW1nIHsgXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xuICAtbW96LXVzZXItZHJhZzogbm9uZTtcbiAgLW8tdXNlci1kcmFnOiBub25lO1xuICB1c2VyLWRyYWc6IG5vbmU7XG59XG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5cblxuQG1peGluIGxvYWRlcigkc2l6ZSA6IDEycHgsICRjb2xvdXIgOiAkZ3JleSkge1xuICAtLXNpemUgOiAjeyRzaXplfTsgXG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6Y2FsYyg1MCUgLSAodmFyKC0tc2l6ZSkgLyAyKSk7IFxuICBsZWZ0OmNhbGMoNTAlIC0gKHZhcigtLXNpemUpIC8gMikpOyBcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6dmFyKC0tc2l6ZSk7IFxuICBoZWlnaHQ6dmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCAkY29sb3VyKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzICRlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgICBmcm9tIHt0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gICAgdG8ge3RyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIH1cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBsb2FkZXItYW5pbWF0aW9uIHsgXG4gIG9wYWNpdHk6MTsgXG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICBAY29udGVudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW5pdGlhbGlzZXJzIFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVmVuZG9yID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoaXJkIHBhcnR5IGxpYnJhcmllcy4gVGhlc2Ugc2hvdWxkIG5vdCBiZSBtYW5pcHVsYXRlZCBpbiBhbnkgd2F5LlxuLy8vIFBhdGhzIHNldCBpbiB0aGUgZ3VscGZpbGUgYXJlIHVzZWQgdG8gaGVscCByZXNvbHZlIEB1c2UgcGF0aHMgcmVsYXRpdmVcbi8vLyB0byBleHRlcm5hbCBzb3VyY2VzLiBUaGlzIGNsZWFucyB1cCB0aGUgcGF0aCBuYW1lLiBcbi8vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL25vZGUtc2FzcyNpbmNsdWRlcGF0aHNcblxuQHVzZSAnbm9ybWFsaXNlcnMnO1xuXG4vLy8gR2xvYmFsID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFN0eWxpbmcgdGhhdCBzaG91bGQgYmUgYXZhaWxhYmxlIGF0IGFsbCB0aW1lcyBvbiBhbGwgcGFnZXMgXG5cbkB1c2UgJ19jb3JlJzsgXG5AdXNlICdfY29yZS9jdXN0b20tcHJvcGVydGllcyc7XG5AdXNlICdfY29yZS90eXBvZ3JhcGh5JztcblxuLy8vIENvbXBvbmVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGVzZSBhcmUgc3RhbmRhbG9uZSBvYmplY3RzIHRoYXQgaGF2ZSBsaXR0bGUtdG8tbm8gXG4vLy8gY29udGludXRpdHkgd2l0aCBuZWlnaGJvdXJpbmcgcGFnZSBjb21wb25lbnRzLiBcblxuXG5AdXNlICdjb21wb25lbnRzL2Zvcm1zJztcbkB1c2UgJ2NvbXBvbmVudHMvbW9kYWwnO1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuZm9ybSB7XG4gICAgaW5wdXQge1xuICAgICAgICAmW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgICAgJi5idXR0b24ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo1MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICAgICAgICAgICAgICAmLnJlZCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZCwgMTAlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLmJyYW5kZWQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvdXIpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnJhbmQtY29sb3VyLWRhcmtlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5tYWluIHtcbiAgICBwYWRkaW5nOjA7XG4gICAgJi5mdWxsLWJsZWVkIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICAmLmJsdWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gICAgXG4gICAgbWFyZ2luOiAwO1xuICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG4gICAgaDMge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICAgIFxuICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tYnJhbmQtY29sb3VyKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyYW5kLWNvbG91ci1kYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGgxLGgyLGgzLGg0LHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgfVxuXG4gICAgaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxOTBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICBAaW5jbHVkZSBicmVhay1vdXQoJ21lZGl1bScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggNTBweDtcbiAgICAgICAgfVxuICAgICAgICBkaXYjbGVmdC1sb2dvcyB7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgJi5sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNDBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVhay1vdXQoJ21lZGl1bScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaDEge1xuICAgICAgICAgICAgY29sb3I6ICMxMzFmNmI7XG4gICAgICAgIH1cbiAgICAgICAgZGl2I3BhZ2UtaGVhZGluZyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnbWVkaXVtJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnbWVkaXVtJykge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXYge1xuICAgICAgICAgICAgICAgICYjaGVhZGluZy1saW5rcyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnbWVkaXVtJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYS5sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnbWVkaXVtJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OjAuODU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgdGgsIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OjUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdzI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnJpZ2h0LWRpdmlkZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkICRibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYucmlnaHQtZGl2aWRlciArIHRoLCAmLnJpZ2h0LWRpdmlkZXIgKyB0ZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkYmxhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGgucmlnaHQtZGl2aWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJyYW5kLWNvbG91cik7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkICRncmV5NDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkIHZhcigtLWJyYW5kLWNvbG91cik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnbWVkaXVtJykge1xuICAgICAgICAgICAgcGFkZGluZzogNDBweCA1MHB4O1xuICAgICAgICB9XG4gICAgICAgICYjbG9naW4ge1xuICAgICAgICAgICAgd2lkdGg6MTAwdnc7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwdmg7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KCdtZWRpdW0nKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnbWVkaXVtJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyODBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCAkYmx1ZTM7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzNXB4O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVhay1vdXQoJ21lZGl1bScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNzBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IHRoaW4gc29saWQgJGJsdWUzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KCdtZWRpdW0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDoxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzNXB4O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVhay1vdXQoJ21lZGl1bScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA3MHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxM3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxM3B4IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQzMHB4XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYjbG9naW4tdmVyaWZ5IHtcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTklO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmI2Rhc2hib2FyZCB7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDp3cmFwO1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KCdtZWRpdW0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzMzMzJSAtIDYwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA5MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDowO1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKG4rNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDcwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNzBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHRoaW4gc29saWQgZGFya2VuKCRncmV5MywgNSUpO1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZ3JleTMsIDIlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmI2xvZ2luLXNldHRpbmdzIHtcbiAgICAgICAgICAgIHdpZHRoOjEwMHZ3O1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KCdtZWRpdW0nKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6NTB2dztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbXBvcnRhbnQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICN0YWJsZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMTkwcHgpO1xuICAgICAgICAmLmxvYWRpbmcge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgIHRhYmxlLmRhdGFUYWJsZSB7XG4gICAgICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY29sdW1uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAmLnNvcnRpbmcsXG4gICAgICAgICAgICAgICAgICAgICYuc29ydGluZ19hc2MsXG4gICAgICAgICAgICAgICAgICAgICYuc29ydGluZ19kZXNjLFxuICAgICAgICAgICAgICAgICAgICAmLnNvcnRpbmdfYXNjX2Rpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAmLnNvcnRpbmdfZGVzY19kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYuc29ydGluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwczovL2Nkbi5kYXRhdGFibGVzLm5ldC8xLjExLjMvaW1hZ2VzL3NvcnRfYm90aC5wbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5zb3J0aW5nX2FzYyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwczovL2Nkbi5kYXRhdGFibGVzLm5ldC8xLjExLjMvaW1hZ2VzL3NvcnRfYXNjLnBuZ1wiKSAhaW1wb3J0YW50XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5zb3J0aW5nX2Rlc2Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaHR0cHM6Ly9jZG4uZGF0YXRhYmxlcy5uZXQvMS4xMS4zL2ltYWdlcy9zb3J0X2Rlc2MucG5nXCIpICFpbXBvcnRhbnRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLnNvcnRpbmdfYXNjX2Rpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHBzOi8vY2RuLmRhdGF0YWJsZXMubmV0LzEuMTEuMy9pbWFnZXMvc29ydF9hc2NfZGlzYWJsZWQucG5nXCIpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5zb3J0aW5nX2Rlc2NfZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaHR0cHM6Ly9jZG4uZGF0YXRhYmxlcy5uZXQvMS4xMS4zL2ltYWdlcy9zb3J0X2Rlc2NfZGlzYWJsZWQucG5nXCIpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB7XG4gICAgICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgICAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9ICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5kaXYjdHlwZWFoZWFkLWNvbnRhaW5lciB7XG4gICAgdWwudHlwZWFoZWFkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgJi5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6cmdiYSgwLDAsMCwgMC4zMykgNHB4IDRweCAxNnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyZXk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyYW5kLWNvbG91cik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCAkZ3JleTI7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmRpdiNsb2FkaW5nIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDBweCk7XG4gICAgei1pbmRleDogMzA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnJhbmQtY29sb3VyKTtcbiAgICBvcGFjaXR5OjAuOTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBzcGFuIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgfVxufVxuXG50aC5jdXN0b21lci1pdGVtLXJlZiB7XG4gICAgd2lkdGg6IDIwY2ggIWltcG9ydGFudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3VyIFBhbGV0dGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCIuL21vZHVsZXMvY29sb3VyXCI7XG5cbi8vIEFkanVzdCB0aGVzZSB0byBhbWVuZCB0aGUgbGlnaHRuZXNzIG9yIGRhcmtuZXNzIGFtb3VudHMgZm9yIHRoZSBjb2xvdXJzIGxzaXRlZCBiZWxvdy4uIFxuXG4kX2xpZ2h0bmVzcyA6IDE1JSAhZGVmYXVsdDtcbiRfZGFya25lc3MgIDogMjAlICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tbW9uIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRyZWQgICAgICAgICAgOiAjOTcwODBFICFkZWZhdWx0O1xuJHJlZC1saWdodCAgICA6IGNvbG91ci5saWdodGVuKCRyZWQsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRyZWQtZGFyayAgICAgOiBjb2xvdXIuZGFya2VuKCRyZWQsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kb3JhbmdlICAgICAgIDogI0RBNEIwRiAhZGVmYXVsdDtcbiRvcmFuZ2UtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkb3JhbmdlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kb3JhbmdlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkb3JhbmdlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHllbGxvdyAgICAgICA6ICNFOUIxMDQgIWRlZmF1bHQ7XG4keWVsbG93LWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHllbGxvdywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHllbGxvdy1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHllbGxvdywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmVlbiAgICAgICAgOiAjNDg4QzEzICFkZWZhdWx0O1xuJGdyZWVuLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRncmVlbiwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZWVuLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGdyZWVuLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJsdWUgICAgICAgICA6ICMxQjU1QzAgIWRlZmF1bHQ7XG4kYmx1ZS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGJsdWUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRibHVlLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRibHVlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHBpbmsgICAgICAgICA6ICNFMDVENkIgIWRlZmF1bHQ7XG4kcGluay1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJHBpbmssICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwaW5rLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRwaW5rLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHB1cnBsZSAgICAgICA6ICM2MTNENUEgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHB1cnBsZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHB1cnBsZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHB1cnBsZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmV5ICAgICAgICAgOiAjNzg3ODc4ICFkZWZhdWx0O1xuJGdyZXktbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRncmV5LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JleS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkZ3JleSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRicm93biAgICAgICAgOiAjNzc0RjM4ICFkZWZhdWx0O1xuJGJyb3duLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRicm93biwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJyb3duLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGJyb3duLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHdoaXRlICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQgO1xuJHdoaXRlLWRhcmsgICA6IGNvbG91ci5saWdodGVuKCR3aGl0ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuXG4kYmxhY2sgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdCA7XG4kYmxhY2stbGlnaHQgIDogY29sb3VyLmRhcmtlbigkYmxhY2ssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIE1lZGlhIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vd3d3LmxvY2tlZG93bnNlby5jb20vc29jaWFsLW1lZGlhLWNvbG9ycy9cblxuJGZhY2Vib29rOiAgICAjMTg3N2YyICFkZWZhdWx0O1xuJHR3aXR0ZXI6ICAgICAjMWRhMWYyICFkZWZhdWx0O1xuJGdvb2dsZTogICAgICAjNDI4NWY0ICFkZWZhdWx0O1xuJHlvdXR1YmU6ICAgICAjZmYwMDAwICFkZWZhdWx0O1xuJGxpbmtlZGluOiAgICAjMDA3YmI1ICFkZWZhdWx0O1xuJGluc3RhZ3JhbTogICAjYzMyYWEzICFkZWZhdWx0O1xuJHBpbnRlcmVzdDogICAjYmQwODFjICFkZWZhdWx0O1xuJGRhaWx5bW90aW9uOiAjMDA2NkRDICFkZWZhdWx0O1xuJHNuYXBjaGF0OiAgICAjZmZmYzAwICFkZWZhdWx0O1xuJGZsaWNrcjogICAgICAjZjQwMDgzICFkZWZhdWx0O1xuJHZpbWVvOiAgICAgICAjMWFiN2VhICFkZWZhdWx0O1xuJHRodW1ibGVyOiAgICAjMzU0NjVkICFkZWZhdWx0O1xuJHJlZGRpdDogICAgICAjZmY0NTAwICFkZWZhdWx0O1xuJHdoYXRzYXBwOiAgICAjMjVkMzY2ICFkZWZhdWx0O1xuJHNreXBlOiAgICAgICAjMDBhZmYwICFkZWZhdWx0O1xuJGRpc2NvcmQ6ICAgICAjNzI4OWRhICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhIDogKFxuICBmYWNlYm9vazogICAgICRmYWNlYm9vayxcbiAgdHdpdHRlcjogICAgICAkdHdpdHRlcixcbiAgZ29vZ2xlOiAgICAgICAkZ29vZ2xlLFxuICB5b3V0dWJlOiAgICAgICR5b3V0dWJlLFxuICBsaW5rZWRpbjogICAgICRsaW5rZWRpbixcbiAgaW5zdGFncmFtOiAgICAkaW5zdGFncmFtLFxuICBwaW50ZXJlc3Q6ICAgICRwaW50ZXJlc3QsXG4gIGRhaWx5bW90aW9uOiAgJGRhaWx5bW90aW9uLFxuICBzbmFwY2hhdDogICAgICRzbmFwY2hhdCxcbiAgZmxpY2tyOiAgICAgICAkZmxpY2tyLFxuICB2aW1lbzogICAgICAgICR2aW1lbyxcbiAgdGh1bWJsZXI6ICAgICAkdGh1bWJsZXIsXG4gIHJlZGRpdDogICAgICAgJHJlZGRpdCxcbiAgd2hhdHNhcHA6ICAgICAkd2hhdHNhcHAsXG4gIHNreXBlOiAgICAgICAgJHNreXBlLFxuICBkaXNjb3JkOiAgICAgICRkaXNjb3JkXG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3RoZXIgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHllbGxvOiAjRkZDQjA4ICFkZWZhdWx0O1xuXG4vLy8gSGFuZGxlcyB0aGUgY3Vyc29yIHNlbGVjdGlvbiBjb2xvdXJcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9zZWxlY3RvcnMvcy9zZWxlY3Rpb24vXG5cbiRoaWdobGlnaHQ6ICNCMkQzRkEgIWRlZmF1bHQ7IFxuIl19 */