@charset "UTF-8";
a, .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
/*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */ /* stylelint-disable-line scss/comment-no-loud  */
@font-face {
  font-family: "GDS Transport";
  font-style: normal;
  font-weight: normal;
  src: url("/assets/fonts/light-94a07e06a1-v2.woff2") format("woff2"), url("/assets/fonts/light-f591b13f7d-v2.woff") format("woff");
  font-display: fallback;
}
@font-face {
  font-family: "GDS Transport";
  font-style: normal;
  font-weight: bold;
  src: url("/assets/fonts/bold-b542beb274-v2.woff2") format("woff2"), url("/assets/fonts/bold-affa96571d-v2.woff") format("woff");
  font-display: fallback;
}
@media print {
  a, .govuk-link {
    font-family: sans-serif;
  }
}
a:focus, .govuk-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
a:link, .govuk-link:link {
  color: #1d70b8;
}
a:visited, .govuk-link:visited {
  color: #4c2c92;
}
a:hover, .govuk-link:hover {
  color: #003078;
}
a:active, .govuk-link:active {
  color: #0b0c0c;
}
a:focus, .govuk-link:focus {
  color: #0b0c0c;
}
@media print {
  a[href^="/"]:after, [href^="/"].govuk-link:after, a[href^="http://"]:after, [href^="http://"].govuk-link:after, a[href^="https://"]:after, [href^="https://"].govuk-link:after {
    content: " (" attr(href) ")";
    font-size: 90%;
    word-wrap: break-word;
  }
}

.govuk-link--muted:link, .govuk-link--muted:visited {
  color: #505a5f;
}
.govuk-link--muted:hover, .govuk-link--muted:active {
  color: #0b0c0c;
}
.govuk-link--muted:focus {
  color: #0b0c0c;
}

.govuk-link--text-colour:link, .govuk-link--text-colour:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-link--text-colour:link, .govuk-link--text-colour:visited {
    color: #000000;
  }
}
.govuk-link--text-colour:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-link--text-colour:active, .govuk-link--text-colour:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-link--text-colour:active, .govuk-link--text-colour:focus {
    color: #000000;
  }
}

.govuk-link--inverse:link, .govuk-link--inverse:visited {
  color: #ffffff;
}
.govuk-link--inverse:hover, .govuk-link--inverse:active {
  color: rgba(255, 255, 255, 0.99);
}
.govuk-link--inverse:focus {
  color: #0b0c0c;
}

.govuk-link--no-underline:not(:hover):not(:active) {
  text-decoration: none;
}

.govuk-link--no-visited-state:link {
  color: #1d70b8;
}
.govuk-link--no-visited-state:visited {
  color: #1d70b8;
}
.govuk-link--no-visited-state:hover {
  color: #003078;
}
.govuk-link--no-visited-state:active {
  color: #0b0c0c;
}
.govuk-link--no-visited-state:focus {
  color: #0b0c0c;
}

.govuk-list {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-top: 0;
  margin-bottom: 15px;
  padding-left: 0;
  list-style-type: none;
}
@media print {
  .govuk-list {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-list {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-list {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-list {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-list {
    margin-bottom: 20px;
  }
}
.govuk-list .govuk-list {
  margin-top: 10px;
}

.govuk-list > li {
  margin-bottom: 5px;
}

.govuk-list--bullet {
  padding-left: 20px;
  list-style-type: disc;
}

.govuk-list--number {
  padding-left: 20px;
  list-style-type: decimal;
}

.govuk-list--bullet > li,
.govuk-list--number > li {
  margin-bottom: 0;
}
@media (min-width: 40.0625em) {
  .govuk-list--bullet > li,
  .govuk-list--number > li {
    margin-bottom: 5px;
  }
}

.govuk-list--spaced > li {
  margin-bottom: 10px;
}
@media (min-width: 40.0625em) {
  .govuk-list--spaced > li {
    margin-bottom: 15px;
  }
}

.govuk-template {
  background-color: #f3f2f1;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media screen {
  .govuk-template {
    overflow-y: scroll;
  }
}

.govuk-template__body {
  margin: 0;
  background-color: #ffffff;
}

.govuk-heading-xl {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  display: block;
  margin-top: 0;
  margin-bottom: 30px;
}
@media print {
  .govuk-heading-xl {
    color: #000000;
  }
}
@media print {
  .govuk-heading-xl {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-heading-xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    margin-bottom: 50px;
  }
}

.govuk-heading-l {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  display: block;
  margin-top: 0;
  margin-bottom: 20px;
}
@media print {
  .govuk-heading-l {
    color: #000000;
  }
}
@media print {
  .govuk-heading-l {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-heading-l {
    font-size: 24pt;
    line-height: 1.05;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-l {
    margin-bottom: 30px;
  }
}

.govuk-heading-m {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-heading-m {
    color: #000000;
  }
}
@media print {
  .govuk-heading-m {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-heading-m {
    font-size: 18pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-m {
    margin-bottom: 20px;
  }
}

.govuk-heading-s {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-heading-s {
    color: #000000;
  }
}
@media print {
  .govuk-heading-s {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-heading-s {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-heading-s {
    margin-bottom: 20px;
  }
}

.govuk-caption-xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}
@media print {
  .govuk-caption-xl {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-caption-xl {
    font-size: 27px;
    font-size: 1.6875rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-caption-xl {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-caption-l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}
@media print {
  .govuk-caption-l {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-caption-l {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-caption-l {
    font-size: 18pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-caption-l {
    margin-bottom: 0;
  }
}

.govuk-caption-m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  color: #505a5f;
}
@media print {
  .govuk-caption-m {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-caption-m {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-caption-m {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-body-lead, .govuk-body-l {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-top: 0;
  margin-bottom: 20px;
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    color: #000000;
  }
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-lead, .govuk-body-l {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-body-lead, .govuk-body-l {
    font-size: 18pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-lead, .govuk-body-l {
    margin-bottom: 30px;
  }
}

p, .govuk-body, .govuk-body-m {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  p, .govuk-body, .govuk-body-m {
    color: #000000;
  }
}
@media print {
  p, .govuk-body, .govuk-body-m {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  p, .govuk-body, .govuk-body-m {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  p, .govuk-body, .govuk-body-m {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  p, .govuk-body, .govuk-body-m {
    margin-bottom: 20px;
  }
}

.govuk-body-s {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-body-s {
    color: #000000;
  }
}
@media print {
  .govuk-body-s {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-s {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-body-s {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-s {
    margin-bottom: 20px;
  }
}

.govuk-body-xs {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-body-xs {
    color: #000000;
  }
}
@media print {
  .govuk-body-xs {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-xs {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.4285714286;
  }
}
@media print {
  .govuk-body-xs {
    font-size: 12pt;
    line-height: 1.2;
  }
}
@media (min-width: 40.0625em) {
  .govuk-body-xs {
    margin-bottom: 20px;
  }
}

.govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {
  padding-top: 5px;
}
@media (min-width: 40.0625em) {
  .govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {
    padding-top: 10px;
  }
}

p + .govuk-heading-l, .govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l,
.govuk-body-s + .govuk-heading-l,
.govuk-list + .govuk-heading-l {
  padding-top: 15px;
}
@media (min-width: 40.0625em) {
  p + .govuk-heading-l, .govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l,
  .govuk-body-s + .govuk-heading-l,
  .govuk-list + .govuk-heading-l {
    padding-top: 20px;
  }
}

p + .govuk-heading-m, .govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m,
.govuk-body-s + .govuk-heading-m,
.govuk-list + .govuk-heading-m,
p + .govuk-heading-s,
.govuk-body-m + .govuk-heading-s,
.govuk-body + .govuk-heading-s,
.govuk-body-s + .govuk-heading-s,
.govuk-list + .govuk-heading-s {
  padding-top: 5px;
}
@media (min-width: 40.0625em) {
  p + .govuk-heading-m, .govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m,
  .govuk-body-s + .govuk-heading-m,
  .govuk-list + .govuk-heading-m,
  p + .govuk-heading-s,
  .govuk-body-m + .govuk-heading-s,
  .govuk-body + .govuk-heading-s,
  .govuk-body-s + .govuk-heading-s,
  .govuk-list + .govuk-heading-s {
    padding-top: 10px;
  }
}

.govuk-section-break {
  margin: 0;
  border: 0;
}

.govuk-section-break--xl {
  margin-top: 30px;
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-top: 50px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-bottom: 50px;
  }
}

.govuk-section-break--l {
  margin-top: 20px;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--l {
    margin-top: 30px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-section-break--l {
    margin-bottom: 30px;
  }
}

.govuk-section-break--m {
  margin-top: 15px;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-section-break--m {
    margin-top: 20px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-section-break--m {
    margin-bottom: 20px;
  }
}

.govuk-section-break--visible, .section-break--margin-7, .section-break--heavy {
  border-bottom: 1px solid #b1b4b6;
}

.govuk-button-group {
  margin-bottom: 5px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-bottom: 15px;
  }
}
.govuk-button-group .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
  display: inline-block;
  max-width: 100%;
  margin-top: 5px;
  margin-bottom: 20px;
  text-align: center;
}
@media print {
  .govuk-button-group .govuk-link {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-button-group .govuk-link {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1;
  }
}
@media print {
  .govuk-button-group .govuk-link {
    font-size: 14pt;
    line-height: 19px;
  }
}
.govuk-button-group .govuk-button, .govuk-button-group .search__button {
  margin-bottom: 17px;
}
@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-right: -15px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: baseline;
    -webkit-align-items: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
  }
  .govuk-button-group .govuk-button, .govuk-button-group .search__button,
  .govuk-button-group .govuk-link {
    margin-right: 15px;
  }
  .govuk-button-group .govuk-link {
    text-align: left;
  }
}

.govuk-form-group {
  margin-bottom: 20px;
}
.govuk-form-group:after {
  content: "";
  display: block;
  clear: both;
}
@media (min-width: 40.0625em) {
  .govuk-form-group {
    margin-bottom: 30px;
  }
}
.govuk-form-group .govuk-form-group:last-of-type {
  margin-bottom: 0;
}

.govuk-form-group--error {
  padding-left: 15px;
  border-left: 5px solid #d4351c;
}
.govuk-form-group--error .govuk-form-group {
  padding: 0;
  border: 0;
}

.govuk-grid-row {
  margin-right: -15px;
  margin-left: -15px;
}
.govuk-grid-row:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-grid-column-one-quarter {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-one-quarter {
    width: 25%;
    float: left;
  }
}

.govuk-grid-column-one-third {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-one-third {
    width: 33.3333%;
    float: left;
  }
}

.govuk-grid-column-one-half {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-one-half {
    width: 50%;
    float: left;
  }
}

.govuk-grid-column-two-thirds {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-two-thirds {
    width: 66.6666%;
    float: left;
  }
}

.govuk-grid-column-three-quarters {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-three-quarters {
    width: 75%;
    float: left;
  }
}

.govuk-grid-column-full {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}
@media (min-width: 40.0625em) {
  .govuk-grid-column-full {
    width: 100%;
    float: left;
  }
}

.govuk-grid-column-one-quarter-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-one-quarter-from-desktop {
    width: 25%;
    float: left;
  }
}

.govuk-grid-column-one-third-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-one-third-from-desktop {
    width: 33.3333%;
    float: left;
  }
}

.govuk-grid-column-one-half-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-one-half-from-desktop {
    width: 50%;
    float: left;
  }
}

.govuk-grid-column-two-thirds-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-two-thirds-from-desktop {
    width: 66.6666%;
    float: left;
  }
}

.govuk-grid-column-three-quarters-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-three-quarters-from-desktop {
    width: 75%;
    float: left;
  }
}

.govuk-grid-column-full-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}
@media (min-width: 48.0625em) {
  .govuk-grid-column-full-from-desktop {
    width: 100%;
    float: left;
  }
}

.govuk-main-wrapper {
  display: block;
  padding-top: 20px;
  padding-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-main-wrapper {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.govuk-main-wrapper--auto-spacing:first-child,
.govuk-main-wrapper--l {
  padding-top: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-main-wrapper--auto-spacing:first-child,
  .govuk-main-wrapper--l {
    padding-top: 50px;
  }
}

.govuk-width-container {
  max-width: 960px;
  margin-right: 15px;
  margin-left: 15px;
}
@supports (margin: max(calc(0px))) {
  .govuk-width-container {
    margin-right: max(15px, calc(15px + env(safe-area-inset-right)));
    margin-left: max(15px, calc(15px + env(safe-area-inset-left)));
  }
}
@media (min-width: 40.0625em) {
  .govuk-width-container {
    margin-right: 30px;
    margin-left: 30px;
  }
  @supports (margin: max(calc(0px))) {
    .govuk-width-container {
      margin-right: max(30px, calc(15px + env(safe-area-inset-right)));
      margin-left: max(30px, calc(15px + env(safe-area-inset-left)));
    }
  }
}
@media (min-width: 1020px) {
  .govuk-width-container {
    margin-right: auto;
    margin-left: auto;
  }
  @supports (margin: max(calc(0px))) {
    .govuk-width-container {
      margin-right: auto;
      margin-left: auto;
    }
  }
}

.govuk-accordion {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-accordion {
    margin-bottom: 30px;
  }
}

.govuk-accordion__section {
  padding-top: 15px;
}

.govuk-accordion__section-header {
  padding-top: 15px;
  padding-bottom: 15px;
}

.govuk-accordion__section-heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-top: 0;
  margin-bottom: 0;
}
@media print {
  .govuk-accordion__section-heading {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-accordion__section-heading {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-accordion__section-heading {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-accordion__section-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  display: inline-block;
  margin-bottom: 0;
  padding-top: 15px;
}
@media print {
  .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-accordion__section-button {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-accordion__section-button {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-accordion__section-summary {
  margin-top: 10px;
  margin-bottom: 0;
}

.govuk-accordion__section-content > :last-child {
  margin-bottom: 0;
}

.js-enabled .govuk-accordion {
  border-bottom: 1px solid #b1b4b6;
}
.js-enabled .govuk-accordion__section {
  padding-top: 0;
}
.js-enabled .govuk-accordion__section-content {
  display: none;
  padding-top: 15px;
  padding-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-top: 15px;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-bottom: 15px;
  }
}
.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content {
  display: block;
}
.js-enabled .govuk-accordion__open-all {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0;
  border-width: 0;
  color: #1d70b8;
  background: none;
  cursor: pointer;
  -webkit-appearance: none;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__open-all {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}
.js-enabled .govuk-accordion__open-all:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.js-enabled .govuk-accordion__open-all:link {
  color: #1d70b8;
}
.js-enabled .govuk-accordion__open-all:visited {
  color: #4c2c92;
}
.js-enabled .govuk-accordion__open-all:hover {
  color: #003078;
}
.js-enabled .govuk-accordion__open-all:active {
  color: #0b0c0c;
}
.js-enabled .govuk-accordion__open-all:focus {
  color: #0b0c0c;
}
.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.js-enabled .govuk-accordion__section-header {
  position: relative;
  padding-right: 40px;
  border-top: 1px solid #b1b4b6;
  cursor: pointer;
}
.js-enabled .govuk-accordion__section-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  padding: 0;
  border-width: 0;
  color: #1d70b8;
  background: none;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
}
@media print {
  .js-enabled .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}
.js-enabled .govuk-accordion__section-button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.js-enabled .govuk-accordion__section-button:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.js-enabled .govuk-accordion__section-button:hover:not(:focus) {
  color: #003078;
  text-decoration: underline;
  text-underline-offset: 0.1em;
}
@media (hover: none) {
  .js-enabled .govuk-accordion__section-button:hover {
    text-decoration: none;
  }
}
.js-enabled .govuk-accordion__controls {
  text-align: right;
}
.js-enabled .govuk-accordion__icon {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 16px;
  height: 16px;
  margin-top: -8px;
}
.js-enabled .govuk-accordion__icon:after,
.js-enabled .govuk-accordion__icon:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 25%;
  height: 25%;
  margin: auto;
  border: 2px solid transparent;
  background-color: #0b0c0c;
}
.js-enabled .govuk-accordion__icon:before {
  width: 100%;
}
.js-enabled .govuk-accordion__icon:after {
  height: 100%;
}
.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
  content: " ";
  display: none;
}

.govuk-back-link {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  display: inline-block;
  position: relative;
  margin-top: 15px;
  margin-bottom: 15px;
  padding-left: 14px;
}
@media (min-width: 40.0625em) {
  .govuk-back-link {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-back-link {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media print {
  .govuk-back-link {
    font-family: sans-serif;
  }
}
.govuk-back-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-back-link:link, .govuk-back-link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-back-link:link, .govuk-back-link:visited {
    color: #000000;
  }
}
.govuk-back-link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-back-link:active, .govuk-back-link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-back-link:active, .govuk-back-link:focus {
    color: #000000;
  }
}

.govuk-back-link:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 7px;
  height: 7px;
  margin: auto 0;
  -webkit-transform: rotate(225deg);
  -ms-transform: rotate(225deg);
  transform: rotate(225deg);
  border: solid;
  border-width: 1px 1px 0 0;
  border-color: #505a5f;
}

.govuk-back-link:focus:before {
  border-color: #0b0c0c;
}

.govuk-back-link:after {
  content: "";
  position: absolute;
  top: -14px;
  right: 0;
  bottom: -14px;
  left: 0;
}

.govuk-breadcrumbs {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  color: #0b0c0c;
  margin-top: 15px;
  margin-bottom: 10px;
}
@media print {
  .govuk-breadcrumbs {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-breadcrumbs {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-breadcrumbs {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media print {
  .govuk-breadcrumbs {
    color: #000000;
  }
}

.govuk-breadcrumbs__list {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.govuk-breadcrumbs__list:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-breadcrumbs__list-item {
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  margin-left: 10px;
  padding-left: 15.655px;
  float: left;
}
.govuk-breadcrumbs__list-item:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -3.31px;
  width: 7px;
  height: 7px;
  margin: auto 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  border: solid;
  border-width: 1px 1px 0 0;
  border-color: #505a5f;
}
.govuk-breadcrumbs__list-item:first-child {
  margin-left: 0;
  padding-left: 0;
}
.govuk-breadcrumbs__list-item:first-child:before {
  content: none;
  display: none;
}

.govuk-breadcrumbs__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .govuk-breadcrumbs__link {
    font-family: sans-serif;
  }
}
.govuk-breadcrumbs__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {
    color: #000000;
  }
}
.govuk-breadcrumbs__link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {
    color: #000000;
  }
}

@media (max-width: 40.0525em) {
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item {
    display: none;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child, .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child {
    display: inline-block;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:before {
    top: 6px;
    margin: 0;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}

.govuk-button, .search__button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  width: 100%;
  margin-top: 0;
  margin-right: 0;
  margin-left: 0;
  margin-bottom: 22px;
  padding: 8px 10px 7px;
  border: 2px solid transparent;
  border-radius: 0;
  color: #ffffff;
  background-color: #00703c;
  box-shadow: 0 2px 0 rgb(0, 44.8, 24);
  text-align: center;
  vertical-align: top;
  cursor: pointer;
  -webkit-appearance: none;
}
@media print {
  .govuk-button, .search__button {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-button, .search__button {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1;
  }
}
@media print {
  .govuk-button, .search__button {
    font-size: 14pt;
    line-height: 19px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-button, .search__button {
    margin-bottom: 32px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-button, .search__button {
    width: auto;
  }
}
.govuk-button:link, .search__button:link, .govuk-button:visited, .search__button:visited, .govuk-button:active, .search__button:active, .govuk-button:hover, .search__button:hover {
  color: #ffffff;
  text-decoration: none;
}
.govuk-button::-moz-focus-inner, .search__button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.govuk-button:hover, .search__button:hover {
  background-color: rgb(0, 89.6, 48);
}
.govuk-button:active, .search__button:active {
  top: 2px;
}
.govuk-button:focus, .search__button:focus {
  border-color: #ffdd00;
  outline: 3px solid transparent;
  box-shadow: inset 0 0 0 1px #ffdd00;
}
.govuk-button:focus:not(:active):not(:hover), .search__button:focus:not(:active):not(:hover) {
  border-color: #ffdd00;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 2px 0 #0b0c0c;
}
.govuk-button:before, .search__button:before {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -4px;
  left: -2px;
  background: transparent;
}
.govuk-button:active:before, .search__button:active:before {
  top: -4px;
}

.govuk-button--disabled,
.govuk-button[disabled=disabled],
[disabled=disabled].search__button,
.govuk-button[disabled],
[disabled].search__button {
  opacity: 0.5;
}
.govuk-button--disabled:hover,
.govuk-button[disabled=disabled]:hover,
[disabled=disabled].search__button:hover,
.govuk-button[disabled]:hover,
[disabled].search__button:hover {
  background-color: #00703c;
  cursor: default;
}
.govuk-button--disabled:active,
.govuk-button[disabled=disabled]:active,
[disabled=disabled].search__button:active,
.govuk-button[disabled]:active,
[disabled].search__button:active {
  top: 0;
  box-shadow: 0 2px 0 rgb(0, 44.8, 24);
}

.govuk-button--secondary {
  background-color: #f3f2f1;
  box-shadow: 0 2px 0 rgb(145.8, 145.2, 144.6);
}
.govuk-button--secondary, .govuk-button--secondary:link, .govuk-button--secondary:visited, .govuk-button--secondary:active, .govuk-button--secondary:hover {
  color: #0b0c0c;
}
.govuk-button--secondary:hover {
  background-color: rgb(218.7, 217.8, 216.9);
}
.govuk-button--secondary:hover[disabled] {
  background-color: #f3f2f1;
}

.govuk-button--warning {
  background-color: #d4351c;
  box-shadow: 0 2px 0 rgb(84.8, 21.2, 11.2);
}
.govuk-button--warning, .govuk-button--warning:link, .govuk-button--warning:visited, .govuk-button--warning:active, .govuk-button--warning:hover {
  color: #ffffff;
}
.govuk-button--warning:hover {
  background-color: rgb(169.6, 42.4, 22.4);
}
.govuk-button--warning:hover[disabled] {
  background-color: #d4351c;
}

.govuk-button--start {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  min-height: auto;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}
@media (min-width: 40.0625em) {
  .govuk-button--start {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1;
  }
}
@media print {
  .govuk-button--start {
    font-size: 18pt;
    line-height: 1;
  }
}

.govuk-button__start-icon {
  margin-left: 5px;
  vertical-align: middle;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  align-self: center;
  forced-color-adjust: auto;
}
@media (min-width: 48.0625em) {
  .govuk-button__start-icon {
    margin-left: 10px;
  }
}

.govuk-error-message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 15px;
  clear: both;
  color: #d4351c;
}
@media print {
  .govuk-error-message {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-message {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-error-message {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.govuk-fieldset:after {
  content: "";
  display: block;
  clear: both;
}

@supports not (caret-color: auto) {
  .govuk-fieldset,
  x:-moz-any-link {
    display: table-cell;
  }
}
.govuk-fieldset__legend {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  box-sizing: border-box;
  display: table;
  max-width: 100%;
  margin-bottom: 10px;
  padding: 0;
  white-space: normal;
}
@media print {
  .govuk-fieldset__legend {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-fieldset__legend {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-fieldset__legend {
    color: #000000;
  }
}

.govuk-fieldset__legend--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}
@media print {
  .govuk-fieldset__legend--xl {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-fieldset__legend--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__legend--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  margin-bottom: 15px;
}
@media print {
  .govuk-fieldset__legend--l {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-fieldset__legend--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-fieldset__legend--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-bottom: 15px;
}
@media print {
  .govuk-fieldset__legend--m {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-fieldset__legend--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__legend--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-fieldset__legend--s {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-fieldset__legend--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__heading {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

.govuk-hint {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 15px;
  color: #505a5f;
}
@media print {
  .govuk-hint {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-hint {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-hint {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-hint {
  margin-bottom: 10px;
}

.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl) + .govuk-hint {
  margin-bottom: 10px;
}

.govuk-fieldset__legend + .govuk-hint {
  margin-top: -5px;
}

.govuk-label {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  display: block;
  margin-bottom: 5px;
}
@media print {
  .govuk-label {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-label {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-label {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-label {
    color: #000000;
  }
}

.govuk-label--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}
@media print {
  .govuk-label--xl {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-label--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-label--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-label--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  margin-bottom: 15px;
}
@media print {
  .govuk-label--l {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-label--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-label--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-label--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-bottom: 10px;
}
@media print {
  .govuk-label--m {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-label--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-label--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-label--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-label--s {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-label--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-label--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-label-wrapper {
  margin: 0;
}

.govuk-checkboxes__item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}
@media print {
  .govuk-checkboxes__item {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes__item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-checkboxes__item {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-checkboxes__item:last-child,
.govuk-checkboxes__item:last-of-type {
  margin-bottom: 0;
}

.govuk-checkboxes__input {
  cursor: pointer;
  position: absolute;
  z-index: 1;
  top: -2px;
  left: -2px;
  width: 44px;
  height: 44px;
  margin: 0;
  opacity: 0;
}

.govuk-checkboxes__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 8px 15px 5px;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.govuk-checkboxes__label:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 2px solid currentColor;
  background: transparent;
}

.govuk-checkboxes__label:after {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 11px;
  left: 9px;
  width: 23px;
  height: 12px;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  border: solid;
  border-width: 0 0 5px 5px;
  border-top-color: transparent;
  opacity: 0;
  background: transparent;
}

.govuk-checkboxes__hint {
  display: block;
  padding-right: 15px;
  padding-left: 15px;
}

.govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  border-width: 4px;
  outline: 3px solid transparent;
  outline-offset: 1px;
  box-shadow: 0 0 0 3px #ffdd00;
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    outline-color: Highlight;
  }
}

.govuk-checkboxes__input:checked + .govuk-checkboxes__label:after {
  opacity: 1;
}

.govuk-checkboxes__input:disabled,
.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
  cursor: default;
}

.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
  opacity: 0.5;
}

.govuk-checkboxes__divider {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}
@media print {
  .govuk-checkboxes__divider {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes__divider {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-checkboxes__divider {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-checkboxes__divider {
    color: #000000;
  }
}

.govuk-checkboxes__conditional {
  margin-bottom: 15px;
  margin-left: 18px;
  padding-left: 33px;
  border-left: 4px solid #b1b4b6;
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes__conditional {
    margin-bottom: 20px;
  }
}
.js-enabled .govuk-checkboxes__conditional--hidden {
  display: none;
}
.govuk-checkboxes__conditional > :last-child {
  margin-bottom: 0;
}

.govuk-checkboxes--small .govuk-checkboxes__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}
.govuk-checkboxes--small .govuk-checkboxes__item:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-checkboxes--small .govuk-checkboxes__input {
  left: -10px;
}
.govuk-checkboxes--small .govuk-checkboxes__label {
  margin-top: -2px;
  padding: 13px 15px 13px 1px;
  float: left;
}
@media (min-width: 40.0625em) {
  .govuk-checkboxes--small .govuk-checkboxes__label {
    padding: 11px 15px 10px 1px;
  }
}
.govuk-checkboxes--small .govuk-checkboxes__label:before {
  top: 8px;
  width: 24px;
  height: 24px;
}
.govuk-checkboxes--small .govuk-checkboxes__label:after {
  top: 15px;
  left: 6px;
  width: 12px;
  height: 6.5px;
  border-width: 0 0 3px 3px;
}
.govuk-checkboxes--small .govuk-checkboxes__hint {
  padding: 0;
  clear: both;
}
.govuk-checkboxes--small .govuk-checkboxes__conditional {
  margin-left: 10px;
  padding-left: 20px;
  clear: both;
}
.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 10px #b1b4b6;
}
.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 3px #ffdd00, 0 0 0 10px #b1b4b6;
}
@media (hover: none), (pointer: coarse) {
  .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
    box-shadow: initial;
  }
  .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    box-shadow: 0 0 0 3px #ffdd00;
  }
}

.govuk-textarea {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 40px;
  margin-bottom: 20px;
  padding: 5px;
  resize: vertical;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
}
@media print {
  .govuk-textarea {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-textarea {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-textarea {
    font-size: 14pt;
    line-height: 1.25;
  }
}
@media (min-width: 40.0625em) {
  .govuk-textarea {
    margin-bottom: 30px;
  }
}
.govuk-textarea:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-textarea--error {
  border: 2px solid #d4351c;
}
.govuk-textarea--error:focus {
  border-color: #0b0c0c;
}

.govuk-character-count {
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-character-count {
    margin-bottom: 30px;
  }
}
.govuk-character-count .govuk-form-group,
.govuk-character-count .govuk-textarea {
  margin-bottom: 5px;
}

.govuk-character-count__message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 0;
}
@media print {
  .govuk-character-count__message {
    font-family: sans-serif;
  }
}
@supports (font-variant-numeric: tabular-nums) {
  .govuk-character-count__message {
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    font-variant-numeric: tabular-nums;
  }
}

.govuk-character-count__message--disabled {
  visibility: hidden;
}

.govuk-cookie-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  padding-top: 20px;
  border-bottom: 10px solid transparent;
  background-color: #f3f2f1;
}
@media print {
  .govuk-cookie-banner {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-cookie-banner {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-cookie-banner {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-cookie-banner[hidden] {
  display: none;
}

.govuk-cookie-banner__message {
  margin-bottom: -10px;
}
.govuk-cookie-banner__message[hidden] {
  display: none;
}
.govuk-cookie-banner__message:focus {
  outline: none;
}

.govuk-summary-list, .summary-list--nested-list, .meta {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin: 0;
  margin-bottom: 20px;
}
@media print {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list, .summary-list--nested-list, .meta {
    margin-bottom: 30px;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__row, .govuk-summary-list__row-with-minimal-spacing, .meta__row {
    margin-bottom: 15px;
    border-bottom: 1px solid #b1b4b6;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__row, .govuk-summary-list__row-with-minimal-spacing, .meta__row {
    display: table-row;
  }
}

.govuk-summary-list__key, .meta__key,
.govuk-summary-list__value,
.summary-list__value--nested-list,
.summary-list__value--no-bottom-border,
.meta__value,
.govuk-summary-list__actions {
  margin: 0;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__key, .meta__key,
  .govuk-summary-list__value,
  .summary-list__value--nested-list,
  .summary-list__value--no-bottom-border,
  .meta__value,
  .govuk-summary-list__actions {
    display: table-cell;
    padding-top: 10px;
    padding-right: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #b1b4b6;
  }
}

.govuk-summary-list__actions {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__actions {
    width: 20%;
    padding-right: 0;
    text-align: right;
  }
}

.govuk-summary-list__key, .meta__key,
.govuk-summary-list__value,
.summary-list__value--nested-list,
.summary-list__value--no-bottom-border,
.meta__value {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.govuk-summary-list__key, .meta__key {
  margin-bottom: 5px;
  font-weight: 700;
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__key, .meta__key {
    width: 30%;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__value, .summary-list__value--nested-list, .summary-list__value--no-bottom-border, .meta__value {
    margin-bottom: 15px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__value, .summary-list__value--nested-list, .summary-list__value--no-bottom-border, .meta__value {
    width: 50%;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__value:last-child, .summary-list__value--nested-list:last-child, .summary-list__value--no-bottom-border:last-child, .meta__value:last-child {
    width: 70%;
  }
}

.govuk-summary-list__value > p, .summary-list__value--nested-list > p, .summary-list__value--no-bottom-border > p, .meta__value > p {
  margin-bottom: 10px;
}

.govuk-summary-list__value > :last-child, .summary-list__value--nested-list > :last-child, .summary-list__value--no-bottom-border > :last-child, .meta__value > :last-child {
  margin-bottom: 0;
}

.govuk-summary-list__actions-list {
  width: 100%;
  margin: 0;
  padding: 0;
}

.govuk-summary-list__actions-list-item {
  display: inline;
  margin-right: 10px;
  padding-right: 10px;
}

.govuk-summary-list__actions-list-item:not(:last-child) {
  border-right: 1px solid #b1b4b6;
}

.govuk-summary-list__actions-list-item:last-child {
  margin-right: 0;
  padding-right: 0;
  border: 0;
}

@media (max-width: 40.0525em) {
  .govuk-summary-list--no-border .govuk-summary-list__row, .govuk-summary-list--no-border .govuk-summary-list__row-with-minimal-spacing, .govuk-summary-list--no-border .meta__row {
    border: 0;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list--no-border .govuk-summary-list__key, .govuk-summary-list--no-border .meta__key,
  .govuk-summary-list--no-border .govuk-summary-list__value,
  .govuk-summary-list--no-border .summary-list__value--nested-list,
  .govuk-summary-list--no-border .summary-list__value--no-bottom-border,
  .govuk-summary-list--no-border .meta__value,
  .govuk-summary-list--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__row--no-border {
    border: 0;
  }
}
@media (min-width: 40.0625em) {
  .govuk-summary-list__row--no-border .govuk-summary-list__key, .govuk-summary-list__row--no-border .meta__key,
  .govuk-summary-list__row--no-border .govuk-summary-list__value,
  .govuk-summary-list__row--no-border .summary-list__value--nested-list,
  .govuk-summary-list__row--no-border .summary-list__value--no-bottom-border,
  .govuk-summary-list__row--no-border .meta__value,
  .govuk-summary-list__row--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

.govuk-input, .search__input {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  width: 100%;
  height: 40px;
  height: 2.5rem;
  margin-top: 0;
  padding: 5px;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
@media print {
  .govuk-input, .search__input {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-input, .search__input {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-input, .search__input {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-input:focus, .search__input:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-input::-webkit-outer-spin-button, .search__input::-webkit-outer-spin-button,
.govuk-input::-webkit-inner-spin-button,
.search__input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.govuk-input[type=number], [type=number].search__input {
  -moz-appearance: textfield;
}

.govuk-input--error {
  border: 2px solid #d4351c;
}
.govuk-input--error:focus {
  border-color: #0b0c0c;
}

.govuk-input--width-30 {
  max-width: 59ex;
}

.govuk-input--width-20 {
  max-width: 41ex;
}

.govuk-input--width-10, .text-input--meter-reading, .input--meter-reading {
  max-width: 23ex;
}

.govuk-input--width-5 {
  max-width: 10.8ex;
}

.govuk-input--width-4 {
  max-width: 9ex;
}

.govuk-input--width-3 {
  max-width: 7.2ex;
}

.govuk-input--width-2 {
  max-width: 5.4ex;
}

.govuk-input__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.govuk-input__wrapper .govuk-input, .govuk-input__wrapper .search__input {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}
.govuk-input__wrapper .govuk-input:focus, .govuk-input__wrapper .search__input:focus {
  z-index: 1;
}
@media (max-width: 19.99em) {
  .govuk-input__wrapper {
    display: block;
  }
  .govuk-input__wrapper .govuk-input, .govuk-input__wrapper .search__input {
    max-width: 100%;
  }
}

.govuk-input__prefix,
.govuk-input__suffix {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  display: inline-block;
  min-width: 40px;
  min-width: 2.5rem;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
  background-color: #f3f2f1;
  text-align: center;
  white-space: nowrap;
  cursor: default;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
@media print {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media (max-width: 40.0525em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    line-height: 1.6;
  }
}
@media (max-width: 19.99em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    display: block;
    height: 100%;
    white-space: normal;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__prefix {
    border-bottom: 0;
  }
}
@media (min-width: 20em) {
  .govuk-input__prefix {
    border-right: 0;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__suffix {
    border-top: 0;
  }
}
@media (min-width: 20em) {
  .govuk-input__suffix {
    border-left: 0;
  }
}

.govuk-date-input {
  font-size: 0;
}
.govuk-date-input:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-date-input__item {
  display: inline-block;
  margin-right: 20px;
  margin-bottom: 0;
}

.govuk-date-input__label {
  display: block;
}

.govuk-date-input__input {
  margin-bottom: 0;
}

.govuk-details {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-bottom: 20px;
  display: block;
}
@media print {
  .govuk-details {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-details {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-details {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-details {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-details {
    margin-bottom: 30px;
  }
}

.govuk-details__summary {
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  padding-left: 25px;
  color: #1d70b8;
  cursor: pointer;
}
.govuk-details__summary:hover {
  color: #003078;
}
.govuk-details__summary:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-details__summary-text {
  text-decoration: underline;
}

.govuk-details__summary:focus .govuk-details__summary-text {
  text-decoration: none;
}

.govuk-details__summary::-webkit-details-marker {
  display: none;
}

.govuk-details__summary:before {
  content: "";
  position: absolute;
  top: -1px;
  bottom: 0;
  left: 0;
  margin: auto;
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  border-width: 7px 0 7px 12.124px;
  border-left-color: inherit;
}
.govuk-details[open] > .govuk-details__summary:before {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  border-width: 12.124px 7px 0 7px;
  border-top-color: inherit;
}

.govuk-details__text {
  padding-top: 15px;
  padding-bottom: 15px;
  padding-left: 20px;
  border-left: 5px solid #b1b4b6;
}

.govuk-details__text p {
  margin-top: 0;
  margin-bottom: 20px;
}

.govuk-details__text > :last-child {
  margin-bottom: 0;
}

.govuk-error-summary {
  color: #0b0c0c;
  padding: 15px;
  margin-bottom: 30px;
  border: 5px solid #d4351c;
}
@media print {
  .govuk-error-summary {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary {
    padding: 20px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary {
    margin-bottom: 50px;
  }
}
.govuk-error-summary:focus {
  outline: 3px solid #ffdd00;
}

.govuk-error-summary__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-top: 0;
  margin-bottom: 15px;
}
@media print {
  .govuk-error-summary__title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__title {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-error-summary__title {
    font-size: 18pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__title {
    margin-bottom: 20px;
  }
}

.govuk-error-summary__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-error-summary__body {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__body {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-error-summary__body {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-error-summary__body p {
  margin-top: 0;
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-error-summary__body p {
    margin-bottom: 20px;
  }
}

.govuk-error-summary__list {
  margin-top: 0;
  margin-bottom: 0;
}

.govuk-error-summary__list a {
  font-weight: 700;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .govuk-error-summary__list a {
    font-family: sans-serif;
  }
}
.govuk-error-summary__list a:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-error-summary__list a:link, .govuk-error-summary__list a:visited {
  color: #d4351c;
}
.govuk-error-summary__list a:hover {
  color: rgb(148.4, 37.1, 19.6);
}
.govuk-error-summary__list a:active {
  color: #d4351c;
}
.govuk-error-summary__list a:focus {
  color: #0b0c0c;
}

.govuk-file-upload {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  max-width: 100%;
  margin-left: -5px;
  padding: 5px;
}
@media print {
  .govuk-file-upload {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-file-upload {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-file-upload {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-file-upload {
    color: #000000;
  }
}
.govuk-file-upload::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit;
}
.govuk-file-upload:focus {
  outline: 3px solid #ffdd00;
  box-shadow: inset 0 0 0 4px #0b0c0c;
}
.govuk-file-upload:focus-within {
  outline: 3px solid #ffdd00;
  box-shadow: inset 0 0 0 4px #0b0c0c;
}

.govuk-footer {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  padding-top: 25px;
  padding-bottom: 15px;
  border-top: 1px solid #b1b4b6;
  color: #0b0c0c;
  background: #f3f2f1;
}
@media print {
  .govuk-footer {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-footer {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-top: 40px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-bottom: 25px;
  }
}

.govuk-footer__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .govuk-footer__link {
    font-family: sans-serif;
  }
}
.govuk-footer__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-footer__link:link, .govuk-footer__link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-footer__link:link, .govuk-footer__link:visited {
    color: #000000;
  }
}
.govuk-footer__link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-footer__link:active, .govuk-footer__link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-footer__link:active, .govuk-footer__link:focus {
    color: #000000;
  }
}

.govuk-footer__section-break {
  margin: 0;
  margin-bottom: 30px;
  border: 0;
  border-bottom: 1px solid #b1b4b6;
}
@media (min-width: 40.0625em) {
  .govuk-footer__section-break {
    margin-bottom: 50px;
  }
}

.govuk-footer__meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-right: -15px;
  margin-left: -15px;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.govuk-footer__meta-item {
  margin-right: 15px;
  margin-bottom: 25px;
  margin-left: 15px;
}

.govuk-footer__meta-item--grow {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
@media (max-width: 40.0525em) {
  .govuk-footer__meta-item--grow {
    -webkit-flex-basis: 320px;
    -ms-flex-preferred-size: 320px;
    flex-basis: 320px;
  }
}

.govuk-footer__licence-logo {
  display: inline-block;
  margin-right: 10px;
  vertical-align: top;
  forced-color-adjust: auto;
}
@media (max-width: 48.0525em) {
  .govuk-footer__licence-logo {
    margin-bottom: 15px;
  }
}

.govuk-footer__licence-description {
  display: inline-block;
}

.govuk-footer__copyright-logo {
  display: inline-block;
  min-width: 125px;
  padding-top: 112px;
  background-image: url("/assets/images/govuk-crest.png");
  background-repeat: no-repeat;
  background-position: 50% 0%;
  background-size: 125px 102px;
  text-align: center;
  white-space: nowrap;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .govuk-footer__copyright-logo {
    background-image: url("/assets/images/govuk-crest-2x.png");
  }
}

.govuk-footer__inline-list {
  margin-top: 0;
  margin-bottom: 15px;
  padding: 0;
}

.govuk-footer__meta-custom {
  margin-bottom: 20px;
}

.govuk-footer__inline-list-item {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 5px;
}

.govuk-footer__heading {
  margin-bottom: 25px;
  padding-bottom: 20px;
  border-bottom: 1px solid #b1b4b6;
}
@media (min-width: 40.0625em) {
  .govuk-footer__heading {
    margin-bottom: 40px;
  }
}
@media (max-width: 40.0525em) {
  .govuk-footer__heading {
    padding-bottom: 10px;
  }
}

.govuk-footer__navigation {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-right: -15px;
  margin-left: -15px;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.govuk-footer__section {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 30px;
  margin-left: 15px;
  vertical-align: top;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  -webkit-flex-shrink: 1;
  -ms-flex-negative: 1;
  flex-shrink: 1;
}
@media (max-width: 48.0525em) {
  .govuk-footer__section {
    -webkit-flex-basis: 200px;
    -ms-flex-preferred-size: 200px;
    flex-basis: 200px;
  }
}

@media (min-width: 48.0625em) {
  .govuk-footer__section:first-child:nth-last-child(2) {
    -webkit-box-flex: 2;
    -webkit-flex-grow: 2;
    -ms-flex-positive: 2;
    flex-grow: 2;
  }
}
.govuk-footer__list {
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-column-gap: 30px;
  column-gap: 30px;
}
.govuk-footer__list .govuk-footer__link:hover {
  text-decoration-thickness: auto;
}

@media (min-width: 48.0625em) {
  .govuk-footer__list--columns-2 {
    -webkit-column-count: 2;
    column-count: 2;
  }
  .govuk-footer__list--columns-3 {
    -webkit-column-count: 3;
    column-count: 3;
  }
}
.govuk-footer__list-item {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .govuk-footer__list-item {
    margin-bottom: 20px;
  }
}

.govuk-footer__list-item:last-child {
  margin-bottom: 0;
}

.govuk-header {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  border-bottom: 10px solid #ffffff;
  color: #ffffff;
  background: #0b0c0c;
}
@media print {
  .govuk-header {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-header {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.govuk-header__container--full-width {
  padding: 0 15px;
  border-color: #1d70b8;
}
.govuk-header__container--full-width .govuk-header__menu-button {
  right: 15px;
}

.govuk-header__container {
  position: relative;
  margin-bottom: -10px;
  padding-top: 10px;
  border-bottom: 10px solid #1d70b8;
}
.govuk-header__container:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-header__logotype {
  display: inline-block;
  margin-right: 5px;
}
@media (forced-colors: active) {
  .govuk-header__logotype {
    forced-color-adjust: none;
    color: linktext;
  }
}
.govuk-header__logotype:last-child {
  margin-right: 0;
}

.govuk-header__logotype-crown {
  position: relative;
  top: -1px;
  margin-right: 1px;
  fill: currentColor;
  vertical-align: top;
}

.govuk-header__logotype-crown[width="32"] {
  top: -3px;
  margin-right: 2px;
}

.govuk-header__logotype-crown-fallback-image {
  width: 36px;
  height: 32px;
  border: 0;
  vertical-align: bottom;
}

.govuk-header__logotype-crown-fallback-image[width="32"] {
  width: 32px;
  height: 30px;
}

.govuk-header__product-name {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  display: inline-table;
}
@media print {
  .govuk-header__product-name {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-header__product-name {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1;
  }
}
@media print {
  .govuk-header__product-name {
    font-size: 18pt;
    line-height: 1;
  }
}

.govuk-header__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: none;
}
@media print {
  .govuk-header__link {
    font-family: sans-serif;
  }
}
.govuk-header__link:link, .govuk-header__link:visited {
  color: #ffffff;
}
.govuk-header__link:hover, .govuk-header__link:active {
  color: rgba(255, 255, 255, 0.99);
}
.govuk-header__link:focus {
  color: #0b0c0c;
}
.govuk-header__link:hover {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 0.1em;
}
.govuk-header__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-header__link--homepage {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  display: inline-block;
  margin-right: 10px;
  font-size: 30px;
  line-height: 1;
}
@media print {
  .govuk-header__link--homepage {
    font-family: sans-serif;
  }
}
.govuk-header__link--homepage:link, .govuk-header__link--homepage:visited {
  text-decoration: none;
}
.govuk-header__link--homepage:hover, .govuk-header__link--homepage:active {
  margin-bottom: -3px;
  border-bottom: 3px solid;
}
.govuk-header__link--homepage:focus {
  margin-bottom: 0;
  border-bottom: 0;
}

.govuk-header__link--service-name {
  display: inline-block;
  margin-bottom: 10px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media print {
  .govuk-header__link--service-name {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-header__link--service-name {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header__link--service-name {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-header__logo,
.govuk-header__content {
  box-sizing: border-box;
}

.govuk-header__logo {
  margin-bottom: 10px;
  padding-right: 50px;
}
@media (min-width: 40.0625em) {
  .govuk-header__logo {
    margin-bottom: 10px;
  }
}
@media (min-width: 48.0625em) {
  .govuk-header__logo {
    width: 33.33%;
    padding-right: 15px;
    float: left;
    vertical-align: top;
  }
}

@media (min-width: 48.0625em) {
  .govuk-header__content {
    width: 66.66%;
    padding-left: 15px;
    float: left;
  }
}

.govuk-header__menu-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  display: none;
  position: absolute;
  top: 20px;
  right: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: #ffffff;
  background: none;
  cursor: pointer;
}
@media print {
  .govuk-header__menu-button {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-header__menu-button {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header__menu-button {
    font-size: 14pt;
    line-height: 1.2;
  }
}
.govuk-header__menu-button:hover {
  -webkit-text-decoration: solid underline 3px;
  text-decoration: solid underline 3px;
  text-underline-offset: 0.1em;
}
.govuk-header__menu-button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-header__menu-button:after {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  border-width: 8.66px 5px 0 5px;
  border-top-color: inherit;
  content: "";
  margin-left: 5px;
}
@media (min-width: 40.0625em) {
  .govuk-header__menu-button {
    top: 15px;
  }
}

.govuk-header__menu-button--open:after {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-width: 0 5px 8.66px 5px;
  border-bottom-color: inherit;
}

.govuk-header__navigation {
  margin-bottom: 10px;
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 40.0625em) {
  .govuk-header__navigation {
    margin-bottom: 10px;
  }
}

.js-enabled .govuk-header__menu-button {
  display: block;
}
@media (min-width: 48.0625em) {
  .js-enabled .govuk-header__menu-button {
    display: none;
  }
}
.js-enabled .govuk-header__navigation {
  display: none;
}
@media (min-width: 48.0625em) {
  .js-enabled .govuk-header__navigation {
    display: block;
  }
}
.js-enabled .govuk-header__navigation--open {
  display: block;
}

@media (min-width: 48.0625em) {
  .govuk-header__navigation--end {
    margin: 0;
    padding: 5px 0;
    text-align: right;
  }
}

.govuk-header__navigation--no-service-name {
  padding-top: 40px;
}

.govuk-header__navigation-item {
  padding: 10px 0;
  border-bottom: 1px solid #2e3133;
}
@media (min-width: 48.0625em) {
  .govuk-header__navigation-item {
    display: inline-block;
    margin-right: 15px;
    padding: 5px 0;
    border: 0;
  }
}
.govuk-header__navigation-item a {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  white-space: nowrap;
}
@media print {
  .govuk-header__navigation-item a {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-header__navigation-item a {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-header__navigation-item a {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.govuk-header__navigation-item--active a:link, .govuk-header__navigation-item--active a:hover, .govuk-header__navigation-item--active a:visited {
  color: #1d8feb;
}
.govuk-header__navigation-item--active a:focus {
  color: #0b0c0c;
}

.govuk-header__navigation-item:last-child {
  margin-right: 0;
}

@media print {
  .govuk-header {
    border-bottom-width: 0;
    color: #0b0c0c;
    background: transparent;
  }
  .govuk-header__logotype-crown-fallback-image {
    display: none;
  }
  .govuk-header__link:link, .govuk-header__link:visited {
    color: #0b0c0c;
  }
  .govuk-header__link:after {
    display: none;
  }
}
.govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  padding: 15px;
  margin-top: 20px;
  margin-bottom: 20px;
  clear: both;
  border-left: 10px solid #b1b4b6;
}
@media print {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    margin-top: 30px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-inset-text, .inset-text--clickable, .inset-text__versions--this-version, .alert, .alert--error {
    margin-bottom: 30px;
  }
}
.govuk-inset-text > :first-child, .inset-text--clickable > :first-child, .inset-text__versions--this-version > :first-child, .alert > :first-child, .alert--error > :first-child {
  margin-top: 0;
}
.govuk-inset-text > :only-child, .inset-text--clickable > :only-child, .inset-text__versions--this-version > :only-child, .alert > :only-child, .alert--error > :only-child,
.govuk-inset-text > :last-child,
.inset-text--clickable > :last-child,
.inset-text__versions--this-version > :last-child,
.alert > :last-child,
.alert--error > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-bottom: 30px;
  border: 5px solid #1d70b8;
  background-color: #1d70b8;
}
@media print {
  .govuk-notification-banner {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-notification-banner {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    margin-bottom: 50px;
  }
}
.govuk-notification-banner:focus {
  outline: 3px solid #ffdd00;
}

.govuk-notification-banner__header {
  padding: 2px 15px 5px;
  border-bottom: 1px solid transparent;
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__header {
    padding: 2px 20px 5px;
  }
}

.govuk-notification-banner__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin: 0;
  padding: 0;
  color: #ffffff;
}
@media print {
  .govuk-notification-banner__title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__title {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-notification-banner__title {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-notification-banner__content {
  color: #0b0c0c;
  padding: 15px;
  background-color: #ffffff;
}
@media print {
  .govuk-notification-banner__content {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__content {
    padding: 20px;
  }
}
.govuk-notification-banner__content > * {
  box-sizing: border-box;
  max-width: 605px;
}
.govuk-notification-banner__content > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner__heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin: 0 0 15px 0;
  padding: 0;
}
@media print {
  .govuk-notification-banner__heading {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-notification-banner__heading {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-notification-banner__heading {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-notification-banner__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
}
@media print {
  .govuk-notification-banner__link {
    font-family: sans-serif;
  }
}
.govuk-notification-banner__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-notification-banner__link:link {
  color: #1d70b8;
}
.govuk-notification-banner__link:visited {
  color: #1d70b8;
}
.govuk-notification-banner__link:hover {
  color: #003078;
}
.govuk-notification-banner__link:active {
  color: #0b0c0c;
}
.govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

.govuk-notification-banner--success {
  border-color: #00703c;
  background-color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:link, .govuk-notification-banner--success .govuk-notification-banner__link:visited {
  color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:hover {
  color: rgb(0, 78.4, 42);
}
.govuk-notification-banner--success .govuk-notification-banner__link:active {
  color: #00703c;
}
.govuk-notification-banner--success .govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

.govuk-panel, .panel {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  margin-bottom: 15px;
  padding: 35px;
  border: 5px solid transparent;
  text-align: center;
}
@media print {
  .govuk-panel, .panel {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-panel, .panel {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-panel, .panel {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media (max-width: 40.0525em) {
  .govuk-panel, .panel {
    padding: 10px;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
}

.govuk-panel--confirmation, .panel--confirmation {
  color: #ffffff;
  background: #00703c;
}
@media print {
  .govuk-panel--confirmation, .panel--confirmation {
    border-color: currentColor;
    color: #000000;
    background: none;
  }
}

.govuk-panel__title, .panel__title {
  margin-top: 0;
  margin-bottom: 30px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}
@media print {
  .govuk-panel__title, .panel__title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-panel__title, .panel__title {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-panel__title, .panel__title {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-panel__title:last-child, .panel__title:last-child {
  margin-bottom: 0;
}

.govuk-panel__body, .panel__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
}
@media print {
  .govuk-panel__body, .panel__body {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-panel__body, .panel__body {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-panel__body, .panel__body {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-tag {
  display: inline-block;
  outline: 2px solid transparent;
  outline-offset: -2px;
  color: #ffffff;
  background-color: #1d70b8;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1;
  padding-top: 5px;
  padding-right: 8px;
  padding-bottom: 4px;
  padding-left: 8px;
}
@media print {
  .govuk-tag {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-tag {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1;
  }
}
@media print {
  .govuk-tag {
    font-size: 14pt;
    line-height: 1;
  }
}

.govuk-tag--inactive {
  background-color: #505a5f;
}

.govuk-tag--grey {
  color: rgb(56, 63, 66.5);
  background: rgb(237.5, 238.5, 239);
}

.govuk-tag--purple {
  color: rgb(60.8, 35.2, 116.8);
  background: rgb(219.2, 212.8, 233.2);
}

.govuk-tag--turquoise {
  color: rgb(16, 64.4, 60.4);
  background: rgb(190.5, 226.8, 223.8);
}

.govuk-tag--blue {
  color: rgb(20.3, 78.4, 128.8);
  background: rgb(209.8, 226.4, 240.8);
}

.govuk-tag--yellow {
  color: rgb(89.25, 77.35, 0);
  background: rgb(255, 246.5, 191.25);
}

.govuk-tag--orange {
  color: rgb(109.8, 53.55, 25.2);
  background: rgb(251.7, 214.2, 195.3);
}

.govuk-tag--red {
  color: rgb(148.4, 37.1, 19.6);
  background: rgb(246.4, 214.6, 209.6);
}

.govuk-tag--pink {
  color: rgb(127.8, 33.6, 76.8);
  background: rgb(246.6, 215.2, 229.6);
}

.govuk-tag--green {
  color: rgb(0, 89.6, 48);
  background: rgb(204, 226.4, 216);
}

.govuk-phase-banner {
  padding-top: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #b1b4b6;
}

.govuk-phase-banner__content {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  color: #0b0c0c;
  display: table;
  margin: 0;
}
@media print {
  .govuk-phase-banner__content {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-phase-banner__content {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-phase-banner__content {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media print {
  .govuk-phase-banner__content {
    color: #000000;
  }
}

.govuk-phase-banner__content__tag {
  margin-right: 10px;
}

.govuk-phase-banner__text {
  display: table-cell;
  vertical-align: middle;
}

.govuk-tabs {
  margin-top: 5px;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-top: 5px;
  }
}
@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-bottom: 30px;
  }
}

.govuk-tabs__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-bottom: 10px;
}
@media print {
  .govuk-tabs__title {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-tabs__title {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-tabs__title {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-tabs__title {
    color: #000000;
  }
}

.govuk-tabs__list {
  margin: 0;
  padding: 0;
  list-style: none;
  margin-bottom: 20px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs__list {
    margin-bottom: 30px;
  }
}

.govuk-tabs__list-item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-left: 25px;
}
@media print {
  .govuk-tabs__list-item {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-tabs__list-item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-tabs__list-item {
    font-size: 14pt;
    line-height: 1.15;
  }
}
.govuk-tabs__list-item:before {
  color: #0b0c0c;
  content: "—";
  margin-left: -25px;
  padding-right: 5px;
}
@media print {
  .govuk-tabs__list-item:before {
    color: #000000;
  }
}

.govuk-tabs__tab {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  display: inline-block;
  margin-bottom: 10px;
}
@media print {
  .govuk-tabs__tab {
    font-family: sans-serif;
  }
}
.govuk-tabs__tab:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}
.govuk-tabs__tab:link {
  color: #1d70b8;
}
.govuk-tabs__tab:visited {
  color: #4c2c92;
}
.govuk-tabs__tab:hover {
  color: #003078;
}
.govuk-tabs__tab:active {
  color: #0b0c0c;
}
.govuk-tabs__tab:focus {
  color: #0b0c0c;
}

.govuk-tabs__panel {
  margin-bottom: 30px;
}
@media (min-width: 40.0625em) {
  .govuk-tabs__panel {
    margin-bottom: 50px;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list {
    margin-bottom: 0;
    border-bottom: 1px solid #b1b4b6;
  }
  .js-enabled .govuk-tabs__list:after {
    content: "";
    display: block;
    clear: both;
  }
  .js-enabled .govuk-tabs__title {
    display: none;
  }
  .js-enabled .govuk-tabs__list-item {
    position: relative;
    margin-right: 5px;
    margin-bottom: 0;
    margin-left: 0;
    padding: 10px 20px;
    float: left;
    background-color: #f3f2f1;
    text-align: center;
  }
  .js-enabled .govuk-tabs__list-item:before {
    content: none;
  }
  .js-enabled .govuk-tabs__list-item--selected {
    position: relative;
    margin-top: -5px;
    margin-bottom: -1px;
    padding-top: 14px;
    padding-right: 19px;
    padding-bottom: 16px;
    padding-left: 19px;
    border: 1px solid #b1b4b6;
    border-bottom: 0;
    background-color: #ffffff;
  }
  .js-enabled .govuk-tabs__list-item--selected .govuk-tabs__tab {
    text-decoration: none;
  }
  .js-enabled .govuk-tabs__tab {
    margin-bottom: 0;
  }
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #0b0c0c;
  }
}
@media print and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:hover {
    color: rgba(11, 12, 12, 0.99);
  }
  .js-enabled .govuk-tabs__tab:active, .js-enabled .govuk-tabs__tab:focus {
    color: #0b0c0c;
  }
}
@media print and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:active, .js-enabled .govuk-tabs__tab:focus {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .js-enabled .govuk-tabs__panel {
    margin-bottom: 0;
    padding: 30px 20px;
    border: 1px solid #b1b4b6;
    border-top: 0;
  }
}
@media (min-width: 40.0625em) and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__panel {
    margin-bottom: 0;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__panel > :last-child {
    margin-bottom: 0;
  }
  .js-enabled .govuk-tabs__panel--hidden {
    display: none;
  }
}

.govuk-radios__item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}
@media print {
  .govuk-radios__item {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-radios__item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-radios__item {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-radios__item:last-child,
.govuk-radios__item:last-of-type {
  margin-bottom: 0;
}

.govuk-radios__input {
  cursor: pointer;
  position: absolute;
  z-index: 1;
  top: -2px;
  left: -2px;
  width: 44px;
  height: 44px;
  margin: 0;
  opacity: 0;
}

.govuk-radios__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 8px 15px 5px;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.govuk-radios__label:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
}

.govuk-radios__label:after {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  width: 0;
  height: 0;
  border: 10px solid currentColor;
  border-radius: 50%;
  opacity: 0;
  background: currentColor;
}

.govuk-radios__hint {
  display: block;
  padding-right: 15px;
  padding-left: 15px;
}

.govuk-radios__input:focus + .govuk-radios__label:before {
  border-width: 4px;
  outline: 3px solid transparent;
  outline-offset: 1px;
  box-shadow: 0 0 0 4px #ffdd00;
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-radios__input:focus + .govuk-radios__label:before {
    outline-color: Highlight;
  }
}

.govuk-radios__input:checked + .govuk-radios__label:after {
  opacity: 1;
}

.govuk-radios__input:disabled,
.govuk-radios__input:disabled + .govuk-radios__label {
  cursor: default;
}

.govuk-radios__input:disabled + .govuk-radios__label {
  opacity: 0.5;
}

@media (min-width: 40.0625em) {
  .govuk-radios--inline:after {
    content: "";
    display: block;
    clear: both;
  }
  .govuk-radios--inline .govuk-radios__item {
    margin-right: 20px;
    float: left;
    clear: none;
  }
}
.govuk-radios--inline.govuk-radios--conditional .govuk-radios__item {
  margin-right: 0;
  float: none;
}

.govuk-radios__divider {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}
@media print {
  .govuk-radios__divider {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-radios__divider {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-radios__divider {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-radios__divider {
    color: #000000;
  }
}

.govuk-radios__conditional {
  margin-bottom: 15px;
  margin-left: 18px;
  padding-left: 33px;
  border-left: 4px solid #b1b4b6;
}
@media (min-width: 40.0625em) {
  .govuk-radios__conditional {
    margin-bottom: 20px;
  }
}
.js-enabled .govuk-radios__conditional--hidden {
  display: none;
}
.govuk-radios__conditional > :last-child {
  margin-bottom: 0;
}

.govuk-radios--small .govuk-radios__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}
.govuk-radios--small .govuk-radios__item:after {
  content: "";
  display: block;
  clear: both;
}
.govuk-radios--small .govuk-radios__input {
  left: -10px;
}
.govuk-radios--small .govuk-radios__label {
  margin-top: -2px;
  padding: 13px 15px 13px 1px;
  float: left;
}
@media (min-width: 40.0625em) {
  .govuk-radios--small .govuk-radios__label {
    padding: 11px 15px 10px 1px;
  }
}
.govuk-radios--small .govuk-radios__label:before {
  top: 8px;
  width: 24px;
  height: 24px;
}
.govuk-radios--small .govuk-radios__label:after {
  top: 15px;
  left: 7px;
  border-width: 5px;
}
.govuk-radios--small .govuk-radios__hint {
  padding: 0;
  clear: both;
  pointer-events: none;
}
.govuk-radios--small .govuk-radios__conditional {
  margin-left: 10px;
  padding-left: 20px;
  clear: both;
}
.govuk-radios--small .govuk-radios__divider {
  width: 24px;
  margin-bottom: 5px;
}
.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
  box-shadow: 0 0 0 10px #b1b4b6;
}
.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
  box-shadow: 0 0 0 4px #ffdd00, 0 0 0 10px #b1b4b6;
}
@media (hover: none), (pointer: coarse) {
  .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
    box-shadow: initial;
  }
  .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
    box-shadow: 0 0 0 4px #ffdd00;
  }
}

.govuk-select {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  max-width: 100%;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
}
@media print {
  .govuk-select {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-select {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-select {
    font-size: 14pt;
    line-height: 1.25;
  }
}
.govuk-select:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-select option:active,
.govuk-select option:checked,
.govuk-select:focus::-ms-value {
  color: #ffffff;
  background-color: #1d70b8;
}

.govuk-select--error {
  border: 2px solid #d4351c;
}
.govuk-select--error:focus {
  border-color: #0b0c0c;
}

.govuk-skip-link {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  display: block;
  padding: 10px 15px;
}
.govuk-skip-link:active, .govuk-skip-link:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  -webkit-clip-path: none !important;
  clip-path: none !important;
  white-space: inherit !important;
}
@media print {
  .govuk-skip-link {
    font-family: sans-serif;
  }
}
.govuk-skip-link:link, .govuk-skip-link:visited {
  color: #0b0c0c;
}
@media print {
  .govuk-skip-link:link, .govuk-skip-link:visited {
    color: #000000;
  }
}
.govuk-skip-link:hover {
  color: rgba(11, 12, 12, 0.99);
}
.govuk-skip-link:active, .govuk-skip-link:focus {
  color: #0b0c0c;
}
@media print {
  .govuk-skip-link:active, .govuk-skip-link:focus {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-skip-link {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-skip-link {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@supports (padding: max(calc(0px))) {
  .govuk-skip-link {
    padding-right: max(15px, calc(15px + env(safe-area-inset-right)));
    padding-left: max(15px, calc(15px + env(safe-area-inset-left)));
  }
}
.govuk-skip-link:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  background-color: #ffdd00;
  box-shadow: none;
}

.govuk-table {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 100%;
  margin-bottom: 20px;
  border-spacing: 0;
  border-collapse: collapse;
}
@media print {
  .govuk-table {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-table {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-table {
    color: #000000;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table {
    margin-bottom: 30px;
  }
}

.govuk-table__header, .table__header--width-20, .table__header--width-15, .table__header--width-10, .table__header--tall {
  font-weight: 700;
}

.govuk-table__header, .table__header--width-20, .table__header--width-15, .table__header--width-10, .table__header--tall,
.govuk-table__cell,
.table__cell--totals,
.table__cell--tall {
  padding: 10px 20px 10px 0;
  border-bottom: 1px solid #b1b4b6;
  text-align: left;
  vertical-align: top;
}

.govuk-table__cell--numeric {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
  font-weight: 400;
}
@media print {
  .govuk-table__cell--numeric {
    font-family: sans-serif;
  }
}
@supports (font-variant-numeric: tabular-nums) {
  .govuk-table__cell--numeric {
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    font-variant-numeric: tabular-nums;
  }
}

.govuk-table__header--numeric,
.govuk-table__cell--numeric {
  text-align: right;
}

.govuk-table__header:last-child, .table__header--width-20:last-child, .table__header--width-15:last-child, .table__header--width-10:last-child, .table__header--tall:last-child,
.govuk-table__cell:last-child,
.table__cell--totals:last-child,
.table__cell--tall:last-child {
  padding-right: 0;
}

.govuk-table__caption {
  font-weight: 700;
  display: table-caption;
  text-align: left;
}

.govuk-table__caption--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}
@media print {
  .govuk-table__caption--xl {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.0416666667;
  }
}
@media print {
  .govuk-table__caption--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-table__caption--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.0416666667;
  margin-bottom: 15px;
}
@media print {
  .govuk-table__caption--l {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.1111111111;
  }
}
@media print {
  .govuk-table__caption--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-table__caption--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
  margin-bottom: 15px;
}
@media print {
  .govuk-table__caption--m {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .govuk-table__caption--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-table__caption--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .govuk-table__caption--s {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-table__caption--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-table__caption--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-warning-text {
  position: relative;
  margin-bottom: 20px;
  padding: 10px 0;
}
@media (min-width: 40.0625em) {
  .govuk-warning-text {
    margin-bottom: 30px;
  }
}

.govuk-warning-text__assistive {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.govuk-warning-text__icon {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  box-sizing: border-box;
  display: inline-block;
  position: absolute;
  left: 0;
  min-width: 35px;
  min-height: 35px;
  margin-top: -7px;
  border: 3px solid #0b0c0c;
  border-radius: 50%;
  color: #ffffff;
  background: #0b0c0c;
  font-size: 30px;
  line-height: 29px;
  text-align: center;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  forced-color-adjust: none;
}
@media print {
  .govuk-warning-text__icon {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-warning-text__icon {
    margin-top: -5px;
  }
}
@media screen and (forced-colors: active) {
  .govuk-warning-text__icon {
    border-color: windowText;
    color: windowText;
    background: transparent;
  }
}

.govuk-warning-text__text {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  display: block;
  padding-left: 45px;
}
@media print {
  .govuk-warning-text__text {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .govuk-warning-text__text {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .govuk-warning-text__text {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media print {
  .govuk-warning-text__text {
    color: #000000;
  }
}

.govuk-clearfix:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.govuk-visually-hidden-focusable {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.govuk-visually-hidden-focusable:active, .govuk-visually-hidden-focusable:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  -webkit-clip-path: none !important;
  clip-path: none !important;
  white-space: inherit !important;
}

.govuk-\!-display-inline {
  display: inline !important;
}

.govuk-\!-display-inline-block {
  display: inline-block !important;
}

.govuk-\!-display-block {
  display: block !important;
}

.govuk-\!-display-none {
  display: none !important;
}

@media print {
  .govuk-\!-display-none-print {
    display: none !important;
  }
}
.govuk-\!-margin-0 {
  margin: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-0 {
    margin: 0 !important;
  }
}

.govuk-\!-margin-top-0 {
  margin-top: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-0 {
    margin-top: 0 !important;
  }
}

.govuk-\!-margin-right-0 {
  margin-right: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-0 {
    margin-right: 0 !important;
  }
}

.govuk-\!-margin-bottom-0 {
  margin-bottom: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-0 {
    margin-bottom: 0 !important;
  }
}

.govuk-\!-margin-left-0 {
  margin-left: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-0 {
    margin-left: 0 !important;
  }
}

.govuk-\!-margin-1 {
  margin: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-1 {
    margin: 5px !important;
  }
}

.govuk-\!-margin-top-1 {
  margin-top: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-1 {
    margin-top: 5px !important;
  }
}

.govuk-\!-margin-right-1 {
  margin-right: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-1 {
    margin-right: 5px !important;
  }
}

.govuk-\!-margin-bottom-1 {
  margin-bottom: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-1 {
    margin-bottom: 5px !important;
  }
}

.govuk-\!-margin-left-1 {
  margin-left: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-1 {
    margin-left: 5px !important;
  }
}

.govuk-\!-margin-2 {
  margin: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-2 {
    margin: 10px !important;
  }
}

.govuk-\!-margin-top-2 {
  margin-top: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-2 {
    margin-top: 10px !important;
  }
}

.govuk-\!-margin-right-2 {
  margin-right: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-2 {
    margin-right: 10px !important;
  }
}

.govuk-\!-margin-bottom-2 {
  margin-bottom: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-2 {
    margin-bottom: 10px !important;
  }
}

.govuk-\!-margin-left-2 {
  margin-left: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-2 {
    margin-left: 10px !important;
  }
}

.govuk-\!-margin-3 {
  margin: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-3 {
    margin: 15px !important;
  }
}

.govuk-\!-margin-top-3 {
  margin-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-3 {
    margin-top: 15px !important;
  }
}

.govuk-\!-margin-right-3 {
  margin-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-3 {
    margin-right: 15px !important;
  }
}

.govuk-\!-margin-bottom-3 {
  margin-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-3 {
    margin-bottom: 15px !important;
  }
}

.govuk-\!-margin-left-3 {
  margin-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-3 {
    margin-left: 15px !important;
  }
}

.govuk-\!-margin-4 {
  margin: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-4 {
    margin: 20px !important;
  }
}

.govuk-\!-margin-top-4 {
  margin-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-4 {
    margin-top: 20px !important;
  }
}

.govuk-\!-margin-right-4 {
  margin-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-4 {
    margin-right: 20px !important;
  }
}

.govuk-\!-margin-bottom-4 {
  margin-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-4 {
    margin-bottom: 20px !important;
  }
}

.govuk-\!-margin-left-4 {
  margin-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-4 {
    margin-left: 20px !important;
  }
}

.govuk-\!-margin-5 {
  margin: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-5 {
    margin: 25px !important;
  }
}

.govuk-\!-margin-top-5 {
  margin-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-5 {
    margin-top: 25px !important;
  }
}

.govuk-\!-margin-right-5 {
  margin-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-5 {
    margin-right: 25px !important;
  }
}

.govuk-\!-margin-bottom-5 {
  margin-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-5 {
    margin-bottom: 25px !important;
  }
}

.govuk-\!-margin-left-5 {
  margin-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-5 {
    margin-left: 25px !important;
  }
}

.govuk-\!-margin-6 {
  margin: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-6 {
    margin: 30px !important;
  }
}

.govuk-\!-margin-top-6 {
  margin-top: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-6 {
    margin-top: 30px !important;
  }
}

.govuk-\!-margin-right-6 {
  margin-right: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-6 {
    margin-right: 30px !important;
  }
}

.govuk-\!-margin-bottom-6 {
  margin-bottom: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-6 {
    margin-bottom: 30px !important;
  }
}

.govuk-\!-margin-left-6 {
  margin-left: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-6 {
    margin-left: 30px !important;
  }
}

.govuk-\!-margin-7 {
  margin: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-7 {
    margin: 40px !important;
  }
}

.govuk-\!-margin-top-7 {
  margin-top: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-7 {
    margin-top: 40px !important;
  }
}

.govuk-\!-margin-right-7 {
  margin-right: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-7 {
    margin-right: 40px !important;
  }
}

.govuk-\!-margin-bottom-7 {
  margin-bottom: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-7 {
    margin-bottom: 40px !important;
  }
}

.govuk-\!-margin-left-7 {
  margin-left: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-7 {
    margin-left: 40px !important;
  }
}

.govuk-\!-margin-8 {
  margin: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-8 {
    margin: 50px !important;
  }
}

.govuk-\!-margin-top-8 {
  margin-top: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-8 {
    margin-top: 50px !important;
  }
}

.govuk-\!-margin-right-8 {
  margin-right: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-8 {
    margin-right: 50px !important;
  }
}

.govuk-\!-margin-bottom-8 {
  margin-bottom: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-8 {
    margin-bottom: 50px !important;
  }
}

.govuk-\!-margin-left-8 {
  margin-left: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-8 {
    margin-left: 50px !important;
  }
}

.govuk-\!-margin-9 {
  margin: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-9 {
    margin: 60px !important;
  }
}

.govuk-\!-margin-top-9 {
  margin-top: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-9 {
    margin-top: 60px !important;
  }
}

.govuk-\!-margin-right-9 {
  margin-right: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-9 {
    margin-right: 60px !important;
  }
}

.govuk-\!-margin-bottom-9 {
  margin-bottom: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-9 {
    margin-bottom: 60px !important;
  }
}

.govuk-\!-margin-left-9 {
  margin-left: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-9 {
    margin-left: 60px !important;
  }
}

.govuk-\!-padding-0 {
  padding: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-0 {
    padding: 0 !important;
  }
}

.govuk-\!-padding-top-0 {
  padding-top: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-0 {
    padding-top: 0 !important;
  }
}

.govuk-\!-padding-right-0 {
  padding-right: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-0 {
    padding-right: 0 !important;
  }
}

.govuk-\!-padding-bottom-0 {
  padding-bottom: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-0 {
    padding-bottom: 0 !important;
  }
}

.govuk-\!-padding-left-0 {
  padding-left: 0 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-0 {
    padding-left: 0 !important;
  }
}

.govuk-\!-padding-1 {
  padding: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-1 {
    padding: 5px !important;
  }
}

.govuk-\!-padding-top-1 {
  padding-top: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-1 {
    padding-top: 5px !important;
  }
}

.govuk-\!-padding-right-1 {
  padding-right: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-1 {
    padding-right: 5px !important;
  }
}

.govuk-\!-padding-bottom-1 {
  padding-bottom: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-1 {
    padding-bottom: 5px !important;
  }
}

.govuk-\!-padding-left-1 {
  padding-left: 5px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-1 {
    padding-left: 5px !important;
  }
}

.govuk-\!-padding-2 {
  padding: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-2 {
    padding: 10px !important;
  }
}

.govuk-\!-padding-top-2 {
  padding-top: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-2 {
    padding-top: 10px !important;
  }
}

.govuk-\!-padding-right-2 {
  padding-right: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-2 {
    padding-right: 10px !important;
  }
}

.govuk-\!-padding-bottom-2 {
  padding-bottom: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-2 {
    padding-bottom: 10px !important;
  }
}

.govuk-\!-padding-left-2 {
  padding-left: 10px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-2 {
    padding-left: 10px !important;
  }
}

.govuk-\!-padding-3 {
  padding: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-3 {
    padding: 15px !important;
  }
}

.govuk-\!-padding-top-3 {
  padding-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-3 {
    padding-top: 15px !important;
  }
}

.govuk-\!-padding-right-3 {
  padding-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-3 {
    padding-right: 15px !important;
  }
}

.govuk-\!-padding-bottom-3 {
  padding-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-3 {
    padding-bottom: 15px !important;
  }
}

.govuk-\!-padding-left-3 {
  padding-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-3 {
    padding-left: 15px !important;
  }
}

.govuk-\!-padding-4 {
  padding: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-4 {
    padding: 20px !important;
  }
}

.govuk-\!-padding-top-4 {
  padding-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-4 {
    padding-top: 20px !important;
  }
}

.govuk-\!-padding-right-4 {
  padding-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-4 {
    padding-right: 20px !important;
  }
}

.govuk-\!-padding-bottom-4 {
  padding-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-4 {
    padding-bottom: 20px !important;
  }
}

.govuk-\!-padding-left-4 {
  padding-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-4 {
    padding-left: 20px !important;
  }
}

.govuk-\!-padding-5 {
  padding: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-5 {
    padding: 25px !important;
  }
}

.govuk-\!-padding-top-5 {
  padding-top: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-5 {
    padding-top: 25px !important;
  }
}

.govuk-\!-padding-right-5 {
  padding-right: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-5 {
    padding-right: 25px !important;
  }
}

.govuk-\!-padding-bottom-5 {
  padding-bottom: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-5 {
    padding-bottom: 25px !important;
  }
}

.govuk-\!-padding-left-5 {
  padding-left: 15px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-5 {
    padding-left: 25px !important;
  }
}

.govuk-\!-padding-6 {
  padding: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-6 {
    padding: 30px !important;
  }
}

.govuk-\!-padding-top-6 {
  padding-top: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-6 {
    padding-top: 30px !important;
  }
}

.govuk-\!-padding-right-6 {
  padding-right: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-6 {
    padding-right: 30px !important;
  }
}

.govuk-\!-padding-bottom-6 {
  padding-bottom: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-6 {
    padding-bottom: 30px !important;
  }
}

.govuk-\!-padding-left-6 {
  padding-left: 20px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-6 {
    padding-left: 30px !important;
  }
}

.govuk-\!-padding-7 {
  padding: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-7 {
    padding: 40px !important;
  }
}

.govuk-\!-padding-top-7 {
  padding-top: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-7 {
    padding-top: 40px !important;
  }
}

.govuk-\!-padding-right-7 {
  padding-right: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-7 {
    padding-right: 40px !important;
  }
}

.govuk-\!-padding-bottom-7 {
  padding-bottom: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-7 {
    padding-bottom: 40px !important;
  }
}

.govuk-\!-padding-left-7 {
  padding-left: 25px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-7 {
    padding-left: 40px !important;
  }
}

.govuk-\!-padding-8 {
  padding: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-8 {
    padding: 50px !important;
  }
}

.govuk-\!-padding-top-8 {
  padding-top: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-8 {
    padding-top: 50px !important;
  }
}

.govuk-\!-padding-right-8 {
  padding-right: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-8 {
    padding-right: 50px !important;
  }
}

.govuk-\!-padding-bottom-8 {
  padding-bottom: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-8 {
    padding-bottom: 50px !important;
  }
}

.govuk-\!-padding-left-8 {
  padding-left: 30px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-8 {
    padding-left: 50px !important;
  }
}

.govuk-\!-padding-9 {
  padding: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-9 {
    padding: 60px !important;
  }
}

.govuk-\!-padding-top-9 {
  padding-top: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-9 {
    padding-top: 60px !important;
  }
}

.govuk-\!-padding-right-9 {
  padding-right: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-9 {
    padding-right: 60px !important;
  }
}

.govuk-\!-padding-bottom-9 {
  padding-bottom: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-9 {
    padding-bottom: 60px !important;
  }
}

.govuk-\!-padding-left-9 {
  padding-left: 40px !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-9 {
    padding-left: 60px !important;
  }
}

.govuk-\!-text-align-left {
  text-align: left !important;
}

.govuk-\!-text-align-centre {
  text-align: center !important;
}

.govuk-\!-text-align-right {
  text-align: right !important;
}

.govuk-\!-font-size-80 {
  font-size: 53px !important;
  font-size: 3.3125rem !important;
  line-height: 1.0377358491 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-80 {
    font-size: 80px !important;
    font-size: 5rem !important;
    line-height: 1 !important;
  }
}
@media print {
  .govuk-\!-font-size-80 {
    font-size: 53pt !important;
    line-height: 1.1 !important;
  }
}

.govuk-\!-font-size-48 {
  font-size: 32px !important;
  font-size: 2rem !important;
  line-height: 1.09375 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-48 {
    font-size: 48px !important;
    font-size: 3rem !important;
    line-height: 1.0416666667 !important;
  }
}
@media print {
  .govuk-\!-font-size-48 {
    font-size: 32pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-36 {
  font-size: 24px !important;
  font-size: 1.5rem !important;
  line-height: 1.0416666667 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-36 {
    font-size: 36px !important;
    font-size: 2.25rem !important;
    line-height: 1.1111111111 !important;
  }
}
@media print {
  .govuk-\!-font-size-36 {
    font-size: 24pt !important;
    line-height: 1.05 !important;
  }
}

.govuk-\!-font-size-27 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.1111111111 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-27 {
    font-size: 27px !important;
    font-size: 1.6875rem !important;
    line-height: 1.1111111111 !important;
  }
}
@media print {
  .govuk-\!-font-size-27 {
    font-size: 18pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-24 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.1111111111 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-24 {
    font-size: 24px !important;
    font-size: 1.5rem !important;
    line-height: 1.25 !important;
  }
}
@media print {
  .govuk-\!-font-size-24 {
    font-size: 18pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-19 {
  font-size: 16px !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-19 {
    font-size: 19px !important;
    font-size: 1.1875rem !important;
    line-height: 1.3157894737 !important;
  }
}
@media print {
  .govuk-\!-font-size-19 {
    font-size: 14pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-16 {
  font-size: 14px !important;
  font-size: 0.875rem !important;
  line-height: 1.1428571429 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-16 {
    font-size: 16px !important;
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }
}
@media print {
  .govuk-\!-font-size-16 {
    font-size: 14pt !important;
    line-height: 1.2 !important;
  }
}

.govuk-\!-font-size-14 {
  font-size: 12px !important;
  font-size: 0.75rem !important;
  line-height: 1.25 !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-font-size-14 {
    font-size: 14px !important;
    font-size: 0.875rem !important;
    line-height: 1.4285714286 !important;
  }
}
@media print {
  .govuk-\!-font-size-14 {
    font-size: 12pt !important;
    line-height: 1.2 !important;
  }
}

.govuk-\!-font-weight-regular {
  font-weight: 400 !important;
}

.govuk-\!-font-weight-bold {
  font-weight: 700 !important;
}

.govuk-\!-width-full {
  width: 100% !important;
}

.govuk-\!-width-three-quarters {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-three-quarters {
    width: 75% !important;
  }
}

.govuk-\!-width-two-thirds {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-two-thirds {
    width: 66.66% !important;
  }
}

.govuk-\!-width-one-half {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-one-half {
    width: 50% !important;
  }
}

.govuk-\!-width-one-third {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-one-third {
    width: 33.33% !important;
  }
}

.govuk-\!-width-one-quarter {
  width: 100% !important;
}
@media (min-width: 40.0625em) {
  .govuk-\!-width-one-quarter {
    width: 25% !important;
  }
}

.alert, .alert--error {
  border-color: #144e81;
  background-color: #d2e2f1;
  margin-top: 0;
}
.alert a, .alert--error a {
  color: #144e81;
}

.alert--error {
  border-color: #942514;
  background-color: #f6d7d2;
}
.alert--error a {
  color: #942514;
}

.company-switcher {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.1428571429;
  border-bottom: 1px solid #b1b4b6;
  padding: 15px 0;
}
@media print {
  .company-switcher {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .company-switcher {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}
@media print {
  .company-switcher {
    font-size: 14pt;
    line-height: 1.2;
  }
}
@media (min-width: 768px) {
  .company-switcher {
    font-size: 19px;
  }
}

.company-switcher__link {
  margin-left: 1rem;
}

#cookie-banner-js-enabled {
  display: none;
}

.js-enabled #cookie-banner-js-disabled {
  display: none;
}
.js-enabled #cookie-banner-js-enabled {
  display: block;
}

.data-row {
  margin-left: -15px;
  margin-right: -15px;
}
@media screen and (min-width: 641px) {
  .data-row {
    display: flex;
  }
}

.data-row__item {
  padding: 0 15px;
  box-sizing: border-box;
}

@media screen and (min-width: 641px) {
  .flex {
    display: flex;
  }
}
.flex__item {
  flex-grow: 1;
}
.flex__item--static {
  flex-grow: 0;
  padding-right: 15px;
}

.input--meter-reading {
  font-family: monospace;
  text-align: right;
}

.inset-text__versions--this-version {
  border-color: #1d70b8;
}

.inset-text--clickable:hover {
  cursor: pointer;
  background: #f3f2f1;
}

.licence-results {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}
@media print {
  .licence-results {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .licence-results {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .licence-results {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media screen and (min-width: 641px) {
  .licence-results {
    display: table;
    width: 100%;
  }
}

.licence-results__header {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #b1b4b6;
}
@media print {
  .licence-results__header {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .licence-results__header {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .licence-results__header {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media screen and (min-width: 641px) {
  .licence-results__header {
    display: table-row;
  }
}

.licence-results__header__column {
  padding: 15px 0;
  font-weight: bold;
  width: 33%;
}
@media screen and (min-width: 641px) {
  .licence-results__header__column {
    display: table-cell;
    padding: 15px;
    border-bottom: 1px solid #b1b4b6;
  }
  .licence-results__header__column:first-child {
    width: 33.33%;
    padding-left: 0;
  }
  .licence-results__header__column:last-child {
    display: table-cell;
    width: 33.33%;
  }
}

.licence-result {
  display: block;
  border-bottom: 1px solid #b1b4b6;
  padding: 15px 0 0 0;
  text-decoration: none;
}
.js-enabled .licence-result:hover {
  cursor: pointer;
}
@media screen and (min-width: 641px) {
  .licence-result {
    display: table-row;
    padding: 0;
  }
}

@media screen and (min-width: 641px) {
  .licence-result__column {
    color: #0b0c0c;
    font-size: inherit;
    display: table-cell;
    border-bottom: 1px solid #b1b4b6;
    padding: 15px;
    font-weight: normal;
  }
  .licence-result__column:first-child {
    width: 33.33%;
    padding-left: 0;
  }
  .licence-result__column:last-child {
    width: 33.33%;
  }
}

.licence-result__column--description {
  color: #0b0c0c;
}

.licence-search__input-form-group {
  width: 100%;
  display: block;
}
@media screen and (min-width: 641px) {
  .licence-search__input-form-group {
    width: 40%;
    display: inline-block;
  }
}

.licence-search__submit {
  width: 100%;
  display: block;
}
@media screen and (min-width: 641px) {
  .licence-search__submit {
    width: 20%;
    display: inline-block;
    vertical-align: bottom;
    margin-left: 24px;
  }
}

.link--no-underline {
  text-decoration: none;
}

.message-preview {
  background-color: #f3f2f1;
  border: 5px solid #505a5f;
  padding: 2rem;
}

.message-preview h1 {
  font-size: 1.1875rem;
  margin: 0;
}

@media (min-width: 40.0625em) {
  .meta__key {
    font-weight: 400;
    border: none;
    padding-top: 0;
    padding-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .meta__value {
    border: none;
    padding-top: 0;
    padding-bottom: 0;
  }
}

.text-input--meter-reading {
  text-align: right;
  font-size: 1.5em;
  font-family: monospace;
}

.notification-preview {
  background-color: #1d70b8;
  color: #ffffff;
  padding: 30px;
  word-wrap: break-word;
}
.notification-preview p {
  color: #ffffff;
}
.notification-preview h1 {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media print {
  .notification-preview h1 {
    font-family: sans-serif;
  }
}
@media print {
  .notification-preview h1 {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .notification-preview h1 {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .notification-preview h1 {
    font-size: 18pt;
    line-height: 1.15;
  }
}
.notification-preview h1 + h1 {
  margin-top: 16px;
}
.notification-preview li {
  list-style: disc;
  margin-left: 1em;
  padding-left: 1em;
}
.notification-preview a {
  color: #fff;
}
.notification-preview blockquote {
  padding-left: 1em;
  border-left: 10px solid #b1b4b6;
}
.notification-preview strong {
  font-weight: bold;
}

.govuk-box-highlight--accessible {
  background: #208070;
}

.pagination {
  font-family: "GDS Transport", arial, sans-serif;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  position: relative;
}
@media print {
  .pagination {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .pagination {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .pagination {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.pagination__current-page {
  text-align: center;
  color: #505a5f;
}

.pagination__list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  z-index: 1;
  display: block;
  width: 100%;
  top: 0;
}

.pagination__previous, .pagination__next {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  display: block;
}

.pagination__previous {
  left: 0;
}

.pagination__next {
  right: 0;
}

.pagination__link {
  text-decoration: none;
}

.pagination__link:hover {
  text-decoration: underline;
}

.panel__body--small {
  font-size: 1.5rem;
}

/**
  Styles for the password hints during the update password flow

  Items that are correct in the password make up are marked
  as green, whereas those that are not satisfied are red.

  In addition the information is displayed as the input hint text
  but when there is an error this must take the colours as well which
  is why there has to be a very specific selector.
*/
.password-validation,
.govuk-form-group--error .password-validation .govuk-hint {
  color: #00703c;
  list-style: none;
  list-style-position: outside;
}

.password-validation-failure,
.govuk-form-group--error .password-validation-failure > .govuk-hint {
  color: #d4351c;
  list-style: none;
  list-style-position: outside;
}

@media (min-width: 40.0625em) {
  .phone--show {
    display: none;
  }
}

@media (max-width: 40.0525em) {
  .phone--hide {
    display: none;
  }
}

.radios-dividers-bold .govuk-radios__divider {
  margin-left: 0;
  margin-top: 15px;
  font-weight: 700 !important;
  width: max-content;
}
@media (min-width: 40.0625em) {
  .radios-dividers-bold .govuk-radios__divider {
    margin-left: 0;
  }
}
@media (min-width: 40.0625em) {
  .radios-dividers-bold .govuk-radios__divider {
    margin-top: 25px;
  }
}

/**
 * A search input and floating button based on GOV.UK frontend styles
 */
.search__input {
  margin-bottom: 15px;
}
@media (min-width: 40.0625em) {
  .search__input {
    width: 66%;
    margin-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .search__button {
    margin-bottom: 0;
  }
}

/**
  Extends the section break style from the govuk design system
  to add a thicker line

  https://design-system.service.gov.uk/styles/typography/#section-break
*/
.section-break--heavy {
  border-top: none;
  border-bottom: 2px solid #0b0c0c;
}

.section-break--margin-7 {
  margin-bottom: 40px;
}

.spinner {
  display: flex;
  margin-left: auto;
  margin-right: auto;
  margin-top: 4rem;
  margin-bottom: 6rem;
}

.navbar {
  border-bottom: 1px solid #b1b4b6;
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .navbar {
    font-size: 19px;
  }
}

.navbar__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.navbar__item {
  font-weight: 700;
  margin-bottom: 0;
  display: inline-block;
}

.navbar__link {
  margin-right: 15px;
  color: #0b0c0c !important;
  display: inline-block;
  text-decoration: none;
  box-shadow: inset 0px -5px 0px 0px rgba(0, 0, 0, 0);
  padding: 15px 5px 10px 5px;
}

.navbar__link--active {
  color: #1d70b8 !important;
  box-shadow: inset 0px -5px 0px 0px #1d70b8;
  padding: 15px 5px 10px 5px;
}

.summary-list__value--no-bottom-border {
  border-bottom: none;
}

.summary-list__value--nested-list {
  padding: 0px;
}

.summary-list--nested-list {
  margin-bottom: 0px;
}

.govuk-summary-list__row-with-minimal-spacing {
  line-height: 0.25;
}

.survey-frame {
  width: 1px;
  min-width: 100%;
  border: 0;
}

.table__header--tall {
  padding: 15px;
  padding-left: 0;
}

.table__cell--tall {
  padding: 15px;
  padding-left: 0;
}

.table__cell--totals {
  border-bottom: 0;
}

.table__header--totals {
  border-top: 2px solid #0b0c0c;
  border-bottom: none;
}

.table__header--width-10 {
  width: 10%;
}

.table__header--width-15 {
  width: 15%;
}

.table__header--width-20 {
  width: 20%;
}

.table__header--center {
  text-align: center;
}

.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  font-weight: 400;
  max-width: 250px;
}

.js-enabled .table__row--clickable:hover {
  cursor: pointer;
  background: #f3f2f1;
}

.thick_black_underline {
  border-bottom: 3px solid black;
}

.break-word {
  overflow-wrap: break-word;
}

@media screen and (min-width: 641px) {
  .unit-selector {
    margin-top: 25px;
    width: auto;
  }
}

.warning {
  padding: 20px;
  border: 5px solid #0b0c0c;
}
@media (min-width: 40.0625em) {
  .warning {
    padding: 30px;
  }
}

.warning > .govuk-warning-text {
  margin: 0;
}

.task-list {
  list-style-type: none;
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
}
@media (min-width: 40.0625em) {
  .task-list {
    min-width: 550px;
  }
}

.task-list__section {
  display: table;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.1111111111;
}
@media print {
  .task-list__section {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .task-list__section {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}
@media print {
  .task-list__section {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.task-list__section-number {
  display: table-cell;
}
@media (min-width: 40.0625em) {
  .task-list__section-number {
    min-width: 30px;
    padding-right: 0;
  }
}

.task-list__items {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-bottom: 40px;
  list-style: none;
  padding-left: 0;
}
@media print {
  .task-list__items {
    font-family: sans-serif;
  }
}
@media (min-width: 40.0625em) {
  .task-list__items {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
@media print {
  .task-list__items {
    font-size: 14pt;
    line-height: 1.15;
  }
}
@media (min-width: 40.0625em) {
  .task-list__items {
    margin-bottom: 60px;
  }
}
@media (min-width: 40.0625em) {
  .task-list__items {
    padding-left: 30px;
  }
}

.task-list__item {
  border-bottom: 1px solid #b1b4b6;
  margin-bottom: 0 !important;
  padding-top: 10px;
  padding-bottom: 10px;
}
.task-list__item:after {
  content: "";
  display: block;
  clear: both;
}

.task-list__item:first-child {
  border-top: 1px solid #b1b4b6;
}

.task-list__task-name {
  display: block;
}
@media (min-width: 28.125em) {
  .task-list__task-name {
    float: left;
  }
}

.task-list__task-badge {
  margin-top: 10px;
  margin-bottom: 5px;
}
@media (min-width: 28.125em) {
  .task-list__task-badge {
    float: right;
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list-item {
    margin-bottom: 5px;
    margin-left: 0;
    padding: 15px 20px;
    float: left;
    background-color: #f3f2f1;
    text-align: center;
  }
}
@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list-item--selected {
    position: relative;
    padding: 17px 20px;
    background-color: #ffffff;
  }
}
.borderless {
  border: none;
}

.align-top {
  vertical-align: top;
}

.display-none {
  display: none;
}

.govuk-table__override_no_bottom_border {
  border-bottom: none !important;
}

.max-width-full {
  max-width: 100% !important;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saW5rcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fdHlwb2dyYXBoeS1mb250LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fbGlua3Muc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9oZWxwZXJzL19mb250LWZhY2VzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdmVuZG9yL19zYXNzLW1xLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZm9jdXNlZC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19jb2xvdXJzLWFwcGxpZWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saXN0cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NwYWNpbmcuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL190ZW1wbGF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvcmUvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19zZWN0aW9uLWJyZWFrLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fZm9ybS1ncm91cC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19tYWluLXdyYXBwZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL193aWR0aC1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fbWVhc3VyZW1lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9hY2NvcmRpb24vX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX2xpbmtzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9iYWNrLWxpbmsvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9icmVhZGNydW1icy9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2J1dHRvbi9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Vycm9yLW1lc3NhZ2UvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9maWVsZHNldC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2hpbnQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9sYWJlbC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2NoZWNrYm94ZXMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90ZXh0YXJlYS9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2NoYXJhY3Rlci1jb3VudC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Nvb2tpZS1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9zdW1tYXJ5LWxpc3QvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9pbnB1dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2RhdGUtaW5wdXQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9kZXRhaWxzL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NoYXBlLWFycm93LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9lcnJvci1zdW1tYXJ5L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9mb290ZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZGV2aWNlLXBpeGVscy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaGVhZGVyL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaW5zZXQtdGV4dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9wYW5lbC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3RhZy9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3BoYXNlLWJhbm5lci9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3RhYnMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9yYWRpb3MvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9zZWxlY3QvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9za2lwLWxpbmsvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fdmlzdWFsbHktaGlkZGVuLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90YWJsZS9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL3dhcm5pbmctdGV4dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay91dGlsaXRpZXMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fc3BhY2luZy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdGV4dC1hbGlnbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fd2lkdGguc2NzcyIsImJsb2Nrcy9fYWxlcnQuc2NzcyIsImJsb2Nrcy9fY29tcGFueS1zd2l0Y2hlci5zY3NzIiwiYmxvY2tzL19jb29raWUtbWVzc2FnZS5zY3NzIiwiYmxvY2tzL19kYXRhLXJvdy5zY3NzIiwiYmxvY2tzL19mbGV4LnNjc3MiLCJibG9ja3MvX2lucHV0LnNjc3MiLCJibG9ja3MvX2luc2V0LXRleHQuc2NzcyIsImJsb2Nrcy9fbGljZW5jZS1yZXN1bHRzLnNjc3MiLCJibG9ja3MvX2xpY2VuY2Utc2VhcmNoLnNjc3MiLCJibG9ja3MvX2xpbmsuc2NzcyIsImJsb2Nrcy9fbWVzc2FnZS1wcmV2aWV3LnNjc3MiLCJibG9ja3MvX21ldGEuc2NzcyIsImJsb2Nrcy9fbWV0ZXItcmVhZGluZ3Muc2NzcyIsImJsb2Nrcy9fbm90aWZpY2F0aW9uLXByZXZpZXcuc2NzcyIsImJsb2Nrcy9fcGFnaW5hdGlvbi5zY3NzIiwiYmxvY2tzL19wYW5lbC5zY3NzIiwiYmxvY2tzL19wYXNzd29yZC12YWxpZGF0aW9uLnNjc3MiLCJibG9ja3MvX3Bob25lLnNjc3MiLCJibG9ja3MvX3JhZGlvcy5zY3NzIiwiYmxvY2tzL19zZWFyY2guc2NzcyIsImJsb2Nrcy9fc2VjdGlvbi1icmVhay5zY3NzIiwiYmxvY2tzL19zcGlubmVyLnNjc3MiLCJibG9ja3MvX3N1Ym5hdi5zY3NzIiwiYmxvY2tzL19zdW1tYXJ5LWxpc3Quc2NzcyIsImJsb2Nrcy9fc3VydmV5LWZyYW1lLnNjc3MiLCJibG9ja3MvX3RhYmxlLnNjc3MiLCJibG9ja3MvX3RleHQuc2NzcyIsImJsb2Nrcy9fdW5pdC1zZWxlY3Rvci5zY3NzIiwiYmxvY2tzL193YXJuaW5nLnNjc3MiLCJibG9ja3MvX3Rhc2stbGlzdC5zY3NzIiwiYmxvY2tzL190YWJzLnNjc3MiLCJfdXRpbHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBUUU7RUNPQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUVhQTs7QUNiTTtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsS0FDRTtFQUVGOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsS0FDRTtFQUVGOztBQ2lNRjtFTDVOTjtJQ3NCRSxhQzhCc0I7OztBQzFDeEI7RUdDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUhxREE7RUFDRSxPSXFEZ0I7O0FKbERsQjtFQUNFLE9Jd0R3Qjs7QUpyRDFCO0VBQ0UsT0kyRHNCOztBSnhEeEI7RUFDRSxPSThEdUI7O0FKekR6QjtFQUNFLE9JckJzQjs7QUZ1SmxCO0VGMkxGO0lBQ0U7SUFDQTtJQUtBOzs7O0FBcE1OO0VBRUUsT0kzSzBCOztBSjhLNUI7RUFFRSxPSW5OZ0I7O0FKd05sQjtFQUNFLE9JbEtzQjs7O0FKZ014QjtFRnBPQSxPTW5Ca0I7O0FGOE1aO0VGeUNOO0lGak9FLE9NSXNCOzs7QUpvT3hCO0VBQ0U7O0FBR0Y7RUYvT0EsT01uQmtCOztBRjhNWjtFRm9ETjtJRjVPRSxPTUlzQjs7OztBSndReEI7RUFFRTs7QUFLRjtFQUVFOztBQUdGO0VBQ0UsT0l4UHNCOzs7QUppVXhCO0VBQ0U7OztBQXhDRjtFQUNFLE9Jbk9nQjs7QUpzT2xCO0VBQ0UsT0l2T2dCOztBSjBPbEI7RUFDRSxPSTdOc0I7O0FKZ094QjtFQUNFLE9JMU51Qjs7QUorTnpCO0VBQ0UsT0k3U3NCOzs7QUNyRXhCO0VQT0EsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFQXJHaEIsT01uQmtCO0VDWGhCO0VDK0ZJO0VEN0ZKO0VBQ0E7O0FIc05JO0VHNU5OO0lQc0JFLGFDOEJzQjs7O0FHd0tsQjtFRzVOTjtJUHFKTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VHNU5OO0lQZ0pNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RUc1Tk47SVBvQ0UsT01Jc0I7OztBRm9MbEI7RUc1Tk47SUN5R1E7OztBRGhHTjtFQUNFOzs7QUFJSjtFQUlFOzs7QUFPRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOztBSHVMSTtFR3pMTjtBQUFBO0lBS0k7Ozs7QUFJSjtFQUNFOztBSCtLSTtFR2hMTjtJQUlJOzs7O0FFL0NKO0VBR0Usa0JIb0I2QjtFR2hCN0I7RUFDSTtFQUNJOztBTGtOSjtFSzNOTjtJQWNJOzs7O0FBS0o7RUFHRTtFQUVBLGtCSE0yQjs7O0FJN0I3QjtFVitCQSxPTW5Ca0I7RU5QbEIsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFVWhJZDtFQUVBO0VGMEZJOztBSjBIQTtFTTFOTjtJVmtDRSxPTUlzQjs7O0FGb0xsQjtFTTFOTjtJVm9CRSxhQzhCc0I7OztBR3dLbEI7RU0xTk47SVZtSk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTTFOTjtJVjhJTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNMU5OO0lGdUdROzs7O0FFekZSO0VWaUJBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVbEhkO0VBRUE7RUY0RUk7O0FKMEhBO0VNNU1OO0lWb0JFLE9NSXNCOzs7QUZvTGxCO0VNNU1OO0lWTUUsYUM4QnNCOzs7QUd3S2xCO0VNNU1OO0lWcUlNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RU01TU47SVZnSU0sV0FaUTtJQWFSLGFBWFU7OztBSXNGVjtFTTVNTjtJRnlGUTs7OztBRTNFUjtFVkdBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVcEdkO0VBRUE7RUY4REk7O0FKMEhBO0VNOUxOO0lWTUUsT01Jc0I7OztBRm9MbEI7RU05TE47SVZSRSxhQzhCc0I7OztBR3dLbEI7RU05TE47SVZ1SE0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTTlMTjtJVmtITSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNOUxOO0lGMkVROzs7O0FFN0RSO0VWWEEsT01uQmtCO0VOUGxCLGFDb0JrQjtFRG5CbEI7RUFDQTtFQWdEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RVV0RmQ7RUFFQTtFRmdESTs7QUowSEE7RU1oTE47SVZSRSxPTUlzQjs7O0FGb0xsQjtFTWhMTjtJVnRCRSxhQzhCc0I7OztBR3dLbEI7RU1oTE47SVZ5R00sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTWhMTjtJVm9HTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNaExOO0lGNkRROzs7O0FFN0NSO0VWckRBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RVV2RWQ7RUFFQTtFQUVBLE9KbEIwQjs7QUYyS3RCO0VNaEtOO0lWdENFLGFDOEJzQjs7O0FHd0tsQjtFTWhLTjtJVnlGTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNaEtOO0lWb0ZNLFdBWlE7SUFhUixhQVhVOzs7O0FVaEVoQjtFVi9EQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVN0RkO0VBRUE7RUFDQSxPSjNCMEI7O0FGMkt0QjtFTXRKTjtJVmhERSxhQzhCc0I7OztBR3dLbEI7RU10Sk47SVYrRU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTXRKTjtJVjBFTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VNdEpOO0lBU0k7Ozs7QUFJSjtFVjVFQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVaERkO0VBRUEsT0p2QzBCOztBRjJLdEI7RU16SU47SVY3REUsYUM4QnNCOzs7QUd3S2xCO0VNeklOO0lWa0VNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RU16SU47SVY2RE0sV0FaUTtJQWFSLGFBWFU7Ozs7QVV6Q2hCO0VWNURBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVckNkO0VGQ0k7O0FKMEhBO0VNL0hOO0lWekRFLE9NSXNCOzs7QUZvTGxCO0VNL0hOO0lWdkVFLGFDOEJzQjs7O0FHd0tsQjtFTS9ITjtJVndETSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNL0hOO0lWbURNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU0vSE47SUZZUTs7OztBRUFSO0VWeEVBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVekJkO0VGWEk7O0FKMEhBO0VNbkhOO0lWckVFLE9NSXNCOzs7QUZvTGxCO0VNbkhOO0lWbkZFLGFDOEJzQjs7O0FHd0tsQjtFTW5ITjtJVjRDTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNbkhOO0lWdUNNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU1uSE47SUZBUTs7OztBRVlSO0VWcEZBLE9NbkJrQjtFTlBsQixhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VVYmQ7RUZ2Qkk7O0FKMEhBO0VNdkdOO0lWakZFLE9NSXNCOzs7QUZvTGxCO0VNdkdOO0lWL0ZFLGFDOEJzQjs7O0FHd0tsQjtFTXZHTjtJVmdDTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VNdkdOO0lWMkJNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU12R047SUZaUTs7OztBRXdCUjtFVmhHQSxPTW5Ca0I7RU5QbEIsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFVURkO0VGbkNJOztBSjBIQTtFTTNGTjtJVjdGRSxPTUlzQjs7O0FGb0xsQjtFTTNGTjtJVjNHRSxhQzhCc0I7OztBR3dLbEI7RU0zRk47SVZvQk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFTTNGTjtJVmVNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RU0zRk47SUZ4QlE7Ozs7QUVvRFI7RUFDRTs7QU44REk7RU0vRE47SUFJSTs7OztBQUlKO0FBQUE7QUFBQTtFRm5FTTs7QUowSEE7RU12RE47QUFBQTtBQUFBO0lGNURROzs7O0FFa0VSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNRTs7QU4yQ0k7RU1qRE47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQVNJOzs7O0FDcExKO0VBQ0U7RUFDQTs7O0FBZUY7RUhpRk07RUFBQTs7QUowSEE7RU8zTU47SUh3RlE7OztBSm1IRjtFTzNNTjtJSHdGUTs7OztBRy9FUjtFSHdFTTtFQUFBOztBSjBIQTtFT2xNTjtJSCtFUTs7O0FKbUhGO0VPbE1OO0lIK0VROzs7O0FHdEVSO0VIK0RNO0VBQUE7O0FKMEhBO0VPekxOO0lIc0VROzs7QUptSEY7RU96TE47SUhzRVE7Ozs7QUczRFI7RUFDRTs7O0FDNUNGO0VKK0ZNO0VJM0VKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0k7RUFDSTtFQUNSO0VBQ0E7RUFDSTtFQUNJOztBUnlMSjtFUXpOTjtJSnNHUTs7O0FJL0ROO0VabkNGLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RVkxRlo7RUFHQTtFQUNBLFlBckNhO0VBc0NiO0VBQ0E7O0FSMEtFO0VRbExKO0lacEJBLGFDOEJzQjs7O0FHd0tsQjtFUWxMSjtJWjJHSSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VRbExKO0lac0dJLFdBWlE7SUFhUixhQVhVOzs7QVkvRWQ7RUFDRTs7QVJvS0U7RVF6Tk47SUE0REk7SUFFQTtJQUVBO0lBRUE7SUFFSTtJQUVJO0lBQ1I7SUFDSTtJQUNJO0lBQ1I7SUFDQTtJQUNJO0lBQ0k7O0VBRVI7QUFBQTtJQUVFLGNBaEZhOztFQW1GZjtJQUNFOzs7O0FDN0ZOO0VMdUdNOztBTWpHTjtFQUNFO0VBQ0E7RUFDQTs7QVZ3Tkk7RVNqT047SUw4R1E7OztBSzFHTjtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFFRTtFQUNBOzs7QUVoQko7RUFFRTtFQUNBOztBREdGO0VBQ0U7RUFDQTtFQUNBOzs7QUNGQTtFQ3lDRjtFQUVFO0VBRUY7O0FaNktNO0VXMU5KO0lDK0NBO0lBQ0EsT0FSMkM7Ozs7QUR4QzNDO0VDeUNGO0VBRUU7RUFFRjs7QVo2S007RVcxTko7SUMrQ0E7SUFDQSxPQVIyQzs7OztBRHhDM0M7RUN5Q0Y7RUFFRTtFQUVGOztBWjZLTTtFVzFOSjtJQytDQTtJQUNBLE9BUjJDOzs7O0FEeEMzQztFQ3lDRjtFQUVFO0VBRUY7O0FaNktNO0VXMU5KO0lDK0NBO0lBQ0EsT0FSMkM7Ozs7QUR4QzNDO0VDeUNGO0VBRUU7RUFFRjs7QVo2S007RVcxTko7SUMrQ0E7SUFDQSxPQVIyQzs7OztBRHhDM0M7RUN5Q0Y7RUFFRTtFQUVGOztBWjZLTTtFVzFOSjtJQytDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FEL0IzQztFQ2dDRjtFQUlBOztBWjZLTTtFV2pOSjtJQ3NDQTtJQUNBLE9BUjJDOzs7O0FDRTdDO0VBdkJBO0VBQ0E7RUFDQTs7QWJxTU07RWFoTE47SUFmRTtJQUNBOzs7O0FBeUJGO0FBQUE7RVQyQ007O0FKMEhBO0VhcktOO0FBQUE7SVRrRFE7Ozs7QVU3QlI7RUE5REEsV0NUaUI7RURZakIsY0NnQmtCO0VEZmxCLGFDZWtCOztBRFpsQjtFQXVEQTtJQS9DRTtJQUNBOzs7QWQ4TEk7RWNoSk47SUF6Q0UsY0NUVztJRFVYLGFDVlc7O0VEYVg7SUFxQ0Y7TUE3Qkk7TUFDQTs7OztBZDRLRTtFY2hKTjtJQXJCRTtJQUNBOztFQUlBO0lBZ0JGO01BZkk7TUFDQTs7Ozs7QUVyRUo7RVp5R007O0FKMEhBO0VnQm5PTjtJWmdIUTs7OztBWTNHUjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VwQkFBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXNDQTtFQTBGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RW9CMUhkO0VBQ0E7O0FoQitNSTtFZ0JyTk47SXBCZUUsYUM4QnNCOzs7QUd3S2xCO0VnQnJOTjtJcEI4SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFZ0JyTk47SXBCeUlNLFdBWlE7SUFhUixhQVhVOzs7O0FvQnJIaEI7RXBCVkEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBZ0RBO0VBZ0ZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFb0JuSGQ7RUFDQTtFQUNBOztBaEJ1TUk7RWdCM01OO0lwQktFLGFDOEJzQjs7O0FHd0tsQjtFZ0IzTU47SXBCb0lNLFdBakJRO0lBbUJO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OztBQUdGO0VBQ0U7OztBRWxGRjtFdENzQ0EsT01uQmtCO0VFa0ZaO0VBRUE7RThCbEdKOztBbEM0Tkk7RWtDak9OO0l0Q3lDRSxPTUlzQjs7O0FGb0xsQjtFa0NqT047STlCNEdROzs7QUpxSEY7RWtDak9OO0k5QjhHUTs7O0E4QnZHTjtFQUNFOzs7QUFJSjtFdENBQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VzQzVIZDtFOUJ3Rkk7O0FKMEhBO0VrQ3JOTjtJdENlRSxhQzhCc0I7OztBR3dLbEI7RWtDck5OO0l0QzhJTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0VrQ3JOTjtJdEN5SU0sV0FaUTtJQWFSLGFBWFU7OztBSXNGVjtFa0NyTk47STlCa0dROzs7O0E4QjNGUjtFdENQQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZOztBSXNGVjtFa0M5TU47SXRDUUUsYUM4QnNCOzs7QUd3S2xCO0VrQzlNTjtJdEN1SU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFa0M5TU47SXRDa0lNLFdBWlE7SUFhUixhQVhVOzs7QXNDckhkO0VBQ0U7RTlCZ0ZFOztBSjBIQTtFa0MzTUo7STlCd0ZNOzs7O0E4QmpGUjtFQUNFO0VBQ0E7OztBQUdGO0V0QzRCQTtFQWxEQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUVhQTs7QUVzTU07RWtDL0xOO0l0Q1BFLGFDOEJzQjs7O0FDMUN4QjtFR0NFO0VBRUYsT0N3RHdCO0VEdkR4QixrQkM2Q21CO0VENUNuQjtFQUdBOztBSHdHQTtFQUVFLE9JOUNpQjs7QUppRG5CO0VBQ0U7O0FBR0Y7RUFDRSxPSXREaUI7O0FKMkRuQjtFQUNFLE9JckVzQjs7O0FpQ3RFeEI7RXZDUUEsYUNvQmtCO0VEbkJsQjtFQUNBO0VBc0NBO0VBMEZJLFdBTFU7RUFPUixXQU5ZO0VBUWQsYUFQWTtFQXJHaEIsT01uQmtCO0VpQ1poQjtFQUNBO0VBQ0EsU0FQa0I7O0FuQytOZDtFbUM3Tk47SXZDdUJFLGFDOEJzQjs7O0FHd0tsQjtFbUM3Tk47SXZDc0pNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RW1DN05OO0l2Q2lKTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VtQzdOTjtJdkNxQ0UsT01Jc0I7OztBaUM3QnRCO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFJQTs7QUFhRjtFQUNFO0VBRUE7OztBQ3RCSjtFeENUQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VRcENWO0VBQUE7RWdDN0VKO0VBQ0EsT2xDUmdCO0VrQ1NoQixZbENDNkI7O0FGb016QjtFb0M1TU47SXhDTUUsYUM4QnNCOzs7QUd3S2xCO0VvQzVNTjtJeENxSU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFb0M1TU47SXhDZ0lNLFdBWlE7SUFhUixhQVhVOzs7QUlzRlY7RW9DNU1OO0loQ3lGUTs7O0FKbUhGO0VvQzVNTjtJaEN5RlE7Ozs7QWdDL0VSO0V4Q25CQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUVhQTs7QUVzTU07RW9DbE1OO0l4Q0pFLGFDOEJzQjs7O0FDMUN4QjtFR0NFO0VBRUYsT0N3RHdCO0VEdkR4QixrQkM2Q21CO0VENUNuQjtFQUdBOztBSG1QQTtFRnBPQSxPTW5Ca0I7O0FGOE1aO0VGeUNOO0lGak9FLE9NSXNCOzs7QUpvT3hCO0VBQ0U7O0FBR0Y7RUYvT0EsT01uQmtCOztBRjhNWjtFRm9ETjtJRjVPRSxPTUlzQjs7OztBa0NheEI7RUFDRTtFaEM0Q0k7RWdDMUNKO0VBQ0E7O0FwQ21LSTtFb0N2S047SWhDb0RROzs7O0FnQzdDUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0k7RUFDSTtFQUNSO0VBQ0E7RUFDSTtFQUNJO0VBQ1I7RUFDQTtFQUNJO0VBQ0k7OztBQUdWO0VBQ0UsY3JCaERnQjtFcUJpRGhCO0VB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O0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RXdDbk9OO0k1Q3VKTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0V3Q25PTjtJcENnSFE7OztBb0N4R047RUFDRTs7O0FBSUo7RUFDRTtFQUdBOztBeENrTkk7RXdDdE5OO0lBT0k7Ozs7QUFJSjtFNUNWQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFnREE7RUFnRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0U0Q2xIZDtFQUVBO0VBRUE7O0F4Q29NSTtFd0MzTU47STVDS0UsYUM4QnNCOzs7QUd3S2xCO0V3QzNNTjtJNUNvSU0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFd0MzTU47STVDK0hNLFdBWlE7SUFhUixhQVhVOzs7O0E0QzNHaEI7RTVDTUEsT01uQmtCO0VzQ2dCaEI7RUFFQSxrQnRDRDJCOztBRjZMdkI7RXdDak1OO0k1Q1NFLE9NSXNCOzs7QUZvTGxCO0V3Q2pNTjtJQVFJLFNBUGU7OztBQVlqQjtFQUdFO0VBT0E7O0FBR0Y7RUFDRTs7O0FBSUo7RTVDbkRBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQWdEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7RTRDekVkO0VBRUE7O0F4QzZKSTtFd0NsS047STVDcENFLGFDOEJzQjs7O0FHd0tsQjtFd0NsS047STVDMkZNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RXdDbEtOO0k1Q3NGTSxXQVpRO0lBYVIsYUFYVTs7OztBNENwRWhCO0U1QzNEQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUVhQTs7QUVzTU07RXdDMUpOO0k1QzVDRSxhQzhCc0I7OztBQzFDeEI7RUdDRTtFQUVGLE9Dd0R3QjtFRHZEeEIsa0JDNkNtQjtFRDVDbkI7RUFHQTs7QUg2VUE7RUFDRSxPSW5PZ0I7O0FKc09sQjtFQUNFLE9Jdk9nQjs7QUowT2xCO0VBQ0UsT0k3TnNCOztBSmdPeEI7RUFDRSxPSTFOdUI7O0FKK056QjtFQUNFLE9JN1NzQjs7O0FzQ0V4QjtF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OztBSXNGVjtFNEM5Tk47SWhEc0NFLE9NSXNCOzs7O0EwQ3BDeEI7RUFDRTtFQUNBO0VBQ0E7RXhDMkZJOztBSjBIQTtFNEN4Tk47SXhDcUdROzs7O0F3QzlGUjtFaERKQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VnRHpIZDs7QTVDK01JO0U0Q2pOTjtJaERXRSxhQzhCc0I7OztBR3dLbEI7RTRDak5OO0loRDBJTSxXQWpCUTtJQW1CTixXQWxCVTtJQW9CWixhQW5CVTs7O0FJc0ZWO0U0Q2pOTjtJaERxSU0sV0FaUTtJQWFSLGFBWFU7OztBZ0R2SGQ7RWhEa0JGLE9NbkJrQjtFMENHZDtFQUNBO0VBQ0E7O0E1Q3lNRTtFNEM3TUo7SWhEcUJBLE9NSXNCOzs7O0EwQ2pCeEI7RWhEaEJBLGFDb0JrQjtFRG5CbEI7RUFDQTtFRWFBO0U4Q0tFO0VBQ0E7O0E1Q2dNSTtFNENyTU47SWhEREUsYUM4QnNCOzs7QUMxQ3hCO0VHQ0U7RUFFRixPQ3dEd0I7RUR2RHhCLGtCQzZDbUI7RUQ1Q25CO0VBR0E7O0FIcURBO0VBQ0UsT0lxRGdCOztBSmxEbEI7RUFDRSxPSXdEd0I7O0FKckQxQjtFQUNFLE9JMkRzQjs7QUp4RHhCO0VBQ0UsT0k4RHVCOztBSnpEekI7RUFDRSxPSXJCc0I7OztBMEN0Q3hCO0V4Q21FTTs7QUowSEE7RTRDN0xOO0l4QzBFUTs7OztBSm1IRjtFNENyTEY7SUFFRTtJQUNBOztFbEN6Q047SUFDRTtJQUNBO0lBQ0E7O0VrQ3lDRTtJQUNFOztFQUdGO0lBQ0U7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBQ0E7SUFDQTs7RUFFQTtJQUNFOztFQUlKO0lBR0U7SUFFQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBRUEsa0IxQ3BEdUI7O0UwQ3NEdkI7SUFDRTs7RUFJSjtJQUdFOztFOUN3S047SUZwT0EsT01uQmtCOzs7QUY4TVo7RUZ5Q047SUZqT0UsT01Jc0I7OztBRm9MbEI7RUZnRE47SUFDRTs7RUFHRjtJ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QUNFLGM1Q29Fc0I7OztBNkNoSDFCO0VDaURBO0VBRUE7RUFDQTtFQUdBO0VBRUE7RUFDQTtFQUNBO0VBQ1E7RUFLUjtFcERuREEsYUNvQmtCO0VEbkJsQjtFQUNBO0VFYUE7RUZtSEksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VtRHRJZDtFQUNBOztBQzJERjtFQUVFO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ1E7RUFFUjs7QWhEbUpJO0UrQ25PTjtJbkQ2QkUsYUM4QnNCOzs7QUNpTnhCO0VGcE9BLE9NbkJrQjs7QUY4TVo7RUZ5Q047SUZqT0UsT01Jc0I7OztBSm9PeEI7RUFDRTs7QUFHRjtFRi9PQSxPTW5Ca0I7O0FGOE1aO0VGb0ROO0lGNU9FLE9NSXNCOzs7QUZvTGxCO0UrQ25PTjtJbkQ0Sk0sV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFK0NuT047SW5EdUpNLFdBWlE7SUFhUixhQVhVOzs7QW1EbElkO0VBWEY7SUFtQkk7SUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0Esa0I3Q3dDZTtFNkNwQ2I7OztBRTlCTjtFckRjQSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VBckdoQixPTW5Ca0I7RStDbEJoQjtFN0NzR0k7RTZDbkdKO0VBQ0E7O0FqRDROSTtFaURuT047SXJENkJFLGFDOEJzQjs7O0FHd0tsQjtFaURuT047SXJENEpNLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RWlEbk9OO0lyRHVKTSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VpRG5PTjtJckQyQ0UsT01Jc0I7OztBRm9MbEI7RWlEbk9OO0k3Q2dIUTs7OztBNkN0R1I7RXJEc0RBOzs7QXFEbERBO0FBQUE7QUFBQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQVNGO0VyRGRBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQXVLSTtFQUNRO0VBbElaOztBSTZLTTtFaUR2TU47SXJEQ0UsYUM4QnNCOzs7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Ozs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaURwRU47RWpEMkRJOztBSjRIQTtFcUR2TEo7SWpEa0VNOzs7O0FpRDFESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlEcEVOO0VqRDJESTs7QUo0SEE7RXFEdkxKO0lqRGtFTTs7OztBaUQxREo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRDVESjtFakRxREU7O0FKMEhBO0VxRC9LRjtJakQ0REk7Ozs7QWlENURKO0VqRHFERTs7QUowSEE7RXFEL0tGO0lqRDRESTs7OztBaUQ1REo7RWpEcURFOztBSjBIQTtFcUQvS0Y7SWpENERJOzs7O0FpRHBFTjtFakQyREk7O0FKNEhBO0VxRHZMSjtJakRrRU07Ozs7QWlEMURKO0VqRHFERTs7QUowSEE7RXFE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RkVBLGFDb0JrQjtFRG5CbEI7RUFDQTtFQWdEQTtFQWdGSSxXQUxVO0VBT1IsV0FOWTtFQVFkLGFBUFk7O0FJc0ZWO0VzRnhOUjtJMUZrQkksYUM4QnNCOzs7QUd3S2xCO0VzRnhOUjtJMUZpSlEsV0FqQlE7SUFtQk4sV0FsQlU7SUFvQlosYUFuQlU7OztBSXNGVjtFc0Z4TlI7STFGNElRLFdBWlE7SUFhUixhQVhVOzs7O0EwRjdIbEI7RUFDRTs7QXRGa05NO0VzRm5OUjtJQUlJO0lBQ0E7Ozs7QUFJSjtFMUZYRSxhQ29Ca0I7RURuQmxCO0VBQ0E7RUFzQ0E7RUEwRkksV0FMVTtFQU9SLFdBTlk7RUFRZCxhQVBZO0VRcENWO0VrRjdFTjtFQUNBOztBdEZzTU07RXNGMU1SO0kxRklJLGFDOEJzQjs7O0FHd0tsQjtFc0YxTVI7STFGbUlRLFdBakJRO0lBbUJOLFdBbEJVO0lBb0JaLGFBbkJVOzs7QUlzRlY7RXNGMU1SO0kxRjhIUSxXQVpRO0lBYVIsYUFYVTs7O0FJc0ZWO0VzRjFNUjtJbEZ1RlU7OztBSm1IRjtFc0YxTVI7SUFNSTs7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0E1RS9CQTtFQUNFO0VBQ0E7RUFDQTs7O0E0RWdDSjtFQUNFOzs7QUFHRjtFQUNFOztBdEZtTE07RXNGcExSO0lBR0k7Ozs7QUFJSjtFQUNFO0VBQ0E7O0F0RjJLTTtFc0Y3S1I7SUFLSTtJQUNBO0lBQ0E7Ozs7QUM5REo7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBSUo7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7O0FDZko7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBTUY7RUFDRSIsImZpbGUiOiJhcHBsaWNhdGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvbGlua3NcIikge1xuXG4gICVnb3Z1ay1saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1wcmludC1mcmllbmRseTtcbiAgfVxuXG4gIC5nb3Z1ay1saW5rIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1saW5rO1xuICB9XG5cbiAgLy8gVmFyaWFudCBjbGFzc2VzIHNob3VsZCBhbHdheXMgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAuZ292dWstbGlua1xuICAvLyBjbGFzcywgc28gd2UgZG8gbm90IG5lZWQgdGhlIGNvbW1vbiBsaW5rIHN0eWxlcyBhcyB0aGV5IHdpbGwgYmUgaW5oZXJpdGVkLlxuXG4gIC5nb3Z1ay1saW5rLS1tdXRlZCB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1tdXRlZDtcbiAgfVxuXG4gIC5nb3Z1ay1saW5rLS10ZXh0LWNvbG91ciB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLWludmVyc2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtaW52ZXJzZTtcbiAgfVxuXG4gIC5nb3Z1ay1saW5rLS1uby11bmRlcmxpbmUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbm8tdW5kZXJsaW5lO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLW5vLXZpc2l0ZWQtc3RhdGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbm8tdmlzaXRlZC1zdGF0ZTtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL3R5cG9ncmFwaHlcbi8vLy9cblxuQGltcG9ydCBcIi4uL3Rvb2xzL3B4LXRvLXJlbVwiO1xuXG4vLy8gJ0NvbW1vbiB0eXBvZ3JhcGh5JyBoZWxwZXJcbi8vL1xuLy8vIFNldHMgdGhlIGZvbnQgZmFtaWx5IGFuZCBhc3NvY2lhdGVkIHByb3BlcnRpZXMsIHN1Y2ggYXMgZm9udCBzbW9vdGhpbmcuIEFsc29cbi8vLyBvdmVycmlkZXMgdGhlIGZvbnQgZm9yIHByaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkZm9udC1mYW1pbHkgWyRnb3Z1ay1mb250LWZhbWlseV0gRm9udCBmYW1pbHkgdG8gdXNlXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uKCRmb250LWZhbWlseTogJGdvdnVrLWZvbnQtZmFtaWx5KSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8vIElmIHRoZSB1c2VyIGlzIHVzaW5nIHRoZSBkZWZhdWx0IEdEUyBUcmFuc3BvcnQgZm9udCB3ZSBuZWVkIHRvIGluY2x1ZGVcbiAgLy8gdGhlIGZvbnQtZmFjZSBkZWNsYXJhdGlvbnMuXG4gIC8vXG4gIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGluY2x1ZGUgdGhlIEdEUyBUcmFuc3BvcnQgZm9udC1mYWNlIGRlY2xhcmF0aW9ucyBpZlxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpcyBiZWluZyB1c2VkIHNpbmNlIG50YSB3aWxsIGFscmVhZHkgYmUgaW5jbHVkZWQgYnlcbiAgLy8gZGVmYXVsdC5cbiAgQGlmICgkZ292dWstaW5jbHVkZS1kZWZhdWx0LWZvbnQtZmFjZSkge1xuICAgIEBpbmNsdWRlIF9nb3Z1ay1mb250LWZhY2UtZ2RzLXRyYW5zcG9ydDtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZ292dWstZm9udC1mYW1pbHktcHJpbnQ7XG4gIH1cbn1cblxuLy8vIFRleHQgY29sb3VyIGhlbHBlclxuLy8vXG4vLy8gU2V0cyB0aGUgdGV4dCBjb2xvdXIsIGluY2x1ZGluZyBhIHN1aXRhYmxlIG92ZXJyaWRlIGZvciBwcmludC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10ZXh0LWNvbG91ciB7XG4gIGNvbG9yOiAkZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgY29sb3I6ICRnb3Z1ay1wcmludC10ZXh0LWNvbG91cjtcbiAgfVxufVxuXG4vLy8gUmVndWxhciBmb250IHdlaWdodCBoZWxwZXJcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGRlY2xhcmF0aW9ucyBhc1xuLy8vICAgYCFpbXBvcnRhbnRgLiBHZW5lcmFsbHkgVXNlZCB0byBjcmVhdGUgb3ZlcnJpZGUgY2xhc3Nlcy5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtcmVndWxhcigkaW1wb3J0YW50OiBmYWxzZSkge1xuICBmb250LXdlaWdodDogJGdvdnVrLWZvbnQtd2VpZ2h0LXJlZ3VsYXIgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG59XG5cbi8vLyBCb2xkIGZvbnQgd2VpZ2h0IGhlbHBlclxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgZGVjbGFyYXRpb25zIGFzXG4vLy8gICBgIWltcG9ydGFudGAuIEdlbmVyYWxseSBVc2VkIHRvIGNyZWF0ZSBvdmVycmlkZSBjbGFzc2VzLlxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkKCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIGZvbnQtd2VpZ2h0OiAkZ292dWstZm9udC13ZWlnaHQtYm9sZCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbn1cblxuLy8vIENvbnZlcnQgbGluZS1oZWlnaHRzIHNwZWNpZmllZCBpbiBwaXhlbHMgaW50byBhIHJlbGF0aXZlIHZhbHVlLCB1bmxlc3Ncbi8vLyB0aGV5IGFyZSBhbHJlYWR5IHVuaXQtbGVzcyAoYW5kIHRodXMgYWxyZWFkeSB0cmVhdGVkIGFzIHJlbGF0aXZlIHZhbHVlcylcbi8vLyBvciB0aGUgdW5pdHMgZG8gbm90IG1hdGNoIHRoZSB1bml0cyB1c2VkIGZvciB0aGUgZm9udCBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsaW5lLWhlaWdodCBMaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIEZvbnQgc2l6ZVxuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGxpbmUgaGVpZ2h0IGFzIGVpdGhlciBhIHJlbGF0aXZlIHZhbHVlIG9yIHVubW9kaWZpZWRcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2dvdnVrLWxpbmUtaGVpZ2h0KCRsaW5lLWhlaWdodCwgJGZvbnQtc2l6ZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRsaW5lLWhlaWdodCkgYW5kIHVuaXQoJGxpbmUtaGVpZ2h0KSA9PSB1bml0KCRmb250LXNpemUpIHtcbiAgICAkbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCAvICRmb250LXNpemU7XG4gIH1cblxuICBAcmV0dXJuICRsaW5lLWhlaWdodDtcbn1cblxuLy8vIFJlc3BvbnNpdmUgdHlwb2dyYXBoeSBoZWxwZXJcbi8vL1xuLy8vIFRha2VzIGEgJ2ZvbnQgbWFwJyBhcyBhbiBhcmd1bWVudCBhbmQgdXNlcyBpdCB0byBjcmVhdGUgZm9udC1zaXplIGFuZFxuLy8vIGxpbmUtaGVpZ2h0IGRlY2xhcmF0aW9ucyBmb3IgZGlmZmVyZW50IGJyZWFrcG9pbnRzLCBhbmQgZm9yIHByaW50LlxuLy8vXG4vLy8gRXhhbXBsZSBmb250IG1hcDpcbi8vL1xuLy8vICRteS1mb250LW1hcDogKFxuLy8vICAgbnVsbDogKFxuLy8vICAgICBmb250LXNpemU6IDE2cHgsXG4vLy8gICAgIGxpbmUtaGVpZ2h0OiAyMHB4XG4vLy8gICApLFxuLy8vICAgdGFibGV0OiAoXG4vLy8gICAgIGZvbnQtc2l6ZTogMTlweCxcbi8vLyAgICAgbGluZS1oZWlnaHQ6IDI1cHhcbi8vLyAgICksXG4vLy8gICBwcmludDogKFxuLy8vICAgICBmb250LXNpemU6IDE0cHQsXG4vLy8gICAgIGxpbmUtaGVpZ2h0OiAxLjE1XG4vLy8gICApXG4vLy8gKTtcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkZm9udC1tYXAgLSBGb250IG1hcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3ZlcnJpZGUtbGluZS1oZWlnaHQgW2ZhbHNlXSAtIE5vbiByZXNwb25zaXZlIGN1c3RvbSBsaW5lXG4vLy8gICBoZWlnaHQuIE9taXQgdG8gdXNlIHRoZSBsaW5lIGhlaWdodCBmcm9tIHRoZSBmb250IG1hcC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBkZWNsYXJhdGlvbnMgYXNcbi8vLyAgIGAhaW1wb3J0YW50YC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemUsICRvdmVycmlkZS1saW5lLWhlaWdodDogZmFsc2UsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkZ292dWstdHlwb2dyYXBoeS1zY2FsZSwgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJVbmtub3duIGZvbnQgc2l6ZSBgI3skc2l6ZX1gIC0gZXhwZWN0ZWQgYSBwb2ludCBmcm9tIHRoZSB0eXBvZ3JhcGh5IHNjYWxlLlwiO1xuICB9XG5cbiAgJGZvbnQtbWFwOiBtYXAtZ2V0KCRnb3Z1ay10eXBvZ3JhcGh5LXNjYWxlLCAkc2l6ZSk7XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRicmVha3BvaW50LW1hcCBpbiAkZm9udC1tYXAge1xuICAgICRmb250LXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnQtbWFwLCBcImZvbnQtc2l6ZVwiKTtcbiAgICAkZm9udC1zaXplLXJlbTogZ292dWstcHgtdG8tcmVtKCRmb250LXNpemUpO1xuXG4gICAgJGxpbmUtaGVpZ2h0OiBfZ292dWstbGluZS1oZWlnaHQoXG4gICAgICAkbGluZS1oZWlnaHQ6IGlmKFxuICAgICAgICAkb3ZlcnJpZGUtbGluZS1oZWlnaHQsXG4gICAgICAgICRvdmVycmlkZS1saW5lLWhlaWdodCxcbiAgICAgICAgbWFwLWdldCgkYnJlYWtwb2ludC1tYXAsIFwibGluZS1oZWlnaHRcIilcbiAgICAgICksXG4gICAgICAkZm9udC1zaXplOiAkZm9udC1zaXplXG4gICAgKTtcblxuICAgIC8vIE1hcmsgcnVsZXMgYXMgIWltcG9ydGFudCBpZiAkaW1wb3J0YW50IGlzIHRydWUgLSB0aGlzIHdpbGwgcmVzdWx0IGluXG4gICAgLy8gdGhlc2UgdmFyaWFibGVzIGJlY29taW5nIHN0cmluZ3MsIHNvIHRoaXMgbmVlZHMgdG8gaGFwcGVuICphZnRlciogdGhleVxuICAgIC8vIGFyZSB1c2VkIGluIGNhbGN1bGF0aW9uc1xuICAgICRmb250LXNpemU6ICRmb250LXNpemUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgJGZvbnQtc2l6ZS1yZW06ICRmb250LXNpemUtcmVtIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICAgQGlmICRicmVha3BvaW50ID09IG51bGwge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtcmVtO1xuICAgICAgfVxuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwicHJpbnRcIiB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206ICRicmVha3BvaW50KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1yZW07XG4gICAgICAgIH1cbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEZvbnQgaGVscGVyXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBTaXplIG9mIHRoZSBmb250IGFzIGl0IHdvdWxkIGFwcGVhciBvbiBkZXNrdG9wIC1cbi8vLyAgIHVzZXMgdGhlIHJlc3BvbnNpdmUgZm9udCBzaXplIG1hcFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd2VpZ2h0IFtyZWd1bGFyXSAtIFdlaWdodDogYGJvbGRgIG9yIGByZWd1bGFyYFxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHRhYnVsYXIgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gdXNlIHRhYnVsYXIgbnVtYmVycyBvciBub3Rcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxpbmUtaGVpZ2h0IFtmYWxzZV0gLSBMaW5lLWhlaWdodCwgaWYgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWZvbnQoJHNpemUsICR3ZWlnaHQ6IHJlZ3VsYXIsICR0YWJ1bGFyOiBmYWxzZSwgJGxpbmUtaGVpZ2h0OiBmYWxzZSkge1xuICBAaWYgJHRhYnVsYXIge1xuICAgIC8vIGlmIGdvdnVrLWZvbnQtZmFtaWx5LXRhYnVsYXIgaXMgc2V0IHVzZSAkZ292dWstZm9udC1mYW1pbHktdGFidWxhclxuICAgIEBpZiAkZ292dWstZm9udC1mYW1pbHktdGFidWxhciB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbigkZm9udC1mYW1pbHk6ICRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiIDE7XG4gICAgICAgICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCIgMTtcblxuICAgICAgQHN1cHBvcnRzIChmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zKSB7XG4gICAgICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbjtcbiAgfVxuXG4gIEBpZiAkd2VpZ2h0ID09IHJlZ3VsYXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LXJlZ3VsYXI7XG4gIH0gQGVsc2UgaWYgJHdlaWdodCA9PSBib2xkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkO1xuICB9XG5cbiAgQGlmICRzaXplIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemUsICRvdmVycmlkZS1saW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0KTtcbiAgfVxufVxuIiwiQGltcG9ydCBcImNvbXBhdGliaWxpdHlcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5LWZvbnQtZmFtaWxpZXNcIjtcblxuLy8vL1xuLy8vIEBncm91cCBzZXR0aW5ncy90eXBvZ3JhcGh5XG4vLy8vXG5cbi8vLyBVc2UgJ2xlZ2FjeScgZm9udHNcbi8vL1xuLy8vIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB2MSBudGEgZm9udCBmcm9tIEdPVi5VSyBFbGVtZW50cyAvIEZyb250ZW5kXG4vLy8gVG9vbGtpdCwgZm9yIHRlYW1zIHRoYXQgYXJlIG1pZ3JhdGluZyB0byBHT1YuVUsgRnJvbnRlbmQgYW5kIG1heSBiZSB1c2luZ1xuLy8vIGNvbXBvbmVudHMgZnJvbSBib3RoIHBsYWNlcyBpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbi5cbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstdXNlLWxlZ2FjeS1mb250OiBpZihcbiAgKFxuICAgICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZnJvbnRlbmR0b29sa2l0IG9yXG4gICAgJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWt0ZW1wbGF0ZSBvclxuICAgICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZWxlbWVudHNcbiAgKSxcbiAgdHJ1ZSxcbiAgZmFsc2VcbikgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRm9udCBmYW1pbGllc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBGb250IGZhbWlsaWVzIHRvIHVzZSBmb3IgYWxsIHR5cG9ncmFwaHkgb24gc2NyZWVuIG1lZGlhXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvbnQtZmFtaWx5OiBpZihcbiAgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCxcbiAgJGdvdnVrLWZvbnQtZmFtaWx5LW50YSxcbiAgJGdvdnVrLWZvbnQtZmFtaWx5LWdkcy10cmFuc3BvcnRcbikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlsaWVzIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGFidWxhciBudW1iZXJzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvbnQtZmFtaWx5LXRhYnVsYXI6IGlmKFxuICAkZ292dWstdXNlLWxlZ2FjeS1mb250LFxuICAkZ292dWstZm9udC1mYW1pbHktbnRhLXRhYnVsYXIsXG4gIGZhbHNlXG4pICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbGllcyB0byB1c2UgZm9yIHByaW50IG1lZGlhXG4vLy9cbi8vLyBXZSByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIHN5c3RlbSBmb250cyB3aGVuIHByaW50aW5nLiBUaGlzIHdpbGwgYXZvaWQgaXNzdWVzXG4vLy8gd2l0aCBzb21lIHByaW50ZXIgZHJpdmVycyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvbnQtZmFtaWx5LXByaW50OiBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gSW5jbHVkZSB0aGUgZGVmYXVsdCBAZm9udC1mYWNlIGRlY2xhcmF0aW9uc1xuLy8vXG4vLy8gSWYgeW91IGhhdmUgc2V0ICRnb3Z1ay1mb250LWZhbWlseSB0byBzb21ldGhpbmcgb3RoZXIgdGhhblxuLy8vIGAkZ292dWstZm9udC1mYW1pbHktZ2RzLXRyYW5zcG9ydGAgdGhpcyBvcHRpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaW5jbHVkZS1kZWZhdWx0LWZvbnQtZmFjZTogKFxuICAkZ292dWstZm9udC1mYW1pbHkgPT0gJGdvdnVrLWZvbnQtZmFtaWx5LWdkcy10cmFuc3BvcnRcbikgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRm9udCB3ZWlnaHRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEZvbnQgd2VpZ2h0IGZvciByZWd1bGFyIHR5cG9ncmFwaHlcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG4kZ292dWstZm9udC13ZWlnaHQtcmVndWxhcjogNDAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGJvbGQgdHlwb2dyYXBoeVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbiRnb3Z1ay1mb250LXdlaWdodC1ib2xkOiA3MDAgIWRlZmF1bHQ7XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvbGlua3Ncbi8vLy9cblxuLy8vIENvbW1vbiBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gUHJvdmlkZXMgdGhlIHR5cG9ncmFwaHkgYW5kIGZvY3VzIHN0YXRlLCByZWdhcmRsZXNzIG9mIGxpbmsgc3R5bGUuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1jb21tb24ge1xuICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbjtcbiAgQGluY2x1ZGUgZ292dWstbGluay1kZWNvcmF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgfVxufVxuXG4vLy8gTGluayBkZWNvcmF0aW9uXG4vLy9cbi8vLyBQcm92aWRlcyB0aGUgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcywgaW5jbHVkaW5nIHRoaWNrbmVzcyBhbmQgdW5kZXJsaW5lXG4vLy8gb2Zmc2V0LiBVc2UgdGhpcyBtaXhpbiBvbmx5IGlmIHlvdSBjYW5ub3QgdXNlIHRoZSBgZ292dWstbGluay1jb21tb25gIG1peGluLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbkBtaXhpbiBnb3Z1ay1saW5rLWRlY29yYXRpb24ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICBAaWYgKCRnb3Z1ay1uZXctbGluay1zdHlsZXMpIHtcbiAgICBAaWYgKCRnb3Z1ay1saW5rLXVuZGVybGluZS10aGlja25lc3MpIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6ICRnb3Z1ay1saW5rLXVuZGVybGluZS10aGlja25lc3M7XG4gICAgfVxuXG4gICAgQGlmICgkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0KSB7XG4gICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBMaW5rIGhvdmVyIGRlY29yYXRpb25cbi8vL1xuLy8vIFByb3ZpZGVzIHRoZSB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIGluIHRoZWlyIGhvdmVyIHN0YXRlLCBmb3IgeW91IHRvIHVzZVxuLy8vIHdpdGhpbiBhIGA6aG92ZXJgIHBzZXVkby1zZWxlY3Rvci4gVXNlIHRoaXMgbWl4aW4gb25seSBpZiB5b3UgY2Fubm90IHVzZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstaG92ZXItZGVjb3JhdGlvbiB7XG4gIEBpZiAoJGdvdnVrLW5ldy1saW5rLXN0eWxlcyBhbmQgJGdvdnVrLWxpbmstaG92ZXItdW5kZXJsaW5lLXRoaWNrbmVzcykge1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6ICRnb3Z1ay1saW5rLWhvdmVyLXVuZGVybGluZS10aGlja25lc3M7XG4gICAgLy8gRGlzYWJsZSBpbmsgc2tpcHBpbmcgb24gdW5kZXJsaW5lcyBvbiBob3Zlci4gQnJvd3NlcnMgaGF2ZW4ndFxuICAgIC8vIHN0YW5kYXJkaXNlZCBvbiB0aGlzIHBhcnQgb2YgdGhlIHNwZWMgeWV0LCBzbyBzZXQgYm90aCBwcm9wZXJ0aWVzXG4gICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7IC8vIENocm9taXVtLCBGaXJlZm94XG4gICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogbm9uZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBub25lOyAvLyBTYWZhcmlcbiAgfVxufVxuXG4vLy8gRGVmYXVsdCBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBkZWZhdWx0IHVudmlzaXRlZCwgdmlzaXRlZCwgaG92ZXIgYW5kIGFjdGl2ZSBjb2xvdXJzLlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1kZWZhdWx0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdCB7XG4gICY6bGluayB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgfVxuXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLXZpc2l0ZWQtY29sb3VyO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWhvdmVyLWNvbG91cjtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstYWN0aXZlLWNvbG91cjtcbiAgfVxuXG4gIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmsgIHMgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgLy8gc28gdGhhdCB1bnZpc2l0ZWQgbGlua3Mgc3R5bGVkIGFzIGJ1dHRvbnMgZG8gbm90IGVuZCB1cCB3aXRoIGRhcmsgYmx1ZVxuICAvLyB0ZXh0IHdoZW4gZm9jdXNzZWQuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEVycm9yIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIGVycm9yIGNvbG91ci4gVGhlIGxpbmsgd2lsbCBkYXJrZW4gaWYgaXQncyBhY3RpdmUgb3IgYVxuLy8vIHVzZXIgaG92ZXJzIHRoZWlyIGN1cnNvciBvdmVyIGl0LlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1lcnJvcjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLWVycm9yIHtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZ292dWstZXJyb3ItY29sb3VyO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHNjYWxlLWNvbG9yKCRnb3Z1ay1lcnJvci1jb2xvdXIsICRsaWdodG5lc3M6IC0zMCUpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZ292dWstZXJyb3ItY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGluayAgcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU3VjY2VzcyBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBzdWNjZXNzIGNvbG91ci4gVGhlIGxpbmsgd2lsbCBkYXJrZW4gaWYgaXQncyBhY3RpdmUgb3IgYVxuLy8vIHVzZXIgaG92ZXJzIHRoZWlyIGN1cnNvciBvdmVyIGl0LlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1zdWNjZXNzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtc3VjY2VzcyB7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGdvdnVrLXN1Y2Nlc3MtY29sb3VyO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHNjYWxlLWNvbG9yKCRnb3Z1ay1zdWNjZXNzLWNvbG91ciwgJGxpZ2h0bmVzczogLTMwJSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay1zdWNjZXNzLWNvbG91cjtcbiAgfVxuXG4gIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmsgIHMgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgLy8gc28gdGhhdCB1bnZpc2l0ZWQgbGlua3Mgc3R5bGVkIGFzIGJ1dHRvbnMgZG8gbm90IGVuZCB1cCB3aXRoIGRhcmsgYmx1ZVxuICAvLyB0ZXh0IHdoZW4gZm9jdXNzZWQuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIE11dGVkIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIHNlY29uZGFyeSB0ZXh0IGNvbG91ci4gVGhlIGxpbmsgd2lsbCBkYXJrZW4gaWYgaXQnc1xuLy8vIGFjdGl2ZSBvciBhIHVzZXIgaG92ZXJzIHRoZWlyIGN1cnNvciBvdmVyIGl0LlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1tdXRlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLW11dGVkIHtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZ292dWstdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvciBkZXNpZ25lZFxuICAvLyB0byBtYWtlIHVudmlzaXRlZCBsaW5rcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvIHdlIG5lZWQgdG9cbiAgLy8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycy5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFRleHQgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgcHJpbWFyeSB0ZXh0IGNvbG91ciwgaW4gYWxsIHN0YXRlcy4gVXNlIHRoaXMgbWl4aW4gZm9yXG4vLy8gbmF2aWdhdGlvbiBjb21wb25lbnRzLCBzdWNoIGFzIGJyZWFkY3J1bWJzIG9yIHRoZSBiYWNrIGxpbmsuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS10ZXh0IHtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gRm9yY2UgYSBjb2xvdXIgY2hhbmdlIG9uIGhvdmVyIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIFNhZmFyaVxuICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDgzXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiByZ2JhKCRnb3Z1ay10ZXh0LWNvbG91ciwgLjk5KTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yIGRlc2lnbmVkXG4gIC8vIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc28gd2UgbmVlZCB0b1xuICAvLyBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJzZSBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3Mgd2hpdGUsIGluIGFsbCBzdGF0ZXMuIFVzZSB0aGlzIG1peGluIGlmIHlvdSdyZSBkaXNwbGF5aW5nIGxpbmtzXG4vLy8gYWdhaW5zdCBhIGRhcmsgYmFja2dyb3VuZC5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtaW52ZXJzZTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLWludmVyc2Uge1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICB9XG5cbiAgLy8gRm9yY2UgYSBjb2xvdXIgY2hhbmdlIG9uIGhvdmVyIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIFNhZmFyaVxuICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDgzXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogcmdiYShnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKSwgLjk5KTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvciBkZXNpZ25lZFxuICAvLyB0byBtYWtlIHVudmlzaXRlZCBsaW5rcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvIHdlIG5lZWQgdG9cbiAgLy8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycy5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gRGVmYXVsdCBsaW5rIHN0eWxlcywgd2l0aG91dCBhIHZpc2l0ZWQgc3RhdGVcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgZGVmYXVsdCB1bnZpc2l0ZWQsIGhvdmVyIGFuZCBhY3RpdmUgY29sb3Vycywgd2l0aCBub1xuLy8vIGRpc3RpbmN0IHZpc2l0ZWQgc3RhdGUuXG4vLy9cbi8vLyBVc2UgdGhpcyBtaXhpbiB3aGVuIGl0J3Mgbm90IGhlbHBmdWwgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB2aXNpdGVkIGFuZFxuLy8vIG5vbi12aXNpdGVkIGxpbmtzLiBGb3IgZXhhbXBsZSwgd2hlbiB5b3UgbGluayB0byBwYWdlcyB3aXRoXG4vLy8gZnJlcXVlbnRseS1jaGFuZ2luZyBjb250ZW50LCBzdWNoIGFzIHRoZSBkYXNoYm9hcmQgZm9yIGFuIGFkbWluIGludGVyZmFjZS5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbm8tdmlzaXRlZC1zdGF0ZTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLW5vLXZpc2l0ZWQtc3RhdGUge1xuICAmOmxpbmsge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gIH1cblxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstaG92ZXItY29sb3VyO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1hY3RpdmUtY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG59XG5cbi8vLyBSZW1vdmUgdW5kZXJsaW5lIGZyb20gbGlua3Ncbi8vL1xuLy8vIFJlbW92ZSB1bmRlcmxpbmVzIGZyb20gbGlua3MgdW5sZXNzIHRoZSBsaW5rIGlzIGFjdGl2ZSBvciBhIHVzZXIgaG92ZXJzXG4vLy8gdGhlaXIgY3Vyc29yIG92ZXIgaXQuIFRoaXMgaGFzIG5vIGVmZmVjdCBpbiBJbnRlcm5ldCBFeHBsb3JlciA4IChJRTgpLFxuLy8vIGJlY2F1c2UgSUU4IGRvZXMgbm90IHN1cHBvcnQgYDpub3RgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtbm8tdW5kZXJsaW5lO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtbm8tdW5kZXJsaW5lIHtcbiAgJjpub3QoOmhvdmVyKTpub3QoOmFjdGl2ZSkge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vLy8gSW5jbHVkZSBsaW5rIGRlc3RpbmF0aW9uIHdoZW4gcHJpbnRpbmcgdGhlIHBhZ2Vcbi8vL1xuLy8vIElmIHRoZSB1c2VyIHByaW50cyB0aGUgcGFnZSwgYWRkIHRoZSBkZXN0aW5hdGlvbiBVUkwgYWZ0ZXIgdGhlIGxpbmsgdGV4dCwgaWZcbi8vLyB0aGUgVVJMIHN0YXJ0cyB3aXRoIGAvYCwgYGh0dHA6Ly9gIG9yIGBodHRwczovL2AuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1wcmludC1mcmllbmRseSB7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgICZbaHJlZl49XCIvXCJdLFxuICAgICZbaHJlZl49XCJodHRwOi8vXCJdLFxuICAgICZbaHJlZl49XCJodHRwczovL1wiXSB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogOTAlO1xuXG4gICAgICAgIC8vIEJlY2F1c2UgdGhlIFVSTHMgbWF5IGJlIHZlcnkgbG9uZywgZW5zdXJlIHRoYXQgdGhleSBtYXkgYmUgYnJva2VuXG4gICAgICAgIC8vIGF0IGFyYml0cmFyeSBwb2ludHMgaWYgdGhlcmUgYXJlIG5vIG90aGVyd2lzZSBhY2NlcHRhYmxlIGJyZWFrXG4gICAgICAgIC8vIHBvaW50cyBpbiB0aGUgbGluZVxuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnNcbi8vLy9cblxuQGltcG9ydCBcIi4uL3Rvb2xzL2V4cG9ydHNcIjtcblxuLy8vIEZvbnQgRmFjZSAtIEdEUyBUcmFuc3BvcnRcbi8vL1xuLy8vIE91dHB1dHMgdGhlIGZvbnQtZmFjZSBkZWNsYXJhdGlvbiBmb3IgR0RTIFRyYW5zcG9ydCBhdCB0aGUgcm9vdCBvZiB0aGUgQ1NTIGRvY3VtZW50XG4vLy8gdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfZ292dWstZm9udC1mYWNlLWdkcy10cmFuc3BvcnQge1xuICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHsgLy8gSW4gSUU4LCB3aGljaCBjYW5ub3QgcmVuZGVyIFdPRkYgZm9ybWF0LCB3ZSBmYWxsIGJhY2sgdG8gc3lzdGVtIGZvbnRzXG4gICAgQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2hlbHBlcnMvZm9udC1mYWNlc1wiKSB7XG4gICAgICBAYXQtcm9vdCB7XG4gICAgICAgIC8qISBDb3B5cmlnaHQgKGMpIDIwMTEgYnkgTWFyZ2FyZXQgQ2FsdmVydCAmIEhlbnJpayBLdWJlbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhlIGZvbnQgaGFzIGJlZW4gY3VzdG9taXNlZCBmb3IgZXhjbHVzaXZlIHVzZSBvbiBnb3YudWsuIFRoaXMgY3V0IGlzIG5vdCBjb21tZXJjaWFsbHkgYXZhaWxhYmxlLiAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvY29tbWVudC1uby1sb3VkICAqL1xuICAgICAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJHRFMgVHJhbnNwb3J0XCI7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgc3JjOlxuICAgICAgICAgICAgZ292dWstZm9udC11cmwoXCJsaWdodC05NGEwN2UwNmExLXYyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICAgICAgZ292dWstZm9udC11cmwoXCJsaWdodC1mNTkxYjEzZjdkLXYyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICAgICAgICBmb250LWRpc3BsYXk6IGZhbGxiYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiR0RTIFRyYW5zcG9ydFwiO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBzcmM6XG4gICAgICAgICAgICBnb3Z1ay1mb250LXVybChcImJvbGQtYjU0MmJlYjI3NC12Mi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgICAgIGdvdnVrLWZvbnQtdXJsKFwiYm9sZC1hZmZhOTY1NzFkLXYyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICAgICAgICBmb250LWRpc3BsYXk6IGZhbGxiYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBtcSgpIHY0LjAuMlxuLy8gc2Fzcy1tcS9zYXNzLW1xXG5cbkBjaGFyc2V0IFwiVVRGLThcIjsgLy8gRml4ZXMgYW4gaXNzdWUgd2hlcmUgUnVieSBsb2NhbGUgaXMgbm90IHNldCBwcm9wZXJseVxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxuXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBSZXNwb25zaXZlIG1vZGVcbi8vL1xuLy8vIFNldCB0byBgZmFsc2VgIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXG4vLy9cbi8vLyBZb3UgY291bGQgY3JlYXRlIGEgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gb2xkZXIgYnJvd3NlcnMsXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gb2xkLWllLnNjc3Ncbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgbGlzdFxuLy8vXG4vLy8gTmFtZSB5b3VyIGJyZWFrcG9pbnRzIGluIGEgd2F5IHRoYXQgY3JlYXRlcyBhIHViaXF1aXRvdXMgbGFuZ3VhZ2Vcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtYnJlYWtwb2ludHM6IChcbiAgICBtb2JpbGU6ICAzMjBweCxcbiAgICB0YWJsZXQ6ICA3NDBweCxcbiAgICBkZXNrdG9wOiA5ODBweCxcbiAgICB3aWRlOiAgICAxMzAwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXG4vLy9cbi8vLyBEZWZpbmUgdGhlIGJyZWFrcG9pbnQgZnJvbSAkbXEtYnJlYWtwb2ludHMgdGhhdCBzaG91bGRcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3Ncbi8vLyAgLy9cbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2FkZGluZy1jdXN0b20tYnJlYWtwb2ludHMgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xuXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3Bcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8vXG4vLy8gQHR5cGUgbWFwXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG5cbi8vLyBDdXN0b21pemUgdGhlIG1lZGlhIHR5cGUgKGUuZy4gYEBtZWRpYSBzY3JlZW5gIG9yIGBAbWVkaWEgcHJpbnRgKVxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcblxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRweCAtIHZhbHVlIHRvIGNvbnZlcnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cbi8vL1xuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxuQGZ1bmN0aW9uIG1xLXB4MmVtKCRweCwgJGJhc2UtZm9udC1zaXplOiAkbXEtYmFzZS1mb250LXNpemUpIHtcbiAgICBAaWYgdW5pdGxlc3MoJHB4KSB7XG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xuICAgICAgICBAcmV0dXJuIG1xLXB4MmVtKCRweCAqIDFweCwgJGJhc2UtZm9udC1zaXplKTtcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHB4KSA9PSBlbSB7XG4gICAgICAgIEByZXR1cm4gJHB4O1xuICAgIH1cbiAgICBAcmV0dXJuICgkcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xufVxuXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50LiBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICR0YWJsZXQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKHRhYmxldCk7XG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXG5AZnVuY3Rpb24gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJG5hbWUsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcbiAgICB9XG59XG5cbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkYW5kIChmYWxzZSkgLSBBZGRpdGlvbmFsIG1lZGlhIHF1ZXJ5IHBhcmFtZXRlcnNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcbi8vL1xuLy8vIEBpZ25vcmUgVW5kb2N1bWVudGVkIEFQSSwgZm9yIGFkdmFuY2VkIHVzZSBvbmx5OlxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxuLy8vXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLW1lZGlhLXR5cGVcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1weDJlbVxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vbi1kZWZhdWx0IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcbi8vLyAgICAgIGNvbG9yOiByZWQ7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogYmx1ZTtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEobW9iaWxlLCB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSg5NTBweCkge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XG4vLy8gICAgQGluY2x1ZGUgbXEoTCwgJGJyZWFrcG9pbnRzOiAkbXktYnJlYWtwb2ludHMsICRzdGF0aWMtYnJlYWtwb2ludDogTCkge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICB9XG5AbWl4aW4gbXEoXG4gICAgJGZyb206IGZhbHNlLFxuICAgICR1bnRpbDogZmFsc2UsXG4gICAgJGFuZDogZmFsc2UsXG4gICAgJG1lZGlhLXR5cGU6ICRtcS1tZWRpYS10eXBlLFxuICAgICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLFxuICAgICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSxcbiAgICAkc3RhdGljLWJyZWFrcG9pbnQ6ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuKSB7XG4gICAgJG1pbi13aWR0aDogMDtcbiAgICAkbWF4LXdpZHRoOiAwO1xuICAgICRtZWRpYS1xdWVyeTogJyc7XG5cbiAgICAvLyBGcm9tOiB0aGlzIGJyZWFrcG9pbnQgKGluY2x1c2l2ZSlcbiAgICBAaWYgJGZyb20ge1xuICAgICAgICBAaWYgdHlwZS1vZigkZnJvbSkgPT0gbnVtYmVyIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKCRmcm9tKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbnRpbDogdGhhdCBicmVha3BvaW50IChleGNsdXNpdmUpXG4gICAgQGlmICR1bnRpbCB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCR1bnRpbCkgPT0gbnVtYmVyIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKCR1bnRpbCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcbiAgICAvLyBUaGUgYnJvd3NlciB3aWxsIHJlbHkgb24gdGhlIGNhc2NhZGUgaXRzZWxmLlxuICAgIEBpZiAkcmVzcG9uc2l2ZSA9PSBmYWxzZSB7XG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAkdGFyZ2V0LXdpZHRoOiBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xuXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkYW5kID09IGZhbHNlXG4gICAgICAgICAgICBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICBhbmQgKFxuICAgICAgICAgICAgICAgICR1bnRpbCA9PSBmYWxzZSBvciAkbWF4LXdpZHRoID49ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGFuZCAkbWVkaWEtdHlwZSAhPSAncHJpbnQnXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xuICAgIEBlbHNlIHtcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJGFuZCAgICAgICAgICAgIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JzsgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBRdWljayBzb3J0XG4vLy9cbi8vLyBAYXV0aG9yIFNhbSBSaWNoYXJkc1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNvcnRcbi8vLyBAcmV0dXJucyB7TGlzdH0gU29ydGVkIExpc3RcbkBmdW5jdGlvbiBfbXEtcXVpY2stc29ydCgkbGlzdCkge1xuICAgICRsZXNzOiAgKCk7XG4gICAgJGVxdWFsOiAoKTtcbiAgICAkbGFyZ2U6ICgpO1xuXG4gICAgQGlmIGxlbmd0aCgkbGlzdCkgPiAxIHtcbiAgICAgICAgJHNlZWQ6IG50aCgkbGlzdCwgY2VpbChsZW5ndGgoJGxpc3QpIC8gMikpO1xuXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICAgICAgICAgIEBpZiAoJGl0ZW0gPT0gJHNlZWQpIHtcbiAgICAgICAgICAgICAgICAkZXF1YWw6IGFwcGVuZCgkZXF1YWwsICRpdGVtKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtIDwgJHNlZWQpIHtcbiAgICAgICAgICAgICAgICAkbGVzczogYXBwZW5kKCRsZXNzLCAkaXRlbSk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkaXRlbSA+ICRzZWVkKSB7XG4gICAgICAgICAgICAgICAgJGxhcmdlOiBhcHBlbmQoJGxhcmdlLCAkaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAcmV0dXJuIGpvaW4oam9pbihfbXEtcXVpY2stc29ydCgkbGVzcyksICRlcXVhbCksIF9tcS1xdWljay1zb3J0KCRsYXJnZSkpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBTb3J0IGEgbWFwIGJ5IHZhbHVlcyAod29ya3Mgd2l0aCBudW1iZXJzIG9ubHkpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzb3J0XG4vLy8gQHJldHVybnMge01hcH0gTWFwIHNvcnRlZCBieSB2YWx1ZVxuQGZ1bmN0aW9uIF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbWFwKSB7XG4gICAgJG1hcC1zb3J0ZWQ6ICgpO1xuICAgICRtYXAta2V5czogbWFwLWtleXMoJG1hcCk7XG4gICAgJG1hcC12YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XG4gICAgJG1hcC12YWx1ZXMtc29ydGVkOiBfbXEtcXVpY2stc29ydCgkbWFwLXZhbHVlcyk7XG5cbiAgICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXG4gICAgQGVhY2ggJHZhbHVlIGluICRtYXAtdmFsdWVzLXNvcnRlZCB7XG4gICAgICAgICRpbmRleDogaW5kZXgoJG1hcC12YWx1ZXMsICR2YWx1ZSk7XG4gICAgICAgICRrZXk6IG50aCgkbWFwLWtleXMsICRpbmRleCk7XG4gICAgICAgICRtYXAtc29ydGVkOiBtYXAtbWVyZ2UoJG1hcC1zb3J0ZWQsICgka2V5OiAkdmFsdWUpKTtcblxuICAgICAgICAvLyBVbnNldCB0aGUgdmFsdWUgaW4gJG1hcC12YWx1ZXMgdG8gcHJldmVudCB0aGUgbG9vcFxuICAgICAgICAvLyBmcm9tIGZpbmRpbmcgdGhlIHNhbWUgaW5kZXggdHdpY2VcbiAgICAgICAgJG1hcC12YWx1ZXM6IHNldC1udGgoJG1hcC12YWx1ZXMsICRpbmRleCwgMCk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkbWFwLXNvcnRlZDtcbn1cblxuLy8vIEFkZCBhIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcbi8vLyAgQGluY2x1ZGUgbXEodHZzY3JlZW4pIHt9XG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xuICAgICRtcS1icmVha3BvaW50czogbWFwLW1lcmdlKCRtcS1icmVha3BvaW50cywgJG5ldy1icmVha3BvaW50KSAhZ2xvYmFsO1xuICAgICRtcS1icmVha3BvaW50czogX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtcS1icmVha3BvaW50cykgIWdsb2JhbDtcbn1cblxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbi8vL1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBib2R5OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9hY2Nlc3NpYmlsaXR5XG4vLy8vXG5cbi8vLyBGb2N1c2VkIHRleHRcbi8vL1xuLy8vIFByb3ZpZGVzIGFuIG91dGxpbmUgdG8gY2xlYXJseSBpbmRpY2F0ZSB3aGVuIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBmb2N1c2VkLlxuLy8vIFVzZWQgZm9yIGludGVyYWN0aXZlIHRleHQtYmFzZWQgZWxlbWVudHMuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZm9jdXNlZC10ZXh0IHtcbiAgLy8gV2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuLCBmb3IgZXhhbXBsZSB3aGVuIHVzZXJzIGhhdmUgYSBkYXJrIG1vZGUsXG4gIC8vIGJhY2tncm91bmRzIGFuZCBib3gtc2hhZG93cyBkaXNhcHBlYXIsIHNvIHdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlJ3MgYVxuICAvLyB0cmFuc3BhcmVudCBvdXRsaW5lIHdoaWNoIHdpbGwgYmUgc2V0IHRvIGEgdmlzaWJsZSBjb2xvdXIuXG5cbiAgLy8gU2luY2UgSW50ZXJuZXQgRXhwbG9yZXIgOCBkb2VzIG5vdCBzdXBwb3J0IGJveC1zaGFkb3csIHdlIHdhbnQgdG8gZm9yY2UgdGhlXG4gIC8vIHVzZXItYWdlbnQgb3V0bGluZXNcbiAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG4gIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gIGJveC1zaGFkb3c6IDAgLTJweCAkZ292dWstZm9jdXMtY29sb3VyLCAwIDRweCAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIC8vIFdoZW4gbGluayBpcyBmb2N1c3NlZCwgaGlkZSB0aGUgZGVmYXVsdCB1bmRlcmxpbmUgc2luY2UgdGhlXG4gIC8vIGJveCBzaGFkb3cgYWRkcyB0aGUgXCJ1bmRlcmxpbmVcIlxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL2NvbG91cnNcbi8vLy9cblxuQGltcG9ydCBcIi4uL2hlbHBlcnMvY29sb3VyXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2VuZXJpY1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBCcmFuZCBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1icmFuZC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsdWVcIikgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKSAhZGVmYXVsdDtcblxuLy8vIENhbnZhcyBiYWNrZ3JvdW5kIGNvbG91clxuLy8vXG4vLy8gVXNlZCBieSB0aGUgZm9vdGVyIGNvbXBvbmVudCBhbmQgdGVtcGxhdGUgdG8gZ2l2ZSB0aGUgaWxsdXNpb24gb2YgYSBsb25nXG4vLy8gZm9vdGVyLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWNhbnZhcy1iYWNrZ3JvdW5kLWNvbG91cjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKSAhZGVmYXVsdDtcblxuLy8vIEJvZHkgYmFja2dyb3VuZCBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ib2R5LWJhY2tncm91bmQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3VyIGZvciBwcmludCBtZWRpYVxuLy8vXG4vLy8gVXNlICd0cnVlIGJsYWNrJyB0byBhdm9pZCBwcmludGVycyB1c2luZyBjb2xvdXIgaW5rIHRvIHByaW50IGJvZHkgdGV4dFxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXByaW50LXRleHQtY29sb3VyOiAjMDAwMDAwICFkZWZhdWx0O1xuXG4vLy8gU2Vjb25kYXJ5IHRleHQgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGluIGZvciBleGFtcGxlICdtdXRlZCcgdGV4dCBhbmQgaGVscCB0ZXh0LlxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjogZ292dWstY29sb3VyKFwiZGFyay1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0xXCIpICFkZWZhdWx0O1xuXG4vLy8gRm9jdXMgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGZvciBvdXRsaW5lIChhbmQgYmFja2dyb3VuZCwgd2hlcmUgYXBwcm9wcmlhdGUpIHdoZW4gaW50ZXJhY3RpdmVcbi8vLyBlbGVtZW50cyAobGlua3MsIGZvcm0gY29udHJvbHMpIGhhdmUga2V5Ym9hcmQgZm9jdXMuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9jdXMtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJ5ZWxsb3dcIikgIWRlZmF1bHQ7XG5cbi8vLyBGb2N1c2VkIHRleHQgY29sb3VyXG4vLy9cbi8vLyBFbnN1cmUgdGhhdCB0aGUgY29udHJhc3QgYmV0d2VlbiB0aGUgdGV4dCBhbmQgYmFja2dyb3VuZCBjb2xvdXIgcGFzc2VzXG4vLy8gV0NBRyBMZXZlbCBBQSBjb250cmFzdCByZXF1aXJlbWVudHMuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZm9jdXMtdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpICFkZWZhdWx0O1xuXG4vLy8gRXJyb3IgY29sb3VyXG4vLy9cbi8vLyBVc2VkIHRvIGhpZ2hsaWdodCBlcnJvciBtZXNzYWdlcyBhbmQgZm9ybSBjb250cm9scyBpbiBhbiBlcnJvciBzdGF0ZVxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWVycm9yLWNvbG91cjogZ292dWstY29sb3VyKFwicmVkXCIpICFkZWZhdWx0O1xuXG4vLy8gU3VjY2VzcyBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgdG8gaGlnaGxpZ2h0IHN1Y2Nlc3MgbWVzc2FnZXMgYW5kIGJhbm5lcnNcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1zdWNjZXNzLWNvbG91cjogZ292dWstY29sb3VyKFwiZ3JlZW5cIikgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGluIGZvciBleGFtcGxlIGJvcmRlcnMsIHNlcGFyYXRvcnMsIHJ1bGVzIGFuZCBrZXlsaW5lcy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ib3JkZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMlwiKTtcblxuLy8vIElucHV0IGJvcmRlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIGZvcm0gaW5wdXRzIGFuZCBjb250cm9sc1xuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpICFkZWZhdWx0O1xuXG4vLy8gSW5wdXQgaG92ZXIgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGZvciBob3ZlciBzdGF0ZXMgb24gZm9ybSBjb250cm9sc1xuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWhvdmVyLWNvbG91cjogZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTNcIik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIExpbmsgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbGluay1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsdWVcIikgIWRlZmF1bHQ7XG5cbi8vLyBWaXNpdGVkIGxpbmsgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbGluay12aXNpdGVkLWNvbG91cjogZ292dWstY29sb3VyKFwicHVycGxlXCIsICRsZWdhY3k6ICM0YzJjOTIpICFkZWZhdWx0O1xuXG4vLy8gTGluayBob3ZlciBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLWhvdmVyLWNvbG91cjogZ292dWstY29sb3VyKFwiZGFyay1ibHVlXCIsICRsZWdhY3k6IFwibGlnaHQtYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBsaW5rIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstYWN0aXZlLWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIiwgJGxlZ2FjeTogXCJsaWdodC1ibHVlXCIpICFkZWZhdWx0O1xuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgY29yZSBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb3JlL2xpc3RzXCIpIHtcblxuICAlZ292dWstbGlzdCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgIC8vIEFkZCBhIHRvcCBtYXJnaW4gZm9yIG5lc3RlZCBsaXN0c1xuICAgICVnb3Z1ay1saXN0IHtcbiAgICAgIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICB9XG5cbiAgJWdvdnVrLWxpc3QgPiBsaSB7XG4gICAgLy8gTGlzdHMgd2l0aG91dCBudW1iZXJzIG9yIGJ1bGxldHMgc2hvdWxkIGFsd2F5cyBoYXZlIGV4dHJhIHNwYWNlIGJldHdlZW5cbiAgICAvLyBsaXN0IGl0ZW1zLiBMaXN0cyB3aXRoIG51bWJlcnMgb3IgYnVsbGV0cyBvbmx5IGhhdmUgdGhpcyBleHRyYSBzcGFjZSBvblxuICAgIC8vIHRhYmxldCBhbmQgYWJvdmVcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICB9XG5cbiAgLmdvdnVrLWxpc3Qge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpc3Q7XG4gIH1cblxuICAlZ292dWstbGlzdC0tYnVsbGV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICB9XG5cbiAgJWdvdnVrLWxpc3QtLW51bWJlciB7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1idWxsZXQgPiBsaSxcbiAgJWdvdnVrLWxpc3QtLW51bWJlciA+IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgICB9XG4gIH1cblxuICAlZ292dWstbGlzdC0tc3BhY2VkID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1saXN0LS1idWxsZXQge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpc3QtLWJ1bGxldDtcbiAgfVxuXG4gIC5nb3Z1ay1saXN0LS1udW1iZXIge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpc3QtLW51bWJlcjtcbiAgfVxuXG4gIC5nb3Z1ay1saXN0LS1zcGFjZWQge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpc3QtLXNwYWNlZDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL3NwYWNpbmdcbi8vLy9cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgaW5kZW50YXRpb25cblxuLy8vIFNpbmdsZSBwb2ludCBzcGFjaW5nXG4vLy9cbi8vLyBSZXR1cm5zIG1lYXN1cmVtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwYWNpbmcgcG9pbnQgcmVxdWVzdGVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nLXBvaW50IC0gUG9pbnQgb24gdGhlIHNwYWNpbmcgc2NhbGVcbi8vLyAgKHNldCBpbiBgc2V0dGluZ3MvX3NwYWNpbmcuc2Nzc2ApXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBTcGFjaW5nIG1lYXN1cmVtZW50IGVnLiAxMHB4XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoNSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIFVzaW5nIG5lZ2F0aXZlIHNwYWNpbmdcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygtMSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIE1hcmtpbmcgc3BhY2luZyBkZWNsYXJhdGlvbnMgYXMgaW1wb3J0YW50XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMSkgIWltcG9ydGFudDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBmdW5jdGlvbiBnb3Z1ay1zcGFjaW5nKCRzcGFjaW5nLXBvaW50KSB7XG5cbiAgJGFjdHVhbC1pbnB1dC10eXBlOiB0eXBlLW9mKCRzcGFjaW5nLXBvaW50KTtcbiAgQGlmICRhY3R1YWwtaW5wdXQtdHlwZSAhPSBcIm51bWJlclwiIHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBhIG51bWJlciAoaW50ZWdlciksIGJ1dCBnb3QgYSBcIlxuICAgICsgXCIjeyRhY3R1YWwtaW5wdXQtdHlwZX0uXCI7XG4gIH1cblxuICAkaXMtbmVnYXRpdmU6IGZhbHNlO1xuICBAaWYgKCRzcGFjaW5nLXBvaW50IDwgMCkge1xuICAgICRpcy1uZWdhdGl2ZTogdHJ1ZTtcbiAgICAkc3BhY2luZy1wb2ludDogYWJzKCRzcGFjaW5nLXBvaW50KTtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGdvdnVrLXNwYWNpbmctcG9pbnRzLCAkc3BhY2luZy1wb2ludCkge1xuICAgIEBlcnJvciBcIlVua25vd24gc3BhY2luZyB2YXJpYWJsZSBgI3skc3BhY2luZy1wb2ludH1gLiBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIHBvaW50IGZyb20gdGhlIHNwYWNpbmcgc2NhbGUgaW4gYF9zZXR0aW5ncy9zcGFjaW5nLnNjc3NgLlwiO1xuICB9XG5cbiAgJHZhbHVlOiBtYXAtZ2V0KCRnb3Z1ay1zcGFjaW5nLXBvaW50cywgJHNwYWNpbmctcG9pbnQpO1xuICBAcmV0dXJuIGlmKCRpcy1uZWdhdGl2ZSwgJHZhbHVlICogLTEsICR2YWx1ZSk7XG59XG5cbi8vLyBSZXNwb25zaXZlIHNwYWNpbmdcbi8vL1xuLy8vIEFkZHMgcmVzcG9uc2l2ZSBzcGFjaW5nIChlaXRoZXIgcGFkZGluZyBvciBtYXJnaW4sIGRlcGVuZGluZyBvbiBgJHByb3BlcnR5YClcbi8vLyBieSBmZXRjaGluZyBhICdzcGFjaW5nIG1hcCcgZnJvbSB0aGUgcmVzcG9uc2l2ZSBzcGFjaW5nIHNjYWxlLCB3aGljaCBkZWZpbmVzXG4vLy8gZGlmZmVyZW50IHNwYWNpbmcgdmFsdWVzIGF0IGRpZmZlcmVudCBicmVha3BvaW50cy5cbi8vL1xuLy8vIFRvIGdlbmVyYXRlIHJlc3BvbnNpdmUgc3BhY2luZywgdXNlICdnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbicgb3Jcbi8vLyAnZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nJyBtaXhpbnNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50IC0gUG9pbnQgb24gdGhlIHJlc3BvbnNpdmUgc3BhY2luZ1xuLy8vICAgc2NhbGUsIGNvcnJlc3BvbmRzIHRvIGEgbWFwIG9mIGJyZWFrcG9pbnRzIGFuZCBzcGFjaW5nIHZhbHVlc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHkgLSBQcm9wZXJ0eSB0byBhZGQgc3BhY2luZyB0byAoZS5nLiAnbWFyZ2luJylcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbYWxsXSAtIERpcmVjdGlvbiB0byBhZGQgc3BhY2luZyB0b1xuLy8vICAgKGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgYGxlZnRgLCBgYWxsYClcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBhcyBgIWltcG9ydGFudGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJGFkanVzdG1lbnQgW2ZhbHNlXSAtIE9mZnNldCB0byBhZGp1c3Qgc3BhY2luZyBieVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQsICRwcm9wZXJ0eSwgJGRpcmVjdGlvbjogXCJhbGxcIiwgJGltcG9ydGFudDogZmFsc2UsICRhZGp1c3RtZW50OiBmYWxzZSkge1xuXG4gICRhY3R1YWwtaW5wdXQtdHlwZTogdHlwZS1vZigkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50KTtcbiAgQGlmICRhY3R1YWwtaW5wdXQtdHlwZSAhPSBcIm51bWJlclwiIHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBhIG51bWJlciAoaW50ZWdlciksIGJ1dCBnb3QgYSBcIiArIFwiI3skYWN0dWFsLWlucHV0LXR5cGV9LlwiO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkZ292dWstc3BhY2luZy1yZXNwb25zaXZlLXNjYWxlLCAkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50KSB7XG4gICAgQGVycm9yIFwiVW5rbm93biBzcGFjaW5nIHBvaW50IGAjeyRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnR9YC4gTWFrZSBzdXJlIHlvdSBhcmUgdXNpbmcgYSBwb2ludCBmcm9tIHRoZSBcIlxuICAgICsgXCJyZXNwb25zaXZlIHNwYWNpbmcgc2NhbGUgaW4gYF9zZXR0aW5ncy9zcGFjaW5nLnNjc3NgLlwiO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBfc2V0dGluZ3Mvc3BhY2luZy5zY3NzYCBpcyBhIG1hcC5cbiAgJHNjYWxlLW1hcDogbWFwLWdldCgkZ292dWstc3BhY2luZy1yZXNwb25zaXZlLXNjYWxlLCAkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50KTtcbiAgJGFjdHVhbC1tYXAtdHlwZTogdHlwZS1vZigkc2NhbGUtbWFwKTtcbiAgQGlmICRhY3R1YWwtbWFwLXR5cGUgIT0gXCJtYXBcIiB7XG4gICAgQGVycm9yIFwiRXhwZWN0ZWQgYSBudW1iZXIgKGludGVnZXIpLCBidXQgZ290IGEgXCJcbiAgICArIFwiI3skYWN0dWFsLW1hcC10eXBlfS4gTWFrZSBzdXJlIHlvdSBhcmUgdXNpbmcgYSBtYXAgdG8gc2V0IHRoZSByZXNwb25zaXZlIHNwYWNpbmcgaW4gYF9zZXR0aW5ncy9zcGFjaW5nLnNjc3NgKVwiO1xuICB9XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBlYWNoICRicmVha3BvaW50LCAkYnJlYWtwb2ludC12YWx1ZSBpbiAkc2NhbGUtbWFwIHtcblxuICAgIEBpZiAoJGFkanVzdG1lbnQpIHtcbiAgICAgICRicmVha3BvaW50LXZhbHVlOiAkYnJlYWtwb2ludC12YWx1ZSArICRhZGp1c3RtZW50O1xuICAgIH1cblxuICAgIC8vIFRoZSAnbnVsbCcgYnJlYWtwb2ludCBpcyBmb3IgbW9iaWxlLlxuICAgIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcblxuICAgICAgQGlmICRkaXJlY3Rpb24gPT0gYWxsIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkYnJlYWtwb2ludC12YWx1ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAjeyRwcm9wZXJ0eX0tI3skZGlyZWN0aW9ufTogJGJyZWFrcG9pbnQtdmFsdWUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgQGlmICRkaXJlY3Rpb24gPT0gYWxsIHtcbiAgICAgICAgICAjeyRwcm9wZXJ0eX06ICRicmVha3BvaW50LXZhbHVlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAjeyRwcm9wZXJ0eX0tI3skZGlyZWN0aW9ufTogJGJyZWFrcG9pbnQtdmFsdWUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlc3BvbnNpdmUgbWFyZ2luXG4vLy9cbi8vLyBBZGRzIHJlc3BvbnNpdmUgbWFyZ2luIGJ5IGZldGNoaW5nIGEgJ3NwYWNpbmcgbWFwJyBmcm9tIHRoZSByZXNwb25zaXZlXG4vLy8gc3BhY2luZyBzY2FsZSwgd2hpY2ggZGVmaW5lcyBkaWZmZXJlbnQgc3BhY2luZyB2YWx1ZXMgYXQgZGlmZmVyZW50XG4vLy8gYnJlYWtwb2ludHMuIFdyYXBwZXIgZm9yIHRoZSBgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZ2AgbWl4aW4uXG4vLy9cbi8vLyBAc2VlIHttaXhpbn0gX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZ1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQgLSBQb2ludCBvbiB0aGUgcmVzcG9uc2l2ZSBzcGFjaW5nXG4vLy8gc2NhbGUsIGNvcnJlc3BvbmRzIHRvIGEgbWFwIG9mIGJyZWFrcG9pbnRzIGFuZCBzcGFjaW5nIHZhbHVlc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFthbGxdIC0gRGlyZWN0aW9uIHRvIGFkZCBzcGFjaW5nIHRvXG4vLy8gICAoYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBgbGVmdGAsIGBhbGxgKVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYWRqdXN0bWVudCBbZmFsc2VdIC0gT2Zmc2V0IHRvIGFkanVzdCBzcGFjaW5nIGJ5XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImxlZnRcIiwgJGFkanVzdG1lbnQ6IDFweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgJGRpcmVjdGlvbjogXCJhbGxcIiwgJGltcG9ydGFudDogZmFsc2UsICRhZGp1c3RtZW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQsIFwibWFyZ2luXCIsICRkaXJlY3Rpb24sICRpbXBvcnRhbnQsICRhZGp1c3RtZW50KTtcbn1cblxuLy8vIFJlc3BvbnNpdmUgcGFkZGluZ1xuLy8vXG4vLy8gQWRkcyByZXNwb25zaXZlIHBhZGRpbmcgYnkgZmV0Y2hpbmcgYSAnc3BhY2luZyBtYXAnIGZyb20gdGhlIHJlc3BvbnNpdmVcbi8vLyBzcGFjaW5nIHNjYWxlLCB3aGljaCBkZWZpbmVzIGRpZmZlcmVudCBzcGFjaW5nIHZhbHVlcyBhdCBkaWZmZXJlbnRcbi8vLyBicmVha3BvaW50cy4gV3JhcHBlciBmb3IgdGhlIGBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nYCBtaXhpbi5cbi8vL1xuLy8vIEBzZWUge21peGlufSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCAtIFBvaW50IG9uIHRoZSByZXNwb25zaXZlIHNwYWNpbmdcbi8vLyAgIHNjYWxlLCBjb3JyZXNwb25kcyB0byBhIG1hcCBvZiBicmVha3BvaW50cyBhbmQgc3BhY2luZyB2YWx1ZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbYWxsXSAtIERpcmVjdGlvbiB0byBhZGQgc3BhY2luZyB0b1xuLy8vICAgKGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgYGxlZnRgLCBgYWxsYClcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBhcyBgIWltcG9ydGFudGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJGFkanVzdG1lbnQgW2ZhbHNlXSAtIE9mZnNldCB0byBhZGp1c3Qgc3BhY2luZ1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDYsIFwibGVmdFwiLCAkYWRqdXN0bWVudDogMXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCwgJGRpcmVjdGlvbjogXCJhbGxcIiwgJGltcG9ydGFudDogZmFsc2UsICRhZGp1c3RtZW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQsIFwicGFkZGluZ1wiLCAkZGlyZWN0aW9uLCAkaW1wb3J0YW50LCAkYWRqdXN0bWVudCk7XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvdGVtcGxhdGVcIikge1xuXG4gIC8vIEFwcGxpZWQgdG8gdGhlIDxodG1sPiBlbGVtZW50XG4gIC5nb3Z1ay10ZW1wbGF0ZSB7XG4gICAgLy8gU2V0IHRoZSBvdmVyYWxsIHBhZ2UgYmFja2dyb3VuZCBjb2xvdXIgdG8gdGhlIHNhbWUgY29sb3VyIGFzIHVzZWQgYnkgdGhlXG4gICAgLy8gZm9vdGVyIHRvIGdpdmUgdGhlIGlsbHVzaW9uIG9mIGEgbG9uZyBmb290ZXIuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWNhbnZhcy1iYWNrZ3JvdW5kLWNvbG91cjtcblxuICAgIC8vIFByZXZlbnQgYXV0b21hdGljIHRleHQgc2l6aW5nLCBhcyB3ZSBhbHJlYWR5IGNhdGVyIGZvciBzbWFsbCBkZXZpY2VzIGFuZFxuICAgIC8vIHdvdWxkIGxpa2UgdGhlIGJyb3dzZXIgdG8gc3RheSBvbiAxMDAlIHRleHQgem9vbSBieSBkZWZhdWx0LlxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuXG4gICAgLy8gRm9yY2UgdGhlIHNjcm9sbGJhciB0byBhbHdheXMgZGlzcGxheSBpbiBJRSwgdG8gcHJldmVudCBob3Jpem9udGFsIHBhZ2VcbiAgICAvLyBqdW1wcyBhcyBjb250ZW50IGhlaWdodCBjaGFuZ2VzIChlLmcuIGF1dG9jb21wbGV0ZSByZXN1bHRzIG9wZW4pLlxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB9XG4gIH1cblxuICAvLyBBcHBsaWVkIHRvIHRoZSA8Ym9keT4gZWxlbWVudFxuICAuZ292dWstdGVtcGxhdGVfX2JvZHkge1xuICAgIC8vIFRoZSBkZWZhdWx0IG1hcmdpbnMgc2V0IGJ5IHVzZXItYWdlbnRzIGFyZSBub3QgcmVxdWlyZWQgc2luY2Ugd2UgaGF2ZSBvdXJcbiAgICAvLyBvd24gY29udGFpbmVycy5cbiAgICBtYXJnaW46IDA7XG4gICAgLy8gU2V0IHRoZSBvdmVyYWxsIGJvZHkgb2YgdGhlIHBhZ2UgYmFjayB0byB0aGUgdHlwaWNhbCBiYWNrZ3JvdW5kIGNvbG91ci5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYm9keS1iYWNrZ3JvdW5kLWNvbG91cjtcbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgY29yZSBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb3JlL3R5cG9ncmFwaHlcIikge1xuXG4gIC8vIEhlYWRpbmdzXG5cbiAgJWdvdnVrLWhlYWRpbmcteGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkaW5nLXhsIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLXhsO1xuICB9XG5cbiAgJWdvdnVrLWhlYWRpbmctbCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmctbCB7XG4gICAgQGV4dGVuZCAlZ292dWstaGVhZGluZy1sO1xuICB9XG5cbiAgJWdvdnVrLWhlYWRpbmctbSB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmctbSB7XG4gICAgQGV4dGVuZCAlZ292dWstaGVhZGluZy1tO1xuICB9XG5cbiAgJWdvdnVrLWhlYWRpbmctcyB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmctcyB7XG4gICAgQGV4dGVuZCAlZ292dWstaGVhZGluZy1zO1xuICB9XG5cbiAgLy8gQ2FwdGlvbnMgdG8gYmUgdXNlZCBpbnNpZGUgaGVhZGluZ3NcblxuICAuZ292dWstY2FwdGlvbi14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjcpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstY2FwdGlvbi1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1jYXB0aW9uLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBCb2R5IChwYXJhZ3JhcGhzKVxuXG4gICVnb3Z1ay1ib2R5LWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0KTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstYm9keS1sIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LWw7XG4gIH1cblxuICAlZ292dWstYm9keS1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWJvZHktbSB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS1tO1xuICB9XG5cbiAgJWdvdnVrLWJvZHktcyB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1ib2R5LXMge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktcztcbiAgfVxuXG4gICVnb3Z1ay1ib2R5LXhzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNCk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWJvZHkteHMge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHkteHM7XG4gIH1cblxuICAvLyBVc2FnZSBhbGlhc2VzXG5cbiAgLy8gVXNpbmcgZXh0ZW5kIHRvIGFsaWFzIG1lYW5zIHdlIGFsc28gaW5oZXJpdCBhbnkgY29udGV4dHVhbCBhZGp1c3RtZW50cyB0aGF0XG4gIC8vIHJlZmVyIHRvIHRoZSAnb3JpZ2luYWwnIGNsYXNzIG5hbWVcblxuICAuZ292dWstYm9keS1sZWFkIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LWw7XG4gIH1cblxuICAuZ292dWstYm9keSB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS1tO1xuICB9XG5cbiAgLy8gQ29udGV4dHVhbCBhZGp1c3RtZW50c1xuICAvLyBBZGQgdG9wIHBhZGRpbmcgdG8gaGVhZGluZ3MgdGhhdCBhcHBlYXIgZGlyZWN0bHkgYWZ0ZXIgcGFyYWdyYXBocy5cblxuICAlZ292dWstYm9keS1sICArICVnb3Z1ay1oZWFkaW5nLWwge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICB9XG5cbiAgJWdvdnVrLWJvZHktbSAgKyAlZ292dWstaGVhZGluZy1sLFxuICAlZ292dWstYm9keS1zICArICVnb3Z1ay1oZWFkaW5nLWwsXG4gICVnb3Z1ay1saXN0ICsgJWdvdnVrLWhlYWRpbmctbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDQsIFwidG9wXCIpO1xuICB9XG5cbiAgJWdvdnVrLWJvZHktbSArICVnb3Z1ay1oZWFkaW5nLW0sXG4gICVnb3Z1ay1ib2R5LXMgKyAlZ292dWstaGVhZGluZy1tLFxuICAlZ292dWstbGlzdCArICVnb3Z1ay1oZWFkaW5nLW0sXG4gICVnb3Z1ay1ib2R5LW0gKyAlZ292dWstaGVhZGluZy1zLFxuICAlZ292dWstYm9keS1zICsgJWdvdnVrLWhlYWRpbmctcyxcbiAgJWdvdnVrLWxpc3QgKyAlZ292dWstaGVhZGluZy1zIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygxKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgY29yZSBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb3JlL3NlY3Rpb24tYnJlYWtcIikge1xuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgLy8gZml4IGRvdWJsZS13aWR0aCBzZWN0aW9uIGJyZWFrIGFuZCBmb3JjZWQgdmlzaWJsZSBzZWN0aW9uIGJyZWFrXG4gICAgLy8gd2hlbiBjb21iaW5lZCB3aXRoIHN0eWxlcyBmcm9tIGFscGhhZ292L2VsZW1lbnRzXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a19lbGVtZW50cykge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zZWN0aW9uLWJyZWFrIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1zZWN0aW9uLWJyZWFrO1xuICB9XG5cbiAgLy8gU2l6ZXNcblxuICAlZ292dWstc2VjdGlvbi1icmVhay0teGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLXhsIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS14bDtcbiAgfVxuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcInRvcFwiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1zZWN0aW9uLWJyZWFrLS1sIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS1sO1xuICB9XG5cbiAgJWdvdnVrLXNlY3Rpb24tYnJlYWstLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLW0ge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLW07XG4gIH1cblxuICAvLyBWaXNpYmxlIHZhcmlhbnRcblxuICAlZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGUge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL2J1dHRvbi1ncm91cFwiKSB7XG4gIC8vIEJ1dHRvbiBncm91cHMgY2FuIGJlIHVzZWQgdG8gZ3JvdXAgYnV0dG9ucyBhbmQgbGlua3MgdG9nZXRoZXIgYXMgYSBncm91cC5cbiAgLy9cbiAgLy8gV2l0aGluIGEgYnV0dG9uIGdyb3VwOlxuICAvL1xuICAvLyAtIGxpbmtzIGFyZSBzdHlsZWQgdG8gbGluZSB1cCB2aXN1YWxseSB3aXRoIHRoZSBidXR0b25zLCBpbmNsdWRpbmcgYmVpbmdcbiAgLy8gICBjZW50cmUtYWxpZ25lZCBvbiBtb2JpbGVcbiAgLy8gLSBzcGFjaW5nIGJldHdlZW4gdGhlIGJ1dHRvbnMgYW5kIGxpbmtzIGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSwgaW5jbHVkaW5nXG4gIC8vICAgd2hlbiB0aGV5IHdyYXAgYWNyb3NzIG11bHRpcGxlIGxpbmVzXG4gIC5nb3Z1ay1idXR0b24tZ3JvdXAge1xuICAgICRob3Jpem9udGFsLWdhcDogZ292dWstc3BhY2luZygzKTtcbiAgICAkdmVydGljYWwtZ2FwOiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgLy8gVGhlc2UgbmVlZCB0byBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgYnV0dG9uIGNvbXBvbmVudCdzIHN0eWxlc1xuICAgICRidXR0b24tcGFkZGluZzogZ292dWstc3BhY2luZygyKTtcbiAgICAkYnV0dG9uLXNoYWRvdy1zaXplOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICRsaW5rLXNwYWNpbmc6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiLCAkYWRqdXN0bWVudDogJHZlcnRpY2FsLWdhcCAqIC0xKTtcblxuICAgIC8vIEZsZXhib3ggaXMgdXNlZCB0byBjZW50ZXItYWxpZ24gbGlua3Mgb24gbW9iaWxlLCBhbGlnbiBldmVyeXRoaW5nIGFsb25nXG4gICAgLy8gdGhlIGJhc2VsaW5lIG9uIHRhYmxldCBhbmQgYWJvdmUsIGFuZCB0byByZW1vdmVzIGV4dHJhIHdoaXRlc3BhY2UgdGhhdFxuICAgIC8vIHdlJ2QgZ2V0IGJldHdlZW4gdGhlIGJ1dHRvbnMgYW5kIGxpbmtzIGJlY2F1c2UgdGhleSdyZSBpbmxpbmUtYmxvY2tzLlxuICAgIC8vXG4gICAgLy8gSWRlYWxseSB3ZSdkIHVzZSBgZ2FwYCB3aXRoIGZsZXhib3ggcmF0aGVyIHRoYW4gaGF2aW5nIHRvIGRvIGl0IGFsbCB3aXRoXG4gICAgLy8gbWFyZ2lucywgYnV0IHVuZm9ydHVuYXRlbHkgdGhlIHN1cHBvcnQgaXNuJ3QgdGhlcmUgKHlldCkgYW5kIEBzdXBwb3J0c1xuICAgIC8vIGRvZXNuJ3QgcGxheSBuaWNlbHkgd2l0aCBpdFxuICAgIC8vIChodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzU1OSlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC8vIEdpdmUgbGlua3Mgd2l0aGluIHRoZSBidXR0b24gZ3JvdXAgdGhlIHNhbWUgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodFxuICAgIC8vIGFzIGJ1dHRvbnMuXG4gICAgLy9cbiAgICAvLyBCZWNhdXNlIHdlIHdhbnQgdGhlIGZvY3VzIHN0YXRlIHRvIGJlIHRpZ2h0IGFyb3VuZCB0aGUgbGluayB0ZXh0LCB3ZSB1c2VcbiAgICAvLyBtYXJnaW5zIHdoZXJlIHRoZSBidXR0b25zIHdvdWxkIHVzZSBwYWRkaW5nLlxuICAgIC5nb3Z1ay1saW5rIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkbGluZS1oZWlnaHQ6IDE5cHgpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgLy8gUHJldmVudCBsaW5rcyBvdmVyZmxvd2luZyB0aGVpciBjb250YWluZXIgaW4gSUUxMC8xMSBiZWNhdXNlIG9mIGJ1Z1xuICAgICAgLy8gd2l0aCBhbGlnbi1pdGVtczogY2VudGVyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAkbGluay1zcGFjaW5nO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGxpbmstc3BhY2luZyArICR2ZXJ0aWNhbC1nYXA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gUmVkdWNlIHRoZSBib3R0b20gbWFyZ2luIHRvIHRoZSBzaXplIG9mIHRoZSB2ZXJ0aWNhbCBnYXAgKGFjY29tbW9kYXRpbmdcbiAgICAvLyB0aGUgYnV0dG9uIHNoYWRvdykg4oCTIHRoZSAnbG9zdCcgbWFyZ2luIGlzIG1vdmVkIHRvIHRoZSBidXR0b24tZ3JvdXAuXG4gICAgLmdvdnVrLWJ1dHRvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkdmVydGljYWwtZ2FwICsgJGJ1dHRvbi1zaGFkb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAvLyBPbiB0YWJsZXQgYW5kIGFib3ZlLCB3ZSBhbHNvIGludHJvZHVjZSBhICdjb2x1bW4gZ2FwJyBiZXR3ZWVuIHRoZVxuICAgIC8vIGJ1dHRvbnMgYW5kIGxpbmtzIGluIGVhY2ggcm93IGFuZCBsZWZ0IGFsaWduIGxpbmtzXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgLy8gQ2FuY2VsIG91dCB0aGUgY29sdW1uIGdhcCBmb3IgdGhlIGxhc3QgaXRlbSBpbiBlYWNoIHJvd1xuICAgICAgbWFyZ2luLXJpZ2h0OiAoJGhvcml6b250YWwtZ2FwICogLTEpO1xuXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG5cbiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuXG4gICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cbiAgICAgIC5nb3Z1ay1idXR0b24sXG4gICAgICAuZ292dWstbGluayB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGhvcml6b250YWwtZ2FwO1xuICAgICAgfVxuXG4gICAgICAuZ292dWstbGluayB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb2JqZWN0cy9mb3JtLWdyb3VwXCIpIHtcbiAgLmdvdnVrLWZvcm0tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuXG4gICAgLmdvdnVrLWZvcm0tZ3JvdXA6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IC8vIFJlbW92ZSBtYXJnaW4gZnJvbSBsYXN0IGl0ZW0gaW4gbmVzdGVkIGdyb3Vwc1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb3JtLWdyb3VwLS1lcnJvciB7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIGJvcmRlci1sZWZ0OiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZ3JvdXAtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgIC5nb3Z1ay1mb3JtLWdyb3VwIHtcbiAgICAgIC8vIFJlc2V0IGVycm9yIHN0eWxlcyBpbiBuZXN0ZWQgZm9ybSBncm91cHMgdGhhdCBtaWdodCBoYXZlIGVycm9yIGNsYXNzXG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2xheW91dFxuLy8vL1xuXG4vLy8gQ2xlYXIgZmxvYXRlZCBjb250ZW50IHdpdGhpbiBhIGNvbnRhaW5lciB1c2luZyBhIHBzZXVkbyBlbGVtZW50XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb2JqZWN0cy9ncmlkXCIpIHtcbiAgLmdvdnVrLWdyaWQtcm93IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0gKCRnb3Z1ay1ndXR0ZXItaGFsZik7XG4gICAgbWFyZ2luLWxlZnQ6IC0gKCRnb3Z1ay1ndXR0ZXItaGFsZik7XG4gIH1cblxuICBAZWFjaCAkd2lkdGggaW4gbWFwLWtleXMoJGdvdnVrLWdyaWQtd2lkdGhzKSB7XG4gICAgLmdvdnVrLWdyaWQtY29sdW1uLSN7JHdpZHRofSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1ncmlkLWNvbHVtbigkd2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZXNlICptdXN0KiBiZSBkZWZpbmVkIGluIGEgc2VwYXJhdGUgbG9vcCBhcyB0aGV5IGhhdmUgdGhlIHNhbWVcbiAgLy8gc3BlY2lmaWNpdHkgYXMgdGhlIG5vbi1icmVha3BvaW50IHNwZWNpZmljIGNsYXNzZXMsIHNvIG5lZWQgdG8gYXBwZWFyIGFmdGVyXG4gIC8vIHRoZW0gaW4gdGhlIG91dHB1dHRlZCBDU1NcbiAgQGVhY2ggJHdpZHRoIGluIG1hcC1rZXlzKCRnb3Z1ay1ncmlkLXdpZHRocykge1xuICAgIC5nb3Z1ay1ncmlkLWNvbHVtbi0jeyR3aWR0aH0tZnJvbS1kZXNrdG9wIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKCR3aWR0aCwgJGF0OiBkZXNrdG9wKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9sYXlvdXRcbi8vLy9cblxuLy8vIEdyaWQgd2lkdGggcGVyY2VudGFnZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBOYW1lIG9mIGdyaWQgd2lkdGggKGUuZy4gdHdvLXRoaXJkcylcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFBlcmNlbnRhZ2Ugd2lkdGhcbi8vLyBAdGhyb3cgaWYgYCRrZXlgIGlzIG5vdCBhIHZhbGlkIGdyaWQgd2lkdGhcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AZnVuY3Rpb24gZ292dWstZ3JpZC13aWR0aCgka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZ292dWstZ3JpZC13aWR0aHMsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGdvdnVrLWdyaWQtd2lkdGhzLCAka2V5KTtcbiAgfVxuXG4gIEBlcnJvciBcIlVua25vd24gZ3JpZCB3aWR0aCBgI3ska2V5fWBcIjtcbn1cblxuLy8vIEdlbmVyYXRlIGdyaWQgY29sdW1uIHN0eWxlc1xuLy8vXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHdpdGggc3RhbmRhcmQgZ3V0dGVyIGJldHdlZW4gdGhlIGNvbHVtbnMuXG4vLy9cbi8vLyBHcmlkIHdpZHRocyBhcmUgZGVmaW5lZCBpbiB0aGUgYCRnb3Z1ay1ncmlkLXdpZHRoc2AgbWFwLlxuLy8vXG4vLy8gQnkgZGVmYXVsdCB0aGUgY29sdW1uIHdpZHRoIGNoYW5nZXMgZnJvbSAxMDAlIHRvIHNwZWNpZmllZCB3aWR0aCBhdCB0aGVcbi8vLyAndGFibGV0JyBicmVha3BvaW50LCBidXQgb3RoZXIgYnJlYWtwb2ludHMgY2FuIGJlIHNwZWNpZmllZCB1c2luZyB0aGUgYCRhdGBcbi8vLyBwYXJhbWV0ZXIuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdpZHRoIFtmdWxsXSBuYW1lIG9mIGEgZ3JpZCB3aWR0aCBmcm9tICRnb3Z1ay1ncmlkLXdpZHRoc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZmxvYXQgW2xlZnRdIGxlZnQgfCByaWdodFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYXQgW3RhYmxldF0gLSBtb2JpbGUgfCB0YWJsZXQgfCBkZXNrdG9wIHwgYW55IGN1c3RvbSBicmVha3BvaW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGVmYXVsdFxuLy8vICAgLmdvdnVrLWdyaWQtY29sdW1uLXR3by10aGlyZHMge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1ncmlkLWNvbHVtbih0d28tdGhpcmRzKVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEN1c3RvbWlzaW5nIHRoZSBicmVha3BvaW50IHdoZXJlIHdpZHRoIHBlcmNlbnRhZ2UgaXMgYXBwbGllZFxuLy8vICAgLmdvdnVrLWdyaWQtY29sdW1uLW9uZS1oYWxmLWF0LWRlc2t0b3Age1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1ncmlkLWNvbHVtbihvbmUtaGFsZiwgJGF0OiBkZXNrdG9wKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDdXN0b21pc2luZyB0aGUgZmxvYXQgZGlyZWN0aW9uXG4vLy8gICAuZ292dWstZ3JpZC1jb2x1bW4tb25lLWhhbGYtcmlnaHQge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1ncmlkLWNvbHVtbih0d28tdGhpcmRzLCAkZmxvYXQ6IHJpZ2h0KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1ncmlkLWNvbHVtbigkd2lkdGg6IGZ1bGwsICRmbG9hdDogbGVmdCwgJGF0OiB0YWJsZXQpIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgQGlmICRhdCAhPSBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBwYWRkaW5nOiAwICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206ICRhdCkge1xuICAgIHdpZHRoOiBnb3Z1ay1ncmlkLXdpZHRoKCR3aWR0aCk7XG4gICAgZmxvYXQ6ICRmbG9hdDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8vL1xuLy8vIEBncm91cCBvYmplY3RzL2xheW91dFxuLy8vL1xuXG4vLyBFeGFtcGxlIHVzYWdlIHdpdGggQnJlYWRjcnVtYnMsIHBoYXNlIGJhbm5lcnMsIGJhY2sgbGlua3M6XG4vLyA8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG4vLyAgIDwhLS0gQnJlYWRjcnVtYnMsIHBoYXNlIGJhbm5lcnMsIGJhY2sgbGlua3MgYXJlIHBsYWNlZCBpbiBoZXJlLiAtLT5cbi8vICAgPGRpdiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlclwiPlxuLy8gICAgICAgPCEtLSBXcmFwcGVyIGZvciB0aGUgbWFpbiBjb250ZW50IG9mIHlvdXIgcGFnZSB3aGljaCBhcHBsaWVzIHBhZGRpbmdcbi8vICAgICAgICAgICAgdG8gdGhlIHRvcCAvIGJvdHRvbSAtLT5cbi8vICAgPC9kaXY+XG4vLyA8L2Rpdj5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlIHdpdGhvdXQgQnJlYWRjcnVtYnMsIHBoYXNlIGJhbm5lcnMsIGJhY2sgbGlua3M6XG4vLyA8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG4vLyAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1tYWluLXdyYXBwZXIgZ292dWstbWFpbi13cmFwcGVyLS1sXCI+XG4vLyAgICAgICA8IS0tIFdyYXBwZXIgZm9yIHRoZSBtYWluIGNvbnRlbnQgb2YgeW91ciBwYWdlIHdoaWNoIGFwcGxpZXMgcGFkZGluZ1xuLy8gICAgICAgICAgICB0byB0aGUgdG9wIC8gYm90dG9tIC0tPlxuLy8gICA8L2Rpdj5cbi8vIDwvZGl2PlxuXG4vLy8gQGRlcHJlY2F0ZWQgUmVwbGFjZSB0aGlzIG1peGluIHdpdGggbW9yZSBkaXJlY3QgcmVmZXJlbmNlcyB0byB0aGUgW3NwYWNpbmdcbi8vLyBtaXhpbnNdKGh0dHBzOi8vZGVzaWduLXN5c3RlbS5zZXJ2aWNlLmdvdi51ay9zdHlsZXMvc3BhY2luZy8jc3BhY2luZy1vbi1jdXN0b20tY29tcG9uZW50cykuXG5AbWl4aW4gZ292dWstbWFpbi13cmFwcGVyIHtcbiAgLy8gSW4gSUUxMSB0aGUgYG1haW5gIGVsZW1lbnQgY2FuIGJlIHVzZWQsIGJ1dCBpcyBub3QgcmVjb2duaXplZCAg4oCTXG4gIC8vIG1lYW5pbmcgaXQncyBub3QgZGVmaW5lZCBpbiBJRSdzIGRlZmF1bHQgc3R5bGUgc2hlZXQsXG4gIC8vIHNvIGl0IHVzZXMgQ1NTIGluaXRpYWwgdmFsdWUsIHdoaWNoIGlzIGlubGluZS5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZyg0KTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgLy8gVGhpcyBzcGFjaW5nIGlzIG1hbnVhbGx5IGFkanVzdGVkIHRvIHJlcGxpY2F0ZSB0aGUgbWFyZ2luIG9mXG4gICAgLy8gZ292dWstaGVhZGluZy14bCAoNTBweCkgbWludXMgdGhlIHNwYWNpbmcgb2YgYmFjayBsaW5rIGFuZFxuICAgIC8vIGJyZWFkY3J1bWJzICgxMHB4KVxuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDcpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDcpO1xuICB9XG59XG5cbi8vLyBVc2UgZ292dWstbWFpbi13cmFwcGVyLS1sIHdoZW4geW91IHBhZ2UgZG9lcyBub3QgaGF2ZSBCcmVhZGNydW1icywgcGhhc2Vcbi8vLyBiYW5uZXJzIG9yIGJhY2sgbGlua3MuXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCBSZXBsYWNlIHRoaXMgbWl4aW4gd2l0aCBtb3JlIGRpcmVjdCByZWZlcmVuY2VzIHRvIHRoZSBbc3BhY2luZ1xuLy8vIG1peGluc10oaHR0cHM6Ly9kZXNpZ24tc3lzdGVtLnNlcnZpY2UuZ292LnVrL3N0eWxlcy9zcGFjaW5nLyNzcGFjaW5nLW9uLWN1c3RvbS1jb21wb25lbnRzKS5cbkBtaXhpbiBnb3Z1ay1tYWluLXdyYXBwZXItLWwge1xuICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoOCwgXCJ0b3BcIik7XG59XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL21haW4td3JhcHBlclwiKSB7XG4gIC5nb3Z1ay1tYWluLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1haW4td3JhcHBlcjtcbiAgfVxuXG4gIC8vIFVzaW5nIHRoZSBgLmdvdnVrLW1haW4td3JhcHBlci0tYXV0by1zcGFjaW5nYCBtb2RpZmllciBzaG91bGQgYXBwbHkgdGhlXG4gIC8vIGNvcnJlY3Qgc3BhY2luZyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGVyZSBhcmUgYW55IGVsZW1lbnRzXG4gIC8vIChzdWNoIHRoZSBiYWNrIGxpbmssIGJyZWFkY3J1bWJzIG9yIHBoYXNlIGJhbm5lciBjb21wb25lbnRzKSBiZWZvcmUgdGhlXG4gIC8vIGAuZ292dWstbWFpbi13cmFwcGVyYCBpbiB0aGUgYGdvdnVrLXdpZHRoLWNvbnRhaW5lcmAuXG4gIC8vXG4gIC8vIElmIHlvdSBuZWVkIHRvIGNvbnRyb2wgdGhlIHNwYWNpbmcgbWFudWFsbHksIHVzZSB0aGVcbiAgLy8gYGdvdnVrLW1haW4td3JhcHBlci0tbGAgbW9kaWZpZXIgaW5zdGVhZC5cbiAgLmdvdnVrLW1haW4td3JhcHBlci0tYXV0by1zcGFjaW5nOmZpcnN0LWNoaWxkLFxuICAuZ292dWstbWFpbi13cmFwcGVyLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tYWluLXdyYXBwZXItLWw7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2JqZWN0cy9sYXlvdXRcbi8vLy9cblxuLy8vIFdpZHRoIGNvbnRhaW5lciBtaXhpblxuLy8vXG4vLy8gVXNlZCB0byBjcmVhdGUgcGFnZSB3aWR0aCBhbmQgY3VzdG9tIHdpZHRoIGNvbnRhaW5lciBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3aWR0aCBbJGdvdnVrLXBhZ2Utd2lkdGhdIC0gV2lkdGggaW4gcGl4ZWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRpbmcgYSAxMjAwcHggd2lkZSBjb250YWluZXIgY2xhc3Ncbi8vLyAgLmFwcC13aWR0aC1jb250YWluZXItLXdpZGUge1xuLy8vICAgIEBpbmNsdWRlIGdvdnVrLXdpZHRoLWNvbnRhaW5lcigxMjAwcHgpO1xuLy8vICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstd2lkdGgtY29udGFpbmVyKCR3aWR0aDogJGdvdnVrLXBhZ2Utd2lkdGgpIHtcblxuICAvLyBCeSBkZWZhdWx0LCBsaW1pdCB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lciB0byB0aGUgcGFnZSB3aWR0aFxuICBtYXgtd2lkdGg6ICR3aWR0aDtcblxuICAvLyBPbiBtb2JpbGUsIGFkZCBoYWxmIHdpZHRoIGd1dHRlcnNcbiAgbWFyZ2luLXJpZ2h0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gIG1hcmdpbi1sZWZ0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG5cbiAgLy8gUmVzcGVjdCAnZGlzcGxheSBjdXRvdXQnIHNhZmUgYXJlYSAoYXZvaWRzIG5vdGNoZXMgYW5kIHJvdW5kZWQgY29ybmVycylcbiAgQHN1cHBvcnRzIChtYXJnaW46IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0OiBjYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgJGd1dHRlci1zYWZlLWFyZWEtbGVmdDogY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcblxuICAgIC8vIFVzZSBtYXgoKSB0byBwaWNrIGxhcmdlc3QgbWFyZ2luLCBkZWZhdWx0IG9yIHdpdGggc2FmZSBhcmVhXG4gICAgLy8gRXNjYXBlZCBkdWUgdG8gU2FzcyBtYXgoKSB2cy4gQ1NTIG5hdGl2ZSBtYXgoKVxuICAgIG1hcmdpbi1yaWdodDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXItaGFsZn0sICN7JGd1dHRlci1zYWZlLWFyZWEtcmlnaHR9KVwiKTtcbiAgICBtYXJnaW4tbGVmdDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXItaGFsZn0sICN7JGd1dHRlci1zYWZlLWFyZWEtbGVmdH0pXCIpO1xuICB9XG5cbiAgLy8gT24gdGFibGV0LCBhZGQgZnVsbCB3aWR0aCBndXR0ZXJzXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1ndXR0ZXI7XG4gICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXI7XG5cbiAgICAvLyBSZXNwZWN0ICdkaXNwbGF5IGN1dG91dCcgc2FmZSBhcmVhIChhdm9pZHMgbm90Y2hlcyBhbmQgcm91bmRlZCBjb3JuZXJzKVxuICAgIEBzdXBwb3J0cyAobWFyZ2luOiB1bnF1b3RlKFwibWF4KGNhbGMoMHB4KSlcIikpIHtcbiAgICAgICRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IGNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtbGVmdDogLXdlYmtpdC1jYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtbGVmdDogY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcblxuICAgICAgLy8gVXNlIG1heCgpIHRvIHBpY2sgbGFyZ2VzdCBtYXJnaW4sIGRlZmF1bHQgb3Igd2l0aCBzYWZlIGFyZWFcbiAgICAgIC8vIEVzY2FwZWQgZHVlIHRvIFNhc3MgbWF4KCkgdnMuIENTUyBuYXRpdmUgbWF4KClcbiAgICAgIG1hcmdpbi1yaWdodDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXJ9LCAjeyRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0fSlcIik7XG4gICAgICBtYXJnaW4tbGVmdDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXJ9LCAjeyRndXR0ZXItc2FmZS1hcmVhLWxlZnR9KVwiKTtcbiAgICB9XG4gIH1cblxuICAvLyBBcyBzb29uIGFzIHRoZSB2aWV3cG9ydCBpcyBncmVhdGVyIHRoYW4gdGhlIHdpZHRoIG9mIHRoZSBwYWdlIHBsdXMgdGhlXG4gIC8vIGd1dHRlcnMsIGp1c3QgY2VudHJlIHRoZSBjb250ZW50IGluc3RlYWQgb2YgYWRkaW5nIGd1dHRlcnMuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRhbmQ6IFwiKG1pbi13aWR0aDogI3soJHdpZHRoICsgJGdvdnVrLWd1dHRlciAqIDIpfSlcIikge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgIC8vIFNpbmNlIGEgc2FmZSBhcmVhIG1heSBoYXZlIHByZXZpb3VzbHkgYmVlbiBzZXQgYWJvdmUsXG4gICAgLy8gd2UgbmVlZCB0byBkdXBsaWNhdGUgdGhpcyBtYXJnaW4gdGhhdCBjZW50ZXJzIHRoZSBwYWdlLlxuICAgIEBzdXBwb3J0cyAobWFyZ2luOiB1bnF1b3RlKFwibWF4KGNhbGMoMHB4KSlcIikpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICAvLyBTaW5jZSBtZWRpYSBxdWVyaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIElFOCxcbiAgICAvLyB3ZSBuZWVkIHRvIGR1cGxpY2F0ZSB0aGlzIG1hcmdpbiB0aGF0IGNlbnRlcnMgdGhlIHBhZ2UuXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL3dpZHRoLWNvbnRhaW5lclwiKSB7XG4gIC5nb3Z1ay13aWR0aC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLXdpZHRoLWNvbnRhaW5lcjtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBzZXR0aW5ncy9tZWFzdXJlbWVudHNcbi8vLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQYWdlIGxheW91dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBXaWR0aCBvZiBtYWluIGNvbnRhaW5lclxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXBhZ2Utd2lkdGg6IDk2MHB4ICFkZWZhdWx0O1xuXG4vLy8gTWFwIG9mIGdyaWQgY29sdW1uIHdpZHRoc1xuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWdyaWQtd2lkdGhzOiAoXG4gIG9uZS1xdWFydGVyOiAyNSUsXG4gIG9uZS10aGlyZDogMzMuMzMzMyUsXG4gIG9uZS1oYWxmOiA1MCUsXG4gIHR3by10aGlyZHM6IDY2LjY2NjYlLFxuICB0aHJlZS1xdWFydGVyczogNzUlLFxuICBmdWxsOiAxMDAlXG4pICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgZ3V0dGVyIGJldHdlZW4gZ3JpZCBjb2x1bW5zXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZ3V0dGVyOiAzMHB4ICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaGFsZiB0aGUgZ3V0dGVyIGJldHdlZW4gZ3JpZCBjb2x1bW5zXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZ3V0dGVyLWhhbGY6ICRnb3Z1ay1ndXR0ZXIgLyAyO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJvcmRlcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gU3RhbmRhcmQgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoOiA1cHggIWRlZmF1bHQ7XG5cbi8vLyBXaWRlIGJvcmRlciB3aWR0aFxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci13aWR0aC13aWRlOiAxMHB4ICFkZWZhdWx0O1xuXG4vLy8gTmFycm93IGJvcmRlciB3aWR0aFxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci13aWR0aC1uYXJyb3c6IDRweCAhZGVmYXVsdDtcblxuLy8vIEZvcm0gY29udHJvbCBib3JkZXIgd2lkdGhcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50OiAycHggIWRlZmF1bHQ7XG5cbi8vLyBGb3JtIGNvbnRyb2wgYm9yZGVyIHdpZHRoIHdoZW4gaW4gZXJyb3Igc3RhdGVcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQGRlcHJlY2F0ZWQgVXNlICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IGluc3RlYWQuIFRoZXJlIHNob3VsZCBiZSBub1xuLy8vICAgZGlmZmVyZW5jZSBpbiB0aGlja25lc3MgZm9yIGlucHV0cyBpbiB0aGUgZXJyb3Igc3RhdGUsIGluIG9yZGVyIHRvXG4vLy8gICBtYWludGFpbiBhIGRpc3RpbmN0IGZvY3VzIHN0YXRlLlxuXG4kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudC1lcnJvcjogMnB4ICFkZWZhdWx0O1xuXG4vLy8gRm9ybSBncm91cCBib3JkZXIgd2lkdGggd2hlbiBpbiBlcnJvciBzdGF0ZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWdyb3VwLWVycm9yOiAkZ292dWstYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIG9mIGZvY3VzIG91dGxpbmVcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy13aWR0aDogM3B4ICFkZWZhdWx0O1xuXG4vLy8gSG92ZXIgd2lkdGggZm9yIGZvcm0gY29udHJvbHMgd2l0aCBhIGhvdmVyIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaG92ZXItd2lkdGg6IDEwcHggIWRlZmF1bHQ7XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2FjY29yZGlvblwiKSB7XG4gIC5nb3Z1ay1hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLy8gQm9yZGVycyBiZXR3ZWVuIGFjY29yZGlvbiBzZWN0aW9uc1xuICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24taGVhZGluZyB7XG4gICAgLy8gT3ZlcnJpZGUgYnJvd3NlciBkZWZhdWx0cyB0byBlbnN1cmUgY29uc2lzdGVudCBlbGVtZW50IGhlaWdodFxuICAgIC8vIEZvbnQgc2l6ZSBpcyBzZXQgaW4gLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b25cbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KDI0KTtcblxuICAgIG1hcmdpbi10b3A6IDA7IC8vIE92ZXJyaWRlIGJyb3dzZXIgZGVmYXVsdFxuICAgIG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGJyb3dzZXIgZGVmYXVsdFxuICB9XG5cbiAgLy8gQnV0dG9ucyB3aXRoaW4gdGhlIHNlY3Rpb25zIGRvbuKAmXQgbmVlZCBkZWZhdWx0IHN0eWxpbmdcbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tc3VtbWFyeSB7XG4gICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3R0b20gbWFyZ2luIGZyb20gdGhlIGxhc3QgaXRlbSBpbnNpZGUgdGhlIGNvbnRlbnRcbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1jb250ZW50ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBKYXZhU2NyaXB0IGVuYWJsZWRcbiAgLmpzLWVuYWJsZWQge1xuICAgIC5nb3Z1ay1hY2NvcmRpb24ge1xuICAgICAgLy8gQm9yZGVyIGF0IHRoZSBib3R0b20gb2YgdGhlIHdob2xlIGFjY29yZGlvblxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgIH1cblxuICAgIC8vIEJvcmRlcnMgYmV0d2VlbiBhY2NvcmRpb24gc2VjdGlvbnNcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC8vIEhpZGUgdGhlIGJvZHkgb2YgY29sbGFwc2VkIHNlY3Rpb25zXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoMywgXCJ0b3BcIik7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoMywgXCJib3R0b21cIik7XG4gICAgfVxuXG4gICAgLy8gU2hvdyB0aGUgYm9keSBvZiBleHBhbmRlZCBzZWN0aW9uc1xuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tLWV4cGFuZGVkIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIHN0eWxlZCB0byBsb29rIGxpa2UgYSBsaW5rIG5vdCBhIGJ1dHRvblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX29wZW4tYWxsIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1kZWZhdWx0O1xuXG4gICAgICAvLyBSZW1vdmUgZGVmYXVsdCBidXR0b24gZm9jdXMgb3V0bGluZSBpbiBGaXJlZm94XG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlY3Rpb24gaGVhZGVycyBoYXZlIGEgcG9pbnRlciBjdXJzb3IgYXMgYW4gYWRkaXRpb25hbCBhZmZvcmRhbmNlXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1oZWFkZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gU2FmZSBhcmVhIG9uIHRoZSByaWdodCB0byBhdm9pZCBjbGFzaGluZyB3aXRoIGljb25cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLy8gQnV0dG9ucyB3aXRoaW4gdGhlIGhlYWRlcnMgZG9u4oCZdCBuZWVkIGRlZmF1bHQgc3R5bGluZ1xuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBmb2N1cyBvdXRsaW5lIGluIEZpcmVmb3hcbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXh0ZW5kIHRoZSB0b3VjaCBhcmVhIG9mIHRoZSBidXR0b24gdG8gc3BhbiB0aGUgc2VjdGlvbiBoZWFkZXJcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgLy8gVGhpcyBuZWVkcyB0byBjb21lIGFmdGVyIHRoZSB0ZXh0LWRlY29yYXRpb24gcHJvcGVydHkgb3RoZXJ3aXNlXG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb24sIGFzIGEgc2hvcnRoYW5kIHByb3BlcnR5LCByZXNldHMgaXQgdG8gYXV0b1xuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0O1xuICAgIH1cblxuICAgIC8vIEZvciBkZXZpY2VzIHRoYXQgY2FuJ3QgaG92ZXIgc3VjaCBhcyB0b3VjaCBkZXZpY2VzLFxuICAgIC8vIHJlbW92ZSBob3ZlciBzdGF0ZSBhcyBpdCBjYW4gYmUgc3R1Y2sgaW4gdGhhdCBzdGF0ZSAoaU9TKS5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19jb250cm9scyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IGFuIGljb24gdG8gdGhlIHJpZ2h0IG9mIGVhY2ggaGVhZGVyIHRvIGluZGljYXRlIG9wZW4vY2xvc2VkIHN0YXR1cyxcbiAgICAvLyBhbmQgYXMgYW4gYWRkaXRpb25hbCBhZmZvcmRhbmNlLlxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMTVweDtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19pY29uOmFmdGVyLFxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGhlaWdodDogMjUlO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19pY29uOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19pY29uOmFmdGVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBiYXIgc2hvdWxkIGJlIGhpZGRlbiB3aGVuIHNlY3Rpb24gaXMgb3BlbiwgdG8gZGlzcGxheSBhICctJyBpY29uXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi0tZXhwYW5kZWQgLmdvdnVrLWFjY29yZGlvbl9faWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL2xpbmtzXG4vLy8vXG5cbi8vLyBFbmFibGUgbmV3IGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBJZiBlbmFibGVkLCB0aGUgbGluayBzdHlsZXMgd2lsbCBjaGFuZ2UuIFVuZGVybGluZXMgd2lsbDpcbi8vL1xuLy8vIC0gYmUgY29uc2lzdGVudGx5IHRoaW5uZXIgYW5kIGEgYml0IGZ1cnRoZXIgYXdheSBmcm9tIHRoZSBsaW5rIHRleHRcbi8vLyAtIGhhdmUgYSBjbGVhcmVyIGhvdmVyIHN0YXRlLCB3aGVyZSB0aGUgdW5kZXJsaW5lIGdldHMgdGhpY2tlciB0byBtYWtlIHRoZVxuLy8vICAgbGluayBzdGFuZCBvdXQgdG8gdXNlcnNcbi8vL1xuLy8vIFlvdSBzaG91bGQgb25seSBlbmFibGUgdGhlIG5ldyBsaW5rIHN0eWxlcyBpZiBib3RoOlxuLy8vXG4vLy8gLSB5b3UndmUgbWFkZSBzdXJlIHlvdXIgd2hvbGUgc2VydmljZSB3aWxsIHVzZSB0aGUgbmV3IHN0eWxlIGNvbnNpc3RlbnRseVxuLy8vIC0geW91IGRvIG5vdCBoYXZlIGxpbmtzIGluIGEgbXVsdGktY29sdW1uIENTUyBsYXlvdXQgLSB0aGVyZSdzIFthIENocm9taXVtXG4vLy8gICBidWcgdGhhdCBhZmZlY3RzIGxpbmtzXShodHRwczovL2dpdGh1Yi5jb20vYWxwaGFnb3YvZ292dWstZnJvbnRlbmQvaXNzdWVzLzIyMDQpXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLW5ldy1saW5rLXN0eWxlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBUaGlja25lc3Mgb2YgbGluayB1bmRlcmxpbmVzXG4vLy9cbi8vLyBUaGUgZGVmYXVsdCB3aWxsIGJlIGVpdGhlcjpcbi8vL1xuLy8vICAtIDFweFxuLy8vICAtIDAuMDYyNXJlbSwgaWYgaXQncyB0aGlja2VyIHRoYW4gMXB4IGJlY2F1c2UgdGhlIHVzZXIgaGFzIGNoYW5nZWQgdGhlIHRleHRcbi8vLyAgICBzaXplIGluIHRoZWlyIGJyb3dzZXJcbi8vL1xuLy8vIFNldCB0aGlzIHZhcmlhYmxlIHRvIGBmYWxzZWAgdG8gYXZvaWQgc2V0dGluZyBhIHRoaWNrbmVzcy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLXVuZGVybGluZS10aGlja25lc3M6IHVucXVvdGUoXCJtYXgoMXB4LCAuMDYyNXJlbSlcIikgIWRlZmF1bHQ7XG5cbi8vLyBPZmZzZXQgb2YgbGluayB1bmRlcmxpbmVzIGZyb20gdGV4dCBiYXNlbGluZVxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGFuIG9mZnNldC5cbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ6IC4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBUaGlja25lc3Mgb2YgbGluayB1bmRlcmxpbmVzIGluIGhvdmVyIHN0YXRlXG4vLy9cbi8vLyBUaGUgZGVmYXVsdCBmb3IgZWFjaCBsaW5rIHdpbGwgYmUgdGhlIHRoaWNrZXN0IG9mIHRoZSBmb2xsb3dpbmc6XG4vLy9cbi8vLyAgLSAzcHhcbi8vLyAgLSAwLjE4NzVyZW0sIGlmIGl0J3MgdGhpY2tlciB0aGFuIDNweCBiZWNhdXNlIHRoZSB1c2VyIGhhcyBjaGFuZ2VkIHRoZSB0ZXh0XG4vLy8gICAgc2l6ZSBpbiB0aGVpciBicm93c2VyXG4vLy8gIC0gMC4xMmVtIChyZWxhdGl2ZSB0byB0aGUgbGluaydzIHRleHQgc2l6ZSlcbi8vL1xuLy8vIFNldCB0aGlzIHZhcmlhYmxlIHRvIGBmYWxzZWAgdG8gYXZvaWQgc2V0dGluZyBhIHRoaWNrbmVzcy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLWhvdmVyLXVuZGVybGluZS10aGlja25lc3M6IHVucXVvdGUoXCJtYXgoM3B4LCAuMTg3NXJlbSwgLjEyZW0pXCIpICFkZWZhdWx0O1xuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9iYWNrLWxpbmtcIikge1xuXG4gIC8vIFNpemUgb2YgY2hldnJvbiAoZXhjbHVkaW5nIGJvcmRlcilcbiAgJGNoZXZyb24tc2l6ZTogN3B4O1xuXG4gIC8vIFNpemUgb2YgY2hldnJvbiBib3JkZXJcbiAgJGNoZXZyb24tYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiAgLy8gQ29sb3VyIG9mIGNoZXZyb25cbiAgJGNoZXZyb24tYm9yZGVyLWNvbG91cjogJGdvdnVrLXNlY29uZGFyeS10ZXh0LWNvbG91cjtcblxuICAuZ292dWstYmFjay1saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemU6IDE2KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgLy8gQWxsb3cgc3BhY2UgZm9yIHRoZSBhcnJvd1xuICAgIHBhZGRpbmctbGVmdDogMTRweDtcbiAgfVxuXG4gIC8vIFByZXBlbmQgbGVmdCBwb2ludGluZyBjaGV2cm9uXG4gIC5nb3Z1ay1iYWNrLWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLy8gVmVydGljYWxseSBhbGlnbiB3aXRoIHRoZSBwYXJlbnQgZWxlbWVudFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAgIC8vIEJlZ2luIGFkanVzdG1lbnRzIGZvciBmb250IGJhc2VsaW5lIG9mZnNldFxuICAgICAgLy8gVGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBsZWdhY3kgZm9udCBzdXBwb3J0IGlzIGRyb3BwZWRcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIGJvdHRvbTogMXB4O1xuICAgIH0gQGVsc2Uge1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGxlZnQ6IDNweDtcblxuICAgIHdpZHRoOiAkY2hldnJvbi1zaXplO1xuICAgIGhlaWdodDogJGNoZXZyb24tc2l6ZTtcblxuICAgIG1hcmdpbjogYXV0byAwO1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuXG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuXG4gICAgYm9yZGVyOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRjaGV2cm9uLWJvcmRlci13aWR0aCAkY2hldnJvbi1ib3JkZXItd2lkdGggMCAwO1xuICAgIGJvcmRlci1jb2xvcjogJGNoZXZyb24tYm9yZGVyLWNvbG91cjtcblxuICAgIC8vIEZhbGwgYmFjayB0byBhIGxlc3MgdGhhbiBzaWduIGZvciBJRThcbiAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgY29udGVudDogXCJcXDAwM2NcIjsgLy8gTGVzcyB0aGFuIHNpZ24gKDwpXG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgICAvLyBJRTggZG9lc24ndCBzZWVtIHRvIGxpa2UgcmVuZGVyaW5nIHBzZXVkby1lbGVtZW50cyB1c2luZyBAZm9udC1mYWNlcyxcbiAgICAgIC8vIHNvIGZhbGwgYmFjayB0byB1c2luZyBhbm90aGVyIHNhbnMtc2VyaWYgZm9udCB0byByZW5kZXIgdGhlIGNoZXZyb24uXG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJhY2stbGluazpmb2N1czpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLWJhY2stbGluazphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTRweDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IC0xNHB4O1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0XG4gICAgLy8gVGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBsZWdhY3kgZm9udCBzdXBwb3J0IGlzIGRyb3BwZWRcbiAgICAuZ292dWstYmFjay1saW5rOmJlZm9yZSB7XG4gICAgICAkb2Zmc2V0OiAxcHg7XG5cbiAgICAgIHRvcDogJG9mZnNldCAqIC0xO1xuICAgICAgYm90dG9tOiAkb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9icmVhZGNydW1ic1wiKSB7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIChleGNsdWRpbmcgYm9yZGVyKVxuICAkY2hldnJvbi1zaXplOiA3cHg7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIGJvcmRlclxuICAkY2hldnJvbi1ib3JkZXItd2lkdGg6IDFweDtcblxuICAvLyBDb2xvdXIgb2YgY2hldnJvblxuICAkY2hldnJvbi1ib3JkZXItY29sb3VyOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuXG4gIC8vIENhbGN1bGF0ZWQgYWx0aXR1ZGUgKOKWs+KGlSkgb2YgdGhlIHJpZ2h0LWFuZ2xlZCBpc29zY2VsZXMgY2hldnJvbiB3aXRoIHNpZGVzXG4gIC8vIG9mIGxlbmd0aCA4ICg3cHggKyAxcHggYm9yZGVyKTpcbiAgLy9cbiAgLy8g4oiaKDjCsiArIDjCsikgKiAwLjUg4omFIDUuNjU1XG4gICRjaGV2cm9uLWFsdGl0dWRlLWNhbGN1bGF0ZWQ6IDUuNjU1cHg7XG5cbiAgLmdvdnVrLWJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3Qge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB9XG5cbiAgLmdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW0ge1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBBZGQgYm90aCBtYXJnaW4gYW5kIHBhZGRpbmcgc3VjaCB0aGF0IHRoZSBjaGV2cm9uIGFwcGVhcnMgY2VudHJhbGx5XG4gICAgLy8gYmV0d2VlbiBlYWNoIGJyZWFkY3J1bWIgaXRlbVxuICAgIG1hcmdpbi1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZygyKSArICRjaGV2cm9uLWFsdGl0dWRlLWNhbGN1bGF0ZWQ7XG5cbiAgICBmbG9hdDogbGVmdDtcblxuICAgIC8vIENyZWF0ZSBhIGNoZXZyb24gdXNpbmcgYSBib3ggd2l0aCBib3JkZXJzIG9uIHR3byBzaWRlcywgcm90YXRlZCA0NWRlZy5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXRcbiAgICAgICAgLy8gVGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBsZWdhY3kgZm9udCBzdXBwb3J0IGlzIGRyb3BwZWRcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICBib3R0b206IDFweDtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0IGJ5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBub24tcm90YXRlZCBzcXVhcmVcbiAgICAgIC8vIGFuZCBpdHMgd2lkdGggd2hlbiByb3RhdGVkXG4gICAgICBsZWZ0OiAoKCRjaGV2cm9uLWFsdGl0dWRlLWNhbGN1bGF0ZWQgKiAtMikgKyAkY2hldnJvbi1zaXplICsgJGNoZXZyb24tYm9yZGVyLXdpZHRoKTtcblxuICAgICAgd2lkdGg6ICRjaGV2cm9uLXNpemU7XG4gICAgICBoZWlnaHQ6ICRjaGV2cm9uLXNpemU7XG5cbiAgICAgIG1hcmdpbjogYXV0byAwO1xuXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gICAgICBib3JkZXI6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkY2hldnJvbi1ib3JkZXItd2lkdGggJGNoZXZyb24tYm9yZGVyLXdpZHRoIDAgMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNoZXZyb24tYm9yZGVyLWNvbG91cjtcblxuICAgICAgLy8gRmFsbCBiYWNrIHRvIGEgZ3JlYXRlciB0aGFuIHNpZ24gZm9yIElFOFxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgY29udGVudDogXCJcXDAwM2VcIjsgLy8gR3JlYXRlciB0aGFuIHNpZ24gKD4pXG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY29sb3I6ICRjaGV2cm9uLWJvcmRlci1jb2xvdXI7XG5cbiAgICAgICAgLy8gSUU4IGRvZXNuJ3Qgc2VlbSB0byBsaWtlIHJlbmRlcmluZyBwc2V1ZG8tZWxlbWVudHMgdXNpbmcgQGZvbnQtZmFjZXMsXG4gICAgICAgIC8vIHNvIGZhbGwgYmFjayB0byB1c2luZyBhbm90aGVyIHNhbnMtc2VyaWYgZm9udCB0byByZW5kZXIgdGhlIGNoZXZyb24uXG4gICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJyZWFkY3J1bWJzX19saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnMtLWNvbGxhcHNlLW9uLW1vYmlsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay1icmVhZGNydW1ic19fbGlzdC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLWJyZWFkY3J1bWJzX19saXN0IHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2J1dHRvblwiKSB7XG4gICRnb3Z1ay1idXR0b24tY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiLCAkbGVnYWN5OiAjMDA4MjNiKTtcbiAgJGdvdnVrLWJ1dHRvbi1ob3Zlci1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay1idXR0b24tY29sb3VyLCAyMCUpO1xuICAkZ292dWstYnV0dG9uLXNoYWRvdy1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay1idXR0b24tY29sb3VyLCA2MCUpO1xuICAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcblxuICAvLyBTZWNvbmRhcnkgYnV0dG9uIHZhcmlhYmxlc1xuICAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXI6IGdvdnVrLWNvbG91cihcImxpZ2h0LWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTNcIik7XG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWhvdmVyLWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLXNlY29uZGFyeS1idXR0b24tY29sb3VyLCAxMCUpO1xuICAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1zaGFkb3ctY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXIsIDQwJSk7XG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcblxuICAvLyBXYXJuaW5nIGJ1dHRvbiB2YXJpYWJsZXNcbiAgJGdvdnVrLXdhcm5pbmctYnV0dG9uLWNvbG91cjogZ292dWstY29sb3VyKFwicmVkXCIpO1xuICAkZ292dWstd2FybmluZy1idXR0b24taG92ZXItY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyLCAyMCUpO1xuICAkZ292dWstd2FybmluZy1idXR0b24tc2hhZG93LWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLXdhcm5pbmctYnV0dG9uLWNvbG91ciwgNjAlKTtcbiAgJGdvdnVrLXdhcm5pbmctYnV0dG9uLXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcblxuICAvLyBCZWNhdXNlIHRoZSBzaGFkb3cgKHMwKSBpcyB2aXN1YWxseSAncGFydCBvZicgdGhlIGJ1dHRvbiwgd2UgbmVlZCB0byByZWR1Y2VcbiAgLy8gdGhlIGhlaWdodCBvZiB0aGUgYnV0dG9uIHRvIGNvbXBlbnNhdGUgYnkgYWRqdXN0aW5nIGl0cyBwYWRkaW5nIChzMSkgYW5kXG4gIC8vIGluY3JlYXNlIHRoZSBib3R0b20gbWFyZ2luIHRvIGluY2x1ZGUgaXQgKHMyKS5cbiAgJGJ1dHRvbi1zaGFkb3ctc2l6ZTogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgLmdvdnVrLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICRsaW5lLWhlaWdodDogMTlweCk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIiwgJGFkanVzdG1lbnQ6ICRidXR0b24tc2hhZG93LXNpemUpOyAvLyBzMlxuICAgIHBhZGRpbmc6IChnb3Z1ay1zcGFjaW5nKDIpIC0gJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQpIGdvdnVrLXNwYWNpbmcoMikgKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAtICgkYnV0dG9uLXNoYWRvdy1zaXplIC8gMikpOyAvLyBzMVxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogJGdvdnVrLWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWNvbG91cjtcbiAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstYnV0dG9uLXNoYWRvdy1jb2xvdXI7IC8vIHMwXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkYnV0dG9uLXNoYWRvdy1zaXplIHNvbGlkICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBFbnN1cmUgdGhhdCBhbnkgZ2xvYmFsIGxpbmsgc3R5bGVzIGFyZSBvdmVycmlkZGVuXG4gICAgJjpsaW5rLFxuICAgICY6dmlzaXRlZCxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC8vIEZpeCB1bndhbnRlZCBidXR0b24gcGFkZGluZyBpbiBGaXJlZm94XG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWJ1dHRvbi1ob3Zlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgLy8gQnVtcCB0aGUgYnV0dG9uIGRvd24gc28gaXQgbG9va3MgbGlrZSBpdHMgYmVpbmcgcHJlc3NlZCBpblxuICAgICAgdG9wOiAkYnV0dG9uLXNoYWRvdy1zaXplO1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgLy8gV2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuLCBmb3IgZXhhbXBsZSB3aGVuIHVzZXJzIGhhdmUgYSBkYXJrIG1vZGUsXG4gICAgICAvLyBiYWNrZ3JvdW5kcyBhbmQgYm94LXNoYWRvd3MgZGlzYXBwZWFyLCBzbyB3ZSBuZWVkIHRvIGVuc3VyZSB0aGVyZSdzIGFcbiAgICAgIC8vIHRyYW5zcGFyZW50IG91dGxpbmUgd2hpY2ggd2lsbCBiZSBzZXQgdG8gYSB2aXNpYmxlIGNvbG91ci5cbiAgICAgIC8vIFNpbmNlIEludGVybmV0IEV4cGxvcmVyIDggZG9lcyBub3Qgc3VwcG9ydCBib3gtc2hhZG93LCB3ZSB3YW50IHRvIGZvcmNlIHRoZSB1c2VyLWFnZW50IG91dGxpbmVzXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgICAgLy8gU2luY2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lcyBub3Qgc3VwcG9ydCBgOm5vdCgpYCB3ZSBzZXQgYSBjbGVhcmVyIGZvY3VzIHN0eWxlIHRvIG1hdGNoIHVzZXItYWdlbnQgb3V0bGluZXMuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gICAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzIHNvXG4gICAgLy8gc28gdGhhdCB1bnZpc2l0ZWQgbGlua3Mgc3R5bGVkIGFzIGJ1dHRvbnMgZG8gbm90IGVuZCB1cCB3aXRoIGRhcmsgYmx1ZVxuICAgIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDAgJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgYWRqdXN0bWVudHMgZG8gbm90IHdvcmsgZm9yIDxpbnB1dCB0eXBlPVwiYnV0dG9uXCI+IGFzXG4gICAgLy8gbm9uLWNvbnRhaW5lciBlbGVtZW50cyBjYW5ub3QgaW5jbHVkZSBwc2V1ZG8gZWxlbWVudHMgKGkuZS4gOjpiZWZvcmUpLlxuXG4gICAgLy8gVXNlIGEgcHNldWRvIGVsZW1lbnQgdG8gZXhwYW5kIHRoZSBjbGljayB0YXJnZXQgYXJlYSB0byBpbmNsdWRlIHRoZVxuICAgIC8vIGJ1dHRvbidzIHNoYWRvdyBhcyB3ZWxsLCBpbiBjYXNlIHVzZXJzIHRyeSB0byBjbGljayBpdC5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgdG9wOiAtJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG4gICAgICByaWdodDogLSRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuICAgICAgYm90dG9tOiAtKCRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50ICsgJGJ1dHRvbi1zaGFkb3ctc2l6ZSk7XG4gICAgICBsZWZ0OiAtJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIGJ1dHRvbiBpcyBhY3RpdmUgaXQgaXMgc2hpZnRlZCBkb3duIGJ5ICRidXR0b24tc2hhZG93LXNpemUgdG9cbiAgICAvLyBkZW5vdGUgYSAncHJlc3NlZCcgc3RhdGUuIElmIHRoZSB1c2VyIGhhcHBlbmVkIHRvIGNsaWNrIGF0IHRoZSB2ZXJ5IHRvcFxuICAgIC8vIG9mIHRoZSBidXR0b24sIHRoZWlyIG1vdXNlIGlzIG5vIGxvbmdlciBvdmVyIHRoZSBidXR0b24gKGJlY2F1c2UgaXQgaGFzXG4gICAgLy8gJ21vdmVkIGJlbmVhdGggdGhlbScpIGFuZCBzbyB0aGUgY2xpY2sgZXZlbnQgaXMgbm90IGZpcmVkLlxuICAgIC8vXG4gICAgLy8gVGhpcyBjb3JyZWN0cyB0aGF0IGJ5IHNoaWZ0aW5nIHRoZSB0b3Agb2YgdGhlIHBzZXVkbyBlbGVtZW50IHNvIHRoYXQgaXRcbiAgICAvLyBjb250aW51ZXMgdG8gY292ZXIgdGhlIGFyZWEgdGhhdCB0aGUgdXNlciBvcmlnaW5hbGx5IGNsaWNrZWQsIHdoaWNoIG1lYW5zXG4gICAgLy8gdGhlIGNsaWNrIGV2ZW50IGlzIHN0aWxsIGZpcmVkLlxuICAgIC8vXG4gICAgLy8g8J+OiVxuICAgICY6YWN0aXZlOmJlZm9yZSB7XG4gICAgICB0b3A6IC0oJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKyAkYnV0dG9uLXNoYWRvdy1zaXplKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS1kaXNhYmxlZCxcbiAgLmdvdnVrLWJ1dHRvbltkaXNhYmxlZD1cImRpc2FibGVkXCJdLFxuICAuZ292dWstYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogKC41KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWJ1dHRvbi1jb2xvdXI7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgYm94LXNoYWRvdzogMCAkYnV0dG9uLXNoYWRvdy1zaXplIDAgJGdvdnVrLWJ1dHRvbi1zaGFkb3ctY29sb3VyOyAvLyBzMFxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJ1dHRvbi1zaGFkb3ctc2l6ZSBzb2xpZCAkZ292dWstYnV0dG9uLXNoYWRvdy1jb2xvdXI7IC8vIHMwXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXI7XG4gICAgYm94LXNoYWRvdzogMCAkYnV0dG9uLXNoYWRvdy1zaXplIDAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24tc2hhZG93LWNvbG91cjtcblxuICAgICYsXG4gICAgJjpsaW5rLFxuICAgICY6dmlzaXRlZCxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWhvdmVyLWNvbG91cjtcblxuICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbi0td2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLXdhcm5pbmctYnV0dG9uLWNvbG91cjtcbiAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstd2FybmluZy1idXR0b24tc2hhZG93LWNvbG91cjtcblxuICAgICYsXG4gICAgJjpsaW5rLFxuICAgICY6dmlzaXRlZCxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gICAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzIHNvXG4gICAgLy8gc28gdGhhdCB1bnZpc2l0ZWQgbGlua3Mgc3R5bGVkIGFzIGJ1dHRvbnMgZG8gbm90IGVuZCB1cCB3aXRoIGRhcmsgYmx1ZVxuICAgIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGdvdnVrLXdhcm5pbmctYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLXdhcm5pbmctYnV0dG9uLWhvdmVyLWNvbG91cjtcblxuICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1idXR0b24tLXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkO1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZTogMjQsICRvdmVycmlkZS1saW5lLWhlaWdodDogMSk7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWluLWhlaWdodDogYXV0bztcblxuICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcblxuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC5nb3Z1ay1idXR0b25fX3N0YXJ0LWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIH1cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC13ZWJraXQtZmxleC1zaHJpbms6IDA7XG4gICAgICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAvLyBXb3JrIGFyb3VuZCBTVkdzIG5vdCBpbmhlcml0aW5nIGNvbG9yIGZyb20gcGFyZW50IGluIGZvcmNlZCBjb2xvciBtb2RlXG4gICAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy82MzEwKVxuICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IGF1dG87XG4gIH1cblxuICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0IHdoZW4gdXNpbmcgdjEgb2YgbnRhXG4gICAgJG9mZnNldDogMjtcblxuICAgIC5nb3Z1ay1idXR0b24ge1xuICAgICAgcGFkZGluZy10b3A6IChnb3Z1ay1zcGFjaW5nKDIpIC0gJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgLSAoJGJ1dHRvbi1zaGFkb3ctc2l6ZSAvIDIpICsgJG9mZnNldCk7IC8vIHMxXG4gICAgICBwYWRkaW5nLWJvdHRvbTogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAtICgkYnV0dG9uLXNoYWRvdy1zaXplIC8gMikgLSAkb2Zmc2V0ICsgMSk7IC8vIHMxXG4gICAgfVxuXG4gICAgLmdvdnVrLWJ1dHRvbl9fc3RhcnQtaWNvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9lcnJvci1tZXNzYWdlXCIpIHtcbiAgLmdvdnVrLWVycm9yLW1lc3NhZ2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBjb2xvcjogJGdvdnVrLWVycm9yLWNvbG91cjtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9maWVsZHNldFwiKSB7XG4gIC5nb3Z1ay1maWVsZHNldCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgfVxuXG4gIC8vIEZpeCBmb3IgRmlyZWZveCA8IDUzXG4gIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUwNDYyMlxuICBAc3VwcG9ydHMgbm90IChjYXJldC1jb2xvcjogYXV0bykge1xuICAgIC5nb3Z1ay1maWVsZHNldCxcbiAgICB4Oi1tb3otYW55LWxpbmsgeyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLXR5cGUtbm8tdW5rbm93blxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuXG4gICAgLy8gRml4IGxlZ2VuZCB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFXG4gICAgLy8gMS4gSUU5LTExICYgRWRnZSAxMi0xM1xuICAgIC8vIDIuIElFOC0xMVxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBkaXNwbGF5OiB0YWJsZTsgICAgICAgICAvLyAyXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAgICAgICAgLy8gMVxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZzogMDtcblxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7ICAgIC8vIDFcbiAgfVxuXG4gIC8vIE1vZGlmaWVycyB0aGF0IG1ha2UgbGVnZW5kcyBsb29rIG1vcmUgbGlrZSB0aGVpciBlcXVpdmFsZW50IGhlYWRpbmdzXG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNiwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSBsZWdlbmQgY29udGFpbnMgYW4gSDEsIHdlIHdhbnQgdGhlIEgxIHRvIGluaGVyaXQgYWxsIHN0eWxlcyBmcm9tXG4gIC8vIHRoZSBsZWdlbmQuIEVmZmVjdGl2ZWx5IHdlIHdhbnQgdG8gYmUgYWJsZSB0byB0cmVhdCB0aGUgaGVhZGluZyBhcyBpZiBpdCBpc1xuICAvLyBub3QgdGhlcmUuXG4gIC5nb3Z1ay1maWVsZHNldF9faGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9oaW50XCIpIHtcbiAgLmdvdnVrLWhpbnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcblxuICAgIGNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gUmVkdWNlcyBtYXJnaW4tYm90dG9tIG9mIGhpbnQgd2hlbiB1c2VkIGFmdGVyIHRoZSBkZWZhdWx0IGxhYmVsIChubyBjbGFzcylcbiAgLy8gb3IgZ292dWstbGFiZWwtLXMgZm9yIGJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5cbiAgLy8gVGhpcyBhZGp1c3RtZW50IHdpbGwgbm90IHdvcmsgd2hlbiB0aGUgbGFiZWwgaXMgaW5zaWRlIHRoZSA8aDE+LCBob3dldmVyIGl0XG4gIC8vIGlzIHVubGlrZWx5IHRoYXQgdGhlIGRlZmF1bHQgb3IgZ292dWstbGFiZWwtLXMgY2xhc3Mgd291bGQgYmUgdXNlZCBpbiB0aGlzXG4gIC8vIGNhc2UuXG5cbiAgLy8gVGhpcyBhZGp1c3RtZW50IHdpbGwgbm90IHdvcmsgaW4gYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCA6bm90KCkuXG4gIC8vIFVzZXJzIHdpdGggdGhlc2UgYnJvd3NlcnMgd2lsbCBzZWUgdGhlIGRlZmF1bHQgc2l6ZSBtYXJnaW4gKDVweCBsYXJnZXIpLlxuXG4gIC5nb3Z1ay1sYWJlbDpub3QoLmdvdnVrLWxhYmVsLS1tKTpub3QoLmdvdnVrLWxhYmVsLS1sKTpub3QoLmdvdnVrLWxhYmVsLS14bCkgKyAuZ292dWstaGludCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC8vIFJlZHVjZXMgbWFyZ2luLWJvdHRvbSBvZiBoaW50IHdoZW4gdXNlZCBhZnRlciB0aGUgZGVmYXVsdCBsZWdlbmQgKG5vIGNsYXNzKVxuICAvLyBvciBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zIGZvciBiZXR0ZXIgdmVydGljYWwgYWxpZ25tZW50LlxuXG4gIC8vIFRoaXMgYWRqdXN0bWVudCB3aWxsIG5vdCB3b3JrIHdoZW4gdGhlIGxlZ2VuZCBpcyBvdXRzaWRlIHRoZSA8aDE+LCBob3dldmVyXG4gIC8vIGl0IGlzIHVubGlrZWx5IHRoYXQgdGhlIGRlZmF1bHQgb3IgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tcyBjbGFzcyB3b3VsZCBiZVxuICAvLyB1c2VkIGluIHRoaXMgY2FzZS5cblxuICAvLyBUaGlzIGFkanVzdG1lbnQgd2lsbCBub3Qgd29yayBpbiBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IDpub3QoKS5cbiAgLy8gVXNlcnMgd2l0aCB0aGVzZSBicm93c2VycyB3aWxsIHNlZSB0aGUgZGVmYXVsdCBzaXplIG1hcmdpbiAoNXB4IGxhcmdlcikuXG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQ6bm90KC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tKTpub3QoLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLWwpOm5vdCguZ292dWstZmllbGRzZXRfX2xlZ2VuZC0teGwpICsgLmdvdnVrLWhpbnQge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAvLyBSZWR1Y2VzIHZpc3VhbCBzcGFjaW5nIG9mIGxlZ2VuZCB3aGVuIHRoZXJlIGlzIGEgaGludFxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZCArIC5nb3Z1ay1oaW50IHtcbiAgICBtYXJnaW4tdG9wOiAtKGdvdnVrLXNwYWNpbmcoMSkpO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2xhYmVsXCIpIHtcbiAgLmdvdnVrLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cblxuICAvLyBNb2RpZmllcnMgdGhhdCBtYWtlIGxhYmVscyBsb29rIG1vcmUgbGlrZSB0aGVpciBlcXVpdmFsZW50IGhlYWRpbmdzXG5cbiAgLmdvdnVrLWxhYmVsLS14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogNDgsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstbGFiZWwtLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDM2LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWxhYmVsLS1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1sYWJlbC0tcyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgbGFiZWwgaXMgbmVzdGVkIGluc2lkZSBhIGhlYWRpbmcsIG92ZXJyaWRlIHRoZSBoZWFkaW5nIHNvIHRoYXQgaXRcbiAgLy8gZG9lcyBub3QgaGF2ZSBhIG1hcmdpbi4gRWZmZWN0aXZlbHkgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHRyZWF0IHRoZSBoZWFkaW5nXG4gIC8vIGFzIGlmIGl0IGlzIG5vdCB0aGVyZS5cbiAgLy9cbiAgLy8gVGhpcyBicmVha3MgQkVNIGNvbnZlbnRpb25zIGJlY2F1c2UgaXQgZXhpc3RzIGFzIGEgcGFyZW50IG9mIHRoZSAnYmxvY2snLFxuICAvLyBzbyB3ZSBjYW4ndCByZWFsbHkgY29uc2lkZXIgYW4gZWxlbWVudC5cbiAgLmdvdnVrLWxhYmVsLXdyYXBwZXIge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9maWVsZHNldC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2NoZWNrYm94ZXNcIikge1xuXG4gICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTogNDRweDtcbiAgJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZTogNDBweDtcbiAgJGdvdnVrLXNtYWxsLWNoZWNrYm94ZXMtc2l6ZTogMjRweDtcbiAgJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtaW4taGVpZ2h0OiAkZ292dWstY2hlY2tib3hlcy1zaXplO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG5cbiAgICBjbGVhcjogbGVmdDtcbiAgfVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtOmxhc3QtY2hpbGQsXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dCB7XG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1jaGVja2JveGVzLXNpemUpIC8gMjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIElFOCBkb2VzbuKAmXQgc3VwcG9ydCBwc2V1ZG8tZWxlbWVudHMsIHNvIHdlIGRvbuKAmXQgd2FudCB0byBoaWRlIG5hdGl2ZVxuICAgIC8vIGVsZW1lbnRzIHRoZXJlLlxuICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgdG9wOiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG5cbiAgICAgIHdpZHRoOiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemU7XG4gICAgICBoZWlnaHQ6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSAvIC0yO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemUgLyAtMjtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAvLyBhZGQgZm9jdXMgb3V0bGluZSB0byBpbnB1dFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogOHB4ICRnb3Z1ay1jaGVja2JveGVzLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodCBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvLyByZW1vdmUgMzAwbXMgcGF1c2Ugb24gbW9iaWxlXG4gICAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgIC8vIFsgXSBDaGVjayBib3hcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAkZ292dWstY2hlY2tib3hlcy1zaXplO1xuICAgICAgaGVpZ2h0OiAkZ292dWstY2hlY2tib3hlcy1zaXplO1xuICAgICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyDinJQgQ2hlY2sgbWFya1xuICAgIC8vXG4gICAgLy8gVGhlIGNoZWNrIG1hcmsgaXMgYSBib3ggd2l0aCBhIGJvcmRlciBvbiB0aGUgbGVmdCBhbmQgYm90dG9tIHNpZGUgKOKUlOKUgOKUgCksXG4gICAgLy8gcm90YXRlZCA0NSBkZWdyZWVzXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDExcHg7XG4gICAgICBsZWZ0OiA5cHg7XG4gICAgICB3aWR0aDogMjNweDtcbiAgICAgIGhlaWdodDogMTJweDtcblxuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMCA1cHggNXB4O1xuICAgICAgLy8gRml4IGJ1ZyBpbiBJRTExIGNhdXNlZCBieSB0cmFuc2Zvcm0gcm90YXRlICgtNDVkZWcpLlxuICAgICAgLy8gU2VlOiBhbHBoYWdvdi9nb3Z1a19lbGVtZW50cy9pc3N1ZXMvNTE4XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2hpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRnb3Z1ay1jaGVja2JveGVzLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcbiAgfVxuXG4gIC8vIEZvY3VzZWQgc3RhdGVcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmZvY3VzICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG5cbiAgICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIHRoZSB5ZWxsb3cgYm94LXNoYWRvdyBiZWNvbWVzIGludmlzaWJsZVxuICAgIC8vIHdoaWNoIG1lYW5zIHRoZSBmb2N1cyBzdGF0ZSBpcyBsZXNzIG9idmlvdXMuIEJ5IGFkZGluZyBhIHRyYW5zcGFyZW50XG4gICAgLy8gb3V0bGluZSwgd2hpY2ggYmVjb21lcyBzb2xpZCAodGV4dC1jb2xvdXJlZCkgaW4gdGhhdCBjb250ZXh0LCB3ZSBlbnN1cmVcbiAgICAvLyB0aGUgZm9jdXMgcmVtYWlucyBjbGVhcmx5IHZpc2libGUuXG4gICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG5cbiAgICAvLyBXaGVuIGluIGFuIGV4cGxpY2l0IGZvcmNlZC1jb2xvciBtb2RlLCB3ZSBjYW4gdXNlIHRoZSBIaWdobGlnaHQgc3lzdGVtXG4gICAgLy8gY29sb3IgZm9yIHRoZSBvdXRsaW5lIHRvIGJldHRlciBtYXRjaCBmb2N1cyBzdGF0ZXMgb2YgbmF0aXZlIGNvbnRyb2xzXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgICBvdXRsaW5lLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogMCAwIDAgJGdvdnVrLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gIH1cblxuICAvLyBTZWxlY3RlZCBzdGF0ZVxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6Y2hlY2tlZCArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpkaXNhYmxlZCxcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmRpc2FibGVkICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6ZGlzYWJsZWQgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERpdmlkZXJzICgnb3InKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstY2hlY2tib3hlc19fZGl2aWRlciB7XG4gICAgJGdvdnVrLWRpdmlkZXItc2l6ZTogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSAhZGVmYXVsdDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgd2lkdGg6ICRnb3Z1ay1kaXZpZGVyLXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ29uZGl0aW9uYWwgcmV2ZWFsc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBUaGUgbmFycm93IGJvcmRlciBpcyB1c2VkIGluIHRoZSBjb25kaXRpb25hbCByZXZlYWxzIGJlY2F1c2UgdGhlIGJvcmRlciBoYXNcbiAgLy8gdG8gYmUgYW4gZXZlbiBudW1iZXIgaW4gb3JkZXIgdG8gYmUgY2VudHJlZCB1bmRlciB0aGUgNDBweCBjaGVja2JveCBvciByYWRpby5cbiAgJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1uYXJyb3c7XG4gIC8vIENhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIHBhZGRpbmcgbmVlZGVkIHRvIGtlZXAgdGhlIGJvcmRlciBjZW50ZXJlZCBhZ2FpbnN0IHRoZSBjaGVja2JveC5cbiAgJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nOiAoJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSAvIDIpIC0gKCRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggLyAyKTtcbiAgLy8gTW92ZSB0aGUgYm9yZGVyIGNlbnRlcmVkIHdpdGggdGhlIGNoZWNrYm94XG4gICRjb25kaXRpb25hbC1tYXJnaW4tbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nO1xuICAvLyBNb3ZlIHRoZSBjb250ZW50cyBvZiB0aGUgY29uZGl0aW9uYWwgaW5saW5lIHdpdGggdGhlIGxhYmVsXG4gICRjb25kaXRpb25hbC1wYWRkaW5nLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItcGFkZGluZyArICRnb3Z1ay1jaGVja2JveGVzLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcblxuICAuZ292dWstY2hlY2tib3hlc19fY29uZGl0aW9uYWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICAgIG1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtbWFyZ2luLWxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29uZGl0aW9uYWwtcGFkZGluZy1sZWZ0O1xuICAgIGJvcmRlci1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gICAgLmpzLWVuYWJsZWQgJi0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNtYWxsIGNoZWNrYm94ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXMtLXNtYWxsIHtcblxuICAgICRpbnB1dC1vZmZzZXQ6ICgkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplKSAvIDI7XG4gICAgJGxhYmVsLW9mZnNldDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGlucHV0LW9mZnNldDtcblxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYWJlbC1vZmZzZXQ7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAvLyBTaGlmdCB0aGUgdG91Y2ggdGFyZ2V0IGludG8gdGhlIGxlZnQgbWFyZ2luIHNvIHRoYXQgdGhlIHZpc2libGUgZWRnZSBvZlxuICAgIC8vIHRoZSBjb250cm9sIGlzIGFsaWduZWRcbiAgICAvL1xuICAgIC8vICAg4pSGV2hhdCBjb2xvdXJzIGRvIHlvdSBsaWtlP1xuICAgIC8vICDilIzilIbilIDilIDilIDilJBcbiAgICAvLyAg4pSC4pSGW10g4pSCIFB1cnBsZVxuICAgIC8vICDilJTilIbilrLilIDilIDilJhcbiAgICAvLyAg4pay4pSG4pSU4pSAIENoZWNrIGJveCBwc2V1ZG8gZWxlbWVudCwgYWxpZ25lZCB3aXRoIG1hcmdpblxuICAgIC8vICDilJTilIDilIDilIAgVG91Y2ggdGFyZ2V0IChpbnZpc2libGUgaW5wdXQpLCBzaGlmdGVkIGludG8gdGhlIG1hcmdpblxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICAgICAgbGVmdDogJGlucHV0LW9mZnNldCAqIC0xO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLXNtYWxsLWNoZWNrYm94ZXMtc2l6ZSAqIC0xO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkanVzdCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGxhYmVsLlxuICAgIC8vXG4gICAgLy8gVW5saWtlIGxhcmdlciBjaGVja2JveGVzLCB3ZSBhbHNvIGhhdmUgdG8gZmxvYXQgdGhlIGxhYmVsIGluIG9yZGVyIHRvXG4gICAgLy8gJ3NocmluaycgaXQsIHByZXZlbnRpbmcgdGhlIGhvdmVyIHN0YXRlIGZyb20ga2lja2luZyBpbiBhY3Jvc3MgdGhlIGZ1bGxcbiAgICAvLyB3aWR0aCBvZiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsIHtcbiAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICBwYWRkaW5nOiAxM3B4IGdvdnVrLXNwYWNpbmcoMykgMTNweCAxcHg7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgICBwYWRkaW5nOiAxMXB4IGdvdnVrLXNwYWNpbmcoMykgMTBweCAxcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gWyBdIENoZWNrIGJveFxuICAgIC8vXG4gICAgLy8gUmVkdWNlIHRoZSBzaXplIG9mIHRoZSBjaGVjayBib3ggWzFdLCB2ZXJ0aWNhbGx5IGNlbnRlciBpdCB3aXRoaW4gdGhlXG4gICAgLy8gdG91Y2ggdGFyZ2V0IFsyXVxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgdG9wOiAkaW5wdXQtb2Zmc2V0IC0gJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7IC8vIDJcbiAgICAgIHdpZHRoOiAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplOyAvLyAxXG4gICAgICBoZWlnaHQ6ICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemU7IC8vIDFcbiAgICB9XG5cbiAgICAvLyDinJQgQ2hlY2sgbWFya1xuICAgIC8vXG4gICAgLy8gUmVkdWNlIHRoZSBzaXplIG9mIHRoZSBjaGVjayBtYXJrIGFuZCByZS1hbGlnbiB3aXRoaW4gdGhlIGNoZWNrYm94XG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmFmdGVyIHtcbiAgICAgIHRvcDogMTVweDtcbiAgICAgIGxlZnQ6IDZweDtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiA2LjVweDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDNweCAzcHg7XG4gICAgfVxuXG4gICAgLy8gRml4IHBvc2l0aW9uIG9mIGhpbnQgd2l0aCBzbWFsbCBjaGVja2JveGVzXG4gICAgLy9cbiAgICAvLyBEbyBub3QgdXNlIGhpbnRzIHdpdGggc21hbGwgY2hlY2tib3hlcyDigJMgYmVjYXVzZSB0aGV5J3JlIHdpdGhpbiB0aGUgaW5wdXRcbiAgICAvLyB3cmFwcGVyIHRoZXkgdHJpZ2dlciB0aGUgaG92ZXIgc3RhdGUsIGJ1dCBjbGlja2luZyB0aGVtIGRvZXNuJ3QgYWN0dWFsbHlcbiAgICAvLyBhY3RpdmF0ZSB0aGUgY29udHJvbC5cbiAgICAvL1xuICAgIC8vIChJZiB5b3UgZG8gdXNlIHRoZW0sIHRoZXkgd29uJ3QgbG9vayBjb21wbGV0ZWx5IGJyb2tlbi4uLiBidXQgc2VyaW91c2x5LFxuICAgIC8vIGRvbid0IHVzZSB0aGVtKVxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19oaW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjb25kaXRpb25hbCByZXZlYWxzIHdpdGggc21hbGwgY2hlY2tib3hlc1xuICAgIC5nb3Z1ay1jaGVja2JveGVzX19jb25kaXRpb25hbCB7XG4gICAgICAkbWFyZ2luLWxlZnQ6ICgkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplIC8gMikgLSAoJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCAvIDIpO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxhYmVsLW9mZnNldCAtICgkbWFyZ2luLWxlZnQgKyAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoKTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC8vIEhvdmVyIHN0YXRlIGZvciBzbWFsbCBjaGVja2JveGVzLlxuICAgIC8vXG4gICAgLy8gV2UgdXNlIGEgaG92ZXIgc3RhdGUgZm9yIHNtYWxsIGNoZWNrYm94ZXMgYmVjYXVzZSB0aGUgdG91Y2ggdGFyZ2V0IHNpemVcbiAgICAvLyBpcyBzbyBtdWNoIGxhcmdlciB0aGFuIHRoZWlyIHZpc2libGUgc2l6ZSwgYW5kIHNvIHdlIG5lZWQgdG8gcHJvdmlkZVxuICAgIC8vIGZlZWRiYWNrIHRvIHRoZSB1c2VyIGFzIHRvIHdoaWNoIGNoZWNrYm94IHRoZXkgd2lsbCBzZWxlY3Qgd2hlbiB0aGVpclxuICAgIC8vIGN1cnNvciBpcyBvdXRzaWRlIG9mIHRoZSB2aXNpYmxlIGFyZWEuXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06aG92ZXIgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0Om5vdCg6ZGlzYWJsZWQpICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstaG92ZXItd2lkdGggJGdvdnVrLWhvdmVyLWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBCZWNhdXNlIHdlJ3ZlIG92ZXJyaWRkZW4gdGhlIGJvcmRlci1zaGFkb3cgcHJvdmlkZWQgYnkgdGhlIGZvY3VzIHN0YXRlLFxuICAgIC8vIHdlIG5lZWQgdG8gcmVkZWZpbmUgdGhhdCB0b28uXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgdHdvIGJveCBzaGFkb3dzLCBvbmUgdGhhdCByZXN0b3JlcyB0aGUgb3JpZ2luYWwgZm9jdXMgc3RhdGUgWzFdXG4gICAgLy8gYW5kIGFub3RoZXIgdGhhdCB0aGVuIGFwcGxpZXMgdGhlIGhvdmVyIHN0YXRlIFsyXS5cbiAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwICRnb3Z1ay1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyLCAvLyAxXG4gICAgICAgIDAgMCAwICRnb3Z1ay1ob3Zlci13aWR0aCAkZ292dWstaG92ZXItY29sb3VyOyAvLyAyXG4gICAgfVxuXG4gICAgLy8gRm9yIGRldmljZXMgdGhhdCBleHBsaWNpdGx5IGRvbid0IHN1cHBvcnQgaG92ZXIsIGRvbid0IHByb3ZpZGUgYSBob3ZlclxuICAgIC8vIHN0YXRlIChlLmcuIG9uIHRvdWNoIGRldmljZXMgbGlrZSBpT1MpLlxuICAgIC8vXG4gICAgLy8gV2UgY2FuJ3QgdXNlIGBAbWVkaWEgKGhvdmVyOiBob3ZlcilgIGJlY2F1c2Ugd2Ugd291bGRuJ3QgZ2V0IHRoZSBob3ZlclxuICAgIC8vIHN0YXRlIGluIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBgQG1lZGlhIChob3ZlcilgIChsaWtlIEludGVybmV0XG4gICAgLy8gRXhwbG9yZXIpIOKAkyBzbyB3ZSBoYXZlIHRvICd1bmRvJyB0aGUgaG92ZXIgc3RhdGUgaW5zdGVhZC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSwgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06aG92ZXIgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0Om5vdCg6ZGlzYWJsZWQpICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtOmhvdmVyIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGV4dGFyZWFcIikge1xuICAuZ292dWstdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkbGluZS1oZWlnaHQ6IDEuMjUpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gc2hvdWxkIHRoaXMgYmUgZ2xvYmFsP1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKTtcblxuICAgIHJlc2l6ZTogdmVydGljYWw7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgLy8gRW5zdXJlIG91dGxpbmUgYXBwZWFycyBvdXRzaWRlIG9mIHRoZSBlbGVtZW50XG4gICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICAgIC8vIERvdWJsZSB0aGUgYm9yZGVyIGJ5IGFkZGluZyBpdHMgd2lkdGggYWdhaW4uIFVzZSBgYm94LXNoYWRvd2AgdG8gZG9cbiAgICAgIC8vIHRoaXMgaW5zdGVhZCBvZiBjaGFuZ2luZyBgYm9yZGVyLXdpZHRoYCAod2hpY2ggY2hhbmdlcyBlbGVtZW50IHNpemUpIGFuZFxuICAgICAgLy8gc2luY2UgYG91dGxpbmVgIGlzIGFscmVhZHkgdXNlZCBmb3IgdGhlIHllbGxvdyBmb2N1cyBzdGF0ZS5cbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IGBib3gtc2hhZG93YCBzbyBkb3VibGUgdGhlIGJvcmRlciB3aXRoXG4gICAgICAgIC8vIGBib3JkZXItd2lkdGhgLlxuICAgICAgICBib3JkZXItd2lkdGg6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50ICogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstdGV4dGFyZWEtLWVycm9yIHtcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50LWVycm9yIHNvbGlkICRnb3Z1ay1lcnJvci1jb2xvdXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL3RleHRhcmVhL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvY2hhcmFjdGVyLWNvdW50XCIpIHtcbiAgLmdvdnVrLWNoYXJhY3Rlci1jb3VudCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG5cbiAgICAuZ292dWstZm9ybS1ncm91cCxcbiAgICAuZ292dWstdGV4dGFyZWEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiBmYWxzZSwgJHRhYnVsYXI6IHRydWUpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2UtLWRpc2FibGVkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvY29va2llLWJhbm5lclwiKSB7XG5cbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgaGVhZGVyIGNvbXBvbmVudCdzIHN0eWxlc1xuICAkYm9yZGVyLWJvdHRvbS13aWR0aDogZ292dWstc3BhY2luZygyKTtcblxuICAuZ292dWstY29va2llLWJhbm5lciB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgLy8gVGhlIGNvbXBvbmVudCBkb2VzIG5vdCBzZXQgYm90dG9tIHNwYWNpbmcuXG4gICAgLy8gVGhlIGJvdHRvbSBzcGFjaW5nIHNob3VsZCBiZSBjcmVhdGVkIGJ5IHRoZSBpdGVtcyBpbnNpZGUgdGhlIGNvbXBvbmVudC5cblxuICAgIC8vIFZpc3VhbGx5IHNlcGFyYXRlIHRoZSBjb29raWUgYmFubmVyIGZyb20gY29udGVudCB1bmRlcm5lYXRoXG4gICAgLy8gd2hlbiB1c2VyIGNoYW5nZXMgY29sb3VycyBpbiB0aGVpciBicm93c2VyLlxuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItYm90dG9tLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcbiAgfVxuXG4gIC8vIFN1cHBvcnQgb2xkZXIgYnJvd3NlcnMgd2hpY2ggZG9uJ3QgaGlkZSBlbGVtZW50cyB3aXRoIHRoZSBgaGlkZGVuYCBhdHRyaWJ1dGVcbiAgLy8gd2hlbiB1c2VyIGhpZGVzIHRoZSB3aG9sZSBjb29raWUgYmFubmVyIHdpdGggYSAnSGlkZScgYnV0dG9uLlxuICAuZ292dWstY29va2llLWJhbm5lcltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmdvdnVrLWNvb2tpZS1iYW5uZXJfX21lc3NhZ2Uge1xuICAgIC8vIFJlbW92ZSB0aGUgZXh0cmEgaGVpZ2h0IGFkZGVkIGJ5IHRoZSBzZXBhcmF0b3IgYm9yZGVyLlxuICAgIG1hcmdpbi1ib3R0b206IC0kYm9yZGVyLWJvdHRvbS13aWR0aDtcblxuICAgICZbaGlkZGVuXSB7XG4gICAgICAvLyBTdXBwb3J0IG9sZGVyIGJyb3dzZXJzIHdoaWNoIGRvbid0IGhpZGUgZWxlbWVudHMgd2l0aCB0aGUgYGhpZGRlbmAgYXR0cmlidXRlXG4gICAgICAvLyB3aGVuIHRoZSB2aXNpYmlsaXR5IG9mIGNvb2tpZSBhbmQgcmVwbGFjZW1lbnQgbWVzc2FnZXMgaXMgdG9nZ2xlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAvLyBSZW1vdmUgdGhlIG5hdGl2ZSB2aXNpYmxlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBlbGVtZW50IGlzIHByb2dyYW1tYXRpY2FsbHkgZm9jdXNlZC5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUgZm9jdXNlZCBjb29raWUgYmFubmVyIGlzIHRoZSBmaXJzdCBlbGVtZW50IG9uIHRoZSBwYWdlIGFuZCB0aGUgbGFzdCB0aGluZyB0aGUgdXNlclxuICAgICAgLy8gaW50ZXJhY3RlZCB3aXRoIHByaW9yIHRvIGl0IGdhaW5pbmcgZm9jdXMuXG4gICAgICAvLyBXZSB0aGVyZWZvcmUgYXNzdW1lIHRoYXQgbW92aW5nIGZvY3VzIHRvIGl0IGlzIG5vdCBnb2luZyB0byBzdXJwcmlzZSB1c2VycywgYW5kIHRoYXQgZ2l2aW5nXG4gICAgICAvLyBpdCBhIHZpc2libGUgZm9jdXMgaW5kaWNhdG9yIGNvdWxkIGJlIG1vcmUgY29uZnVzaW5nIHRoYW4gaGVscGZ1bCwgZXNwZWNpYWxseSBhcyB0aGVcbiAgICAgIC8vIGVsZW1lbnQgaXMgbm90IG5vcm1hbGx5IGtleWJvYXJkIG9wZXJhYmxlLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIGhhdmUgZmxhZ2dlZCB0aGlzIGluIHRoZSByZXNlYXJjaCBzZWN0aW9uIG9mIHRoZSBndWlkYW5jZSBhcyBzb21ldGhpbmcgdG8gbW9uaXRvci5cbiAgICAgIC8vXG4gICAgICAvLyBBIHJlbGF0ZWQgZGlzY3Vzc2lvbjogaHR0cHM6Ly9naXRodWIuY29tL3czYy93Y2FnL2lzc3Vlcy8xMDAxXG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9zdW1tYXJ5LWxpc3RcIikge1xuICAuZ292dWstc3VtbWFyeS1saXN0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7IC8vIFJlcXVpcmVkIHRvIGFsbG93IHVzIHRvIHdyYXAgd29yZHMgdGhhdCBvdmVyZmxvdy5cbiAgICB9XG4gICAgbWFyZ2luOiAwOyAvLyBSZXNldCBkZWZhdWx0IHVzZXIgYWdlbnQgc3R5bGVzXG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19yb3cge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSxcbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucyB7XG4gICAgbWFyZ2luOiAwOyAvLyBSZXNldCBkZWZhdWx0IHVzZXIgYWdlbnQgc3R5bGVzXG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSxcbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWUge1xuICAgIC8vIEF1dG9tYXRpYyB3cmFwcGluZyBmb3IgdW5icmVha2FibGUgdGV4dCAoZS5nLiBVUkxzKVxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgLy8gRmFsbGJhY2sgZm9yIG9sZGVyIGJyb3dzZXJzIG9ubHlcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5IHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICB9XG5cbiAgLy8gRXhwYW5kIHdpZHRoIHdoZW4gdmFsdWUgaXMgbGFzdCBjb2x1bW4gKG5vIGFjdGlvbilcbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWU6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDcwJTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSA+IHAge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucy1saXN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgICBwYWRkaW5nOiAwOyAvLyBSZXNldCBkZWZhdWx0IHVzZXIgYWdlbnQgc3R5bGVzXG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zLWxpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLy8gSW4gb2xkZXIgYnJvd3NlcnMgc3VjaCBhcyBJRTgsIDpsYXN0LWNoaWxkIGlzIG5vdCBhdmFpbGFibGUsXG4gIC8vIHNvIG9ubHkgc2hvdyB0aGUgYm9yZGVyIGRpdmlkZXIgd2hlcmUgaXQgaXMgYXZhaWxhYmxlLlxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zLWxpc3QtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8vIE5vIGJvcmRlciBvbiBlbnRpcmUgc3VtbWFyeSBsaXN0XG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3QtLW5vLWJvcmRlciB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3JvdyB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAuZ292dWstc3VtbWFyeS1saXN0X19rZXksXG4gICAgICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSxcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMge1xuICAgICAgICAvLyBSZW1vdmUgMXB4IGJvcmRlciwgYWRkIDFweCBoZWlnaHQgYmFjayBvblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygyKSArIDFweDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE5vIGJvcmRlciBvbiBzcGVjaWZpYyByb3dzXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvdy0tbm8tYm9yZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSxcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucyB7XG4gICAgICAgIC8vIFJlbW92ZSAxcHggYm9yZGVyLCBhZGQgMXB4IGhlaWdodCBiYWNrIG9uXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpICsgMXB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2lucHV0XCIpIHtcbiAgLmdvdnVrLWlucHV0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICBoZWlnaHQ6IGdvdnVrLXB4LXRvLXJlbSg0MHB4KTtcbiAgICB9XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgLy8gc2V0dGluZyBhbnkgYmFja2dyb3VuZC1jb2xvciBtYWtlcyB0ZXh0IGludmlzaWJsZSB3aGVuIGNoYW5naW5nIGNvbG91cnMgdG8gZGFyayBiYWNrZ3JvdW5kcyBpbiBGaXJlZm94IChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1NDc2KVxuICAgIC8vIGFzIGJhY2tncm91bmQtY29sb3IgYW5kIGNvbG9yIG5lZWQgdG8gYWx3YXlzIGJlIHNldCB0b2dldGhlciwgY29sb3Igc2hvdWxkIG5vdCBiZSBzZXQgZWl0aGVyXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLy8gRGlzYWJsZSBpbm5lciBzaGFkb3cgYW5kIHJlbW92ZSByb3VuZGVkIGNvcm5lcnNcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBFbnN1cmUgb3V0bGluZSBhcHBlYXJzIG91dHNpZGUgb2YgdGhlIGVsZW1lbnRcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAwO1xuICAgICAgLy8gRG91YmxlIHRoZSBib3JkZXIgYnkgYWRkaW5nIGl0cyB3aWR0aCBhZ2Fpbi4gVXNlIGBib3gtc2hhZG93YCBmb3IgdGhpcyAvLyBpbnN0ZWFkIG9mIGNoYW5naW5nIGBib3JkZXItd2lkdGhgIC0gdGhpcyBpcyBmb3IgY29uc2lzdGVuY3kgd2l0aFxuICAgICAgLy8gY29tcG9uZW50cyBzdWNoIGFzIHRleHRhcmVhIHdoZXJlIHdlIGF2b2lkIGNoYW5naW5nIGBib3JkZXItd2lkdGhgIGFzXG4gICAgICAvLyBpdCB3aWxsIGNoYW5nZSB0aGUgZWxlbWVudCBzaXplLiBBbHNvLCBgb3V0bGluZWAgY2Fubm90IGJlIHV0aWxpc2VkXG4gICAgICAvLyBoZXJlIGFzIGl0IGlzIGFscmVhZHkgdXNlZCBmb3IgdGhlIHllbGxvdyBmb2N1cyBzdGF0ZS5cbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IGBib3gtc2hhZG93YCBzbyBkb3VibGUgdGhlIGJvcmRlciB3aXRoXG4gICAgICAgIC8vIGBib3JkZXItd2lkdGhgLlxuICAgICAgICBib3JkZXItd2lkdGg6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50ICogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gIC5nb3Z1ay1pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0tZXJyb3Ige1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgZXggbWVhc3VyZW1lbnRzIGFyZSBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIFcncyB0aGF0IGNhbiBmaXQgaW5zaWRlIHRoZSBpbnB1dFxuICAvLyBFeHRyYSBzcGFjZSBpcyBsZWZ0IG9uIHRoZSByaWdodCBoYW5kIHNpZGUgdG8gYWxsb3cgZm9yIHRoZSBTYWZhcmkgcHJlZmlsbCBpY29uXG4gIC8vIExpbmVhciByZWdyZXNzaW9uIGVzdGltYXRpb24gYmFzZWQgb24gdmlzdWFsIHRlc3RzOiB5ID0gMS43NiArIDEuODF4XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC0zMCB7XG4gICAgbWF4LXdpZHRoOiA1NmV4ICsgM2V4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC0yMCB7XG4gICAgbWF4LXdpZHRoOiAzOGV4ICsgM2V4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC0xMCB7XG4gICAgbWF4LXdpZHRoOiAyMGV4ICsgM2V4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC01IHtcbiAgICBtYXgtd2lkdGg6IDEwLjhleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0td2lkdGgtNCB7XG4gICAgbWF4LXdpZHRoOiA5ZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTMge1xuICAgIG1heC13aWR0aDogNy4yZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTIge1xuICAgIG1heC13aWR0aDogNS40ZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXRfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLmdvdnVrLWlucHV0IHtcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgICAtd2Via2l0LWZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIC1tcy1mbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgfVxuXG4gICAgLmdvdnVrLWlucHV0OmZvY3VzIHtcbiAgICAgIC8vIEhhY2sgdG8gc3RvcCBmb2N1cyBzdHlsZSBiZWluZyBvdmVybGFwcGVkIGJ5IHRoZSBzdWZmaXhcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLy8gU3BsaXQgcHJlZml4L3N1ZmZpeCBvbnRvIHNlcGFyYXRlIGxpbmVzIG9uIG5hcnJvdyBzY3JlZW5zXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAuZ292dWstaW5wdXQge1xuICAgICAgICAvLyBTZXQgbWF4LXdpZHRoIHRvIG92ZXJyaWRlIHBvdGVudGlhbCB3aWR0aCBvdmVycmlkZSBjbGFzcyBvbiB0aGUgaW5wdXRcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dF9fcHJlZml4LFxuICAuZ292dWstaW5wdXRfX3N1ZmZpeCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIEBpZiAkZ292dWstdHlwb2dyYXBoeS11c2UtcmVtIHtcbiAgICAgIG1pbi13aWR0aDogZ292dWstcHgtdG8tcmVtKDQwcHgpO1xuICAgIH1cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgaGVpZ2h0OiBnb3Z1ay1weC10by1yZW0oNDBweCk7XG4gICAgfVxuXG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKTtcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImxpZ2h0LWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTNcIik7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgfVxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBFbXBoYXNpc2Ugbm9uLWVkaXRhYmxlIHN0YXR1cyBvZiBwcmVmaXhlcyBhbmQgc3VmZml4ZXNcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuXG4gICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XG5cbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgLy8gU3BsaXQgcHJlZml4L3N1ZmZpeCBvbnRvIHNlcGFyYXRlIGxpbmVzIG9uIG5hcnJvdyBzY3JlZW5zXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaW5wdXRfX3ByZWZpeCB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiBtb2JpbGUpIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3BsaXQgcHJlZml4L3N1ZmZpeCBvbnRvIHNlcGFyYXRlIGxpbmVzIG9uIG5hcnJvdyBzY3JlZW5zXG4gIC5nb3Z1ay1pbnB1dF9fc3VmZml4IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IG1vYmlsZSkge1xuICAgICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9pbnB1dC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2RhdGUtaW5wdXRcIikge1xuICAuZ292dWstZGF0ZS1pbnB1dCB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgLy8gZm9udC1zaXplOiAwIHJlbW92ZXMgd2hpdGVzcGFjZSBjYXVzZWQgYnkgaW5saW5lLWJsb2NrXG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgLmdvdnVrLWRhdGUtaW5wdXRfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1kYXRlLWlucHV0X19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuZ292dWstZGF0ZS1pbnB1dF9faW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZGV0YWlsc1wiKSB7XG4gIC5nb3Z1ay1kZXRhaWxzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5IHtcbiAgICAvLyBNYWtlIHRoZSBmb2N1cyBvdXRsaW5lIHNocmluay13cmFwIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIHN1bW1hcnlcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvLyBBYnNvbHV0ZWx5IHBvc2l0aW9uIHRoZSBtYXJrZXIgYWdhaW5zdCB0aGlzIGVsZW1lbnRcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgLy8gQWxsb3cgZm9yIGFic29sdXRlbHkgcG9zaXRpb25lZCBtYXJrZXIgYW5kIGFsaWduIHdpdGggZGlzY2xvc2VkIHRleHRcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCkgKyAkZ292dWstYm9yZGVyLXdpZHRoO1xuXG4gICAgLy8gU3R5bGUgdGhlIHN1bW1hcnkgdG8gbG9vayBsaWtlIGEgbGluay4uLlxuICAgIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGdvdnVrLWxpbmstaG92ZXItY29sb3VyO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIC8vIC4uLmJ1dCBvbmx5IHVuZGVybGluZSB0aGUgdGV4dCwgbm90IHRoZSBhcnJvd1xuICAuZ292dWstZGV0YWlsc19fc3VtbWFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWRlY29yYXRpb247XG4gIH1cblxuICAuZ292dWstZGV0YWlsc19fc3VtbWFyeTpob3ZlciAuZ292dWstZGV0YWlsc19fc3VtbWFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHVuZGVybGluZSB3aGVuIGZvY3Vzc2VkIHRvIGF2b2lkIGR1cGxpY2F0ZSBib3JkZXJzXG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmZvY3VzIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCBkZXRhaWxzIG1hcmtlciBzbyB3ZSBjYW4gc3R5bGUgb3VyIG93biBjb25zaXN0ZW50bHkgYW5kXG4gIC8vIGVuc3VyZSBpdCBkaXNwbGF5cyBpbiBGaXJlZm94IChzZWUgaW1wbGVtZW50YXRpb24ubWQgZm9yIGRldGFpbHMpXG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQXBwZW5kIG91ciBvd24gb3BlbiAvIGNsb3NlZCBtYXJrZXIgdXNpbmcgYSBwc2V1ZG8tZWxlbWVudFxuICAuZ292dWstZGV0YWlsc19fc3VtbWFyeTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgdG9wOiAtMXB4O1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgbWFyZ2luOiBhdXRvO1xuXG4gICAgQGluY2x1ZGUgZ292dWstc2hhcGUtYXJyb3coJGRpcmVjdGlvbjogcmlnaHQsICRiYXNlOiAxNHB4KTtcblxuICAgIC5nb3Z1ay1kZXRhaWxzW29wZW5dID4gJiB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiBkb3duLCAkYmFzZTogMTRweCk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KTtcbiAgICBib3JkZXItbGVmdDogJGdvdnVrLWJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgfVxuXG4gIC5nb3Z1ay1kZXRhaWxzX190ZXh0IHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZyg0KTtcbiAgfVxuXG4gIC5nb3Z1ay1kZXRhaWxzX190ZXh0ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9zaGFwZXNcbi8vLy9cblxuLy8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0IG9mIGFuIGVxdWlsYXRlcmFsIHRyaWFuZ2xlXG4vLy9cbi8vLyBNdWx0aXBseWluZyBoYWxmIHRoZSBsZW5ndGggb2YgdGhlIGJhc2Ugb2YgYW4gZXF1aWxhdGVyYWwgdHJpYW5nbGUgYnkgdGhlXG4vLy8gc3F1YXJlIHJvb3Qgb2YgdGhyZWUgZ2l2ZXMgdXMgaXRzIGhlaWdodC4gV2UgdXNlIDEuNzMyIGFzIGFuIGFwcHJveGltYXRpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBMZW5ndGggb2YgdGhlIGJhc2Ugb2YgdGhlIHRyaWFuZ2xlXG4vLy8gQHJldHVybiB7TnVtYmVyfSBDYWxjdWxhdGVkIGhlaWdodCBvZiB0aGUgdHJpYW5nbGVcbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9nb3Z1ay1lcXVpbGF0ZXJhbC1oZWlnaHQoJGJhc2UpIHtcbiAgJHNxdWFyZS1yb290LW9mLXRocmVlOiAxLjczMjtcblxuICBAcmV0dXJuICgkYmFzZSAvIDIpICogJHNxdWFyZS1yb290LW9mLXRocmVlO1xufVxuXG4vLy8gQXJyb3cgbWl4aW5cbi8vL1xuLy8vIEdlbmVyYXRlIEFycm93cyAodHJpYW5nbGVzKSBieSB1c2luZyBhIG1peCBvZiB0cmFuc3BhcmVudCAoMSkgYW5kIGNvbG91cmVkXG4vLy8gYm9yZGVycy4gVGhlIGNvbG91cmVkIGJvcmRlcnMgaW5oZXJpdCB0aGUgdGV4dCBjb2xvdXIgb2YgdGhlIGVsZW1lbnQgKDIpLlxuLy8vXG4vLy8gRW5zdXJlIHRoZSBhcnJvdyBpcyByZW5kZXJlZCBjb3JyZWN0bHkgaWYgYnJvd3NlciBjb2xvdXJzIGFyZSBvdmVycmlkZGVuIGJ5XG4vLy8gcHJvdmlkaW5nIGEgY2xpcCBwYXRoICgzKS4gV2l0aG91dCB0aGlzIHRoZSB0cmFuc3BhcmVudCBib3JkZXJzIGFyZVxuLy8vIG92ZXJyaWRkZW4gdG8gYmVjb21lIHZpc2libGUgd2hpY2ggcmVzdWx0cyBpbiBhIHNxdWFyZS5cbi8vL1xuLy8vIFdlIG5lZWQgYm90aCBiZWNhdXNlIG9sZGVyIGJyb3dzZXJzIGRvIG5vdCBzdXBwb3J0IGNsaXAtcGF0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIC0gRGlyZWN0aW9uIGZvciBhcnJvdzogdXAsIHJpZ2h0LCBkb3duLCBsZWZ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIExlbmd0aCBvZiB0aGUgdHJpYW5nbGUgJ2Jhc2UnIHNpZGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbbnVsbF0gLSBIZWlnaHQgb2YgdHJpYW5nbGUuIE9taXQgZm9yIGVxdWlsYXRlcmFsLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdIC0gQ1NTIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGFycm93XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstc2hhcGUtYXJyb3coJGRpcmVjdGlvbiwgJGJhc2UsICRoZWlnaHQ6IG51bGwsICRkaXNwbGF5OiBibG9jaykge1xuICBkaXNwbGF5OiAkZGlzcGxheTtcblxuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIDFcblxuICAkcGVycGVuZGljdWxhcjogJGJhc2UgLyAyO1xuXG4gIEBpZiAoJGhlaWdodCA9PSBudWxsKSB7XG4gICAgJGhlaWdodDogX2dvdnVrLWVxdWlsYXRlcmFsLWhlaWdodCgkYmFzZSk7XG4gIH1cblxuICBAaWYgJGRpcmVjdGlvbiA9PSBcInVwXCIge1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBwb2x5Z29uKDUwJSAwJSwgMCUgMTAwJSwgMTAwJSAxMDAlKTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMCUsIDAlIDEwMCUsIDEwMCUgMTAwJSk7IC8vIDNcblxuICAgIGJvcmRlci13aWR0aDogMCAkcGVycGVuZGljdWxhciAkaGVpZ2h0ICRwZXJwZW5kaWN1bGFyO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwicmlnaHRcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDEwMCUgNTAlLCAwJSAxMDAlKTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgMTAwJSA1MCUsIDAlIDEwMCUpOyAvLyAzXG5cbiAgICBib3JkZXItd2lkdGg6ICRwZXJwZW5kaWN1bGFyIDAgJHBlcnBlbmRpY3VsYXIgJGhlaWdodDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogaW5oZXJpdDsgLy8gMlxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCA1MCUgMTAwJSwgMTAwJSAwJSk7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDUwJSAxMDAlLCAxMDAlIDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICRwZXJwZW5kaWN1bGFyIDAgJHBlcnBlbmRpY3VsYXI7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDsgLy8gMlxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDUwJSwgMTAwJSAxMDAlLCAxMDAlIDAlKTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSA1MCUsIDEwMCUgMTAwJSwgMTAwJSAwJSk7IC8vIDNcblxuICAgIGJvcmRlci13aWR0aDogJHBlcnBlbmRpY3VsYXIgJGhlaWdodCAkcGVycGVuZGljdWxhciAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogaW5oZXJpdDsgLy8gMlxuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIGFycm93IGRpcmVjdGlvbjogZXhwZWN0ZWQgYHVwYCwgYHJpZ2h0YCwgYGRvd25gIG9yIGBsZWZ0YCwgZ290IGAjeyRkaXJlY3Rpb259YFwiO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vY29yZS9saXN0c1wiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2Vycm9yLXN1bW1hcnlcIikge1xuICAuZ292dWstZXJyb3Itc3VtbWFyeSB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDQpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1lcnJvci1jb2xvdXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgICB9XG4gIH1cblxuICAvLyBDcm9zcy1jb21wb25lbnQgY2xhc3MgLSBhZGp1c3RzIHN0eWxpbmcgb2YgbGlzdCBjb21wb25lbnRcbiAgLmdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3Qge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0IGEge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1lcnJvcjtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9maWxlLXVwbG9hZFwiKSB7XG4gICRjb21wb25lbnQtcGFkZGluZzogZ292dWstc3BhY2luZygxKTtcblxuICAuZ292dWstZmlsZS11cGxvYWQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0kY29tcG9uZW50LXBhZGRpbmc7XG4gICAgcGFkZGluZzogJGNvbXBvbmVudC1wYWRkaW5nO1xuXG4gICAgLy8gVGhlIGRlZmF1bHQgZmlsZSB1cGxvYWQgYnV0dG9uIGluIFNhZmFyaSBkb2VzIG5vdFxuICAgIC8vIHN1cHBvcnQgc2V0dGluZyBhIGN1c3RvbSBmb250LXNpemUuIFNldCBgLXdlYmtpdC1hcHBlYXJhbmNlYFxuICAgIC8vIHRvIGBidXR0b25gIHRvIGRyb3Agb3V0IG9mIHRoZSBuYXRpdmUgYXBwZWFyYW5jZSBzbyB0aGVcbiAgICAvLyBmb250LXNpemUgaXMgc2V0IHRvIDE5cHhcbiAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzQ2XG4gICAgJjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIC8vIFVzZSBgYm94LXNoYWRvd2AgdG8gYWRkIGJvcmRlciBpbnN0ZWFkIG9mIGNoYW5naW5nIGBib3JkZXItd2lkdGhgXG4gICAgICAvLyAod2hpY2ggY2hhbmdlcyBlbGVtZW50IHNpemUpIGFuZCBzaW5jZSBgb3V0bGluZWAgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGVcbiAgICAgIC8vIHllbGxvdyBmb2N1cyBzdGF0ZS5cbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDRweCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcblxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgLy8gSUU4IGRvZXNuJ3Qgc3VwcG9ydCBgYm94LXNoYWRvd2Agc28gYWRkIGFuIGFjdHVhbCBib3JkZXJcbiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0IFwiZm9jdXMtd2l0aGluXCIgdG8gZml4IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzAxOTZcbiAgICAvLyBzbyB0aGF0IGNvbXBvbmVudCByZWNlaXZlcyBmb2N1cyBpbiBGaXJlZm94LlxuICAgIC8vIFRoaXMgY2FuJ3QgYmUgc2V0IHRvZ2V0aGVyIHdpdGggYDpmb2N1c2AgYXMgYWxsIHZlcnNpb25zIG9mIElFIGZhaWxcbiAgICAvLyB0byByZWNvZ25pc2UgYGZvY3VzLXdpdGhpbmAgYW5kIGRvbid0IHNldCBhbnkgc3R5bGVzIGZyb20gdGhlIGJsb2NrXG4gICAgLy8gd2hlbiBpdCdzIGEgc2VsZWN0b3IuXG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG5cbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDRweCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZm9vdGVyXCIpIHtcblxuICAkZ292dWstZm9vdGVyLWJhY2tncm91bmQ6ICRnb3Z1ay1jYW52YXMtYmFja2dyb3VuZC1jb2xvdXI7XG4gICRnb3Z1ay1mb290ZXItYm9yZGVyOiAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgLy8gVGhpcyB2YXJpYWJsZSBjYW4gYmUgcmVtb3ZlZCBlbnRpcmVseSBvbmNlIHRoZSBsZWdhY3kgcGFsZXR0ZSBnb2VzIGF3YXksXG4gIC8vIGFzIGl0J2xsIGp1c3QgYmUgdGhlIHNhbWUgYXMgJGdvdnVrLWZvb3Rlci1ib3JkZXIuXG4gICRnb3Z1ay1mb290ZXItYm9yZGVyLXRvcDogJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICRnb3Z1ay1mb290ZXItdGV4dDogJGdvdnVrLXRleHQtY29sb3VyO1xuICAkZ292dWstZm9vdGVyLWxpbmstaG92ZXItY29sb3VyOiBudWxsOyAvLyBPbmx5IHVzZWQgd2l0aCB0aGUgbGVnYWN5IHBhbGV0dGVcblxuICBAaWYgKCRnb3Z1ay11c2UtbGVnYWN5LXBhbGV0dGUpIHtcbiAgICAkZ292dWstZm9vdGVyLWJvcmRlci10b3A6ICNhMWFjYjI7XG4gICAgJGdvdnVrLWZvb3Rlci1ib3JkZXI6IGdvdnVrLWNvbG91cihcImdyZXktMlwiKTtcbiAgICAkZ292dWstZm9vdGVyLXRleHQ6ICM0NTRhNGM7XG4gICAgJGdvdnVrLWZvb3Rlci1saW5rLWhvdmVyLWNvbG91cjogIzE3MTgxOTtcbiAgfVxuXG4gIC8vIEJhc2VkIG9uIHRoZSBnb3Z1ay1jcmVzdC0yeC5wbmcgaW1hZ2UgZGltZW5zaW9ucy5cbiAgJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS13aWR0aC0yeDogMjUwcHg7XG4gICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2UtaGVpZ2h0LTJ4OiAyMDRweDtcbiAgLy8gSGFsZiB0aGUgMnggaW1hZ2Ugc28gdGhhdCBpdCBmaXRzIHRoZSByZWd1bGFyIDF4IHNpemUuXG4gICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGg6ICgkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLXdpZHRoLTJ4IC8gMik7XG4gICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2UtaGVpZ2h0OiAoJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQtMnggLyAyKTtcblxuICAuZ292dWstZm9vdGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDcsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg1LCBcImJvdHRvbVwiKTtcblxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ292dWstZm9vdGVyLWJvcmRlci10b3A7XG4gICAgY29sb3I6ICRnb3Z1ay1mb290ZXItdGV4dDtcbiAgICBiYWNrZ3JvdW5kOiAkZ292dWstZm9vdGVyLWJhY2tncm91bmQ7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcblxuICAgIEBpZiAoJGdvdnVrLXVzZS1sZWdhY3ktcGFsZXR0ZSkge1xuICAgICAgJjpsaW5rLFxuICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1mb290ZXItdGV4dDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1mb290ZXItbGluay1ob3Zlci1jb2xvdXI7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gICAgfVxuXG4gICAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gICAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX3NlY3Rpb24tYnJlYWsge1xuICAgIG1hcmdpbjogMDsgLy8gUmVzZXQgYDxocj5gIGRlZmF1bHQgbWFyZ2luc1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuICAgIGJvcmRlcjogMDsgLy8gUmVzZXQgYDxocj5gIGRlZmF1bHQgYm9yZGVyc1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstZm9vdGVyLWJvcmRlcjtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX21ldGEge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4OyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLy8gU3VwcG9ydDogRmxleGJveFxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbWV0YS1pdGVtIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDUpO1xuICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19tZXRhLWl0ZW0tLWdyb3cge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4OiAxO1xuICAgICAgICAtbXMtZmxleDogMTtcbiAgICAgICAgICAgIGZsZXg6IDE7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIC13ZWJraXQtZmxleC1iYXNpczogMzIwcHg7XG4gICAgICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDMyMHB4O1xuICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAzMjBweDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpY2VuY2UtbG9nbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygyKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIH1cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC8vIFdvcmsgYXJvdW5kIFNWR3Mgbm90IGluaGVyaXRpbmcgY29sb3IgZnJvbSBwYXJlbnQgaW4gZm9yY2VkIGNvbG9yIG1vZGVcbiAgICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzYzMTApXG4gICAgZm9yY2VkLWNvbG9yLWFkanVzdDogYXV0bztcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpY2VuY2UtZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2NvcHlyaWdodC1sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWluLXdpZHRoOiAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLXdpZHRoO1xuICAgIHBhZGRpbmctdG9wOiAoJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS1oZWlnaHQgKyBnb3Z1ay1zcGFjaW5nKDIpKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJnb3Z1ay1jcmVzdC5wbmdcIik7XG4gICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcImdvdnVrLWNyZXN0LTJ4LnBuZ1wiKTtcbiAgICB9XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLXdpZHRoICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2UtaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9faW5saW5lLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbWV0YS1jdXN0b20ge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNCk7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19pbmxpbmUtbGlzdC1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19oZWFkaW5nIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig3LCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZyg0KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIH1cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWZvb3Rlci1ib3JkZXI7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19uYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIG1hcmdpbi1yaWdodDogLSRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICBtYXJnaW4tbGVmdDogLSRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsgLy8gU3VwcG9ydDogRmxleGJveFxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fc2VjdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICAgIG1hcmdpbi1ib3R0b206ICRnb3Z1ay1ndXR0ZXI7XG4gICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC8vIEVuc3VyZSBjb2x1bW5zIHRha2UgdXAgZXF1YWwgd2lkdGggKHR5cGljYWxseSBvbmUtaGFsZjpvbmUtaGFsZilcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIC13ZWJraXQtZmxleC1zaHJpbms6IDE7XG4gICAgICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJHVudGlsOiBkZXNrdG9wKSB7XG4gICAgICAvLyBNYWtlIHN1cmUgY29sdW1ucyBkbyBub3QgZHJvcCBiZWxvdyAyMDBweCBpbiB3aWR0aFxuICAgICAgLy8gV2lsbCB0eXBpY2FsbHkgcmVzdWx0IGluIHdyYXBwaW5nLCBhbmQgZW5kIHVwIGluIGEgc2luZ2xlIGNvbHVtbiBvbiBzbWFsbGVyIHNjcmVlbnMuXG4gICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDIwMHB4O1xuICAgICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAyMDBweDtcbiAgICAgICAgICAgICAgZmxleC1iYXNpczogMjAwcHg7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgb25seSB0d28gc2VjdGlvbnMsIHNldCB0aGUgbGF5b3V0IHRvIGJlIHR3by10aGlyZDpvbmUtdGhpcmQgb24gZGVza3RvcFxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAvLyBXZSBtYXRjaCB0aGUgZmlyc3Qgc2VjdGlvbiB3aXRoIGA6Zmlyc3QtY2hpbGRgLlxuICAgIC8vIFRvIGVuc3VyZSB0aGUgc2VjdGlvbiBpcyBvbmUgb2YgdHdvLCB3ZSBjYW4gY291bnQgYmFja3dhcmRzIHVzaW5nIGA6bnRoLWxhc3QtY2hpbGQoMilgLlxuICAgIC5nb3Z1ay1mb290ZXJfX3NlY3Rpb246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMjtcbiAgICAgIC13ZWJraXQtZmxleC1ncm93OiAyO1xuICAgICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAyO1xuICAgICAgICAgICAgICBmbGV4LWdyb3c6IDI7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICB9XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIC13ZWJraXQtY29sdW1uLWdhcDogJGdvdnVrLWd1dHRlcjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6ICRnb3Z1ay1ndXR0ZXI7IC8vIFN1cHBvcnQ6IENvbHVtbnNcblxuICAgIC8vIERpc2FibGUgdGhpY2tlciB1bmRlcmxpbmVzIG9uIGhvdmVyIGJlY2F1c2Ugb2YgYSBidWcgaW4gQ2hyb21pdW1cbiAgICAvLyBhZmZlY3RpbmcgbGlua3Mgd2l0aGluIGNvbHVtbnNcbiAgICAvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMTkwOTg3XG4gICAgLmdvdnVrLWZvb3Rlcl9fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgIC5nb3Z1ay1mb290ZXJfX2xpc3QtLWNvbHVtbnMtMiB7XG4gICAgICAtd2Via2l0LWNvbHVtbi1jb3VudDogMjtcbiAgICAgICAgICAgICAgY29sdW1uLWNvdW50OiAyOyAvLyBTdXBwb3J0OiBDb2x1bW5zXG4gICAgfVxuXG4gICAgLmdvdnVrLWZvb3Rlcl9fbGlzdC0tY29sdW1ucy0zIHtcbiAgICAgIC13ZWJraXQtY29sdW1uLWNvdW50OiAzO1xuICAgICAgICAgICAgICBjb2x1bW4tY291bnQ6IDM7IC8vIFN1cHBvcnQ6IENvbHVtbnNcbiAgICB9XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVyc1xuLy8vL1xuXG4vLy8gTWVkaWEgcXVlcnkgZm9yIHJldGluYSBpbWFnZXMgKGRldmljZS1waXhlbC1yYXRpbylcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmF0aW8gWzJdIC0gRGV2aWNlIHBpeGVsIHJhdGlvXG4vLy8gQGNvbnRlbnQgUGFzc2VkIGNvbnRlbnQgd2lsbCBiZSBvdXRwdXR0ZWQgd2l0aGluIHRoZSBtZWRpYSBxdWVyeVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFByb3ZpZGluZyBhIEAyeCBpbWFnZSBmb3Igc2NyZWVucyB0aGF0IHN1cHBvcnQgaXRcbi8vLyAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcIm15LWltYWdlLnBuZ1wiKTtcbi8vL1xuLy8vICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UtMngucG5nXCIpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzaW5nIGEgY3VzdG9tIHJhdGlvXG4vLy8gICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJteS1pbWFnZS5wbmdcIik7XG4vLy9cbi8vLyAgIEBpbmNsdWRlIGdvdnVrLWRldmljZS1waXhlbC1yYXRpbyB7XG4vLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcIm15LWltYWdlLTJ4LnBuZ1wiKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvKDMpIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UtM3gucG5nXCIpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWRldmljZS1waXhlbC1yYXRpbygkcmF0aW86IDIpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgaW5kZW50YXRpb25cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7KCRyYXRpbyAqIDk2KX1kcGkpLFxuICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvaGVhZGVyXCIpIHtcblxuICAkZ292dWstaGVhZGVyLWJhY2tncm91bmQ6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAkZ292dWstaGVhZGVyLWJvcmRlci1jb2xvcjogJGdvdnVrLWJyYW5kLWNvbG91cjtcbiAgJGdvdnVrLWhlYWRlci1ib3JkZXItd2lkdGg6IGdvdnVrLXNwYWNpbmcoMik7XG4gICRnb3Z1ay1oZWFkZXItdGV4dDogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICRnb3Z1ay1oZWFkZXItbGluay1hY3RpdmU6ICMxZDhmZWI7XG4gICRnb3Z1ay1oZWFkZXItbmF2LWl0ZW0tYm9yZGVyLWNvbG9yOiAjMmUzMTMzO1xuICAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzczogM3B4O1xuXG4gIC5nb3Z1ay1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcblxuICAgIGJvcmRlci1ib3R0b206IGdvdnVrLXNwYWNpbmcoMikgc29saWQgZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgY29sb3I6ICRnb3Z1ay1oZWFkZXItdGV4dDtcbiAgICBiYWNrZ3JvdW5kOiAkZ292dWstaGVhZGVyLWJhY2tncm91bmQ7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19jb250YWluZXItLWZ1bGwtd2lkdGgge1xuICAgIHBhZGRpbmc6IDAgZ292dWstc3BhY2luZygzKTtcbiAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1oZWFkZXItYm9yZGVyLWNvbG9yO1xuXG4gICAgLmdvdnVrLWhlYWRlcl9fbWVudS1idXR0b24ge1xuICAgICAgcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogLSRnb3Z1ay1oZWFkZXItYm9yZGVyLXdpZHRoO1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIGJvcmRlci1ib3R0b206ICRnb3Z1ay1oZWFkZXItYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1oZWFkZXItYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC8vIEFkZCBhIGdhcCBhZnRlciB0aGUgbG9nbyBpbiBjYXNlIGl0J3MgZm9sbG93ZWQgYnkgYSBwcm9kdWN0IG5hbWUuIFRoaXNcbiAgICAvLyBnZXRzIHJlbW92ZWQgbGF0ZXIgaWYgdGhlIGxvZ290eXBlIGlzIGEgOmxhc3QtY2hpbGQuXG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgLy8gUHJldmVudCByZWFkYWJpbGl0eSBiYWNrcGxhdGUgZnJvbSBvYnNjdXJpbmcgdW5kZXJsaW5lIGluIFdpbmRvd3MgSGlnaFxuICAgIC8vIENvbnRyYXN0IE1vZGVcbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgIGNvbG9yOiBsaW5rdGV4dDtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGdhcCBhZnRlciB0aGUgbG9nbyBpZiB0aGVyZSdzIG5vIHByb2R1Y3QgbmFtZSB0byBrZWVwIGhvdmVyXG4gICAgLy8gYW5kIGZvY3VzIHN0YXRlcyBuZWF0XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gIC8vIFNwYWNpbmcgYWRqdXN0bWVudCBmb3IgVHVkb3IgY3Jvd24sIGFzIHRoZSBuZXcgZ3JhcGhpYyBpcyBuYXJyb3dlciB0aGFuIHRoZVxuICAvLyBleGlzdGluZyBjcm93bi4gSW4gRnJvbnRlbmQgdjUsIHRoaXMgcnVsZSBzaG91bGQgcmVwbGFjZSB0aGUgZXF1aXZhbGVudCBpblxuICAvLyB0aGUgYmxvY2sgYWJvdmUuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duW3dpZHRoPVwiMzJcIl0ge1xuICAgIHRvcDogLTNweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duLWZhbGxiYWNrLWltYWdlIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIH1cblxuICAvLyBTaXppbmcgYWRqdXN0bWVudCBmb3IgVHVkb3IgY3Jvd24sIGFzIHRoZSBuZXcgZ3JhcGhpYyBpcyBzbWFsbGVyIHRoYW4gdGhlXG4gIC8vIGV4aXN0aW5nIGNyb3duLiBJbiBGcm9udGVuZCB2NSwgdGhlc2UgcnVsZXMgc2hvdWxkIHJlcGxhY2UgdGhlaXJcbiAgLy8gZXF1aXZhbGVudHMgaW4gdGhlIGJsb2NrIGFib3ZlLlxuICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bi1mYWxsYmFjay1pbWFnZVt3aWR0aD1cIjMyXCJdIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19wcm9kdWN0LW5hbWUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkbGluZS1oZWlnaHQ6IDEpO1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xpbmsge1xuICAgIC8vIEF2b2lkIHVzaW5nIHRoZSBgZ292dWstbGluay1jb21tb25gIG1peGluIGJlY2F1c2UgdGhlIGxpbmtzIGluIHRoZSBoZWFkZXJcbiAgICAvLyBnZXQgYSBzcGVjaWFsIHRyZWF0bWVudCwgYmVjYXVzZTpcbiAgICAvL1xuICAgIC8vIC0gdW5kZXJsaW5lcyBhcmUgb25seSB2aXNpYmxlIG9uIGhvdmVyXG4gICAgLy8gLSBhbGwgbGlua3MgZ2V0IGEgM3B4IHVuZGVybGluZSByZWdhcmRsZXNzIG9mIHRleHQgc2l6ZSwgYXMgdGhlcmUgYXJlXG4gICAgLy8gICBtdWx0aXBsZSBncm91cGVkIGVsZW1lbnRzIGNsb3NlIHRvIG9uZSBhbm90aGVyIGFuZCBoYXZpbmcgc2xpZ2h0bHlcbiAgICAvLyAgIGRpZmZlcmVudCB1bmRlcmxpbmUgd2lkdGhzIGxvb2tzIHVuYmFsYW5jZWRcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWludmVyc2U7XG5cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3M7XG5cbiAgICAgIEBpZiAoJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldCkge1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbGluay0taG9tZXBhZ2Uge1xuICAgIC8vIEZvbnQgc2l6ZSBuZWVkcyB0byBiZSBzZXQgb24gdGhlIGxpbmsgc28gdGhhdCB0aGUgYm94IHNpemluZyBpcyBjb3JyZWN0XG4gICAgLy8gaW4gRmlyZWZveFxuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IGZhbHNlLCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgZm9udC1zaXplOiAzMHB4OyAvLyBXZSBkb24ndCBoYXZlIGEgbWl4aW4gdGhhdCBwcm9kdWNlcyAzMHB4IGZvbnQgc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgJjpsaW5rLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAvLyBOZWdhdGUgdGhlIGFkZGVkIGJvcmRlclxuICAgICAgbWFyZ2luLWJvdHRvbTogJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3MgKiAtMTtcbiAgICAgIC8vIE9taXR0aW5nIGNvbG91ciB3aWxsIHVzZSBkZWZhdWx0IHZhbHVlIG9mIGN1cnJlbnRDb2xvciDigJMgaWYgd2VcbiAgICAgIC8vIHNwZWNpZmllZCBjdXJyZW50Q29sb3IgZXhwbGljaXRseSBJRTggd291bGQgaWdub3JlIHRoaXMgcnVsZS5cbiAgICAgIGJvcmRlci1ib3R0b206ICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzIHNvbGlkO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBhbnkgYm9yZGVycyB0aGF0IHNob3cgd2hlbiBmb2N1c2VkIGFuZCBob3ZlcmVkLlxuICAgICY6Zm9jdXMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbGluay0tc2VydmljZS1uYW1lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvLFxuICAuZ292dWstaGVhZGVyX19jb250ZW50IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nbyB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oMiwgXCJib3R0b21cIik7XG4gICAgcGFkZGluZy1yaWdodDogZ292dWstc3BhY2luZyg4KTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgIHdpZHRoOiA2Ni42NiU7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX21lbnUtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiBzb2xpZCB1bmRlcmxpbmUgJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3M7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogc29saWQgdW5kZXJsaW5lICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzO1xuXG4gICAgICBAaWYgKCRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQpIHtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZ292dWstc2hhcGUtYXJyb3coJGRpcmVjdGlvbjogZG93biwgJGJhc2U6IDEwcHgsICRkaXNwbGF5OiBpbmxpbmUtYmxvY2spO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIG1hcmdpbi1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogdGFibGV0KSB7XG4gICAgICB0b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbWVudS1idXR0b24tLW9wZW4ge1xuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZ292dWstc2hhcGUtYXJyb3coJGRpcmVjdGlvbjogdXAsICRiYXNlOiAxMHB4LCAkZGlzcGxheTogaW5saW5lLWJsb2NrKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigyLCBcImJvdHRvbVwiKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgLmpzLWVuYWJsZWQge1xuICAgIC5nb3Z1ay1oZWFkZXJfX21lbnUtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24tLW9wZW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi0tZW5kIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSkgMDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24tLW5vLXNlcnZpY2UtbmFtZSB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoNyk7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLWl0ZW0ge1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWhlYWRlci1uYXYtaXRlbS1ib3JkZXItY29sb3I7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygzKTtcbiAgICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSkgMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkKTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi1pdGVtLS1hY3RpdmUge1xuICAgIGEge1xuICAgICAgJjpsaW5rLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstaGVhZGVyLWxpbmstYWN0aXZlO1xuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAgICAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi1pdGVtOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgIC5nb3Z1ay1oZWFkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIEhpZGUgdGhlIGludmVydGVkIGNyb3duIHdoZW4gcHJpbnRpbmcgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IFNWRy5cbiAgICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bi1mYWxsYmFjay1pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5nb3Z1ay1oZWFkZXJfX2xpbmsge1xuICAgICAgJjpsaW5rLFxuICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICAgICAgfVxuXG4gICAgICAvLyBEbyBub3QgYXBwZW5kIGxpbmsgaHJlZiB0byBHT1YuVUsgbGluayB3aGVuIHByaW50aW5nIChlLmcuICcoLyknKVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgIC8vIEJlZ2luIGFkanVzdG1lbnRzIGZvciBmb250IGJhc2VsaW5lIG9mZnNldFxuICAgIC8vIFRoZXNlIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIGZvbnQgaXMgdXBkYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGJhc2VsaW5lXG4gICAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd24sXG4gICAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd24tZmFsbGJhY2staW1hZ2Uge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtNHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAuZ292dWstaGVhZGVyIHtcbiAgICAgICRvZmZzZXQ6IDNweDtcbiAgICAgIHBhZGRpbmctdG9wOiAkb2Zmc2V0O1xuICAgIH1cblxuICAgIC5nb3Z1ay1oZWFkZXJfX2xpbmstLWhvbWVwYWdlIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cbiAgICAvLyBFbmQgYWRqdXN0bWVudHNcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9pbnNldC10ZXh0XCIpIHtcbiAgLmdvdnVrLWluc2V0LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIC8vIE1hcmdpbiB0b3AgaW50ZW5kZWQgdG8gY29sbGFwc2VcbiAgICAvLyBUaGlzIGFkZHMgYW4gYWRkaXRpb25hbCAxMHB4IHRvIHRoZSBwYXJhZ3JhcGggYWJvdmVcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcInRvcFwiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgYm9yZGVyLWxlZnQ6ICRnb3Z1ay1ib3JkZXItd2lkdGgtd2lkZSBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgPiA6b25seS1jaGlsZCxcbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L25vdGlmaWNhdGlvbi1iYW5uZXJcIikge1xuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lciB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1icmFuZC1jb2xvdXI7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnJhbmQtY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9faGVhZGVyIHtcbiAgICBwYWRkaW5nOiAycHggZ292dWstc3BhY2luZygzKSBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgLy8gRW5zdXJlcyB0aGUgbm90aWZpY2F0aW9uIGhlYWRlciBhcHBlYXJzIHNlcGFyYXRlIHRvIHRoZSBub3RpZmljYXRpb24gYm9keSB0ZXh0IGluIGhpZ2ggY29udHJhc3QgbW9kZVxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6IDJweCBnb3Z1ay1zcGFjaW5nKDQpIGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBtYXJnaW46IDA7XG5cbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX2NvbnRlbnQge1xuICAgICRwYWRkaW5nLXRhYmxldDogZ292dWstc3BhY2luZyg0KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWJvZHktYmFja2dyb3VuZC1jb2xvdXI7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiAkcGFkZGluZy10YWJsZXQ7XG4gICAgfVxuXG4gICAgLy8gV3JhcCBjb250ZW50IGF0IHRoZSBzYW1lIHBsYWNlIHRoYXQgYSAyLzMgZ3JpZCBjb2x1bW4gZW5kcywgdG8gbWFpbnRhaW5cbiAgICAvLyBzaG9ydGVyIGxpbmUtbGVuZ3RocyB3aGVuIHRoZSBub3RpZmljYXRpb24gYmFubmVyIGlzIGZ1bGwgd2lkdGhcbiAgICA+ICoge1xuICAgICAgLy8gV2hlbiBlbGVtZW50cyBoYXZlIHRoZWlyIG93biBwYWRkaW5nIChsaWtlIGxpc3RzKSwgaW5jbHVkZSB0aGUgcGFkZGluZ1xuICAgICAgLy8gaW4gdGhlIG1heC13aWR0aCBjYWxjdWxhdGlvblxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBpbnRlcm5hbCB3aWR0aCBvZiBhIHR3by10aGlyZHMgY29sdW1uLi4uXG4gICAgICAkdHdvLWNvbC13aWR0aDogKCRnb3Z1ay1wYWdlLXdpZHRoICogMiAvIDMpIC0gKCRnb3Z1ay1ndXR0ZXIgKiAxIC8gMyk7XG5cbiAgICAgIC8vIC4uLmFuZCB0aGVuIGZhY3RvciBpbiB0aGUgbGVmdCBib3JkZXIgYW5kIHBhZGRpbmdcbiAgICAgICRiYW5uZXItZXh0ZXJpb3I6ICgkcGFkZGluZy10YWJsZXQgKyAkZ292dWstYm9yZGVyLXdpZHRoKTtcbiAgICAgIG1heC13aWR0aDogJHR3by1jb2wtd2lkdGggLSAkYmFubmVyLWV4dGVyaW9yO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgbWFyZ2luOiAwIDAgZ292dWstc3BhY2luZygzKSAwO1xuXG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW5vLXZpc2l0ZWQtc3RhdGU7XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lci0tc3VjY2VzcyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ292dWstc3VjY2Vzcy1jb2xvdXI7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstc3VjY2Vzcy1jb2xvdXI7XG5cbiAgICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9fbGluayB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXN1Y2Nlc3M7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3BhbmVsXCIpIHtcbiAgLmdvdnVrLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDcpIC0gJGdvdnVrLWJvcmRlci13aWR0aDtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDMpIC0gJGdvdnVrLWJvcmRlci13aWR0aDtcblxuICAgICAgLy8gVGhpcyBpcyBhbiBpZi1hbGwtZWxzZS1mYWlscyBhdHRlbXB0IHRvIHN0b3AgbG9uZyB3b3JkcyBmcm9tIG92ZXJmbG93aW5nIHRoZSBjb250YWluZXJcbiAgICAgIC8vIG9uIHZlcnkgbmFycm93IHZpZXdwb3J0cyBieSBmb3JjaW5nIHRoZW0gdG8gYnJlYWsgYW5kIHdyYXAgaW5zdGVhZC4gVGhpc1xuICAgICAgLy8gb3ZlcmZsb3dpbmcgaXMgbW9yZSBsaWtlbHkgdG8gaGFwcGVuIHdoZW4gdXNlciBpbmNyZWFzZXMgdGV4dCBzaXplIG9uIGEgbW9iaWxlIGVnLiB1c2luZ1xuICAgICAgLy8gaU9TIFNhZmFyaSB0ZXh0IHJlc2l6ZSBjb250cm9scy5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUgb3ZlcmZsb3dpbmcgaXMgYSBwYXJ0aWN1bGFyIHByb2JsZW0gd2l0aCB0aGUgcGFuZWwgY29tcG9uZW50IHNpbmNlIGl0IHVzZXMgd2hpdGVcbiAgICAgIC8vIHRleHQ6IHdoZW4gdGhlIHRleHQgb3ZlcmZsb3dzIHRoZSBjb250YWluZXIsIGl0IGlzIGludmlzaWJsZSBvbiB0aGUgd2hpdGUgKHBhZ2UpXG4gICAgICAvLyBiYWNrZ3JvdW5kLiBXaGVuIHRoZSB0ZXh0IGluIG91ciBvdGhlciBjb21wb25lbnRzIG92ZXJmbG93LCB0aGUgdXNlciBtaWdodCBoYXZlIHRvIHNjcm9sbFxuICAgICAgLy8gaG9yaXpvbnRhbGx5IHRvIHZpZXcgaXQgYnV0IHRoZSB0aGUgdGV4dCByZW1haW5zIGxlZ2libGUuXG4gICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOyAvLyBTdXBwb3J0IElFIChhdXRvcHJlZml4ZXIgZG9lc24ndCBhZGQgdGhpcyBhcyBpdCdzIG5vdCBhIHByZWZpeClcbiAgICB9XG4gIH1cblxuICAuZ292dWstcGFuZWwtLWNvbmZpcm1hdGlvbiB7XG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLWNvbG91cihcImdyZWVuXCIsICRsZWdhY3k6IFwidHVycXVvaXNlXCIpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgIGNvbG9yOiAkZ292dWstcHJpbnQtdGV4dC1jb2xvdXI7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1wYW5lbF9fdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZyg2KTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcbiAgfVxuXG4gIC5nb3Z1ay1wYW5lbF9fdGl0bGU6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1wYW5lbF9fYm9keSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYpO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3RhZ1wiKSB7XG4gIC5nb3Z1ay10YWcge1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLy8gV2hlbiBhIHVzZXIgY3VzdG9taXNlcyB0aGVpciBjb2xvdXJzIG9mdGVuIHRoZSBiYWNrZ3JvdW5kIGlzIHJlbW92ZWQsXG4gICAgLy8gYnkgYWRkaW5nIGEgb3V0bGluZSB3ZSBlbnN1cmUgdGhhdCB0aGUgdGFnIGNvbXBvbmVudCBzdGlsbCBrZWVwcyBpdCdzIG1lYW5pbmcuXG4gICAgLy8gaHR0cHM6Ly9hY2Nlc3NpYmlsaXR5LmJsb2cuZ292LnVrLzIwMTcvMDMvMjcvaG93LXVzZXJzLWNoYW5nZS1jb2xvdXJzLW9uLXdlYnNpdGVzL1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcblxuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibHVlXCIpO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG5cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAgIC8vIFNpbmNlIE5ldyBUcmFuc3BvcnQgc2l0cyBzbGlnaHRseSBoaWdoZXIgdGhhbiBvdGhlciBjb21tb24gZm9udHMuXG4gICAgICAvLyBXZSB1c2UgaW50ZW50aW9uYWxseSB1bmV2ZW4gcGFkZGluZyB0byBtYWtlIGl0IGJhbGFuY2VkLCB0aGlzIGNhbiBiZVxuICAgICAgLy8gcmVtb3ZlZCB1c2luZyB0aGUgdmVyc2lvbiBvZiB0aGUgZm9udCB0aGF0IGhhcyBhIG1vcmUgY29tbW9uIHZlcnRpY2FsIHNwYWNpbmcuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNiwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAxLjI1KTtcbiAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNiwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAxKTtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVwcmVjYXRlZC4gV2UnbGwgcmVtb3ZlIHRoaXMgY2xhc3MgaW4gYSBmdXR1cmUgcmVsZWFzZS4gVXNlIGAuZ292dWstdGFnLS1ncmV5YCBpbnN0ZWFkLlxuICAuZ292dWstdGFnLS1pbmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwiZGFyay1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0xXCIpO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tZ3JleSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImRhcmstZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMVwiKSwgMzApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwiZGFyay1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0xXCIpLCA5MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS1wdXJwbGUge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJwdXJwbGVcIiksIDIwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcInB1cnBsZVwiKSwgODApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tdHVycXVvaXNlIHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwidHVycXVvaXNlXCIpLCA2MCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJ0dXJxdW9pc2VcIiksIDcwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLWJsdWUge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJibHVlXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJibHVlXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS15ZWxsb3cge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJ5ZWxsb3dcIiksIDY1KTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcInllbGxvd1wiKSwgNzUpO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tb3JhbmdlIHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwib3JhbmdlXCIpLCA1NSk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJvcmFuZ2VcIiksIDcwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXJlZCB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInJlZFwiKSwgMzApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwicmVkXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS1waW5rIHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwicGlua1wiKSwgNDApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwicGlua1wiKSwgODApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tZ3JlZW4ge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSwgMjApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwiZ3JlZW5cIiksIDgwKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3RhZy9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3BoYXNlLWJhbm5lclwiKSB7XG4gIC5nb3Z1ay1waGFzZS1iYW5uZXIge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXBoYXNlLWJhbm5lcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuXG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmdvdnVrLXBoYXNlLWJhbm5lcl9fY29udGVudF9fdGFnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAuZ292dWstcGhhc2UtYmFubmVyX190ZXh0IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGFic1wiKSB7XG4gIC5nb3Z1ay10YWJzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbigxLCBcInRvcFwiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJzX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAuZ292dWstdGFic19fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJzX19saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBtYXJnaW4tbGVmdDogZ292dWstc3BhY2luZyg1KTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgICAgY29udGVudDogXCJcXDIwMTQgXCI7IC8vIFwi4oCUIFwiXG4gICAgICBtYXJnaW4tbGVmdDogLSBnb3Z1ay1zcGFjaW5nKDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogZ292dWstc3BhY2luZygxKTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstdGFic19fdGFiIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJzX19wYW5lbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oOCwgXCJib3R0b21cIik7XG4gIH1cblxuICAvLyBKYXZhU2NyaXB0IGVuYWJsZWRcbiAgLmpzLWVuYWJsZWQge1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXRhYnNfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fbGlzdC1pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygxKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgZ292dWstc3BhY2luZyg0KTtcblxuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktNFwiKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX19saXN0LWl0ZW0tLXNlbGVjdGVkIHtcbiAgICAgICAgJGJvcmRlci13aWR0aDogMXB4O1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBtYXJnaW4tdG9wOiAtIGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAgICAgLy8gQ29tcGVuc2F0aW9uIGZvciBib3JkZXIgKG90aGVyd2lzZSB3ZSBnZXQgYSBzaGlmdClcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLSRib3JkZXItd2lkdGg7XG4gICAgICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDMpIC0gJGJvcmRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogZ292dWstc3BhY2luZyg0KSAtICRib3JkZXItd2lkdGg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpICsgJGJvcmRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDQpIC0gJGJvcmRlci13aWR0aDtcblxuICAgICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWJvZHktYmFja2dyb3VuZC1jb2xvdXI7XG5cbiAgICAgICAgLmdvdnVrLXRhYnNfX3RhYiB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX190YWIge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX3BhbmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oMCwgXCJib3R0b21cIik7XG4gICAgICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoNikgZ292dWstc3BhY2luZyg0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAgICAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX19wYW5lbC0taGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vZmllbGRzZXQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9yYWRpb3NcIikge1xuXG4gICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTogNDRweDtcbiAgJGdvdnVrLXJhZGlvcy1zaXplOiA0MHB4O1xuICAkZ292dWstc21hbGwtcmFkaW9zLXNpemU6IDI0cHg7XG4gICRnb3Z1ay1yYWRpb3MtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAvLyBXaGVuIHRoZSBkZWZhdWx0IGZvY3VzIHdpZHRoIGlzIHVzZWQgb24gYSBjdXJ2ZWQgZWRnZSBpdCBsb29rcyB2aXN1YWxseSBzbWFsbGVyLlxuICAvLyBTbyBmb3IgdGhlIGNpcmN1bGFyIHJhZGlvcyB3ZSBidW1wIHRoZSBkZWZhdWx0IHRvIG1ha2UgaXQgbG9vayB2aXN1YWxseSBjb25zaXN0ZW50LlxuICAkZ292dWstcmFkaW9zLWZvY3VzLXdpZHRoOiAkZ292dWstZm9jdXMtd2lkdGggKyAxcHg7XG5cbiAgLmdvdnVrLXJhZGlvc19faXRlbSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWluLWhlaWdodDogJGdvdnVrLXJhZGlvcy1zaXplO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICRnb3Z1ay1yYWRpb3Mtc2l6ZTtcblxuICAgIGNsZWFyOiBsZWZ0O1xuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19faXRlbTpsYXN0LWNoaWxkLFxuICAuZ292dWstcmFkaW9zX19pdGVtOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0IHtcbiAgICAkaW5wdXQtb2Zmc2V0OiAoJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGdvdnVrLXJhZGlvcy1zaXplKSAvIDI7XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBJRTggZG9lc27igJl0IHN1cHBvcnQgcHNldWRvLWVsZW1lbnRzLCBzbyB3ZSBkb27igJl0IHdhbnQgdG8gaGlkZSBuYXRpdmVcbiAgICAvLyBlbGVtZW50cyB0aGVyZS5cbiAgICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgei1pbmRleDogMTtcbiAgICAgIHRvcDogJGlucHV0LW9mZnNldCAqIC0xO1xuICAgICAgbGVmdDogJGlucHV0LW9mZnNldCAqIC0xO1xuXG4gICAgICB3aWR0aDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplO1xuICAgICAgaGVpZ2h0OiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemU7XG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1yYWRpb3Mtc2l6ZSAvIC0yO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1yYWRpb3Mtc2l6ZSAvIC0yO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIC8vIGFkZCBmb2N1cyBvdXRsaW5lIHRvIGlucHV0XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19fbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDhweCAkZ292dWstcmFkaW9zLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodCBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvLyByZW1vdmUgMzAwbXMgcGF1c2Ugb24gbW9iaWxlXG4gICAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgfVxuXG4gIC8vICggKSBSYWRpbyByaW5nXG4gIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAkZ292dWstcmFkaW9zLXNpemU7XG4gICAgaGVpZ2h0OiAkZ292dWstcmFkaW9zLXNpemU7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyAg4oCiICBSYWRpbyBidXR0b25cbiAgLy9cbiAgLy8gV2UgY3JlYXRlIHRoZSAnYnV0dG9uJyBlbnRpcmVseSBvdXQgb2YgJ2JvcmRlcicgc28gdGhhdCB0aGV5IHJlbWFpblxuICAvLyAnZmlsbGVkJyBldmVuIHdoZW4gY29sb3VycyBhcmUgb3ZlcnJpZGRlbiBpbiB0aGUgYnJvd3Nlci5cbiAgLmdvdnVrLXJhZGlvc19fbGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIGxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG5cbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBib3JkZXI6IGdvdnVrLXNwYWNpbmcoMikgc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gIC5nb3Z1ay1yYWRpb3NfX2hpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRnb3Z1ay1yYWRpb3MtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ7XG4gIH1cblxuICAvLyBGb2N1c2VkIHN0YXRlXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmZvY3VzICsgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcblxuICAgIC8vIFdoZW4gY29sb3VycyBhcmUgb3ZlcnJpZGRlbiwgdGhlIHllbGxvdyBib3gtc2hhZG93IGJlY29tZXMgaW52aXNpYmxlXG4gICAgLy8gd2hpY2ggbWVhbnMgdGhlIGZvY3VzIHN0YXRlIGlzIGxlc3Mgb2J2aW91cy4gQnkgYWRkaW5nIGEgdHJhbnNwYXJlbnRcbiAgICAvLyBvdXRsaW5lLCB3aGljaCBiZWNvbWVzIHNvbGlkICh0ZXh0LWNvbG91cmVkKSBpbiB0aGF0IGNvbnRleHQsIHdlIGVuc3VyZVxuICAgIC8vIHRoZSBmb2N1cyByZW1haW5zIGNsZWFybHkgdmlzaWJsZS5cbiAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcblxuICAgIC8vIFdoZW4gaW4gYW4gZXhwbGljaXQgZm9yY2VkLWNvbG9yIG1vZGUsIHdlIGNhbiB1c2UgdGhlIEhpZ2hsaWdodCBzeXN0ZW1cbiAgICAvLyBjb2xvciBmb3IgdGhlIG91dGxpbmUgdG8gYmV0dGVyIG1hdGNoIGZvY3VzIHN0YXRlcyBvZiBuYXRpdmUgY29udHJvbHNcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstcmFkaW9zLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gIH1cblxuICAvLyBTZWxlY3RlZCBzdGF0ZVxuICAuZ292dWstcmFkaW9zX19pbnB1dDpjaGVja2VkICsgLmdvdnVrLXJhZGlvc19fbGFiZWw6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuZ292dWstcmFkaW9zX19pbnB1dDpkaXNhYmxlZCxcbiAgLmdvdnVrLXJhZGlvc19faW5wdXQ6ZGlzYWJsZWQgKyAuZ292dWstcmFkaW9zX19sYWJlbCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgLmdvdnVrLXJhZGlvc19faW5wdXQ6ZGlzYWJsZWQgKyAuZ292dWstcmFkaW9zX19sYWJlbCB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gSW5saW5lIHJhZGlvc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstcmFkaW9zLS1pbmxpbmUge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcblxuICAgICAgLmdvdnVrLXJhZGlvc19faXRlbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZyg0KTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXZlbnQgaW5saW5lIG1vZGlmaWVyIGJlaW5nIHVzZWQgd2l0aCBjb25kaXRpb25hbCByZXZlYWxzXG4gICAgJi5nb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsIHtcbiAgICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBEaXZpZGVycyAoJ29yJylcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLmdvdnVrLXJhZGlvc19fZGl2aWRlciB7XG4gICAgJGdvdnVrLWRpdmlkZXItc2l6ZTogJGdvdnVrLXJhZGlvcy1zaXplICFkZWZhdWx0O1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB3aWR0aDogJGdvdnVrLWRpdmlkZXItc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb25kaXRpb25hbCByZXZlYWxzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFRoZSBuYXJyb3cgYm9yZGVyIGlzIHVzZWQgaW4gdGhlIGNvbmRpdGlvbmFsIHJldmVhbHMgYmVjYXVzZSB0aGUgYm9yZGVyIGhhc1xuICAvLyB0byBiZSBhbiBldmVuIG51bWJlciBpbiBvcmRlciB0byBiZSBjZW50cmVkIHVuZGVyIHRoZSA0MHB4IGNoZWNrYm94IG9yIHJhZGlvLlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdztcbiAgLy8gQ2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgcGFkZGluZyBuZWVkZWQgdG8ga2VlcCB0aGUgYm9yZGVyIGNlbnRlcmVkIGFnYWluc3QgdGhlIHJhZGlvcy5cbiAgJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nOiAoJGdvdnVrLXJhZGlvcy1zaXplIC8gMikgLSAoJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCAvIDIpO1xuICAvLyBNb3ZlIHRoZSBib3JkZXIgY2VudGVyZWQgd2l0aCB0aGUgcmFkaW9zXG4gICRjb25kaXRpb25hbC1tYXJnaW4tbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nO1xuICAvLyBNb3ZlIHRoZSBjb250ZW50cyBvZiB0aGUgY29uZGl0aW9uYWwgaW5saW5lIHdpdGggdGhlIGxhYmVsXG4gICRjb25kaXRpb25hbC1wYWRkaW5nLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItcGFkZGluZyArICRnb3Z1ay1yYWRpb3MtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuXG4gIC5nb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgICBtYXJnaW4tbGVmdDogJGNvbmRpdGlvbmFsLW1hcmdpbi1sZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogJGNvbmRpdGlvbmFsLXBhZGRpbmctbGVmdDtcbiAgICBib3JkZXItbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcblxuICAgIC5qcy1lbmFibGVkICYtLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTbWFsbCBjaGVja2JveGVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1yYWRpb3MtLXNtYWxsIHtcblxuICAgICRpbnB1dC1vZmZzZXQ6ICgkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkZ292dWstc21hbGwtcmFkaW9zLXNpemUpIC8gMjtcbiAgICAkbGFiZWwtb2Zmc2V0OiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkaW5wdXQtb2Zmc2V0O1xuXG4gICAgLmdvdnVrLXJhZGlvc19faXRlbSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAkbGFiZWwtb2Zmc2V0O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLy8gU2hpZnQgdGhlIHRvdWNoIHRhcmdldCBpbnRvIHRoZSBsZWZ0IG1hcmdpbiBzbyB0aGF0IHRoZSB2aXNpYmxlIGVkZ2Ugb2ZcbiAgICAvLyB0aGUgY29udHJvbCBpcyBhbGlnbmVkXG4gICAgLy9cbiAgICAvLyAgIOKUhldoaWNoIGNvbG91ciBpcyB5b3VyIGZhdm91cml0ZT9cbiAgICAvLyAg4pSM4pSG4pSA4pSA4pSA4pSQXG4gICAgLy8gIOKUguKUhigpIOKUgiBQdXJwbGVcbiAgICAvLyAg4pSU4pSG4pay4pSA4pSA4pSYXG4gICAgLy8gIOKWsuKUhuKUlOKUgCBSYWRpbyBwc2V1ZG8gZWxlbWVudCwgYWxpZ25lZCB3aXRoIG1hcmdpblxuICAgIC8vICDilJTilIDilIDilIAgVG91Y2ggdGFyZ2V0IChpbnZpc2libGUgaW5wdXQpLCBzaGlmdGVkIGludG8gdGhlIG1hcmdpblxuICAgIC5nb3Z1ay1yYWRpb3NfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstc21hbGwtcmFkaW9zLXNpemUgKiAtMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGp1c3QgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBsYWJlbC5cbiAgICAvL1xuICAgIC8vIFVubGlrZSBsYXJnZXIgcmFkaW9zLCB3ZSBhbHNvIGhhdmUgdG8gZmxvYXQgdGhlIGxhYmVsIGluIG9yZGVyIHRvXG4gICAgLy8gJ3NocmluaycgaXQsIHByZXZlbnRpbmcgdGhlIGhvdmVyIHN0YXRlIGZyb20ga2lja2luZyBpbiBhY3Jvc3MgdGhlIGZ1bGxcbiAgICAvLyB3aWR0aCBvZiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gICAgLmdvdnVrLXJhZGlvc19fbGFiZWwge1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIHBhZGRpbmc6IDEzcHggZ292dWstc3BhY2luZygzKSAxM3B4IDFweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDExcHggZ292dWstc3BhY2luZygzKSAxMHB4IDFweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAoICkgUmFkaW8gcmluZ1xuICAgIC8vXG4gICAgLy8gUmVkdWNlIHRoZSBzaXplIG9mIHRoZSBjb250cm9sIFsxXSwgdmVydGljYWxseSBjZW50ZXJpbmcgaXQgd2l0aGluIHRoZVxuICAgIC8vIHRvdWNoIHRhcmdldCBbMl1cbiAgICAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgdG9wOiAkaW5wdXQtb2Zmc2V0IC0gJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7IC8vIDJcbiAgICAgIHdpZHRoOiAkZ292dWstc21hbGwtcmFkaW9zLXNpemU7IC8vIDFcbiAgICAgIGhlaWdodDogJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplOyAvLyAxXG4gICAgfVxuXG4gICAgLy8gIOKAoiAgUmFkaW8gYnV0dG9uXG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlICdidXR0b24nIGFuZCBjZW50ZXIgaXQgd2l0aGluIHRoZSByaW5nXG4gICAgLmdvdnVrLXJhZGlvc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgbGVmdDogN3B4O1xuICAgICAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgfVxuXG4gICAgLy8gRml4IHBvc2l0aW9uIG9mIGhpbnQgd2l0aCBzbWFsbCByYWRpb3NcbiAgICAvL1xuICAgIC8vIERvIG5vdCB1c2UgaGludHMgd2l0aCBzbWFsbCByYWRpb3Mg4oCTIGJlY2F1c2UgdGhleSdyZSB3aXRoaW4gdGhlIGlucHV0XG4gICAgLy8gd3JhcHBlciB0aGV5IHRyaWdnZXIgdGhlIGhvdmVyIHN0YXRlLCBidXQgY2xpY2tpbmcgdGhlbSBkb2Vzbid0IGFjdHVhbGx5XG4gICAgLy8gYWN0aXZhdGUgdGhlIGNvbnRyb2wuXG4gICAgLy9cbiAgICAvLyAoSWYgeW91IGRvIHVzZSB0aGVtLCB0aGV5IHdvbid0IGxvb2sgY29tcGxldGVseSBicm9rZW4uLi4gYnV0IHNlcmlvdXNseSxcbiAgICAvLyBkb24ndCB1c2UgdGhlbSlcbiAgICAuZ292dWstcmFkaW9zX19oaW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIEFsaWduIGNvbmRpdGlvbmFsIHJldmVhbHMgd2l0aCBzbWFsbCByYWRpb3NcbiAgICAuZ292dWstcmFkaW9zX19jb25kaXRpb25hbCB7XG4gICAgICAkbWFyZ2luLWxlZnQ6ICgkZ292dWstc21hbGwtcmFkaW9zLXNpemUgLyAyKSAtICgkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbi1sZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAkbGFiZWwtb2Zmc2V0IC0gKCRtYXJnaW4tbGVmdCArICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGgpO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLmdvdnVrLXJhZGlvc19fZGl2aWRlciB7XG4gICAgICB3aWR0aDogJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgICB9XG5cbiAgICAvLyBIb3ZlciBzdGF0ZSBmb3Igc21hbGwgcmFkaW9zLlxuICAgIC8vXG4gICAgLy8gV2UgdXNlIGEgaG92ZXIgc3RhdGUgZm9yIHNtYWxsIHJhZGlvcyBiZWNhdXNlIHRoZSB0b3VjaCB0YXJnZXQgc2l6ZVxuICAgIC8vIGlzIHNvIG11Y2ggbGFyZ2VyIHRoYW4gdGhlaXIgdmlzaWJsZSBzaXplLCBhbmQgc28gd2UgbmVlZCB0byBwcm92aWRlXG4gICAgLy8gZmVlZGJhY2sgdG8gdGhlIHVzZXIgYXMgdG8gd2hpY2ggcmFkaW8gdGhleSB3aWxsIHNlbGVjdCB3aGVuIHRoZWlyXG4gICAgLy8gY3Vyc29yIGlzIG91dHNpZGUgb2YgdGhlIHZpc2libGUgYXJlYS5cbiAgICAuZ292dWstcmFkaW9zX19pdGVtOmhvdmVyIC5nb3Z1ay1yYWRpb3NfX2lucHV0Om5vdCg6ZGlzYWJsZWQpICsgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1ob3Zlci13aWR0aCAkZ292dWstaG92ZXItY29sb3VyO1xuICAgIH1cblxuICAgIC8vIEJlY2F1c2Ugd2UndmUgb3ZlcnJpZGRlbiB0aGUgYm9yZGVyLXNoYWRvdyBwcm92aWRlZCBieSB0aGUgZm9jdXMgc3RhdGUsXG4gICAgLy8gd2UgbmVlZCB0byByZWRlZmluZSB0aGF0IHRvby5cbiAgICAvL1xuICAgIC8vIFdlIHVzZSB0d28gYm94IHNoYWRvd3MsIG9uZSB0aGF0IHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBmb2N1cyBzdGF0ZSBbMV1cbiAgICAvLyBhbmQgYW5vdGhlciB0aGF0IHRoZW4gYXBwbGllcyB0aGUgaG92ZXIgc3RhdGUgWzJdLlxuICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW06aG92ZXIgLmdvdnVrLXJhZGlvc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgJGdvdnVrLXJhZGlvcy1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyLCAvLyAxXG4gICAgICAgIDAgMCAwICRnb3Z1ay1ob3Zlci13aWR0aCAgICAgICAgJGdvdnVrLWhvdmVyLWNvbG91cjsgLy8gMlxuICAgIH1cblxuICAgIC8vIEZvciBkZXZpY2VzIHRoYXQgZXhwbGljaXRseSBkb24ndCBzdXBwb3J0IGhvdmVyLCBkb24ndCBwcm92aWRlIGEgaG92ZXJcbiAgICAvLyBzdGF0ZSAoZS5nLiBvbiB0b3VjaCBkZXZpY2VzIGxpa2UgaU9TKS5cbiAgICAvL1xuICAgIC8vIFdlIGNhbid0IHVzZSBgQG1lZGlhIChob3ZlcjogaG92ZXIpYCBiZWNhdXNlIHdlIHdvdWxkbid0IGdldCB0aGUgaG92ZXJcbiAgICAvLyBzdGF0ZSBpbiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgYEBtZWRpYSAoaG92ZXIpYCAobGlrZSBJbnRlcm5ldFxuICAgIC8vIEV4cGxvcmVyKSDigJMgc28gd2UgaGF2ZSB0byAndW5kbycgdGhlIGhvdmVyIHN0YXRlIGluc3RlYWQuXG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSksIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW06aG92ZXIgLmdvdnVrLXJhZGlvc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgICAgICBib3gtc2hhZG93OiBpbml0aWFsO1xuICAgICAgfVxuXG4gICAgICAuZ292dWstcmFkaW9zX19pdGVtOmhvdmVyIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmZvY3VzICsgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGdvdnVrLXJhZGlvcy1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9zZWxlY3RcIikge1xuICAuZ292dWstc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJGxpbmUtaGVpZ2h0OiAxLjI1KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIHNob3VsZCB0aGlzIGJlIGdsb2JhbD9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIEBpZiAkZ292dWstdHlwb2dyYXBoeS11c2UtcmVtIHtcbiAgICAgIGhlaWdodDogZ292dWstcHgtdG8tcmVtKDQwcHgpO1xuICAgIH1cbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpOyAvLyB3YXMgNXB4IDRweCA0cHggLSBzaXplIG9mIGl0IHNob3VsZCBiZSBhZGp1c3RlZCB0byBtYXRjaCBvdGhlciBmb3JtIGVsZW1lbnRzXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBFbnN1cmUgb3V0bGluZSBhcHBlYXJzIG91dHNpZGUgb2YgdGhlIGVsZW1lbnRcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAwO1xuICAgICAgLy8gRG91YmxlIHRoZSBib3JkZXIgYnkgYWRkaW5nIGl0cyB3aWR0aCBhZ2Fpbi4gVXNlIGBib3gtc2hhZG93YCB0byBkb1xuICAgICAgLy8gdGhpcyBpbnN0ZWFkIG9mIGNoYW5naW5nIGBib3JkZXItd2lkdGhgICh3aGljaCBjaGFuZ2VzIGVsZW1lbnQgc2l6ZSkgYW5kXG4gICAgICAvLyBzaW5jZSBgb3V0bGluZWAgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGUgeWVsbG93IGZvY3VzIHN0YXRlLlxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgYGJveC1zaGFkb3dgIHNvIGRvdWJsZSB0aGUgYm9yZGVyIHdpdGhcbiAgICAgICAgLy8gYGJvcmRlci13aWR0aGAuXG4gICAgICAgIGJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zZWxlY3Qgb3B0aW9uOmFjdGl2ZSxcbiAgLmdvdnVrLXNlbGVjdCBvcHRpb246Y2hlY2tlZCxcbiAgLmdvdnVrLXNlbGVjdDpmb2N1czo6LW1zLXZhbHVlIHtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwiYmx1ZVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1zZWxlY3QtLWVycm9yIHtcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50LWVycm9yIHNvbGlkICRnb3Z1ay1lcnJvci1jb2xvdXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3NraXAtbGlua1wiKSB7XG4gIC5nb3Z1ay1za2lwLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGU7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1kZWNvcmF0aW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemU6IDE2KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgZ292dWstc3BhY2luZygzKTtcblxuICAgIC8vIFJlc3BlY3QgJ2Rpc3BsYXkgY3V0b3V0JyBzYWZlIGFyZWEgKGF2b2lkcyBub3RjaGVzIGFuZCByb3VuZGVkIGNvcm5lcnMpXG4gICAgQHN1cHBvcnRzIChwYWRkaW5nOiB1bnF1b3RlKFwibWF4KGNhbGMoMHB4KSlcIikpIHtcbiAgICAgICRwYWRkaW5nLXNhZmUtYXJlYS1yaWdodDogLXdlYmtpdC1jYWxjKCN7Z292dWstc3BhY2luZygzKX0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAkcGFkZGluZy1zYWZlLWFyZWEtcmlnaHQ6IGNhbGMoI3tnb3Z1ay1zcGFjaW5nKDMpfSArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICRwYWRkaW5nLXNhZmUtYXJlYS1sZWZ0OiAtd2Via2l0LWNhbGMoI3tnb3Z1ay1zcGFjaW5nKDMpfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgJHBhZGRpbmctc2FmZS1hcmVhLWxlZnQ6IGNhbGMoI3tnb3Z1ay1zcGFjaW5nKDMpfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuXG4gICAgICAvLyBVc2UgbWF4KCkgdG8gcGljayBsYXJnZXN0IHBhZGRpbmcsIGRlZmF1bHQgb3Igd2l0aCBzYWZlIGFyZWFcbiAgICAgIC8vIEVzY2FwZWQgZHVlIHRvIFNhc3MgbWF4KCkgdnMuIENTUyBuYXRpdmUgbWF4KClcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHVucXVvdGUoXCJtYXgoI3tnb3Z1ay1zcGFjaW5nKDMpfSwgI3skcGFkZGluZy1zYWZlLWFyZWEtcmlnaHR9KVwiKTtcbiAgICAgIHBhZGRpbmctbGVmdDogdW5xdW90ZShcIm1heCgje2dvdnVrLXNwYWNpbmcoMyl9LCAjeyRwYWRkaW5nLXNhZmUtYXJlYS1sZWZ0fSlcIik7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcblxuICAgICAgLy8gVW5kbyB1bndhbnRlZCBjaGFuZ2VzIHdoZW4gZ2xvYmFsIHN0eWxlcyBhcmUgZW5hYmxlZFxuICAgICAgQGlmICgkZ292dWstZ2xvYmFsLXN0eWxlcykge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2FjY2Vzc2liaWxpdHlcbi8vLy9cblxuLy8vIEhpZGUgYW4gZWxlbWVudCB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyc1xuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbi8vLyAgIC0gSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHksIEpvbmF0aGFuIFNub29rLCBGZWJydWFyeSAyMDExXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi85ZjEzNjk1ZDIxZmY5MmM1NWM3OGRmYTlmMTZiYjAyYTFiNmU5MTFmL3NyYy9jc3MvbWFpbi5jc3MjTDEyMS1MMTU4XG4vLy8gICAtIGg1YnAvaHRtbDUtYm9pbGVycGxhdGUgLSBUaGFua3MhXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW3RydWVdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXZpc3VhbGx5LWhpZGRlbigkaW1wb3J0YW50OiB0cnVlKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICB3aWR0aDogMXB4IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBoZWlnaHQ6IDFweCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgLy8gSWYgbWFyZ2luIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIGl0IGNhbiBjYXVzZSB0ZXh0IHRvIGJlIGFubm91bmNlZCBpblxuICAvLyB0aGUgd3Jvbmcgb3JkZXIgaW4gVm9pY2VPdmVyIGZvciBPU1hcbiAgbWFyZ2luOiAwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBwYWRkaW5nOiAwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIG92ZXJmbG93OiBoaWRkZW4gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICBib3JkZXI6IDAgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgLy8gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAgLy8gY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVycyB3aGlsc3Rcbi8vLyBhbGxvd2luZyB0aGUgZWxlbWVudCB0byBiZSBmb2N1c2VkIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQgKGUuZy5cbi8vLyBmb3IgdGhlIHNraXAgbGluaylcbi8vL1xuLy8vIFRoaXMgaXMgc2xpZ2h0bHkgbGVzcyBvcGluaW9uYXRlZCBhYm91dCBib3JkZXJzIGFuZCBwYWRkaW5nIHRvIG1ha2UgaXRcbi8vLyBlYXNpZXIgdG8gc3R5bGUgdGhlIGZvY3Vzc2VkIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW3RydWVdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGUoJGltcG9ydGFudDogdHJ1ZSkge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgd2lkdGg6IDFweCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgaGVpZ2h0OiAxcHggaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIC8vIElmIG1hcmdpbiBpcyBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSBpdCBjYW4gY2F1c2UgdGV4dCB0byBiZSBhbm5vdW5jZWQgaW5cbiAgLy8gdGhlIHdyb25nIG9yZGVyIGluIFZvaWNlT3ZlciBmb3IgT1NYXG4gIG1hcmdpbjogMCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICBvdmVyZmxvdzogaGlkZGVuIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBjbGlwOiByZWN0KDAgMCAwIDApIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNTAlKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgLy8gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAgLy8gY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYyBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAgIHdpZHRoOiBhdXRvIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIGhlaWdodDogYXV0byBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICBtYXJnaW46IGluaGVyaXQgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgICBvdmVyZmxvdzogdmlzaWJsZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICBjbGlwOiBhdXRvIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBub25lIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBub25lIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICAgd2hpdGUtc3BhY2U6IGluaGVyaXQgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGFibGVcIikge1xuICAuZ292dWstdGFibGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2hlYWRlciB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9faGVhZGVyLFxuICAuZ292dWstdGFibGVfX2NlbGwge1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgZ292dWstc3BhY2luZyg0KSBnb3Z1ay1zcGFjaW5nKDIpIDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAvLyBHT1YuVUsgRWxlbWVudHMgc2V0cyB0aGUgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBmb3IgYWxsIGhlYWRlcnMgYW5kIGNlbGxzXG4gICAgLy8gaW4gdGFibGVzLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfZWxlbWVudHMpIHtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2VsbC0tbnVtZXJpYyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR0YWJ1bGFyOiB0cnVlKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9faGVhZGVyLS1udW1lcmljLFxuICAuZ292dWstdGFibGVfX2NlbGwtLW51bWVyaWMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19oZWFkZXI6bGFzdC1jaGlsZCxcbiAgLmdvdnVrLXRhYmxlX19jZWxsOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2NhcHRpb24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG5cbiAgICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAvLyBNb2RpZmllcnMgdGhhdCBtYWtlIGNhcHRpb25zIGxvb2sgbW9yZSBsaWtlIHRoZWlyIGVxdWl2YWxlbnQgaGVhZGluZ3NcblxuICAuZ292dWstdGFibGVfX2NhcHRpb24tLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbi0tbCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2NhcHRpb24tLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19jYXB0aW9uLS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvd2FybmluZy10ZXh0XCIpIHtcbiAgLmdvdnVrLXdhcm5pbmctdGV4dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgMDtcbiAgfVxuXG4gIC5nb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuO1xuICB9XG5cbiAgLmdvdnVrLXdhcm5pbmctdGV4dF9faWNvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuXG4gICAgbWluLXdpZHRoOiAzNXB4O1xuICAgIG1pbi1oZWlnaHQ6IDM1cHg7XG4gICAgbWFyZ2luLXRvcDogLTdweDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgfVxuXG4gICAgLy8gV2hlbiBhIHVzZXIgY3VzdG9taXNlcyB0aGVpciBjb2xvdXJzIHRoZSBiYWNrZ3JvdW5kIGNvbG91ciB3aWxsIG9mdGVuIGJlIHJlbW92ZWQuXG4gICAgLy8gQWRkaW5nIGEgYm9yZGVyIHRvIHRoZSBjb21wb25lbnQga2VlcHMgaXQncyBzaGFwZSBhcyBhIGNpcmNsZS5cbiAgICBib3JkZXI6IDNweCBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG5cbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDI5cHg7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvLyBQcmV2ZW50IHRoZSBleGNsYW1hdGlvbiBtYXJrIGZyb20gYmVpbmcgaW5jbHVkZWQgd2hlbiB0aGUgd2FybmluZyB0ZXh0XG4gICAgLy8gaXMgY29waWVkLCBmb3IgZXhhbXBsZS5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIC8vIEltcHJvdmUgcmVuZGVyaW5nIGluIFdpbmRvd3MgSGlnaCBDb250cmFzdCBNb2RlIChFZGdlKSwgd2hlcmUgYVxuICAgIC8vIHJlYWRhYmlsaXR5IGJhY2twbGF0ZSBiZWhpbmQgdGhlIGV4Y2xhbWF0aW9uIG1hcmsgb2JzY3VyZXMgdGhlIGNpcmNsZVxuICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBib3JkZXItY29sb3I6IHdpbmRvd1RleHQ7XG4gICAgICBjb2xvcjogd2luZG93VGV4dDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay13YXJuaW5nLXRleHRfX3RleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay91dGlsaXRpZXMvdmlzdWFsbHktaGlkZGVuXCIpIHtcbiAgLmdvdnVrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuO1xuICB9XG5cbiAgLmdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGU7XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy9kaXNwbGF5XCIpIHtcbiAgLmdvdnVrLVxcIS1kaXNwbGF5LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZ292dWstXFwhLWRpc3BsYXktaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZGlzcGxheS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZGlzcGxheS1ub25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAuZ292dWstXFwhLWRpc3BsYXktbm9uZS1wcmludCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBvdmVycmlkZXMgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG4vLy8vXG4vLy8gQGdyb3VwIG92ZXJyaWRlc1xuLy8vL1xuXG4vLy8gRGlyZWN0aW9ucyBmb3Igc3BhY2luZ1xuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbiRfc3BhY2luZy1kaXJlY3Rpb25zOiAoXG4gIFwidG9wXCIsXG4gIFwicmlnaHRcIixcbiAgXCJib3R0b21cIixcbiAgXCJsZWZ0XCJcbikgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIG92ZXJyaWRlIGNsYXNzZXNcbi8vL1xuLy8vIEdlbmVyYXRlIHNwYWNpbmcgb3ZlcnJpZGUgY2xhc3NlcyBmb3IgdGhlIGdpdmVuIHByb3BlcnR5IChlLmcuIG1hcmdpbilcbi8vLyBmb3IgZWFjaCBwb2ludCBpbiB0aGUgc3BhY2luZyBzY2FsZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHkgLSBQcm9wZXJ0eSB0byBhZGQgc3BhY2luZyB0byAoZS5nLiAnbWFyZ2luJylcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1cXCEtbWFyZ2luLTAge1xuLy8vICAgICAgbWFyZ2luOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gIC5nb3Z1ay1cXCEtbWFyZ2luLXRvcC0xIHtcbi8vLyAgICAgbWFyZ2luLXRvcDogW3doYXRldmVyIHNwYWNpbmcgcG9pbnQgMSBpcy4uLl1cbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2dvdnVrLWdlbmVyYXRlLXNwYWNpbmctb3ZlcnJpZGVzKCRwcm9wZXJ0eSkge1xuICAvLyBGb3IgZWFjaCBwb2ludCBpbiB0aGUgc3BhY2luZyBzY2FsZSAoZGVmaW5lZCBpbiBzZXR0aW5ncyksIGNyZWF0ZSBhblxuICAvLyBvdmVycmlkZSB0aGF0IGFmZmVjdHMgYWxsIGRpcmVjdGlvbnMuLi5cbiAgQGVhY2ggJHNjYWxlLXBvaW50LCAkc2NhbGUtbWFwIGluICRnb3Z1ay1zcGFjaW5nLXJlc3BvbnNpdmUtc2NhbGUge1xuXG4gICAgLmdvdnVrLVxcIS0jeyRwcm9wZXJ0eX0tI3skc2NhbGUtcG9pbnR9IHtcblxuICAgICAgQGluY2x1ZGUgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZygkc2NhbGUtcG9pbnQsICRwcm9wZXJ0eSwgXCJhbGxcIiwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gLi4uIGFuZCB0aGVuIGFuIG92ZXJyaWRlIGZvciBlYWNoIGluZGl2aWR1YWwgZGlyZWN0aW9uXG4gICAgQGVhY2ggJGRpcmVjdGlvbiBpbiAkX3NwYWNpbmctZGlyZWN0aW9ucyB7XG5cbiAgICAgIC5nb3Z1ay1cXCEtI3skcHJvcGVydHl9LSN7JGRpcmVjdGlvbn0tI3skc2NhbGUtcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZygkc2NhbGUtcG9pbnQsICRwcm9wZXJ0eSwgJGRpcmVjdGlvbiwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vdmVycmlkZXMvc3BhY2luZ1wiKSB7XG4gIEBpbmNsdWRlIF9nb3Z1ay1nZW5lcmF0ZS1zcGFjaW5nLW92ZXJyaWRlcyhcIm1hcmdpblwiKTtcbiAgQGluY2x1ZGUgX2dvdnVrLWdlbmVyYXRlLXNwYWNpbmctb3ZlcnJpZGVzKFwicGFkZGluZ1wiKTtcbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy90ZXh0LWFsaWduXCIpIHtcbiAgLmdvdnVrLVxcIS10ZXh0LWFsaWduLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtdGV4dC1hbGlnbi1jZW50cmUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS10ZXh0LWFsaWduLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBvdmVycmlkZXMgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL3R5cG9ncmFwaHlcIikge1xuICAvLyBGb250IHNpemUgYW5kIGxpbmUgaGVpZ2h0XG5cbiAgLy8gR2VuZXJhdGUgdHlwb2dyYXBoeSBvdmVycmlkZSBjbGFzc2VzIGZvciBlYWNoIHJlc3BvbnNpdmUgZm9udCBtYXAgaW4gdGhlXG4gIC8vIHR5cG9ncmFwaHkgc2NhbGUgZWcgLmdvdnVrLVxcIS1mb250LXNpemUtODBcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJGdvdnVrLXR5cG9ncmFwaHktc2NhbGUpIHtcbiAgICAuZ292dWstXFwhLWZvbnQtc2l6ZS0jeyRzaXplfSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemUsICRpbXBvcnRhbnQ6IHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlaWdodHNcblxuICAuZ292dWstXFwhLWZvbnQtd2VpZ2h0LXJlZ3VsYXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LXJlZ3VsYXIoJGltcG9ydGFudDogdHJ1ZSk7XG4gIH1cblxuICAuZ292dWstXFwhLWZvbnQtd2VpZ2h0LWJvbGQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQoJGltcG9ydGFudDogdHJ1ZSk7XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy93aWR0aFwiKSB7XG4gIC5nb3Z1ay1cXCEtd2lkdGgtZnVsbCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtd2lkdGgtdGhyZWUtcXVhcnRlcnMge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC10d28tdGhpcmRzIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDY2LjY2JSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1cXCEtd2lkdGgtb25lLWhhbGYge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC1vbmUtdGhpcmQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogMzMuMzMlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLVxcIS13aWR0aC1vbmUtcXVhcnRlciB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbGVydCB7XG4gIEBleHRlbmQgLmdvdnVrLWluc2V0LXRleHQ7XG5cbiAgYm9yZGVyLWNvbG9yOiAjMTQ0ZTgxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDJlMmYxO1xuICBtYXJnaW4tdG9wOiAwO1xuXG4gIGEge1xuICAgIGNvbG9yOiAjMTQ0ZTgxO1xuICB9XG59XG5cbi5hbGVydC0tZXJyb3Ige1xuICBAZXh0ZW5kIC5hbGVydDtcblxuICBib3JkZXItY29sb3I6ICM5NDI1MTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmQ3ZDI7XG5cbiAgYSB7XG4gICAgY29sb3I6ICM5NDI1MTQ7XG4gIH1cbn1cbiIsIi5jb21wYW55LXN3aXRjaGVyIHtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgZm9udC1zaXplOiAxOXB4O1xuICB9XG5cbiAgcGFkZGluZzogMTVweCAwO1xufVxuXG5cbi5jb21wYW55LXN3aXRjaGVyX19saW5rIHtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG4iLCIvLyBEZWZhdWx0XG4jY29va2llLWJhbm5lci1qcy1lbmFibGVkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gSlMgZW5hYmxlZCBicm93c2Vyc1xuLmpzLWVuYWJsZWQge1xuXG4gICNjb29raWUtYmFubmVyLWpzLWRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgI2Nvb2tpZS1iYW5uZXItanMtZW5hYmxlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxufVxuIiwiLmRhdGEtcm93IHtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG4uZGF0YS1yb3dfX2l0ZW0ge1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCIuZmxleCB7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgJi0tc3RhdGljIHtcbiAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgfVxuICB9XG59XG4iLCIuaW5wdXQtLW1ldGVyLXJlYWRpbmcge1xuICBAZXh0ZW5kIC5nb3Z1ay1pbnB1dC0td2lkdGgtMTA7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLmluc2V0LXRleHRfX3ZlcnNpb25zLS10aGlzLXZlcnNpb24ge1xuICBAZXh0ZW5kIC5nb3Z1ay1pbnNldC10ZXh0O1xuXG4gIGJvcmRlci1jb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xufVxuXG4uaW5zZXQtdGV4dC0tY2xpY2thYmxlIHtcbiAgQGV4dGVuZCAuZ292dWstaW5zZXQtdGV4dDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiKTtcbiAgfVxufVxuIiwiXG5cbi8vIExpY2Vuc2UgcmVzdWx0cyB0YWJsZSAvIG1vYmlsZSB0aWxlc1xuLmxpY2VuY2UtcmVzdWx0cyB7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cblxuLy8gSGVhZGVyIHJvdyB3aXRoIGxpbmtzIHRvIHNvcnQgYnkgbGljZW5jZSBudW1iZXIvbmFtZVxuLmxpY2VuY2UtcmVzdWx0c19faGVhZGVyIHtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuICB9XG59XG5cbi8vIENvbHVtbnMgd2l0aGluIHRhYmxlIGhlYWRlclxuLmxpY2VuY2UtcmVzdWx0c19faGVhZGVyX19jb2x1bW4ge1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aWR0aDogMzMlO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgfVxuICB9XG59XG5cbi5saWNlbmNlLXJlc3VsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIHBhZGRpbmc6IDE1cHggMCAwIDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAvLyBJZiBKUyBpcyBlbmFibGVkLCB1c2VyIGNhbiBjbGljayBlbnRpcmUgdGFibGUgcm93IHRvIHZpZXcgbGljZW5jZVxuICAvLyBIaW50IHRvIHVzZXIgdGhpcyBpcyBwb3NzaWJsZSBieSBkaXNwbGF5aW5nIGhvdmVyIHN0YXRlIG9uIHRhYmxlIHJvd1xuICAuanMtZW5hYmxlZCAmIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5saWNlbmNlLXJlc3VsdF9fY29sdW1uIHtcbiAgLy8gRGlzcGxheSBhcyB0YWJsZSBjZWxsIG9uIGRlc2t0b3BcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICBjb2xvcjogJGdvdnVrLXRleHQtY29sb3VyO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcblxuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgfVxuICB9XG59XG5cbi5saWNlbmNlLXJlc3VsdF9fY29sdW1uLS1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiAkZ292dWstdGV4dC1jb2xvdXI7XG59XG4iLCIubGljZW5jZS1zZWFyY2hfX2lucHV0LWZvcm0tZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICB3aWR0aDogNDAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4ubGljZW5jZS1zZWFyY2hfX3N1Ym1pdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gIH1cbn1cbiIsIi5saW5rLS1uby11bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIubWVzc2FnZS1wcmV2aWV3IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiKTtcbiAgYm9yZGVyOiA1cHggc29saWQgICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIHBhZGRpbmc6IDJyZW07XG59XG5cbi5tZXNzYWdlLXByZXZpZXcgaDEge1xuICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuIiwiLm1ldGEge1xuICBAZXh0ZW5kIC5nb3Z1ay1zdW1tYXJ5LWxpc3Q7XG59XG4ubWV0YV9fcm93IHtcbiAgQGV4dGVuZCAuZ292dWstc3VtbWFyeS1saXN0X19yb3c7XG59XG4ubWV0YV9fa2V5IHtcbiAgQGV4dGVuZCAuZ292dWstc3VtbWFyeS1saXN0X19rZXk7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxufVxuXG4ubWV0YV9fdmFsdWUge1xuICBAZXh0ZW5kIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlO1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi50ZXh0LWlucHV0LS1tZXRlci1yZWFkaW5nIHtcbiAgQGV4dGVuZCAuZ292dWstaW5wdXQtLXdpZHRoLTEwO1xuXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXNpemU6IDEuNWVtO1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG59XG4iLCIubm90aWZpY2F0aW9uLXByZXZpZXcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAgZ292dWstY29sb3VyKCdibHVlJyk7XG4gIGNvbG9yOiBnb3Z1ay1jb2xvdXIoJ3doaXRlJyk7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuICBwIHtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKCd3aGl0ZScpO1xuICB9XG5cbiAgaDEge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoMjQsICdib2xkJyk7XG4gIH1cblxuICBoMSArIGgxIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICB9XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIH1cblxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cblxuLmdvdnVrLWJveC1oaWdobGlnaHQge1xuICAmLS1hY2Nlc3NpYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMjA4MDcwO1xuICB9XG59XG4iLCIucGFnaW5hdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiAkZ292dWstZm9udC1mYW1pbHk7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucGFnaW5hdGlvbl9fY3VycmVudC1wYWdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG59XG5cbi5wYWdpbmF0aW9uX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAwO1xufVxuXG4ucGFnaW5hdGlvbl9fcHJldmlvdXMsIC5wYWdpbmF0aW9uX19uZXh0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnBhZ2luYXRpb25fX3ByZXZpb3VzIHtcbiAgbGVmdDogMDtcbn1cbi5wYWdpbmF0aW9uX19uZXh0IHtcbiAgcmlnaHQ6IDA7XG59XG4ucGFnaW5hdGlvbl9fbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5wYWdpbmF0aW9uX19saW5rOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iLCIucGFuZWwge1xuICBAZXh0ZW5kIC5nb3Z1ay1wYW5lbDtcbn1cblxuLnBhbmVsLS1jb25maXJtYXRpb24ge1xuICBAZXh0ZW5kIC5nb3Z1ay1wYW5lbC0tY29uZmlybWF0aW9uO1xufVxuXG4ucGFuZWxfX3RpdGxlIHtcbiAgQGV4dGVuZCAuZ292dWstcGFuZWxfX3RpdGxlO1xufVxuXG4ucGFuZWxfX2JvZHkge1xuICBAZXh0ZW5kIC5nb3Z1ay1wYW5lbF9fYm9keTtcbn1cblxuLnBhbmVsX19ib2R5LS1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuIiwiLyoqXG4gIFN0eWxlcyBmb3IgdGhlIHBhc3N3b3JkIGhpbnRzIGR1cmluZyB0aGUgdXBkYXRlIHBhc3N3b3JkIGZsb3dcblxuICBJdGVtcyB0aGF0IGFyZSBjb3JyZWN0IGluIHRoZSBwYXNzd29yZCBtYWtlIHVwIGFyZSBtYXJrZWRcbiAgYXMgZ3JlZW4sIHdoZXJlYXMgdGhvc2UgdGhhdCBhcmUgbm90IHNhdGlzZmllZCBhcmUgcmVkLlxuXG4gIEluIGFkZGl0aW9uIHRoZSBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQgYXMgdGhlIGlucHV0IGhpbnQgdGV4dFxuICBidXQgd2hlbiB0aGVyZSBpcyBhbiBlcnJvciB0aGlzIG11c3QgdGFrZSB0aGUgY29sb3VycyBhcyB3ZWxsIHdoaWNoXG4gIGlzIHdoeSB0aGVyZSBoYXMgdG8gYmUgYSB2ZXJ5IHNwZWNpZmljIHNlbGVjdG9yLlxuKi9cblxuLnBhc3N3b3JkLXZhbGlkYXRpb24sXG4uZ292dWstZm9ybS1ncm91cC0tZXJyb3IgLnBhc3N3b3JkLXZhbGlkYXRpb24gLmdvdnVrLWhpbnQge1xuICBjb2xvcjogZ292dWstY29sb3VyKFwiZ3JlZW5cIik7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG59XG5cbi5wYXNzd29yZC12YWxpZGF0aW9uLWZhaWx1cmUsXG4uZ292dWstZm9ybS1ncm91cC0tZXJyb3IgLnBhc3N3b3JkLXZhbGlkYXRpb24tZmFpbHVyZSA+IC5nb3Z1ay1oaW50IHtcbiAgY29sb3I6ICRnb3Z1ay1lcnJvci1jb2xvdXI7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG59XG4iLCIucGhvbmUtLXNob3cge1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnBob25lLS1oaWRlIHtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIucmFkaW9zLWRpdmlkZXJzLWJvbGQge1xuICAuZ292dWstcmFkaW9zX19kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKDAsICdtYXJnaW4nLCAnbGVmdCcpO1xuICAgIEBpbmNsdWRlIF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmcoNSwgJ21hcmdpbicsICd0b3AnKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkKCRpbXBvcnRhbnQ6IHRydWUpO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgfVxufVxuIiwiLyoqXG4gKiBBIHNlYXJjaCBpbnB1dCBhbmQgZmxvYXRpbmcgYnV0dG9uIGJhc2VkIG9uIEdPVi5VSyBmcm9udGVuZCBzdHlsZXNcbiAqL1xuLnNlYXJjaF9faW5wdXQge1xuICBAZXh0ZW5kIC5nb3Z1ay1pbnB1dDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIHdpZHRoOiA2NiU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuLnNlYXJjaF9fYnV0dG9uIHtcbiAgQGV4dGVuZCAuZ292dWstYnV0dG9uO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyoqXG4gIEV4dGVuZHMgdGhlIHNlY3Rpb24gYnJlYWsgc3R5bGUgZnJvbSB0aGUgZ292dWsgZGVzaWduIHN5c3RlbVxuICB0byBhZGQgYSB0aGlja2VyIGxpbmVcblxuICBodHRwczovL2Rlc2lnbi1zeXN0ZW0uc2VydmljZS5nb3YudWsvc3R5bGVzL3R5cG9ncmFwaHkvI3NlY3Rpb24tYnJlYWtcbiovXG4uc2VjdGlvbi1icmVhay0taGVhdnkge1xuICBAZXh0ZW5kIC5nb3Z1ay1zZWN0aW9uLWJyZWFrLS12aXNpYmxlO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGdvdnVrLXRleHQtY29sb3VyO1xufVxuXG4uc2VjdGlvbi1icmVhay0tbWFyZ2luLTcge1xuICBAZXh0ZW5kIC5nb3Z1ay1zZWN0aW9uLWJyZWFrLS12aXNpYmxlO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuIiwiLnNwaW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBtYXJnaW4tYm90dG9tOiA2cmVtO1xufVxuIiwiLy8gPT09PT09PT09PSA9PT09PT09PT09ID09PT09PT09PT0gPT09PT09PT09PSA9PT09PT09PT09XG4vLyBzdHlsZXMgZm9yIG5ldyBHRFMgbmF2aWdhdGlvbiBzdHlsZVxuLy8gPT09PT09PT09PSA9PT09PT09PT09ID09PT09PT09PT0gPT09PT09PT09PSA9PT09PT09PT09XG4vLyB0aGlzIHByb2JhYmx5IG5lZWRzIG1vcmUgbG92ZSBmb3Igc21hbGxlciBzY3JlZW5zXG5cbi8vIHN1Ym5hdiBjb250YWluZXJcbi5uYXZiYXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgfVxufVxuXG4ubmF2YmFyX19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLyBzdWJuYXYgbGlzdFxuLm5hdmJhcl9faXRlbSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLy8gYWN0aXZlIGxpbmsgZm9yIHN1Ym5hdlxuLm5hdmJhcl9fbGluayB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgY29sb3I6ICRnb3Z1ay10ZXh0LWNvbG91ciAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IC01cHggMHB4IDBweCByZ2JhKDAsMCwwLDApO1xuICBwYWRkaW5nOiAxNXB4IDVweCAxMHB4IDVweDtcbn1cblxuLm5hdmJhcl9fbGluay0tYWN0aXZlIHtcbiAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91ciAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwcHggLTVweCAwcHggMHB4ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgcGFkZGluZzogMTVweCA1cHggMTBweCA1cHg7XG59XG4iLCIuc3VtbWFyeS1saXN0X192YWx1ZS0tbm8tYm90dG9tLWJvcmRlciB7XG4gIEBleHRlbmQgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWU7XG5cbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLnN1bW1hcnktbGlzdF9fdmFsdWUtLW5lc3RlZC1saXN0IHtcbiAgQGV4dGVuZCAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZTtcblxuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5zdW1tYXJ5LWxpc3QtLW5lc3RlZC1saXN0IHtcbiAgQGV4dGVuZCAuZ292dWstc3VtbWFyeS1saXN0O1xuXG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuXG4uZ292dWstc3VtbWFyeS1saXN0X19yb3ctd2l0aC1taW5pbWFsLXNwYWNpbmd7XG4gIEBleHRlbmQgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwLjI1O1xufVxuIiwiLnN1cnZleS1mcmFtZSB7XG4gIHdpZHRoOiAxcHg7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xufVxuIiwiLnRhYmxlX19oZWFkZXItLXRhbGwge1xuICBAZXh0ZW5kIC5nb3Z1ay10YWJsZV9faGVhZGVyO1xuXG4gICAgcGFkZGluZzogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi50YWJsZV9fY2VsbC0tdGFsbCB7XG4gIEBleHRlbmQgLmdvdnVrLXRhYmxlX19jZWxsO1xuXG4gICAgcGFkZGluZzogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi50YWJsZV9fY2VsbC0tdG90YWxzIHtcbiAgQGV4dGVuZCAuZ292dWstdGFibGVfX2NlbGw7XG4gIFxuICAgIGJvcmRlci1ib3R0b206IDBcbn1cblxuLnRhYmxlX19oZWFkZXItLXRvdGFscyB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTsgIFxuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4udGFibGVfX2hlYWRlci0td2lkdGgtMTAge1xuICBAZXh0ZW5kIC5nb3Z1ay10YWJsZV9faGVhZGVyO1xuICBcbiAgICB3aWR0aDogMTAlO1xufVxuXG4udGFibGVfX2hlYWRlci0td2lkdGgtMTUge1xuICBAZXh0ZW5kIC5nb3Z1ay10YWJsZV9faGVhZGVyO1xuICB3aWR0aDogMTUlO1xufVxuXG4udGFibGVfX2hlYWRlci0td2lkdGgtMjAge1xuICBAZXh0ZW5kIC5nb3Z1ay10YWJsZV9faGVhZGVyO1xuICBcbiAgICB3aWR0aDogMjAlO1xufVxuXG4udGFibGVfX2hlYWRlci0tY2VudGVyIHsgXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRydW5jYXRlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1yZWd1bGFyO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuXG5cbi50YWJsZV9fcm93LS1jbGlja2FibGUge1xuICBAZXh0ZW5kIC5nb3Z1ay10YWJsZV9fcm93ICFvcHRpb25hbDtcblxuICAvLyBJZiBKUyBpcyBlbmFibGVkLCB1c2VyIGNhbiBjbGljayBlbnRpcmUgdGFibGUgcm93IHRvIHZpZXcgbGljZW5jZVxuICAvLyBIaW50IHRvIHVzZXIgdGhpcyBpcyBwb3NzaWJsZSBieSBkaXNwbGF5aW5nIGhvdmVyIHN0YXRlIG9uIHRhYmxlIHJvd1xuICAuanMtZW5hYmxlZCAmIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQ6IGdvdnVrLWNvbG91cihcImxpZ2h0LWdyZXlcIik7XG4gICAgfVxuICB9XG59XG5cbi50aGlja19ibGFja191bmRlcmxpbmV7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBibGFjaztcbn1cbiIsIi5icmVhay13b3JkIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbiIsIi51bml0LXNlbGVjdG9yIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG4iLCIud2FybmluZyB7XG4gIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg2KTsgLy8gMjBweCBzbWFsbCwgMzBweCBsYXJnZXJcbiAgYm9yZGVyOiA1cHggc29saWQgJGdvdnVrLXRleHQtY29sb3VyO1xufVxuXG4vLyBSZW1vdmUgdGhlIG1hcmdpbiBhdCB0aGUgYm90dG9tIG9yaWdpbmFsbHkgc3VwcGxpZWQgYnlcbi8vIHRoZSBnb3Z1ay13YXJuaW5nLXRleHQuXG4ud2FybmluZyA+IC5nb3Z1ay13YXJuaW5nLXRleHQge1xuICBtYXJnaW46IDA7XG59XG4iLCIvLyBUYXNrIGxpc3QgcGF0dGVyblxuLy8gU291cmNlIGh0dHBzOi8vZ292dWstcHJvdG90eXBlLWtpdC5oZXJva3VhcHAuY29tL2RvY3MvdGVtcGxhdGVzL3Rhc2stbGlzdFxuLnRhc2stbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWluLXdpZHRoOiA1NTBweDtcbiAgfVxufVxuXG4udGFzay1saXN0X19zZWN0aW9uIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6MjQsICR3ZWlnaHQ6IGJvbGQpO1xufVxuXG4udGFzay1saXN0X19zZWN0aW9uLW51bWJlciB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIG1pbi13aWR0aDogZ292dWstc3BhY2luZyg2KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi50YXNrLWxpc3RfX2l0ZW1zIHtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig5LCBcImJvdHRvbVwiKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDYpO1xuICB9XG59XG5cbi50YXNrLWxpc3RfX2l0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbn1cblxuLnRhc2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbn1cblxuLnRhc2stbGlzdF9fdGFzay1uYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiA0NTBweCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi50YXNrLWxpc3RfX3Rhc2stYmFkZ2Uge1xuICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiA0NTBweCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIkBtZWRpYSAobWluLXdpZHRoOiA0MC4wNjI1ZW0pIHtcbiAgLmpzLWVuYWJsZWQgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmMmYxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDAuMDYyNWVtKSB7XG4gIC5qcy1lbmFibGVkIC5nb3Z1ay10YWJzX19saXN0LWl0ZW0tLXNlbGVjdGVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTdweCAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cbiIsIi5ib3JkZXJsZXNzIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uYWxpZ24tdG9wIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmRpc3BsYXktbm9uZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5nb3Z1ay10YWJsZV9fb3ZlcnJpZGVfbm9fYm90dG9tX2JvcmRlcntcbiAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBBZGRlZCB0byBhbGxvdyB1cyB0byBmb3JjZSB0aGUgY29udGVudCBibG9jayBpbnNpZGUgYSBub3RpZmljYXRpb24gYmFubmVyIHRvIGZpbGwgdGhlIHdob2xlIGJhbm5lci4gT3V0IG9mIHRoZSBib3hcbi8vIEdPVlVLIHNldCBgbWF4LXdpZHRoOiA2MDVweGAgb24gdGhlIGNvbnRlbnQgYW5kIHdoZW4gd2UgYXNrZWQgYSBtYWludGFpbmVyIHRoZSBvbmx5IHJlc3BvbnNlIHdhcyAnd2h5IHdvdWxkIHlvdVxuLy8gZXZlciB3YW50IGl0IHdpZGVyJy5cbi5tYXgtd2lkdGgtZnVsbCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuIl19 */
