@charset "UTF-8";
/*  COLORS
--------------------------------------

[ modifying foundations default palette ]

$foundation-palette: (
  primary: #E44347,
  mars: #D7525C,
  saturn: #E4B884,
  neptune: #5147D7,
)

Using the above palette, we can add the .mars, .saturn, or .neptune classes to buttons, labels, badges, and more.

To access the colors in your code, use Sass's map-get() function:

.mars {
  color: map-get($foundation-palette, mars);
}

-------------------------------------- */
.bg-wht {
  background: #fafafa;
}

.bg-blk {
  background: #000222;
}

.bg-blkalt {
  background: #3c4245;
}

.bg-blkdrk {
  background: #000000;
}

.bg-whtlite {
  background: #fff;
}

.bg-gry {
  background: #ebebeb;
}

.bg-gray {
  background: #ebebeb;
}

.bg-grylite {
  background: #e1e1e1;
}

.bg-gryslvr {
  background: #dadada;
}

.bg-gry_muted {
  background: #b8b7b4;
}

.bg-grydrk {
  background: #464646;
}

.bg-slate {
  background: #404040;
}

.bg-blu {
  background: #598db2;
}

.bg-blue {
  background: #003146;
}

.bg-blue-bright {
  background: #00b2e2;
}

.bg-bludrk {
  background: #294c65;
}

.bg-pch {
  background: #ffe0b2;
}

.bg-gld {
  background: #ffb74d;
}

.bg-trq {
  background: #006064;
}

.bg-teal {
  background: #1CB0B5;
}

.bg-navy {
  background: #192857;
}

.bg-green {
  background: #64A70B;
}

.txt-wht {
  color: #fafafa;
}

.txt-wht-hover:hover {
  color: #fafafa;
}

.txt-blk {
  color: #000222;
}

.txt-blkalt {
  color: #3c4245;
}

.txt-blkdrk {
  color: #000000;
}

.txt-slate {
  color: #404040;
}

.txt-gry {
  color: #ebebeb;
}

.txt-grylite {
  color: #e1e1e1 !important;
}

.txt-gryslvr {
  color: #dadada;
}

.txt-grydrk {
  color: #464646;
}

.txt-gry_muted {
  color: #b8b7b4;
}

.txt-blu {
  color: #598db2;
}

.txt-blue {
  color: #003146;
}

.txt-navy {
  color: #192857;
}

.txt-bludrk {
  color: #598db2;
}

.txt-pch {
  color: #ffe0b2;
}

.txt-gld {
  color: #ffb74d;
}

.txt-trq {
  color: #006064;
}

.show-for-sr {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
}

/**
 * Foundation for Sites by ZURB
 * Version 6.5.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto;
  }
}

/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
}

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

b,
strong {
  font-weight: bolder;
}

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

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

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

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

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

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

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

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

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

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

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

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

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

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

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em";
}

html {
  box-sizing: border-box;
  font-size: 100%;
}

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

body {
  margin: 0;
  padding: 0;
  background: #fafafa;
  font-family: "Montserrat", "Gotham", "Open Sans", "Helvetica Neue", Helvetica, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
}

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0;
}

select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 0;
}

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important;
}

button {
  padding: 0;
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

pre {
  overflow: auto;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
}

.is-visible {
  display: block !important;
}

.is-hidden {
  display: none !important;
}

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  appearance: none;
}

[type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
textarea:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fafafa;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

[type='submit'],
[type='button'] {
  appearance: none;
  border-radius: 0;
}

input[type='search'] {
  box-sizing: border-box;
}

::placeholder {
  color: #cacaca;
}

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem;
}

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
}

[type='checkbox'] + label[for],
[type='radio'] + label[for] {
  cursor: pointer;
}

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem;
}

[type='file'] {
  width: 100%;
}

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a;
}

label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a;
}

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch;
}

.input-group > :first-child, .input-group > :first-child.input-group-button > * {
  border-radius: 0 0 0 0;
}

.input-group > :last-child, .input-group > :last-child.input-group-button > * {
  border-radius: 0 0 0 0;
}

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap;
}

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}

.input-group-label:first-child {
  border-right: 0;
}

.input-group-label:last-child {
  border-left: 0;
}

.input-group-field {
  border-radius: 0;
  flex: 1 1 0px;
  min-width: 0;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: flex;
  flex: 0 0 auto;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  align-self: stretch;
  height: auto;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 1rem;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  max-width: 100%;
  margin-bottom: 0.5rem;
}

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca;
}

.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
}

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

select:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fafafa;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

select::-ms-expand {
  display: none;
}

select[multiple] {
  height: auto;
  background-image: none;
}

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f5e9e7;
}

.is-invalid-input:not(:focus)::placeholder {
  color: #cc4b37;
}

.is-invalid-label {
  color: #cc4b37;
}

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37;
}

.form-error.is-visible {
  display: block;
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

em,
i {
  font-style: italic;
  line-height: inherit;
}

strong,
b {
  font-weight: bold;
  line-height: inherit;
}

small {
  font-size: 80%;
  line-height: inherit;
}

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Montserrat", "Gotham", "Open Sans", "Helvetica Neue", Helvetica, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small, .h1 small,
h2 small, .h2 small,
h3 small, .h3 small,
h4 small, .h4 small,
h5 small, .h5 small,
h6 small, .h6 small {
  line-height: 0;
  color: #cacaca;
}

h1, .h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h2, .h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3, .h3 {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h4, .h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h5, .h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h6, .h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 2rem;
  }
  h2, .h2 {
    font-size: 1.875rem;
  }
  h3, .h3 {
    font-size: 1.625rem;
  }
  h4, .h4 {
    font-size: 1.25rem;
  }
  h5, .h5 {
    font-size: 1.125rem;
  }
  h6, .h6 {
    font-size: 1rem;
  }
}

@media print, screen and (min-width: 64em) {
  h1, .h1 {
    font-size: 2.5rem;
  }
  h2, .h2 {
    font-size: 2.25rem;
  }
  h3, .h3 {
    font-size: 1.875rem;
  }
  h4, .h4 {
    font-size: 1.5rem;
  }
  h5, .h5 {
    font-size: 1.25rem;
  }
  h6, .h6 {
    font-size: 1rem;
  }
}

a {
  line-height: inherit;
  color: #192857;
  text-decoration: none;
  cursor: pointer;
}

a:hover, a:focus {
  color: #16224b;
}

a img {
  border: 0;
}

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
}

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6;
}

li {
  font-size: inherit;
}

ul {
  margin-left: 1.25rem;
  list-style-type: disc;
}

ol {
  margin-left: 1.25rem;
}

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}

dl {
  margin-bottom: 1rem;
}

dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold;
}

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca;
}

blockquote, blockquote p {
  line-height: 1.6;
  color: #8a8a8a;
}

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a;
}

cite:before {
  content: "— ";
}

abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none;
}

figure {
  margin: 0;
}

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a;
}

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a;
}

.lead {
  font-size: 125%;
  line-height: 1.6;
}

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

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

.text-justify {
  text-align: justify;
}

@media print, screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left;
  }
  .medium-text-right {
    text-align: right;
  }
  .medium-text-center {
    text-align: center;
  }
  .medium-text-justify {
    text-align: justify;
  }
}

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left;
  }
  .large-text-right {
    text-align: right;
  }
  .large-text-center {
    text-align: center;
  }
  .large-text-justify {
    text-align: justify;
  }
}

.show-for-print {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important;
  }
  .show-for-print {
    display: block !important;
  }
  .hide-for-print {
    display: none !important;
  }
  table.show-for-print {
    display: table !important;
  }
  thead.show-for-print {
    display: table-header-group !important;
  }
  tbody.show-for-print {
    display: table-row-group !important;
  }
  tr.show-for-print {
    display: table-row !important;
  }
  td.show-for-print {
    display: table-cell !important;
  }
  th.show-for-print {
    display: table-cell !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: '';
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .print-break-inside {
    page-break-inside: auto;
  }
}

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
}

.row::before, .row::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.row::after {
  clear: both;
}

.row.collapse > .column, .row.collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.row .row {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

@media print, screen and (min-width: 40em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.row .row.collapse {
  margin-right: 0;
  margin-left: 0;
}

.row.expanded {
  max-width: none;
}

.row.expanded .row {
  margin-right: auto;
  margin-left: auto;
}

.row:not(.expanded) .row {
  max-width: none;
}

.row.gutter-small > .column, .row.gutter-small > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

.row.gutter-medium > .column, .row.gutter-medium > .columns {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
}

.column, .columns {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .column, .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
  float: right;
}

.column.end:last-child:last-child, .end.columns:last-child:last-child {
  float: left;
}

.column.row.row, .row.row.columns {
  float: none;
}

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

.small-1 {
  width: 8.33333%;
}

.small-push-1 {
  position: relative;
  left: 8.33333%;
}

.small-pull-1 {
  position: relative;
  left: -8.33333%;
}

.small-offset-0 {
  margin-left: 0%;
}

.small-2 {
  width: 16.66667%;
}

.small-push-2 {
  position: relative;
  left: 16.66667%;
}

.small-pull-2 {
  position: relative;
  left: -16.66667%;
}

.small-offset-1 {
  margin-left: 8.33333%;
}

.small-3 {
  width: 25%;
}

.small-push-3 {
  position: relative;
  left: 25%;
}

.small-pull-3 {
  position: relative;
  left: -25%;
}

.small-offset-2 {
  margin-left: 16.66667%;
}

.small-4 {
  width: 33.33333%;
}

.small-push-4 {
  position: relative;
  left: 33.33333%;
}

.small-pull-4 {
  position: relative;
  left: -33.33333%;
}

.small-offset-3 {
  margin-left: 25%;
}

.small-5 {
  width: 41.66667%;
}

.small-push-5 {
  position: relative;
  left: 41.66667%;
}

.small-pull-5 {
  position: relative;
  left: -41.66667%;
}

.small-offset-4 {
  margin-left: 33.33333%;
}

.small-6 {
  width: 50%;
}

.small-push-6 {
  position: relative;
  left: 50%;
}

.small-pull-6 {
  position: relative;
  left: -50%;
}

.small-offset-5 {
  margin-left: 41.66667%;
}

.small-7 {
  width: 58.33333%;
}

.small-push-7 {
  position: relative;
  left: 58.33333%;
}

.small-pull-7 {
  position: relative;
  left: -58.33333%;
}

.small-offset-6 {
  margin-left: 50%;
}

.small-8 {
  width: 66.66667%;
}

.small-push-8 {
  position: relative;
  left: 66.66667%;
}

.small-pull-8 {
  position: relative;
  left: -66.66667%;
}

.small-offset-7 {
  margin-left: 58.33333%;
}

.small-9 {
  width: 75%;
}

.small-push-9 {
  position: relative;
  left: 75%;
}

.small-pull-9 {
  position: relative;
  left: -75%;
}

.small-offset-8 {
  margin-left: 66.66667%;
}

.small-10 {
  width: 83.33333%;
}

.small-push-10 {
  position: relative;
  left: 83.33333%;
}

.small-pull-10 {
  position: relative;
  left: -83.33333%;
}

.small-offset-9 {
  margin-left: 75%;
}

.small-11 {
  width: 91.66667%;
}

.small-push-11 {
  position: relative;
  left: 91.66667%;
}

.small-pull-11 {
  position: relative;
  left: -91.66667%;
}

.small-offset-10 {
  margin-left: 83.33333%;
}

.small-12 {
  width: 100%;
}

.small-offset-11 {
  margin-left: 91.66667%;
}

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%;
}

.small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
  clear: both;
}

.small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
  float: left;
}

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%;
}

.small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
  clear: both;
}

.small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
  float: left;
}

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%;
}

.small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
  clear: both;
}

.small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
  float: left;
}

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%;
}

.small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
  clear: both;
}

.small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
  float: left;
}

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%;
}

.small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
  clear: both;
}

.small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
  float: left;
}

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%;
}

.small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
  clear: both;
}

.small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
  float: left;
}

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%;
}

.small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
  clear: both;
}

.small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
  float: left;
}

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%;
}

.small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
  clear: none;
}

.small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
  clear: both;
}

.small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
  float: left;
}

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.small-collapse .row {
  margin-right: 0;
  margin-left: 0;
}

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0;
}

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

.small-centered {
  margin-right: auto;
  margin-left: auto;
}

.small-centered, .small-centered:last-child:not(:first-child) {
  float: none;
  clear: both;
}

.small-uncentered,
.small-push-0,
.small-pull-0 {
  position: static;
  margin-right: 0;
  margin-left: 0;
}

.small-uncentered, .small-uncentered:last-child:not(:first-child),
.small-push-0,
.small-push-0:last-child:not(:first-child),
.small-pull-0,
.small-pull-0:last-child:not(:first-child) {
  float: left;
  clear: none;
}

.small-uncentered:last-child:not(:first-child),
.small-push-0:last-child:not(:first-child),
.small-pull-0:last-child:not(:first-child) {
  float: right;
}

@media print, screen and (min-width: 40em) {
  .medium-1 {
    width: 8.33333%;
  }
  .medium-push-1 {
    position: relative;
    left: 8.33333%;
  }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%;
  }
  .medium-offset-0 {
    margin-left: 0%;
  }
  .medium-2 {
    width: 16.66667%;
  }
  .medium-push-2 {
    position: relative;
    left: 16.66667%;
  }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%;
  }
  .medium-offset-1 {
    margin-left: 8.33333%;
  }
  .medium-3 {
    width: 25%;
  }
  .medium-push-3 {
    position: relative;
    left: 25%;
  }
  .medium-pull-3 {
    position: relative;
    left: -25%;
  }
  .medium-offset-2 {
    margin-left: 16.66667%;
  }
  .medium-4 {
    width: 33.33333%;
  }
  .medium-push-4 {
    position: relative;
    left: 33.33333%;
  }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%;
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .medium-5 {
    width: 41.66667%;
  }
  .medium-push-5 {
    position: relative;
    left: 41.66667%;
  }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%;
  }
  .medium-offset-4 {
    margin-left: 33.33333%;
  }
  .medium-6 {
    width: 50%;
  }
  .medium-push-6 {
    position: relative;
    left: 50%;
  }
  .medium-pull-6 {
    position: relative;
    left: -50%;
  }
  .medium-offset-5 {
    margin-left: 41.66667%;
  }
  .medium-7 {
    width: 58.33333%;
  }
  .medium-push-7 {
    position: relative;
    left: 58.33333%;
  }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%;
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .medium-8 {
    width: 66.66667%;
  }
  .medium-push-8 {
    position: relative;
    left: 66.66667%;
  }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%;
  }
  .medium-offset-7 {
    margin-left: 58.33333%;
  }
  .medium-9 {
    width: 75%;
  }
  .medium-push-9 {
    position: relative;
    left: 75%;
  }
  .medium-pull-9 {
    position: relative;
    left: -75%;
  }
  .medium-offset-8 {
    margin-left: 66.66667%;
  }
  .medium-10 {
    width: 83.33333%;
  }
  .medium-push-10 {
    position: relative;
    left: 83.33333%;
  }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%;
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .medium-11 {
    width: 91.66667%;
  }
  .medium-push-11 {
    position: relative;
    left: 91.66667%;
  }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%;
  }
  .medium-offset-10 {
    margin-left: 83.33333%;
  }
  .medium-12 {
    width: 100%;
  }
  .medium-offset-11 {
    margin-left: 91.66667%;
  }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%;
  }
  .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
    clear: both;
  }
  .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
    float: left;
  }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%;
  }
  .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
    clear: both;
  }
  .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
    float: left;
  }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%;
  }
  .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
    clear: both;
  }
  .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
    float: left;
  }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%;
  }
  .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
    clear: both;
  }
  .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
    float: left;
  }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%;
  }
  .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
    clear: both;
  }
  .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
    float: left;
  }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%;
  }
  .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
    clear: both;
  }
  .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
    float: left;
  }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%;
  }
  .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
    clear: both;
  }
  .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
    float: left;
  }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%;
  }
  .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
    clear: both;
  }
  .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
    float: left;
  }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0;
  }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0;
  }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
  .medium-centered {
    margin-right: auto;
    margin-left: auto;
  }
  .medium-centered, .medium-centered:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0;
  }
  .medium-uncentered, .medium-uncentered:last-child:not(:first-child),
  .medium-push-0,
  .medium-push-0:last-child:not(:first-child),
  .medium-pull-0,
  .medium-pull-0:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .medium-uncentered:last-child:not(:first-child),
  .medium-push-0:last-child:not(:first-child),
  .medium-pull-0:last-child:not(:first-child) {
    float: right;
  }
}

@media print, screen and (min-width: 64em) {
  .large-1 {
    width: 8.33333%;
  }
  .large-push-1 {
    position: relative;
    left: 8.33333%;
  }
  .large-pull-1 {
    position: relative;
    left: -8.33333%;
  }
  .large-offset-0 {
    margin-left: 0%;
  }
  .large-2 {
    width: 16.66667%;
  }
  .large-push-2 {
    position: relative;
    left: 16.66667%;
  }
  .large-pull-2 {
    position: relative;
    left: -16.66667%;
  }
  .large-offset-1 {
    margin-left: 8.33333%;
  }
  .large-3 {
    width: 25%;
  }
  .large-push-3 {
    position: relative;
    left: 25%;
  }
  .large-pull-3 {
    position: relative;
    left: -25%;
  }
  .large-offset-2 {
    margin-left: 16.66667%;
  }
  .large-4 {
    width: 33.33333%;
  }
  .large-push-4 {
    position: relative;
    left: 33.33333%;
  }
  .large-pull-4 {
    position: relative;
    left: -33.33333%;
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .large-5 {
    width: 41.66667%;
  }
  .large-push-5 {
    position: relative;
    left: 41.66667%;
  }
  .large-pull-5 {
    position: relative;
    left: -41.66667%;
  }
  .large-offset-4 {
    margin-left: 33.33333%;
  }
  .large-6 {
    width: 50%;
  }
  .large-push-6 {
    position: relative;
    left: 50%;
  }
  .large-pull-6 {
    position: relative;
    left: -50%;
  }
  .large-offset-5 {
    margin-left: 41.66667%;
  }
  .large-7 {
    width: 58.33333%;
  }
  .large-push-7 {
    position: relative;
    left: 58.33333%;
  }
  .large-pull-7 {
    position: relative;
    left: -58.33333%;
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .large-8 {
    width: 66.66667%;
  }
  .large-push-8 {
    position: relative;
    left: 66.66667%;
  }
  .large-pull-8 {
    position: relative;
    left: -66.66667%;
  }
  .large-offset-7 {
    margin-left: 58.33333%;
  }
  .large-9 {
    width: 75%;
  }
  .large-push-9 {
    position: relative;
    left: 75%;
  }
  .large-pull-9 {
    position: relative;
    left: -75%;
  }
  .large-offset-8 {
    margin-left: 66.66667%;
  }
  .large-10 {
    width: 83.33333%;
  }
  .large-push-10 {
    position: relative;
    left: 83.33333%;
  }
  .large-pull-10 {
    position: relative;
    left: -83.33333%;
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .large-11 {
    width: 91.66667%;
  }
  .large-push-11 {
    position: relative;
    left: 91.66667%;
  }
  .large-pull-11 {
    position: relative;
    left: -91.66667%;
  }
  .large-offset-10 {
    margin-left: 83.33333%;
  }
  .large-12 {
    width: 100%;
  }
  .large-offset-11 {
    margin-left: 91.66667%;
  }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%;
  }
  .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
    clear: both;
  }
  .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
    float: left;
  }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%;
  }
  .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
    clear: both;
  }
  .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
    float: left;
  }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%;
  }
  .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
    clear: both;
  }
  .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
    float: left;
  }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%;
  }
  .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
    clear: both;
  }
  .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
    float: left;
  }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%;
  }
  .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
    clear: both;
  }
  .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
    float: left;
  }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%;
  }
  .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
    clear: both;
  }
  .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
    float: left;
  }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%;
  }
  .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
    clear: both;
  }
  .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
    float: left;
  }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%;
  }
  .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
    clear: none;
  }
  .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
    clear: both;
  }
  .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
    float: left;
  }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0;
  }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0;
  }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
  .large-centered {
    margin-right: auto;
    margin-left: auto;
  }
  .large-centered, .large-centered:last-child:not(:first-child) {
    float: none;
    clear: both;
  }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0;
  }
  .large-uncentered, .large-uncentered:last-child:not(:first-child),
  .large-push-0,
  .large-push-0:last-child:not(:first-child),
  .large-pull-0,
  .large-pull-0:last-child:not(:first-child) {
    float: left;
    clear: none;
  }
  .large-uncentered:last-child:not(:first-child),
  .large-push-0:last-child:not(:first-child),
  .large-pull-0:last-child:not(:first-child) {
    float: right;
  }
}

.column-block {
  margin-bottom: 1.25rem;
}

.column-block > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .column-block {
    margin-bottom: 1.875rem;
  }
  .column-block > :last-child {
    margin-bottom: 0;
  }
}

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 0.9rem;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #192857;
  color: #fafafa;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button:hover, .button:focus {
  background-color: #15224a;
  color: #fafafa;
}

.button.tiny {
  font-size: 0.6rem;
}

.button.small {
  font-size: 0.75rem;
}

.button.large {
  font-size: 1.25rem;
}

.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.button.primary {
  background-color: #192857;
  color: #fafafa;
}

.button.primary:hover, .button.primary:focus {
  background-color: #142046;
  color: #fafafa;
}

.button.secondary {
  background-color: #c8922b;
  color: #0a0a0a;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #a07522;
  color: #0a0a0a;
}

.button.success {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button.warning {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button.alert {
  background-color: #cc4b37;
  color: #0a0a0a;
}

.button.alert:hover, .button.alert:focus {
  background-color: #a53b2a;
  color: #0a0a0a;
}

.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
  background-color: #192857;
  color: #fafafa;
}

.button.disabled.primary, .button[disabled].primary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
  background-color: #192857;
  color: #fafafa;
}

.button.disabled.secondary, .button[disabled].secondary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  background-color: #c8922b;
  color: #0a0a0a;
}

.button.disabled.success, .button[disabled].success {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.disabled.warning, .button[disabled].warning {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.disabled.alert, .button[disabled].alert {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #cc4b37;
  color: #0a0a0a;
}

.button.hollow {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow, .button.hollow:hover, .button.hollow:focus {
  background-color: transparent;
}

.button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
  background-color: transparent;
}

.button.hollow:hover, .button.hollow:focus {
  border-color: #0d142c;
  color: #0d142c;
}

.button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow.primary {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #0d142c;
  color: #0d142c;
}

.button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow.secondary {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #644916;
  color: #644916;
}

.button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.alert {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #67251a;
  color: #67251a;
}

.button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.clear {
  border: 1px solid #192857;
  color: #192857;
}

.button.clear, .button.clear:hover, .button.clear:focus {
  background-color: transparent;
}

.button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
  background-color: transparent;
}

.button.clear:hover, .button.clear:focus {
  border-color: #0d142c;
  color: #0d142c;
}

.button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border-color: transparent;
}

.button.clear.primary {
  border: 1px solid #192857;
  color: #192857;
}

.button.clear.primary:hover, .button.clear.primary:focus {
  border-color: #0d142c;
  color: #0d142c;
}

.button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border-color: transparent;
}

.button.clear.secondary {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.button.clear.secondary:hover, .button.clear.secondary:focus {
  border-color: #644916;
  color: #644916;
}

.button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border-color: transparent;
}

.button.clear.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.clear.success:hover, .button.clear.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
  border-color: transparent;
}

.button.clear.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.clear.warning:hover, .button.clear.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
  border-color: transparent;
}

.button.clear.alert {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.clear.alert:hover, .button.clear.alert:focus {
  border-color: #67251a;
  color: #67251a;
}

.button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}

.button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
  border-color: transparent;
}

.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #fafafa transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}

.button.dropdown.hollow::after, .button.dropdown.clear::after {
  border-top-color: #192857;
}

.button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
  border-top-color: #192857;
}

.button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
  border-top-color: #c8922b;
}

.button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
  border-top-color: #3adb76;
}

.button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
  border-top-color: #ffae00;
}

.button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
  border-top-color: #cc4b37;
}

.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

a.button:hover, a.button:focus {
  text-decoration: none;
}

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
}

.button-group::before, .button-group::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.button-group::after {
  clear: both;
}

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  flex: 0 0 auto;
}

.button-group .button:last-child {
  margin-right: 0;
}

.button-group.tiny .button {
  font-size: 0.6rem;
}

.button-group.small .button {
  font-size: 0.75rem;
}

.button-group.large .button {
  font-size: 1.25rem;
}

.button-group.expanded .button {
  flex: 1 1 0px;
}

.button-group.primary .button {
  background-color: #192857;
  color: #fafafa;
}

.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #142046;
  color: #fafafa;
}

.button-group.secondary .button {
  background-color: #c8922b;
  color: #0a0a0a;
}

.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #a07522;
  color: #0a0a0a;
}

.button-group.success .button {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button-group.warning .button {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button-group.alert .button {
  background-color: #cc4b37;
  color: #0a0a0a;
}

.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #a53b2a;
  color: #0a0a0a;
}

.button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
  flex-wrap: wrap;
}

.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  flex: 0 0 100%;
}

.button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
  margin-bottom: 0;
}

.button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
  flex: 1 1 0px;
}

@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    flex: 0 0 auto;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    flex: 0 0 auto;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 39.99875em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

@media screen and (max-width: 63.99875em) {
  .button-group.stacked-for-medium.expanded {
    display: block;
  }
  .button-group.stacked-for-medium.expanded .button {
    display: block;
    margin-right: 0;
  }
}

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover, .close-button:focus {
  color: #0a0a0a;
}

.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}

.close-button, .close-button.medium {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #192857;
  color: #fafafa;
}

.label.primary {
  background: #192857;
  color: #fafafa;
}

.label.secondary {
  background: #c8922b;
  color: #0a0a0a;
}

.label.success {
  background: #3adb76;
  color: #0a0a0a;
}

.label.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.label.alert {
  background: #cc4b37;
  color: #0a0a0a;
}

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca;
}

.progress.primary .progress-meter {
  background-color: #192857;
}

.progress.secondary .progress-meter {
  background-color: #c8922b;
}

.progress.success .progress-meter {
  background-color: #3adb76;
}

.progress.warning .progress-meter {
  background-color: #ffae00;
}

.progress.alert .progress-meter {
  background-color: #cc4b37;
}

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #192857;
}

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fafafa;
  white-space: nowrap;
}

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  user-select: none;
  touch-action: none;
}

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  transition: all 0.2s ease-in-out;
}

.slider-fill.is-dragging {
  transition: all 0s linear;
}

.slider-handle {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #192857;
  transition: all 0.2s ease-in-out;
  touch-action: manipulation;
}

[data-whatinput='mouse'] .slider-handle {
  outline: 0;
}

.slider-handle:hover {
  background-color: #15224a;
}

.slider-handle.is-dragging {
  transition: all 0s linear;
}

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  transform: scale(1, -1);
}

.slider.vertical .slider-fill {
  top: 0;
  width: 0.5rem;
  max-height: 100%;
}

.slider.vertical .slider-handle {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1.4rem;
  height: 1.4rem;
  transform: translateX(-50%);
}

.switch {
  height: 2rem;
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fafafa;
  user-select: none;
}

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0;
}

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer;
}

input + .switch-paddle {
  margin: 0;
}

.switch-paddle::after {
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  transform: translate3d(0, 0, 0);
  border-radius: 0;
  background: #fafafa;
  transition: all 0.25s ease-out;
  content: '';
}

input:checked ~ .switch-paddle {
  background: #192857;
}

input:checked ~ .switch-paddle::after {
  left: 2.25rem;
}

[data-whatinput='mouse'] input:focus ~ .switch-paddle {
  outline: 0;
}

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.switch-active {
  left: 8%;
  display: none;
}

input:checked + label > .switch-active {
  display: block;
}

.switch-inactive {
  right: 15%;
}

input:checked + label > .switch-inactive {
  display: none;
}

.switch.tiny {
  height: 1.5rem;
}

.switch.tiny .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem;
}

.switch.tiny .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1rem;
  height: 1rem;
}

.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem;
}

.switch.small {
  height: 1.75rem;
}

.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

.switch.small .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
}

.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem;
}

.switch.large {
  height: 2.5rem;
}

.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem;
}

.switch.large .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 2rem;
  height: 2rem;
}

.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}

thead,
tbody,
tfoot {
  border: 1px solid #eeeeee;
  background-color: #fafafa;
}

caption {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
}

thead {
  background: #f4f4f4;
  color: #0a0a0a;
}

tfoot {
  background: #eeeeee;
  color: #0a0a0a;
}

thead tr,
tfoot tr {
  background: transparent;
}

thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}

tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

tbody tr:nth-child(even) {
  border-bottom: 0;
  background-color: #eeeeee;
}

table.unstriped tbody {
  background-color: #fafafa;
}

table.unstriped tbody tr {
  border-bottom: 0;
  border-bottom: 1px solid #eeeeee;
  background-color: #fafafa;
}

@media screen and (max-width: 63.99875em) {
  table.stack thead {
    display: none;
  }
  table.stack tfoot {
    display: none;
  }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block;
  }
  table.stack td {
    border-top: 0;
  }
}

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto;
}

table.hover thead tr:hover {
  background-color: #efefef;
}

table.hover tfoot tr:hover {
  background-color: #e8e8e8;
}

table.hover tbody tr:hover {
  background-color: whitesmoke;
}

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #e8e8e8;
}

.table-scroll {
  overflow-x: auto;
}

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #192857;
  color: #fafafa;
}

.badge.primary {
  background: #192857;
  color: #fafafa;
}

.badge.secondary {
  background: #c8922b;
  color: #0a0a0a;
}

.badge.success {
  background: #3adb76;
  color: #0a0a0a;
}

.badge.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.badge.alert {
  background: #cc4b37;
  color: #0a0a0a;
}

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none;
}

.breadcrumbs::before, .breadcrumbs::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.breadcrumbs::after {
  clear: both;
}

.breadcrumbs li {
  float: left;
  font-size: 0.6875rem;
  color: #0a0a0a;
  cursor: default;
  text-transform: uppercase;
}

.breadcrumbs li:not(:last-child)::after {
  position: relative;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}

.breadcrumbs a {
  color: #192857;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: #fefefe;
  color: #0a0a0a;
}

.callout > :first-child {
  margin-top: 0;
}

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

.callout.primary {
  background-color: #d1d9f2;
  color: #0a0a0a;
}

.callout.secondary {
  background-color: #f8efde;
  color: #0a0a0a;
}

.callout.success {
  background-color: #e1faea;
  color: #0a0a0a;
}

.callout.warning {
  background-color: #fff3d9;
  color: #0a0a0a;
}

.callout.alert {
  background-color: #f7e4e1;
  color: #0a0a0a;
}

.callout.small {
  padding-top: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.5rem;
}

.callout.large {
  padding-top: 3rem;
  padding-right: 3rem;
  padding-bottom: 3rem;
  padding-left: 3rem;
}

.card {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fafafa;
  box-shadow: none;
  overflow: hidden;
  color: #0a0a0a;
}

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

.card-divider {
  display: flex;
  flex: 0 1 auto;
  padding: 1rem;
  background: #e6e6e6;
}

.card-divider > :last-child {
  margin-bottom: 0;
}

.card-section {
  flex: 1 0 auto;
  padding: 1rem;
}

.card-section > :last-child {
  margin-bottom: 0;
}

.card-image {
  min-height: 1px;
}

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: none;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  font-size: 1rem;
}

.dropdown-pane.is-opening {
  display: block;
}

.dropdown-pane.is-open {
  display: block;
  visibility: visible;
}

.dropdown-pane.tiny {
  width: 100px;
}

.dropdown-pane.small {
  width: 200px;
}

.dropdown-pane.large {
  width: 400px;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}

.pagination::before, .pagination::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.pagination::after {
  clear: both;
}

.pagination li {
  margin-right: 0.0625rem;
  border-radius: 0;
  font-size: 0.875rem;
  display: none;
}

.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}

.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
  color: #0a0a0a;
}

.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}

.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #192857;
  color: #fafafa;
  cursor: default;
}

.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}

.pagination .disabled:hover {
  background: transparent;
}

.pagination .ellipsis::after {
  padding: 0.1875rem 0.625rem;
  content: '\2026';
  color: #0a0a0a;
}

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab';
}

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb';
}

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help;
}

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fafafa;
}

.tooltip::before {
  position: absolute;
}

.tooltip.bottom::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #0a0a0a;
  bottom: 100%;
}

.tooltip.bottom.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.tooltip.top::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #0a0a0a transparent transparent;
  top: 100%;
  bottom: auto;
}

.tooltip.top.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.tooltip.left::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #0a0a0a;
  left: 100%;
}

.tooltip.left.align-center::before {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.tooltip.right::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #0a0a0a transparent transparent;
  right: 100%;
  left: auto;
}

.tooltip.right.align-center::before {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.tooltip.align-top::before {
  bottom: auto;
  top: 10%;
}

.tooltip.align-bottom::before {
  bottom: 10%;
  top: auto;
}

.tooltip.align-left::before {
  left: 10%;
  right: auto;
}

.tooltip.align-right::before {
  left: auto;
  right: 10%;
}

.accordion {
  margin-left: 0;
  background: #fafafa;
  list-style-type: none;
}

.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0;
}

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0;
}

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #192857;
}

:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 0 0;
}

.accordion-title:hover, .accordion-title:focus {
  background-color: #e6e6e6;
}

.accordion-title::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  margin-top: -0.5rem;
  content: '+';
}

.is-active > .accordion-title::before {
  content: '\2013';
}

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fafafa;
  color: #0a0a0a;
}

:last-child > .accordion-content:last-child {
  border-bottom: 1px solid #e6e6e6;
}

.media-object {
  display: flex;
  margin-bottom: 1rem;
  flex-wrap: nowrap;
}

.media-object img {
  max-width: none;
}

@media screen and (max-width: 39.99875em) {
  .media-object.stack-for-small {
    flex-wrap: wrap;
  }
}

.media-object-section {
  flex: 0 1 auto;
}

.media-object-section:first-child {
  padding-right: 1rem;
}

.media-object-section:last-child:not(:nth-child(2)) {
  padding-left: 1rem;
}

.media-object-section > :last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 39.99875em) {
  .stack-for-small .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    flex-basis: 100%;
    max-width: 100%;
  }
  .stack-for-small .media-object-section img {
    width: 100%;
  }
}

.media-object-section.main-section {
  flex: 1 1 0px;
}

.orbit {
  position: relative;
}

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden;
}

.orbit-slide {
  width: 100%;
  position: absolute;
}

.orbit-slide.no-motionui.is-active {
  top: 0;
  left: 0;
}

.orbit-figure {
  margin: 0;
}

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fafafa;
}

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fafafa;
}

[data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
  outline: 0;
}

.orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
  background-color: rgba(10, 10, 10, 0.5);
}

.orbit-previous {
  left: 0;
}

.orbit-next {
  left: auto;
  right: 0;
}

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}

[data-whatinput='mouse'] .orbit-bullets {
  outline: 0;
}

.orbit-bullets button {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.1rem;
  border-radius: 50%;
  background-color: #cacaca;
}

.orbit-bullets button:hover {
  background-color: #8a8a8a;
}

.orbit-bullets button.is-active {
  background-color: #8a8a8a;
}

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden;
}

.responsive-embed iframe,
.responsive-embed object,
.responsive-embed embed,
.responsive-embed video,
.flex-video iframe,
.flex-video object,
.flex-video embed,
.flex-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.responsive-embed.widescreen,
.flex-video.widescreen {
  padding-bottom: 56.25%;
}

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fafafa;
  list-style-type: none;
}

.tabs::before, .tabs::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.tabs::after {
  clear: both;
}

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto;
}

.tabs.simple > li > a {
  padding: 0;
}

.tabs.simple > li > a:hover {
  background: transparent;
}

.tabs.primary {
  background: #192857;
}

.tabs.primary > li > a {
  color: #fafafa;
}

.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #1d2f66;
}

.tabs-title {
  float: left;
}

.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  font-size: 0.75rem;
  line-height: 1;
  color: #192857;
}

[data-whatinput='mouse'] .tabs-title > a {
  outline: 0;
}

.tabs-title > a:hover {
  background: #fafafa;
  color: #16224b;
}

.tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
  background: #e6e6e6;
  color: #192857;
}

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fafafa;
  color: #0a0a0a;
  transition: all 0.5s ease;
}

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0;
}

.tabs-panel {
  display: none;
  padding: 1rem;
}

.tabs-panel.is-active {
  display: block;
}

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: 4px solid #fafafa;
  border-radius: 0;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0;
}

a.thumbnail {
  transition: box-shadow 200ms ease-out;
}

a.thumbnail:hover, a.thumbnail:focus {
  box-shadow: 0 0 6px 1px rgba(25, 40, 87, 0.5);
}

a.thumbnail image {
  box-shadow: none;
}

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: flex;
  flex-wrap: wrap;
}

[data-whatinput='mouse'] .menu li {
  outline: 0;
}

.menu a,
.menu .button {
  line-height: 1;
  text-decoration: none;
  display: block;
  padding: 0.7rem 1rem;
}

.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu input {
  display: inline-block;
}

.menu, .menu.horizontal {
  flex-wrap: wrap;
  flex-direction: row;
}

.menu.vertical {
  flex-wrap: nowrap;
  flex-direction: column;
}

.menu.expanded li {
  flex: 1 1 0px;
}

.menu.simple {
  align-items: center;
}

.menu.simple li + li {
  margin-left: 1rem;
}

.menu.simple a {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.medium-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.medium-expanded li {
    flex: 1 1 0px;
  }
  .menu.medium-simple li {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.large-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.large-expanded li {
    flex: 1 1 0px;
  }
  .menu.large-simple li {
    flex: 1 1 0px;
  }
}

.menu.nested {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.icons a {
  display: flex;
}

.menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
  display: flex;
}

.menu.icon-left li a {
  flex-flow: row nowrap;
}

.menu.icon-left li a img,
.menu.icon-left li a i,
.menu.icon-left li a svg {
  margin-right: 0.25rem;
}

.menu.icon-right li a {
  flex-flow: row nowrap;
}

.menu.icon-right li a img,
.menu.icon-right li a i,
.menu.icon-right li a svg {
  margin-left: 0.25rem;
}

.menu.icon-top li a {
  flex-flow: column nowrap;
}

.menu.icon-top li a img,
.menu.icon-top li a i,
.menu.icon-top li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu.icon-bottom li a {
  flex-flow: column nowrap;
}

.menu.icon-bottom li a img,
.menu.icon-bottom li a i,
.menu.icon-bottom li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu .is-active > a {
  background: #192857;
  color: #fafafa;
}

.menu .active > a {
  background: #192857;
  color: #fafafa;
}

.menu.align-left {
  justify-content: flex-start;
}

.menu.align-right li {
  display: flex;
  justify-content: flex-end;
}

.menu.align-right li .submenu li {
  justify-content: flex-start;
}

.menu.align-right.vertical li {
  display: block;
  text-align: right;
}

.menu.align-right.vertical li .submenu li {
  text-align: right;
}

.menu.align-right .nested {
  margin-right: 1rem;
  margin-left: 0;
}

.menu.align-center li {
  display: flex;
  justify-content: center;
}

.menu.align-center li .submenu li {
  justify-content: flex-start;
}

.menu .menu-text {
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered > .menu {
  justify-content: center;
}

.menu-centered > .menu li {
  display: flex;
  justify-content: center;
}

.menu-centered > .menu li .submenu li {
  justify-content: flex-start;
}

.no-js [data-responsive-menu] ul {
  display: none;
}

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #fafafa;
  box-shadow: 0 7px 0 #fafafa, 0 14px 0 #fafafa;
  content: '';
}

.menu-icon:hover::after {
  background: #cacaca;
  box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

.accordion-menu li {
  width: 100%;
}

.accordion-menu a {
  padding: 0.7rem 1rem;
}

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem;
}

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem;
}

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0;
}

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative;
}

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #192857 transparent transparent;
  position: absolute;
  top: 50%;
  margin-top: -3px;
  right: 1rem;
}

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  right: 1rem;
  left: auto;
}

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem;
}

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  transform: rotate(180deg);
  transform-origin: 50% 50%;
}

.is-accordion-submenu-parent {
  position: relative;
}

.has-submenu-toggle > a {
  margin-right: 40px;
}

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  cursor: pointer;
}

.submenu-toggle::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #192857 transparent transparent;
  top: 0;
  bottom: 0;
  margin: auto;
}

.submenu-toggle[aria-expanded='true']::after {
  transform: scaleY(-1);
  transform-origin: 50% 50%;
}

.submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.is-drilldown {
  position: relative;
  overflow: hidden;
}

.is-drilldown li {
  display: block;
}

.is-drilldown.animate-height {
  transition: height 0.5s;
}

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fafafa;
}

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fafafa;
  transition: transform 0.15s linear;
}

.drilldown .is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  transform: translateX(-100%);
}

.drilldown .is-drilldown-submenu.is-closing {
  transform: translateX(100%);
}

.drilldown .is-drilldown-submenu a {
  padding: 0.7rem 1rem;
}

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0;
}

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%;
}

.drilldown .is-drilldown-submenu-parent > a {
  position: relative;
}

.drilldown .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #192857;
  position: absolute;
  top: 50%;
  margin-top: -6px;
  right: 1rem;
}

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #192857;
  right: 1rem;
  left: auto;
}

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #192857 transparent transparent;
  right: auto;
  left: 1rem;
}

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #192857 transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
}

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #192857 transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px;
}

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0;
}

.dropdown.menu > li > a {
  padding: 0.7rem 1rem;
}

.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #192857;
}

.no-js .dropdown.menu ul {
  display: none;
}

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0;
}

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto;
}

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.dropdown.menu.vertical > li > a::after {
  right: 14px;
}

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #192857 transparent transparent;
  right: auto;
  left: 5px;
}

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #192857;
}

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #192857 transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #192857 transparent transparent;
    right: auto;
    left: 5px;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #192857;
  }
}

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #192857 transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px;
  }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto;
  }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #192857 transparent transparent;
    right: auto;
    left: 5px;
  }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #192857;
  }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto;
}

.is-dropdown-menu.vertical {
  width: 100px;
}

.is-dropdown-menu.vertical.align-right {
  float: right;
}

.is-dropdown-submenu-parent {
  position: relative;
}

.is-dropdown-submenu-parent a::after {
  position: absolute;
  top: 50%;
  right: 5px;
  left: auto;
  margin-top: -6px;
}

.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fafafa;
}

.dropdown .is-dropdown-submenu a {
  padding: 0.7rem 1rem;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #192857 transparent transparent;
  right: auto;
  left: 5px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #192857;
}

.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}

.is-dropdown-submenu > li {
  width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

.is-off-canvas-open {
  overflow: hidden;
}

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(250, 250, 250, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
}

.js-off-canvas-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.js-off-canvas-overlay.is-closable {
  cursor: pointer;
}

.js-off-canvas-overlay.is-overlay-absolute {
  position: absolute;
}

.js-off-canvas-overlay.is-overlay-fixed {
  position: fixed;
}

.off-canvas-wrapper {
  position: relative;
  overflow: hidden;
}

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e6e6e6;
}

[data-whatinput='mouse'] .off-canvas {
  outline: 0;
}

.off-canvas.is-transition-push {
  z-index: 12;
}

.off-canvas.is-closed {
  visibility: hidden;
}

.off-canvas.is-transition-overlap {
  z-index: 13;
}

.off-canvas.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas.is-open {
  transform: translate(0, 0);
}

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e6e6e6;
}

[data-whatinput='mouse'] .off-canvas-absolute {
  outline: 0;
}

.off-canvas-absolute.is-transition-push {
  z-index: 12;
}

.off-canvas-absolute.is-closed {
  visibility: hidden;
}

.off-canvas-absolute.is-transition-overlap {
  z-index: 13;
}

.off-canvas-absolute.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas-absolute.is-open {
  transform: translate(0, 0);
}

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left {
  transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-left.has-transition-push {
  transform: translateX(250px);
}

.position-left.is-transition-push {
  box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right {
  transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-right.has-transition-push {
  transform: translateX(-250px);
}

.position-right.is-transition-push {
  box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top {
  transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-top.has-transition-push {
  transform: translateY(250px);
}

.position-top.is-transition-push {
  box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
}

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom {
  transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-bottom.has-transition-push {
  transform: translateY(-250px);
}

.position-bottom.is-transition-push {
  box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
}

.off-canvas-content {
  transform: none;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
}

.off-canvas-content.has-transition-push {
  transform: translate(0, 0);
}

.off-canvas-content .off-canvas.is-open {
  transform: translate(0, 0);
}

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-left.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-left.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-right.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-right.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }
  .position-top.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-top.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-top.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }
  .position-top.reveal-for-medium ~ .off-canvas-content {
    margin-top: 250px;
  }
  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-bottom.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-bottom.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }
  .position-bottom.reveal-for-medium ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-left.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-left.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }
  .position-left.reveal-for-large ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-right.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-right.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }
  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }
  .position-top.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-top.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-top.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }
  .position-top.reveal-for-large ~ .off-canvas-content {
    margin-top: 250px;
  }
  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-bottom.reveal-for-large .close-button {
    display: none;
  }
  .off-canvas-content .position-bottom.reveal-for-large {
    transform: none;
  }
  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }
  .position-bottom.reveal-for-large ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

@media print, screen and (min-width: 40em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none;
  }
  .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
    box-shadow: none;
    transform: none;
  }
  .off-canvas.in-canvas-for-medium .close-button {
    display: none;
  }
}

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    transition: none;
  }
  .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
    box-shadow: none;
    transform: none;
  }
  .off-canvas.in-canvas-for-large .close-button {
    display: none;
  }
}

html.is-reveal-open {
  position: fixed;
  width: 100%;
  overflow-y: hidden;
}

html.is-reveal-open.zf-has-scroll {
  overflow-y: scroll;
}

html.is-reveal-open body {
  overflow-y: hidden;
}

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: auto;
}

.reveal {
  z-index: 1006;
  backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
}

[data-whatinput='mouse'] .reveal {
  outline: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}

.reveal .column, .reveal .columns {
  min-width: 0;
}

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

@media print, screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}

.reveal.collapse {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}

.reveal.full {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 100%;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}

@media screen and (max-width: 39.99875em) {
  .reveal {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}

.reveal.without-overlay {
  position: fixed;
}

.sticky-container {
  position: relative;
}

.sticky {
  position: relative;
  z-index: 0;
  transform: translate3d(0, 0, 0);
}

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%;
}

.sticky.is-stuck.is-at-top {
  top: 0;
}

.sticky.is-stuck.is-at-bottom {
  bottom: 0;
}

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto;
}

.sticky.is-anchored.is-at-bottom {
  bottom: 0;
}

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fafafa;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.title-bar-left,
.title-bar-right {
  flex: 1 1 0px;
}

.title-bar-right {
  text-align: right;
}

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold;
}

.top-bar {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem;
  flex-wrap: wrap;
}

.top-bar,
.top-bar ul {
  background-color: #e6e6e6;
}

.top-bar input {
  max-width: 200px;
  margin-right: 1rem;
}

.top-bar .input-group-field {
  width: 100%;
  margin-right: 0;
}

.top-bar input.button {
  width: auto;
}

.top-bar .top-bar-left,
.top-bar .top-bar-right {
  flex: 0 0 100%;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .top-bar {
    flex-wrap: nowrap;
  }
  .top-bar .top-bar-left {
    flex: 1 1 auto;
    margin-right: auto;
  }
  .top-bar .top-bar-right {
    flex: 0 1 auto;
    margin-left: auto;
  }
}

@media screen and (max-width: 63.99875em) {
  .top-bar.stacked-for-medium {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

@media screen and (max-width: 74.99875em) {
  .top-bar.stacked-for-large {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

.top-bar-title {
  flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0;
}

.top-bar-left,
.top-bar-right {
  flex: 0 0 auto;
}

.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto;
}

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.clearfix::after {
  clear: both;
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

@media screen and (max-width: 39.99875em) {
  .hide-for-small-only {
    display: none !important;
  }
}

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important;
  }
}

@media screen and (max-width: 39.99875em) {
  .show-for-medium {
    display: none !important;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.99875em) {
  .hide-for-medium-only {
    display: none !important;
  }
}

@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important;
  }
}

@media screen and (max-width: 63.99875em) {
  .show-for-large {
    display: none !important;
  }
}

@media screen and (min-width: 64em) and (max-width: 74.99875em) {
  .hide-for-large-only {
    display: none !important;
  }
}

@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important;
  }
}

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.show-for-landscape,
.hide-for-portrait {
  display: block !important;
}

@media screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: block !important;
  }
}

@media screen and (orientation: portrait) {
  .show-for-landscape,
  .hide-for-portrait {
    display: none !important;
  }
}

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

@media screen and (orientation: landscape) {
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important;
  }
}

@media screen and (orientation: portrait) {
  .hide-for-landscape,
  .show-for-portrait {
    display: block !important;
  }
}

/* .clearfix { *zoom: 1; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }*/
.content-cntrd {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* background mixin (wip)
@mixin background($bg-color $bg-img_url $bg-attachment $bg-position_x $bg-position_y $bg-repeat $bg-size) {
    background-color:           $bg-color;
    background-image:       url($bg-img_url);
    background-attachment:      $bg-attachment;
    background-position:        $bg-position_x
                                $bg-position_y;
    background-repeat:          $bg-repeat;
    -webkit-background-size:    $bg-size;
       -moz-background-size:    $bg-size;
         -o-background-size:    $bg-size;
            background-size:    $bg-size;
}
*/
/*  COLORS
--------------------------------------

[ modifying foundations default palette ]

$foundation-palette: (
  primary: #E44347,
  mars: #D7525C,
  saturn: #E4B884,
  neptune: #5147D7,
)

Using the above palette, we can add the .mars, .saturn, or .neptune classes to buttons, labels, badges, and more.

To access the colors in your code, use Sass's map-get() function:

.mars {
  color: map-get($foundation-palette, mars);
}

-------------------------------------- */
.bg-wht {
  background: #fafafa;
}

.bg-blk {
  background: #000222;
}

.bg-blkalt {
  background: #3c4245;
}

.bg-blkdrk {
  background: #000000;
}

.bg-whtlite {
  background: #fff;
}

.bg-gry {
  background: #ebebeb;
}

.bg-gray {
  background: #ebebeb;
}

.bg-grylite {
  background: #e1e1e1;
}

.bg-gryslvr {
  background: #dadada;
}

.bg-gry_muted {
  background: #b8b7b4;
}

.bg-grydrk {
  background: #464646;
}

.bg-slate {
  background: #404040;
}

.bg-blu {
  background: #598db2;
}

.bg-blue {
  background: #003146;
}

.bg-blue-bright {
  background: #00b2e2;
}

.bg-bludrk {
  background: #294c65;
}

.bg-pch {
  background: #ffe0b2;
}

.bg-gld {
  background: #ffb74d;
}

.bg-trq {
  background: #006064;
}

.bg-teal {
  background: #1CB0B5;
}

.bg-navy {
  background: #192857;
}

.bg-green {
  background: #64A70B;
}

.txt-wht {
  color: #fafafa;
}

.txt-wht-hover:hover {
  color: #fafafa;
}

.txt-blk {
  color: #000222;
}

.txt-blkalt {
  color: #3c4245;
}

.txt-blkdrk {
  color: #000000;
}

.txt-slate {
  color: #404040;
}

.txt-gry {
  color: #ebebeb;
}

.txt-grylite {
  color: #e1e1e1 !important;
}

.txt-gryslvr {
  color: #dadada;
}

.txt-grydrk {
  color: #464646;
}

.txt-gry_muted {
  color: #b8b7b4;
}

.txt-blu {
  color: #598db2;
}

.txt-blue {
  color: #003146;
}

.txt-navy {
  color: #192857;
}

.txt-bludrk {
  color: #598db2;
}

.txt-pch {
  color: #ffe0b2;
}

.txt-gld {
  color: #ffb74d;
}

.txt-trq {
  color: #006064;
}

/* BREAKPOINTS & EM QUICKVIEW
===========================================

1em = 16px
2em = 32px
3em = 48px
4em = 64px

0.0625em   =       1px
0.125em    =       2px
0.15625em  =       2.5px
0.1875em   =       3px
0.3125em   =       5px 
0.625em    =      10px
0.9375em   =      15px
1.25em     =      20px
1.5625em   =      25px
2.5em      =      40px
3.125em    =      50px
3.375em;   =      54px - back-to-top bottom + bottom navbar height
4.6875em   =      75px
6.25em     =     100px

20em =  320px - iPhone 5
30em =  480px
40em =  640px - foundation medium
50em =  800px
60em =  960px
64em = 1024px - iPad / foundation large
70em = 1120px
80em = 1280px

63.9375em =    1023px - single page - goal title switch to tablet view
81.25em   =    1300px
87.5em    =    1400px - where GOVERNMENT overlaps edge

*/
/* Small only */
/* Medium and up */
/* Medium only */
/* Large and up */
/* Large only */
/** Define width Values for JS reference **/
.width-definitions {
  visibility: hidden;
}

.width-definitions div {
  visibility: hidden;
}

.width-definitions .width-small {
  width: 39.9375em;
}

.width-definitions .width-medium {
  width: 63.9375em;
}

.width-definitions .width-large {
  width: 74.9375em;
}

@media screen and (max-width: 20em) {
  .wrapp-100 {
    padding: 0.9375em 0.625em;
  }
}

@media screen and (min-width: 20.01em) and (max-width: 39.9375em) {
  .wrapp-100 {
    padding: 1.25em 0.625em;
  }
}

.mt25 {
  margin-top: 25px;
}

.mb25 {
  margin-bottom: 25px;
}

.mb75 {
  margin-bottom: 75px;
}

.mtb75 {
  margin-top: 75px;
  margin-bottom: 75px;
}

.pt0 {
  padding-top: 0px !important;
}

.p10 {
  padding: 10px;
}

.p15 {
  padding: 15px;
}

.p25 {
  padding: 25px;
}

.p50 {
  padding: 50px;
}

.pt10 {
  padding-top: 10px;
}

.pb10 {
  padding-bottom: 10px;
}

.ptb10 {
  padding-top: 10px;
  padding-bottom: 10px;
}

.pt15 {
  padding-top: 15px;
}

.pb15 {
  padding-bottom: 15px;
}

.pr15 {
  padding-right: 15px;
}

.ptb15 {
  padding-top: 15px;
  padding-bottom: 15px;
}

.pt25 {
  padding-top: 25px;
}

.pb25 {
  padding-bottom: 25px;
}

.ptb25 {
  padding-top: 25px;
  padding-bottom: 25px;
}

.pt50 {
  padding-top: 50px;
}

.pb50 {
  padding-bottom: 50px;
}

.ptb50 {
  padding-top: 50px;
  padding-bottom: 50px;
}

.ptlr50 {
  padding-top: 50px;
  padding-left: 50px;
  padding-right: 50px;
}

.ptbl50 {
  padding-top: 50px;
  padding-bottom: 50px;
  padding-left: 50px;
}

.pt75 {
  padding-top: 75px;
}

.ptb75 {
  padding-top: 75px;
  padding-bottom: 75px;
}

.pt100 {
  padding-top: 100px;
}

.pb100 {
  padding-bottom: 100px !important;
}

.ptb100 {
  padding-top: 100px;
  padding-bottom: 100px;
}

.padwrap {
  padding: 10px;
}

.txt-cntr {
  text-align: center;
}

.centered {
  display: block;
  margin: 0 auto;
}

.relative {
  position: relative;
}

.display-none {
  display: none;
}

img.responsive {
  display: block;
  max-width: 100%;
  height: auto;
}

img.alignright {
  float: right;
  margin-left: 25px;
}

.z-top {
  position: relative;
  z-index: 3;
  opacity: 0.99;
}

.z500 {
  z-index: 500;
}

.pipe {
  font-size: 1.5625em;
  padding: 0 0.9375em;
  vertical-align: middle;
}

small {
  vertical-align: middle;
}

small .pipe {
  font-size: 1.5em;
  padding: 0 0.9375em;
  vertical-align: top;
  line-height: 1.5em;
}

.search-overlay {
  z-index: 1;
}

.is-hidden {
  display: none;
}

.is-found {
  display: block;
  /* transition visibility */
  -webkit-transition: visibility 0s;
  -moz-transition: visibility 0s;
  -o-transition: visibility 0s;
  transition: visibility 0s;
  visibility: visible;
  -webkit-overflow-scrolling: touch;
}

.readmore {
  text-align: center;
  padding-top: 25px;
  padding-bottom: 25px;
}

.readmore a {
  color: #fafafa;
  -webkit-transition: color 0.3s ease;
  -moz-transition: color 0.3s ease;
  -o-transition: color 0.3s ease;
  transition: color 0.3s ease;
}

[data-whatinput="touch"] .readmore a:focus,
[data-whatinput="touch"] .readmore a:active,
[data-whatinput="mouse"] .readmore a:focus,
[data-whatinput="mouse"] .readmore a:active,
[data-whatinput="mouse"] .readmore a:hover, .readmore a:hover, .readmore a:active {
  color: #404040;
}

.external_link {
  position: relative;
}

.external_link:before {
  content: "\f08e";
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  color: #dadada;
  font-size: 18px;
  padding-right: 0.5em;
  position: absolute;
  top: 0px;
  right: 0px;
  padding: 7px 25px;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.nav-is-open {
  overflow-y: scroll;
}

.wrap {
  display: block;
  width: 100%;
}

.wrap:before, .wrap:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrap:after {
  clear: both;
}

.wrapp {
  padding-top: 50px;
  padding-bottom: 50px;
  display: block;
  width: 100%;
}

.wrapp:before, .wrapp:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp:after {
  clear: both;
}

.wrapp-100 {
  padding-top: 100px;
  padding-bottom: 100px;
  display: block;
  width: 100%;
}

.wrapp-100:before, .wrapp-100:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-100:after {
  clear: both;
}

.wrapp-150 {
  padding-top: 150px;
  padding-bottom: 150px;
  display: block;
  width: 100%;
}

.wrapp-150:before, .wrapp-150:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-150:after {
  clear: both;
}

.wrapp-200 {
  padding-top: 200px;
  padding-bottom: 200px;
  display: block;
  width: 100%;
}

.wrapp-200:before, .wrapp-200:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-200:after {
  clear: both;
}

.wrapm {
  margin-top: 100px;
  margin-bottom: 150px;
  display: block;
}

.wrapm:before, .wrapm:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapm:after {
  clear: both;
}

.wrapp-nopad {
  padding-top: 0px;
  padding-bottom: 0px;
  display: block;
  width: 100%;
}

.wrapp-nopad:before, .wrapp-nopad:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-nopad:after {
  clear: both;
}

.wrapp-nopad-150 {
  padding-top: 0px;
  padding-bottom: 150px;
  display: block;
  width: 100%;
}

.wrapp-nopad-150:before, .wrapp-nopad-150:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-nopad-150:after {
  clear: both;
}

.wrapp-search {
  padding: 6.25em 15% 6em;
  display: block;
  width: 100%;
}

.wrapp-search:before, .wrapp-search:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-search:after {
  clear: both;
}

@media screen and (max-width: 39.9375em) {
  .wrapp-search {
    padding-top: 1rem;
    padding-left: 1.5em;
    padding-right: 1.5em;
    padding-bottom: 4rem;
  }
}

.wrapp-location {
  padding-top: 0px;
  padding-bottom: 0px;
  display: block;
  width: 100%;
  position: absolute;
  top: 1.25em;
  right: 0px;
}

.wrapp-location:before, .wrapp-location:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-location:after {
  clear: both;
}

.wrapp_goes_squish, .topics_header, .wrapp_featured_section, .wrapp_actions, .guides_wrapper.-actions {
  padding: 4.6875em 0;
  display: block;
  width: 100%;
  background-size: cover;
}

.wrapp_goes_squish:before, .topics_header:before, .wrapp_featured_section:before, .wrapp_actions:before, .guides_wrapper.-actions:before, .wrapp_goes_squish:after, .topics_header:after, .wrapp_featured_section:after, .wrapp_actions:after, .guides_wrapper.-actions:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp_goes_squish:after, .topics_header:after, .wrapp_featured_section:after, .wrapp_actions:after, .guides_wrapper.-actions:after {
  clear: both;
}

@media screen and (max-width: 39.9375em) {
  .wrapp_goes_squish, .topics_header, .wrapp_featured_section, .wrapp_actions, .guides_wrapper.-actions {
    padding-top: 0;
    padding-bottom: 0.45rem;
  }
}

.shadow {
  -webkit-box-shadow: 2px 2px 1px rgba(153, 153, 153, 0.83);
  -moz-box-shadow: 2px 2px 1px rgba(153, 153, 153, 0.83);
  box-shadow: 2px 2px 1px rgba(153, 153, 153, 0.83);
}

.shadow-inset {
  -webkit-box-shadow: inset 0 0 12px #000000;
  -moz-box-shadow: inset 0 0 12px #000000;
  box-shadow: inset 0 0 12px #000000;
}

.shadow-center {
  -webkit-box-shadow: 0 8px 6px -6px rgba(153, 153, 153, 0.83);
  -moz-box-shadow: 0 8px 6px -6px rgba(153, 153, 153, 0.83);
  box-shadow: 0 8px 6px -6px rgba(153, 153, 153, 0.83);
}

.shadow-center-2 {
  -webkit-box-shadow: 0 10px 6px -6px #777;
  -moz-box-shadow: 0 10px 6px -6px #777;
  box-shadow: 0 10px 6px -6px #777;
}

.shadow-tb {
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
}

.shadow-tb:before, .shadow-tb:after {
  content: "";
  z-index: -1;
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  top: 0;
  bottom: 0;
  left: 10px;
  right: 10px;
  -moz-border-radius: 100px / 10px;
  border-radius: 100px / 10px;
}

.shadow-tb:after {
  right: 10px;
  left: auto;
  -webkit-transform: skew(8deg) rotate(3deg);
  -moz-transform: skew(8deg) rotate(3deg);
  -ms-transform: skew(8deg) rotate(3deg);
  -o-transform: skew(8deg) rotate(3deg);
  transform: skew(8deg) rotate(3deg);
}

.shadow-page {
  position: relative;
}

.shadow-page:after {
  z-index: -1;
  position: absolute;
  content: "";
  bottom: 15px;
  right: 10px;
  left: auto;
  width: 50%;
  top: 80%;
  max-width: 300px;
  background: #777;
  -webkit-box-shadow: 0 15px 10px #777;
  -moz-box-shadow: 0 15px 10px #777;
  box-shadow: 0 15px 10px #777;
  -webkit-transform: rotate(3deg);
  -moz-transform: rotate(3deg);
  -o-transform: rotate(3deg);
  -ms-transform: rotate(3deg);
  transform: rotate(3deg);
}

.shadow-curve {
  position: relative;
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
}

.shadow-curve:before, .shadow-curve:after {
  content: "";
  position: absolute;
  z-index: -1;
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  top: 50%;
  bottom: 0;
  left: 10px;
  right: 10px;
  -moz-border-radius: 100px / 10px;
  border-radius: 100px / 10px;
}

/* BACKGROUNDS
========================================= */
.bg {
  position: relative;
  display: block;
  padding: 90px 0;
  background-attachment: scroll;
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  webkit-filter: contrast(1.1);
  -moz-filter: contrast(1.1);
  -ms-filter: contrast(1.1);
  -o-filter: contrast(1.1);
  filter: contrast(1.1);
  -webkit-transition: all ease 1s;
  -moz-transition: all ease 1s;
  -o-transition: all ease 1s;
  transition: all ease 1s;
}

.bg.wrapp-search {
  background-attachment: fixed;
}

.bg::before {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  max-height: 100%;
  background: linear-gradient(transparent, transparent, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}

.bg.bg-overlay::before {
  background: linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)), linear-gradient(rgba(0, 0, 0, 0.75), rgba(255, 224, 178, 0.25));
}

@media screen and (max-width: 39.9375em) {
  .bg {
    background-attachment: scroll !important;
  }
  .bg .wrapp-search {
    background-attachment: scroll !important;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .bg {
    background-attachment: scroll !important;
  }
  .bg .wrapp-search {
    background-attachment: scroll !important;
  }
}

@media screen and (orientation: landscape) {
  .bg {
    background-attachment: scroll !important;
  }
}

@media screen and (max-width: 39.9375em) {
  .bg {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 200px;
    max-height: 200px;
  }
  .bg > .row {
    min-width: 100%;
    padding-bottom: 0;
  }
}

.outline {
  display: block;
  border: 0.125em solid #fafafa;
  padding: 3.125em;
  color: #fafafa;
  background: rgba(0, 0, 0, 0.175);
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.outline h1, .outline h2, .outline h3, .outline h4, .outline h5, .outline p {
  color: #fafafa;
  font-weight: 700;
}

.outline.outline_wht h1, .outline.outline_wht p {
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .outline.outline_wht:focus,
[data-whatinput="touch"] .outline.outline_wht:active,
[data-whatinput="mouse"] .outline.outline_wht:focus,
[data-whatinput="mouse"] .outline.outline_wht:active,
[data-whatinput="mouse"] .outline.outline_wht:hover, .outline.outline_wht:hover, .outline.outline_wht:active {
  background: #fafafa;
}

[data-whatinput="touch"] .outline.outline_wht:focus h1, [data-whatinput="touch"] .outline.outline_wht:focus p,
[data-whatinput="touch"] .outline.outline_wht:active h1,
[data-whatinput="touch"] .outline.outline_wht:active p,
[data-whatinput="mouse"] .outline.outline_wht:focus h1,
[data-whatinput="mouse"] .outline.outline_wht:focus p,
[data-whatinput="mouse"] .outline.outline_wht:active h1,
[data-whatinput="mouse"] .outline.outline_wht:active p,
[data-whatinput="mouse"] .outline.outline_wht:hover h1,
[data-whatinput="mouse"] .outline.outline_wht:hover p, .outline.outline_wht:hover h1, .outline.outline_wht:hover p, .outline.outline_wht:active h1, .outline.outline_wht:active p {
  color: #404040;
}

.outline.outline_wht_title h1, .outline.outline_wht_title p {
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.outline.outline_slate {
  border: 2px solid #404040;
}

.outline.outline_slate h1, .outline.outline_slate p {
  color: #404040;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .outline.outline_slate:focus,
[data-whatinput="touch"] .outline.outline_slate:active,
[data-whatinput="mouse"] .outline.outline_slate:focus,
[data-whatinput="mouse"] .outline.outline_slate:active,
[data-whatinput="mouse"] .outline.outline_slate:hover, .outline.outline_slate:hover, .outline.outline_slate:active {
  background: #fafafa;
}

.outline.outline_slatealt h1, .outline.outline_slatealt p {
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .outline.outline_slatealt:focus,
[data-whatinput="touch"] .outline.outline_slatealt:active,
[data-whatinput="mouse"] .outline.outline_slatealt:focus,
[data-whatinput="mouse"] .outline.outline_slatealt:active,
[data-whatinput="mouse"] .outline.outline_slatealt:hover, .outline.outline_slatealt:hover, .outline.outline_slatealt:active {
  background: #404040;
  border: 0.125em solid #404040;
}

@media screen and (max-width: 39.9375em) {
  .outline {
    margin: 0;
    padding: 1.25em;
  }
  .outline.outline_wht p {
    margin-bottom: 0.25em;
  }
  .outline.outline_wht p small {
    font-size: 0.85rem;
  }
  .outline.outline_wht h1 {
    font-size: 1.25rem;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .outline {
    padding: 2.5em;
  }
}

.full {
  position: relative;
  color: #fff;
  height: 100vh;
  max-height: 100%;
  /* 100vh */
  width: 100%;
}

.reveal.full {
  color: #003146;
}

._404__search {
  color: #192857;
  min-height: 16em;
  padding-top: 15px;
  padding-bottom: 50px;
}

._404__search .search-input.hide-for-large {
  display: initial !important;
}

._404__search .search-input.show-for-large {
  display: none !important;
}

._404__header {
  color: #192857;
  margin-bottom: 20px;
  text-align: center;
}

._404__wrapp {
  padding-top: 22vh !important;
}

.template__acf-page #content {
  padding-top: 0;
}

.article h2 {
  padding-top: 2.5rem;
}

.article h3, .article h4 {
  padding-bottom: 0.625rem;
}

.article ul {
  list-style: disc !important;
  padding-left: 2.5em;
}

@media screen and (max-width: 39.9375em) {
  .article h2 {
    padding-top: 1.4rem;
    padding-bottom: .25rem;
    margin-bottom: 0;
  }
  .article ul {
    padding: 0 1.2rem;
  }
  .article .row,
  .article .row .row {
    padding: 0;
    margin: 0;
  }
}

.alert_icon {
  text-align: center;
}

.alert_icon i {
  display: block;
  margin: auto;
  font-size: 5em;
  padding: 0.625rem;
}

.featured-title {
  color: #fafafa !important;
}

.featured ul li {
  color: #fafafa;
}

.featured p {
  color: #fafafa;
}

.featured p a {
  color: #fafafa;
  text-decoration: underline;
}

@media screen and (max-width: 39.9375em) {
  .featured {
    padding-top: 1.25rem;
  }
}

.featured__wrapper {
  display: inline-block;
  width: 100%;
  margin-bottom: -10px;
}

.featured__item {
  float: left;
  display: block;
  transition: all 0.3s ease-in-out;
  width: 100%;
}

.featured__item:hover .featured__item--inner {
  background: rgba(0, 0, 0, 0.375);
}

.featured__item--inner {
  padding: 3.125em;
  color: #fafafa;
  background: rgba(0, 0, 0, 0.175);
  min-height: 350px;
}

@media screen and (max-width: 39.9375em) {
  .featured__item--inner {
    padding: 1.5em;
    min-height: 250px;
  }
}

.bg .featured__item--inner {
  background: rgba(0, 0, 0, 0.275);
}

.featured__item--inner a {
  color: #fafafa;
}

[data-whatinput="touch"] .featured__item--inner a:focus,
[data-whatinput="touch"] .featured__item--inner a:active,
[data-whatinput="mouse"] .featured__item--inner a:focus,
[data-whatinput="mouse"] .featured__item--inner a:active,
[data-whatinput="mouse"] .featured__item--inner a:hover, .featured__item--inner a:hover, .featured__item--inner a:active {
  color: #fafafa;
}

.featured__item--title {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  color: #fafafa;
}

@media screen and (max-width: 39.9375em) {
  .featured__item--title {
    font-size: 2.5rem;
  }
}

.featured__item--title small {
  font-size: 50%;
  color: #fafafa;
}

.-col-2 .featured__item {
  width: 50%;
  float: left;
}

@media only screen and (max-width: 68em) {
  .-col-2 .featured__item {
    width: 100%;
    float: left;
    min-height: 0;
  }
}

.-col-3 .featured__item {
  width: 33.33333%;
  float: left;
}

@media only screen and (max-width: 68em) {
  .-col-3 .featured__item {
    width: 100%;
    float: left;
    min-height: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .featured__wrapper {
    margin-bottom: 25px;
  }
}

@media screen and (max-width: 39.9375em) {
  .topics_header_mobile {
    min-height: 12.375rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .topics_header {
    padding: 0;
    background: none !important;
  }
  .topics_header .row {
    padding: 0;
    margin: 0;
  }
  .topics_header.row, .topics_header .row .row {
    padding: 0;
    margin: 0;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .topics_header .topic_summary_wrapp {
    margin-top: 1.5625em;
  }
  .topics_header .topic_summary_wrapp .article {
    margin-bottom: 1.25em;
  }
}

.topic_summary {
  background: #fafafa;
  padding: 3.125em;
}

.topic_summary h1 {
  font-weight: 700;
}

.topic_summary .topic_menu_title {
  margin-top: 1rem;
}

.topic_summary .topic_menu li > a {
  line-height: 1.4em;
  color: #192857;
}

[data-whatinput="touch"] .topic_summary .topic_menu li > a:focus,
[data-whatinput="touch"] .topic_summary .topic_menu li > a:active,
[data-whatinput="mouse"] .topic_summary .topic_menu li > a:focus,
[data-whatinput="mouse"] .topic_summary .topic_menu li > a:active,
[data-whatinput="mouse"] .topic_summary .topic_menu li > a:hover, .topic_summary .topic_menu li > a:hover, .topic_summary .topic_menu li > a:active {
  color: #00b2e2;
}

.topic_summary .back-to {
  color: #003146;
}

[data-whatinput="touch"] .topic_summary .back-to:focus,
[data-whatinput="touch"] .topic_summary .back-to:active,
[data-whatinput="mouse"] .topic_summary .back-to:focus,
[data-whatinput="mouse"] .topic_summary .back-to:active,
[data-whatinput="mouse"] .topic_summary .back-to:hover, .topic_summary .back-to:hover, .topic_summary .back-to:active {
  color: #192857;
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .topic_summary .columns {
    margin: 0;
    padding: 0;
  }
  .topic_summary .article {
    margin-bottom: 1.25em;
  }
}

@media screen and (max-width: 39.9375em) {
  .topic_summary {
    margin-top: .7em;
    padding: 0 0 1.25em 0;
  }
  .topic_summary h1 {
    font-size: 1.4em;
    padding-bottom: 1rem;
  }
  .topic_summary .topic_summary_title {
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
  }
  .topic_summary .article {
    margin-bottom: 1.25em;
  }
}

.wrapp_featured_section {
  margin-bottom: 0;
}

.wrapp_featured_section h2 {
  padding-bottom: 0.2rem;
  margin-bottom: 0;
}

@media screen and (max-width: 39.9375em) {
  .wrapp_featured_section {
    margin: 0;
    padding-bottom: 0.45rem;
  }
  .wrapp_featured_section p {
    padding: 0;
  }
  .wrapp_featured_section h2, .wrapp_featured_section h4 {
    padding: 1.5rem 0 0.2rem;
    margin-bottom: 0;
  }
}

.article_wrapp h2 {
  padding: 1.5rem 0rem 0.2rem;
  margin-bottom: 0;
}

.article_wrapp h4 {
  padding: 0.5rem 0rem 0.2rem;
  margin-bottom: 0;
}

@media screen and (max-width: 39.9375em) {
  .article_wrapp p {
    padding: 0;
  }
  .article_wrapp h2, .article_wrapp h4, .article_wrapp h5 {
    padding: 1.5rem 0 0.2rem;
    margin-bottom: 0;
  }
  .article_wrapp.row, .article_wrapp.row .row {
    margin: 0 auto;
  }
}

@media screen and (max-width: 39.9375em) {
  .wrapp_actions {
    padding-top: 1.75rem;
  }
}

.guides_wrapper {
  max-width: 57rem;
  margin: 0 auto;
}

.guides_wrapper.-actions {
  padding: 2.5em 0 0;
}

@media screen and (max-width: 39.9375em) {
  .guides_wrapper.-actions {
    padding-top: 1.75rem;
    padding-bottom: 0;
  }
}

.guides_wrapper.-actions .h2 {
  padding-top: 0;
}

.related-links {
  padding: 90px 0;
}

@media screen and (max-width: 39.9375em) {
  .related-links {
    padding: 1.25em 0;
  }
}

.actionitem {
  display: block;
  padding-bottom: 1em !important;
  position: relative;
}

.actionitem .actionitem-title {
  font-size: 18px;
  font-weight: 300;
}

.actionitem.columns {
  padding-left: .5rem;
  padding-right: .5rem;
}

.actionitem.columns:not(:first-child) {
  float: left;
}

@media screen and (max-width: 39.9375em) {
  .actionitem.columns {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-bottom: 1em !important;
  }
}

.actionitem div {
  padding: 1rem;
  text-align: center;
  background: #ebebeb;
  color: #003146;
  min-height: 210px;
  font-size: 18px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

@media screen and (min-width: 1024px) and (max-width: 1160px) {
  .actionitem div {
    min-height: 235px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .actionitem div {
    min-height: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .actionitem div {
    min-height: 0;
  }
}

.actionitem div i {
  display: block;
  margin: auto;
  font-size: 4em;
  padding-bottom: 1rem;
  color: #192857;
}

@media screen and (max-width: 39.9375em) {
  .actionitem div i {
    font-size: 2em;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .actionitem div i {
    font-size: 3em;
  }
}

.actionitem.external-icon:before {
  content: "\f08e";
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  color: #003146;
  font-size: 1.125em;
  padding-right: 0.5em;
  position: absolute;
  top: 0px;
  right: 0px;
  padding: 0.4375em 1.5625em;
}

.actionitem.no_ext:before {
  content: "";
}

[data-whatinput="touch"] .actionitem:focus div,
[data-whatinput="touch"] .actionitem:active div,
[data-whatinput="mouse"] .actionitem:focus div,
[data-whatinput="mouse"] .actionitem:active div,
[data-whatinput="mouse"] .actionitem:hover div, .actionitem:hover div, .actionitem:active div {
  color: #fafafa;
  background: #192857;
}

[data-whatinput="touch"] .actionitem:focus div .actionitem-title,
[data-whatinput="touch"] .actionitem:active div .actionitem-title,
[data-whatinput="mouse"] .actionitem:focus div .actionitem-title,
[data-whatinput="mouse"] .actionitem:active div .actionitem-title,
[data-whatinput="mouse"] .actionitem:hover div .actionitem-title, .actionitem:hover div .actionitem-title, .actionitem:active div .actionitem-title {
  color: #fafafa;
}

[data-whatinput="touch"] .actionitem:focus div i,
[data-whatinput="touch"] .actionitem:active div i,
[data-whatinput="mouse"] .actionitem:focus div i,
[data-whatinput="mouse"] .actionitem:active div i,
[data-whatinput="mouse"] .actionitem:hover div i, .actionitem:hover div i, .actionitem:active div i {
  color: #fafafa;
}

[data-whatinput="touch"] .actionitem:focus:before,
[data-whatinput="touch"] .actionitem:active:before,
[data-whatinput="mouse"] .actionitem:focus:before,
[data-whatinput="mouse"] .actionitem:active:before,
[data-whatinput="mouse"] .actionitem:hover:before, .actionitem:hover:before, .actionitem:active:before {
  color: #fafafa;
}

.search-form {
  display: block;
  position: relative;
  width: 100%;
}

@media screen and (max-width: 39.9375em) {
  .search-form .results .row .row {
    padding-left: 1em !important;
    padding-right: 1em !important;
  }
}

.search-form .search-input {
  color: #192857;
  display: block;
  margin: 0;
  padding: 0 .25em;
  width: 90%;
  border: 0;
  box-shadow: none;
  outline: 0;
  border-radius: 0;
  transition: ease-in-out .3s;
}

.search-form .search-input::-webkit-search-cancel-button {
  display: none;
}

.search-form .search-button-wrapper {
  position: absolute;
  top: -1px;
  right: 5px;
  height: 42px;
  width: 20px;
  cursor: pointer;
}

.search-form .search-button {
  font-size: 1.5em;
  height: 38px;
  cursor: pointer;
}

.search-form .search-button i {
  color: #c8922b;
  font-size: 1rem;
}

@media screen and (max-width: 63.9375em) {
  .search-form .more-results {
    display: block;
    margin-bottom: 1em;
  }
}

#breadcrumbExtension {
  padding-left: 4px;
}

#breadcrumbExtension p {
  margin-bottom: 0;
}

.search-input {
  padding: 0 1.5em;
}

.search-bar-wrapper {
  border: 2px solid #00b2e2;
  border-radius: 25px;
  line-height: 1;
  height: 48px;
  padding: 2px 15px;
}

.search-bar-wrapper input {
  color: #003146;
  background-color: transparent;
  padding-left: 1.5em;
  padding-right: 0;
}

.search-bar-wrapper input:focus {
  background-color: transparent;
}

[data-whatinput="touch"] .search-bar-wrapper input:focus,
[data-whatinput="touch"] .search-bar-wrapper input:active,
[data-whatinput="mouse"] .search-bar-wrapper input:focus,
[data-whatinput="mouse"] .search-bar-wrapper input:active,
[data-whatinput="mouse"] .search-bar-wrapper input:hover, .search-bar-wrapper input:hover, .search-bar-wrapper input:active {
  color: #003146;
}

.search-bar-wrapper .button {
  padding: .5em 1.5em .5em .5em;
}

.search-bar-wrapper .modalicon {
  font-size: 2rem;
}

.search-bar-wrapper .pageicon {
  font-size: 1.5rem;
}

.search-helper {
  margin: 40px 0 0 20px;
}

.search-wrapper {
  position: relative;
}

.search-wrapper input {
  font-size: 1rem;
}

.search-wrapper input + button {
  color: #1CB0B5;
  cursor: pointer;
  padding: 0.8rem 20px;
}

.search-wrapper input + button:hover, .search-wrapper input + button:active, .search-wrapper input + button:focus {
  color: #1CB0B5;
  background-color: transparent;
}

.results .result-description {
  color: #003146;
  margin-bottom: 0;
  padding-top: 0;
  margin-top: 0.75em;
  overflow: hidden;
  text-align: left;
}

.results .results-url,
.results .results-categories {
  color: #003146;
  font-size: .7rem;
  margin-bottom: .5rem;
}

.results .results-title, .results .search-results li a .results-title {
  color: #003146;
  font-size: 1em;
  font-weight: bold;
  margin-bottom: .6667em;
}

.results .sort-wrapper {
  position: relative;
}

.results .sort-wrapper label {
  display: inline-block;
}

.results .sort-wrapper select {
  display: inline-block;
  width: 150px;
}

.results .search-reults-wrapper {
  width: 100%;
}

.results .search-reults-wrapper .preresults p {
  font-size: 1em;
  margin-bottom: 0.25em;
  padding-top: 0.75em;
  line-height: 1.2em;
  color: #b8b7b4;
  text-align: left;
}

@media screen and (max-width: 63.9375em) {
  .results .search-reults-wrapper .preresults p {
    text-align: center;
  }
}

.results .search-reults-wrapper .preresults i {
  text-align: center;
}

.results .results-title {
  margin-bottom: 0;
}

.results .quick-links {
  font-size: 14px;
}

@media screen and (max-width: 63.9375em) {
  .results .quick-links {
    border-right: none;
    text-align: left;
  }
  .results .quick-links ul {
    padding-right: 0 !important;
  }
  .results .quick-links li {
    text-align: center;
    display: inline-block;
    width: 50%;
  }
  .results .quick-links li:first-child > a {
    margin-right: .5em;
  }
}

.results .quick-links h3 {
  padding-right: 50px;
}

@media screen and (max-width: 39.9375em) {
  .results .quick-links ul {
    border-right: none;
    padding-right: 1.25em;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .results .quick-links ul {
    border-right: none;
    padding-right: 1.25em;
  }
}

.results .quick-links li {
  padding-bottom: 1em;
}

.results .quick-links a {
  color: #003146;
  padding: 1em;
  border: 2px solid #64A70B;
  background: transparent;
  display: block;
}

[data-whatinput="mouse"] .results .quick-links a:hover {
  background: #64A70B;
  color: #fafafa;
}

[data-whatinput="mouse"] .results .quick-links a:hover p {
  color: #fafafa;
}

.results .quick-links a:focus, .results .quick-links a:active, .results .quick-links a.is-active {
  background: #64A70B;
  color: #fafafa;
}

.results .search-results {
  margin: 0;
}

.results .search-results li {
  position: relative;
  display: block;
  width: 100%;
  margin-bottom: 0.75em;
  background: #ebebeb;
  border-left: 0.1875em solid #00b2e2;
}

[data-whatinput="touch"] .results .search-results li:focus,
[data-whatinput="touch"] .results .search-results li:active,
[data-whatinput="mouse"] .results .search-results li:focus,
[data-whatinput="mouse"] .results .search-results li:active,
[data-whatinput="mouse"] .results .search-results li:hover, .results .search-results li:hover, .results .search-results li:active {
  background-color: #00b2e2;
}

.results .search-results li:last-of-type {
  margin-bottom: 2em;
}

.results .search-results li .post-date {
  font-size: .9em;
  padding-top: .5em;
}

.results .search-results li a {
  padding: 15px;
  width: 100%;
  padding: 1em;
  display: inline-block;
  color: #003146;
}

@media screen and (max-width: 63.9375em) {
  .results .search-results li a {
    min-height: 0;
  }
}

.results .search-results li a .results-title {
  margin-bottom: 0;
}

[data-whatinput="touch"] .results .search-results li a:focus,
[data-whatinput="touch"] .results .search-results li a:active,
[data-whatinput="mouse"] .results .search-results li a:focus,
[data-whatinput="mouse"] .results .search-results li a:active,
[data-whatinput="mouse"] .results .search-results li a:hover, .results .search-results li a:hover, .results .search-results li a:active {
  background: #00b2e2;
  color: #fafafa;
}

[data-whatinput="touch"] .results .search-results li a:focus h4, [data-whatinput="touch"] .results .search-results li a:focus p, [data-whatinput="touch"] .results .search-results li a:focus::before,
[data-whatinput="touch"] .results .search-results li a:active h4,
[data-whatinput="touch"] .results .search-results li a:active p,
[data-whatinput="touch"] .results .search-results li a:active::before,
[data-whatinput="mouse"] .results .search-results li a:focus h4,
[data-whatinput="mouse"] .results .search-results li a:focus p,
[data-whatinput="mouse"] .results .search-results li a:focus::before,
[data-whatinput="mouse"] .results .search-results li a:active h4,
[data-whatinput="mouse"] .results .search-results li a:active p,
[data-whatinput="mouse"] .results .search-results li a:active::before,
[data-whatinput="mouse"] .results .search-results li a:hover h4,
[data-whatinput="mouse"] .results .search-results li a:hover p,
[data-whatinput="mouse"] .results .search-results li a:hover::before, .results .search-results li a:hover h4, .results .search-results li a:hover p, .results .search-results li a:hover::before, .results .search-results li a:active h4, .results .search-results li a:active p, .results .search-results li a:active::before {
  color: #fafafa;
}

[data-whatinput="touch"] .results .search-results li a:focus h4::after, [data-whatinput="touch"] .results .search-results li a:focus p::after,
[data-whatinput="touch"] .results .search-results li a:active h4::after,
[data-whatinput="touch"] .results .search-results li a:active p::after,
[data-whatinput="mouse"] .results .search-results li a:focus h4::after,
[data-whatinput="mouse"] .results .search-results li a:focus p::after,
[data-whatinput="mouse"] .results .search-results li a:active h4::after,
[data-whatinput="mouse"] .results .search-results li a:active p::after,
[data-whatinput="mouse"] .results .search-results li a:hover h4::after,
[data-whatinput="mouse"] .results .search-results li a:hover p::after, .results .search-results li a:hover h4::after, .results .search-results li a:hover p::after, .results .search-results li a:active h4::after, .results .search-results li a:active p::after {
  background-color: #00b2e2;
}

.results time {
  /*font-size: 1.2rem;*/
  color: #70727d;
}

.resultswrap {
  margin-top: 50px;
}

.resultswrap .pagination {
  display: table;
}

.resultswrap .no-results p {
  font-size: 1.5em;
  padding-top: 2em;
  text-align: center;
}

.resultswrap .no-results p span {
  font-weight: bold;
}

.resultswrap .results > h4 {
  margin-bottom: 0;
}

.resultswrap .results .fa:before {
  padding-right: .5em;
}

table.cabTravel {
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 39.9375em) {
  table.cabTravel {
    font-size: .8rem;
  }
}

table.cabTravel tr td:nth-child(4) {
  text-align: right;
}

table.cabTravel tr th {
  text-align: left;
}

.legendText {
  font-size: .88em;
  line-height: 32px;
}

.tabColor1 {
  background-color: #1E3B66;
}

.tabColor2 {
  background-color: #8d8c35;
}

.tabColor3 {
  background-color: #CA9A31;
}

.tabColor4 {
  background-color: #ca7131;
}

.tabColor5 {
  background-color: #cc3c2f;
}

.legendBlock {
  width: 18px;
  height: 22px;
  display: block;
  margin-top: 4px;
  float: left;
  margin-right: 10px;
}

.hideMed {
  display: none;
}

div.grid-cell {
  width: 20%;
  height: 16px;
  display: block;
  float: left;
  position: relative;
}

div.grid-label {
  width: 50px;
  height: 16px;
  position: absolute;
  left: -25px;
  text-align: center;
  font-size: 11px;
  padding-top: 4px;
  background-image: url(/wp-content/themes/bones/travel/stem.gif);
  background-repeat: no-repeat;
  background-position: top left 25px;
}

div.bar-container {
  position: relative;
  width: 100%;
  height: 25px;
  display: block;
}

div.bar-block {
  position: relative;
  width: 100%;
  height: 20px;
  display: block;
  float: left;
}

div.bar-segment {
  position: absolute;
  bottom: 25px;
  font-size: 12px;
  line-height: 13px;
  width: 100px;
  left: -50px;
  text-align: center;
  background-color: #CCC;
  border-radius: 4px;
  padding: 4px;
  display: none;
}

div.bar-block:hover > div.bar-segment {
  display: block;
}

.icon-png {
  width: 28px;
  height: 28px;
  padding-top: 0 !important;
  margin-right: 12px;
  margin: 0 12px 0 0;
}

@media screen and (max-width: 480px) {
  table.cabTravel tr td:nth-child(2) {
    display: none;
  }
  table.cabTravel tr th:nth-child(2) {
    display: none;
  }
  .hideMed {
    display: block;
  }
  .hideSmall {
    display: none;
  }
  .downLabel {
    margin-top: 16px;
  }
}

@media screen and (max-width: 640px) {
  .smaller-text {
    font-size: .85em !important;
  }
  .small-down {
    margin-top: 16px !important;
  }
  .icon-png {
    width: 16px;
    height: 16px;
    padding-top: 0 !important;
    margin-right: 12px;
    margin: 0 12px 0 0;
  }
}

.extraPad-bottom {
  padding-bottom: 1.25rem;
  display: inline-block;
  width: 100%;
}

.extraPad-top {
  padding-top: 1.25rem;
  display: inline-block;
  width: 100%;
}

.waiting-overlay {
  position: absolute;
  display: none;
  text-align: center;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #FFFFFF;
  opacity: .6;
}

.waiting-overlay img {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

/* BACK TO TOP
========================================= */
.back-to-top {
  display: inline-block;
  position: fixed;
  bottom: 3rem;
  right: 1em;
  width: 70px;
  padding: 1.25rem;
  z-index: 1;
  cursor: pointer;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  text-align: center;
  color: #fafafa;
  background: #c8922b;
  -webkit-transition: opacity 0.3s 0s, visibility 0s 0.3s;
  -moz-transition: opacity 0.3s 0s, visibility 0s 0.3s;
  -o-transition: opacity 0.3s 0s, visibility 0s 0.3s;
  transition: opacity 0.3s 0s, visibility 0s 0.3s;
}

.back-to-top i {
  font-size: 1.2rem;
  color: #fff;
  font-weight: 500;
}

.back-to-top p {
  margin-bottom: 0;
  font-size: 0.45em;
  font-weight: bold;
  letter-spacing: 0.7em;
  margin-right: -0.7em;
  color: #404040;
  text-align: center;
}

.back-to-top.back-to-top-is-visible, .back-to-top.back-to-top-fade-out {
  -webkit-transition: opacity 0.3s 0s, visibility 0s 0s;
  -moz-transition: opacity 0.3s 0s, visibility 0s 0s;
  -o-transition: opacity 0.3s 0s, visibility 0s 0s;
  transition: opacity 0.3s 0s, visibility 0s 0s;
}

.back-to-top.back-to-top-is-visible {
  visibility: visible;
  opacity: 1;
}

@media screen and (max-width: 39.9375em) {
  .back-to-top {
    right: 1rem;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .back-to-top {
    right: 1.1em;
  }
}

#breadcrumbs, #breadcrumbExtension {
  color: #b8b7b4;
  margin-bottom: 1rem;
  float: left;
}

@media screen and (max-width: 39.9375em) {
  #breadcrumbs, #breadcrumbExtension {
    font-size: .8rem;
    margin-bottom: .7rem;
  }
  #breadcrumbs p, #breadcrumbExtension p {
    font-size: .8rem;
    float: left;
  }
}

#breadcrumbs a, #breadcrumbExtension a {
  color: #192857;
  text-decoration: underline;
}

#breadcrumbs a:hover, #breadcrumbExtension a:hover {
  text-decoration: underline;
  color: #00b2e2;
}

#breadcrumbs .breadcrumb_last, #breadcrumbExtension .breadcrumb_last {
  color: #00b2e2;
}

.alert-top.callout {
  background: #404040;
  padding: .5rem 0;
  margin-bottom: 0px;
  border: none;
}

.alert-top.callout h5, .alert-top.callout h6, .alert-top.callout p {
  color: #fafafa;
  margin-bottom: 0;
  font-size: .9em;
  padding-right: 40px;
}

.alert-top.callout a {
  color: #fafafa;
  text-decoration: underline;
}

[data-whatinput="touch"] .alert-top.callout a:focus,
[data-whatinput="touch"] .alert-top.callout a:active,
[data-whatinput="mouse"] .alert-top.callout a:focus,
[data-whatinput="mouse"] .alert-top.callout a:active,
[data-whatinput="mouse"] .alert-top.callout a:hover, .alert-top.callout a:hover, .alert-top.callout a:active {
  color: #fafafa;
}

.alert-top.callout a .fa {
  padding: 0 3px;
}

.alert-top.callout.-high-priority {
  background: #C60F13;
  border-bottom: 1px solid #c70f13;
}

.alert-top.callout.-low-priority {
  background: #003146;
  border-bottom: 1px solid #003247;
}

.alert-top.callout .close-button {
  padding: 0 !important;
  border: none;
  width: initial;
  color: #fafafa;
  top: 4px;
}

[data-whatinput="touch"] .alert-top.callout .close-button:focus,
[data-whatinput="touch"] .alert-top.callout .close-button:active,
[data-whatinput="mouse"] .alert-top.callout .close-button:focus,
[data-whatinput="mouse"] .alert-top.callout .close-button:active,
[data-whatinput="mouse"] .alert-top.callout .close-button:hover, .alert-top.callout .close-button:hover, .alert-top.callout .close-button:active {
  color: #fafafa;
}

@media screen and (max-width: 39.9375em) {
  .alert-top.callout .row {
    padding-left: .5em;
    padding-right: .5em;
  }
  .alert-top.callout .row .columns {
    padding-left: 0;
    padding-right: 2em;
  }
  .alert-top.callout h5, .alert-top.callout h6, .alert-top.callout p {
    font-size: .7em;
    text-align: left;
    padding-right: 2em;
  }
  .alert-top.callout .close-button {
    top: 0;
  }
}

.warn.callout {
  background: #C60F13;
  color: #fafafa;
  margin-bottom: 0;
  border: none;
}

.warn.callout .row {
  padding: 3.125em;
}

@media screen and (max-width: 39.9375em) {
  .warn.callout .row {
    padding: 0 .5em;
  }
}

.media-object.map {
  background-color: #00b2e2;
  padding: 20px;
  color: white;
}

@media screen and (max-width: 39.9375em) {
  .media-object.map {
    padding: 0;
    margin: 0;
    letter-spacing: initial;
  }
}

.media-object.map h1, .media-object.map h2, .media-object.map h3, .media-object.map h4 {
  color: #fafafa;
  line-height: 1;
}

.media-object.map .button {
  color: #192857;
  background-color: #fafafa;
  font-weight: 700;
  float: right;
}

.media-object.map .thumbnail {
  box-shadow: none;
  border: none;
  font-size: 40px;
  color: #192857;
}

@media screen and (max-width: 39.9375em) {
  .media-object.map .thumbnail {
    font-size: 20px;
  }
}

.button.map .align-middle {
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.button.map .shrink {
  width: auto;
}

.button.map .shrink.first {
  padding-right: 10px;
}

.button.map .shrink.last {
  padding-left: 10px;
}

#map {
  height: 75vh;
  max-height: 800px;
  width: 100%;
}

@media screen and (max-width: 63.9375em) {
  #map {
    min-height: 0;
    height: 300px;
  }
}

#map h1,
#map p,
#map a {
  color: #0a0a0a;
}

#map-canvas img {
  max-width: none !important;
}

.gm-style .gm-style-iw {
  width: 350px !important;
  top: 15px !important;
  left: 0px !important;
  background-color: #fff;
  box-shadow: 0 1px 6px rgba(178, 178, 178, 0.6);
  border: 1px solid rgba(72, 181, 233, 0.6);
  border-radius: 0;
}

@media screen and (max-width: 63.9375em) {
  .gm-style .gm-style-iw {
    width: 250px !important;
  }
}

#iw-container {
  margin-bottom: 10px;
}

@media screen and (max-width: 63.9375em) {
  #iw-container {
    margin-bottom: 0;
  }
}

#iw-container .iw-title {
  font-family: 'Open Sans Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  padding: 10px;
  background-color: #48b5e9;
  color: white;
  margin: 0;
  border-radius: 2px 2px 0 0;
}

@media screen and (max-width: 63.9375em) {
  #iw-container .iw-title {
    font-size: 12px;
    padding: 5px 10px;
  }
}

#iw-container .iw-content {
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
  margin-right: 1px;
  padding: 15px 5px 0 15px;
  max-height: 140px;
  overflow-y: scroll;
  overflow-x: hidden;
}

@media screen and (max-width: 63.9375em) {
  #iw-container .iw-content {
    font-size: 12px;
    padding: 5px 10px;
    max-height: 100px;
  }
}

.iw-content img {
  float: right;
  margin: 0 5px 5px 10px;
}

.iw-content p {
  margin-bottom: 10px;
}

.iw-subTitle {
  font-size: 16px;
  font-weight: 700;
  padding: 0;
}

@media screen and (max-width: 63.9375em) {
  .iw-subTitle {
    font-size: 12px;
  }
}

/* .clearfix { *zoom: 1; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }*/
.content-cntrd {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* background mixin (wip)
@mixin background($bg-color $bg-img_url $bg-attachment $bg-position_x $bg-position_y $bg-repeat $bg-size) {
    background-color:           $bg-color;
    background-image:       url($bg-img_url);
    background-attachment:      $bg-attachment;
    background-position:        $bg-position_x
                                $bg-position_y;
    background-repeat:          $bg-repeat;
    -webkit-background-size:    $bg-size;
       -moz-background-size:    $bg-size;
         -o-background-size:    $bg-size;
            background-size:    $bg-size;
}
*/
#newsletter {
  background-color: #c8922b;
  background-image: url("../../images/coa.png");
  background-repeat: no-repeat;
  background-position: center -250px;
  color: #fafafa;
  padding: 4em 0;
}

@media screen and (max-width: 39.9375em) {
  #newsletter {
    padding: 2em 0;
  }
}

#newsletter .sidebar-navigation-text {
  color: #fafafa;
}

#newsletter .flair {
  margin-bottom: .5em;
  background: #fafafa;
  padding: 15px;
  border-radius: 45px;
  font-size: 1.5rem;
  color: #c8922b;
}

#newsletter h1 {
  font-size: 14.4px !important;
  letter-spacing: 0.05em;
  color: #fafafa;
}

#newsletter p {
  color: #fafafa;
}

#newsletter a {
  color: #fafafa;
}

#newsletter a:hover {
  color: #fafafa;
}

@media screen and (min-width: 40em) {
  #newsletter .field-wrap {
    float: left;
    width: 25%;
    padding: 0 5px;
  }
  #newsletter .ninja-forms-all-fields-wrap #ninja_forms_field_6_div_wrap,
  #newsletter .ninja-forms-all-fields-wrap #ninja_forms_field_11_div_wrap {
    width: 50%;
  }
}

#newsletter input {
  border: 5px solid #c5902a;
  outline: 0;
  padding: 0 25px;
  min-height: 60px;
  font-weight: 100;
  font-size: 1em;
  letter-spacing: .1em;
  color: #192857;
  margin-bottom: 0;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
  box-shadow: none;
}

[data-whatinput="touch"] #newsletter input:focus,
[data-whatinput="touch"] #newsletter input:active,
[data-whatinput="mouse"] #newsletter input:focus,
[data-whatinput="mouse"] #newsletter input:active,
[data-whatinput="mouse"] #newsletter input:hover, #newsletter input:hover, #newsletter input:active {
  -webkit-box-shadow: 0 0 8px 3px #a67924;
  -moz-box-shadow: 0 0 8px 3px #a67924;
  -ms-box-shadow: 0 0 8px 3px #a67924;
  -o-box-shadow: 0 0 8px 3px #a67924;
  box-shadow: 0 0 8px 3px #a67924;
}

#newsletter input[type="submit"] {
  display: inline-block;
  position: relative;
  font-weight: 100;
  color: #fafafa;
  background-color: #192857;
  border: none;
  border-radius: 0;
  padding: 20px 0;
}

#newsletterModal, #newsletterModal2 {
  z-index: 10;
  color: #fafafa;
  background-color: #192857;
}

#newsletterModal h1, #newsletterModal h2, #newsletterModal h3, #newsletterModal h4, #newsletterModal h5, #newsletterModal h6, #newsletterModal p, #newsletterModal2 h1, #newsletterModal2 h2, #newsletterModal2 h3, #newsletterModal2 h4, #newsletterModal2 h5, #newsletterModal2 h6, #newsletterModal2 p {
  color: #fafafa;
}

#newsletterModal .flair, #newsletterModal2 .flair {
  margin-bottom: 1em;
}

#newsletterModal .flair .fa-inverse, #newsletterModal2 .flair .fa-inverse {
  color: #192857;
}

#newsletterModal .ninja-forms-cont input[type="submit"], #newsletterModal2 .ninja-forms-cont input[type="submit"] {
  background: #c8922b;
  border-color: #c8922b;
  color: #fafafa;
  width: 100%;
}

#newsletterModal .ninja-forms-cont .ninja-forms-field-error p, #newsletterModal2 .ninja-forms-cont .ninja-forms-field-error p {
  background: #ef3a4c;
  color: #fafafa;
}

#newsletterModal:focus, #newsletterModal2:focus {
  outline: none;
}

#newsletterModal [type='email']:focus, #newsletterModal [type='text']:focus, #newsletterModal2 [type='email']:focus, #newsletterModal2 [type='text']:focus {
  box-shadow: none;
}

@media screen and (min-width: 40em) {
  #newsletterModal .ninja-forms-all-fields-wrap #ninja_forms_field_6_div_wrap, #newsletterModal2 .ninja-forms-all-fields-wrap #ninja_forms_field_6_div_wrap {
    width: 100%;
  }
  #newsletterModal .ninja-forms-all-fields-wrap #ninja_forms_field_7_div_wrap, #newsletterModal2 .ninja-forms-all-fields-wrap #ninja_forms_field_7_div_wrap {
    width: 60%;
  }
  #newsletterModal .ninja-forms-all-fields-wrap #ninja_forms_field_8_div_wrap, #newsletterModal2 .ninja-forms-all-fields-wrap #ninja_forms_field_8_div_wrap {
    width: 40%;
  }
}

@media screen and (max-width: 39.9375em) {
  #newsletterModal, #newsletterModal2 {
    height: inherit;
    min-height: inherit;
    width: 95%;
    margin: 0 auto;
  }
}

.ninja-forms-required-items, .input-counter {
  display: none;
}

.ninja-forms-response-msg {
  font-weight: bold;
  margin-bottom: 10px;
}

.ninja-forms-field-error p {
  font-weight: bold;
  background: rgba(255, 255, 255, 0.32);
  border-radius: 50px;
  padding: 3px 20px 0;
  display: inline-block;
}

.ninja-forms-cont input[type="submit"] {
  border-radius: 0;
  border-style: solid;
  border-width: 2px;
  cursor: pointer;
  line-height: normal;
  text-align: center;
  font-size: 1rem;
  display: inline-block;
  position: relative;
  letter-spacing: .12em;
  text-transform: uppercase;
  background-color: #192857;
  border-color: #192857;
  width: 100%;
  color: #fafafa;
  border: none;
  transition: all .2s ease;
  padding: 20px 0;
}

.pagination {
  padding-left: 0;
  margin: 0 auto;
  border-radius: 4px;
  text-align: center;
  display: table;
}

@media screen and (max-width: 39.9375em) {
  .pagination {
    margin-bottom: 3rem;
  }
}

.pagination li {
  display: inline;
}

.pagination li:first-child, .pagination li:last-child {
  display: inline;
}

.pagination li a, .pagination li span {
  padding: 1.25rem;
  font-size: 1.25rem;
  line-height: 1.5;
  position: relative;
  float: left;
  margin-left: -1px;
  color: #003146;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #ebebeb;
  font-weight: 500;
}

@media screen and (max-width: 39.9375em) {
  .pagination li a, .pagination li span {
    padding: 1rem;
    font-size: .85rem;
  }
}

.pagination li a.current, .pagination li span.current {
  padding: 1.25rem;
  font-size: 1.25rem;
  color: #fff;
}

@media screen and (max-width: 39.9375em) {
  .pagination li a.current, .pagination li span.current {
    padding: 1rem;
    font-size: .85rem;
  }
}

[data-whatinput="touch"] .pagination li a:focus,
[data-whatinput="touch"] .pagination li a:active,
[data-whatinput="mouse"] .pagination li a:focus,
[data-whatinput="mouse"] .pagination li a:active,
[data-whatinput="mouse"] .pagination li a:hover, .pagination li a:hover, .pagination li a:active, [data-whatinput="touch"] .pagination li span:focus,
[data-whatinput="touch"] .pagination li span:active,
[data-whatinput="mouse"] .pagination li span:focus,
[data-whatinput="mouse"] .pagination li span:active,
[data-whatinput="mouse"] .pagination li span:hover, .pagination li span:hover, .pagination li span:active {
  z-index: 3;
  color: #fff;
  background-color: #c8922b;
  border-color: #c8922b;
}

.pagination li .dots {
  display: none;
}

.pagination li .active a,
.pagination li .active a:focus,
.pagination li .active a:hover,
.pagination li .active span,
.pagination li .active span:focus,
.pagination li .active span:hover {
  display: block !important;
  z-index: 3;
  color: #fff;
  cursor: default;
  background-color: #192857;
  border-color: #192857;
}

.pagination li .disabled a,
.pagination li .disabled a:focus,
.pagination li .disabled a:hover,
.pagination li .disabled span,
.pagination li .disabled span:focus,
.pagination li .disabled span:hover {
  color: #b8b7b4;
  cursor: not-allowed;
  background-color: #fff;
  border-color: #ebebeb;
}

.panel .widget {
  border-style: solid;
  border-width: 1px;
  border-color: #ebebeb;
  background-color: #e1e1e1;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}

.panel .widget a {
  color: #c8922b;
  text-decoration: underline;
}

.panel .widget ul {
  border: none;
  background-color: transparent;
  margin-left: 1.1rem;
}

.panel .widget li {
  list-style-type: disc;
  padding-top: 4px;
  padding-bottom: 4px;
}

.panel .widget h3,
.panel .widget h4 {
  border-bottom: 1px solid #192857;
  padding-bottom: 4px;
  margin-bottom: 4px;
  margin-top: 8px;
}

.panel .widget h3 {
  font-size: 1.5rem;
  color: #192857;
}

.panel .widget h4 {
  font-size: 1rem;
  font-weight: 600;
  border-bottom: none;
  color: #464646;
}

.panel .widget .contact-panel {
  min-height: auto !important;
  background-color: #ebebeb !important;
  color: #192857 !important;
}

.panel .widget.callout > :first-child,
.panel .widget > :first-child {
  margin-top: 0;
}

.panel .widget > :last-child {
  margin-bottom: 0;
}

.panel .widget h1, .panel .widget h2, .panel .widget h3, .panel .widget h4, .panel .widget h5, .panel .widget h6 {
  line-height: 1;
  margin-bottom: 0.625rem;
}

.panel .widget h1.subheader, .panel .widget h2.subheader, .panel .widget h3.subheader, .panel .widget h4.subheader, .panel .widget h5.subheader, .panel .widget h6.subheader {
  line-height: 1.4;
}

.card_links .data-list-element a {
  padding: 0.25em 0.5em;
  margin-bottom: 0.5em;
  display: block;
  position: relative;
  color: #192857;
  background: #e1e1e1;
  border-left: 0.1875em solid #00b2e2;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.card_links .data-list-element a span {
  margin-right: 1em;
}

.card_links .data-list-element a.no_ext:before {
  content: "";
}

.card_links .data-list-element a:hover {
  background: #00b2e2;
  color: #fafafa;
}

@media screen and (max-width: 39.9375em) {
  .card_links .data-list-element a {
    font-size: 0.9em;
    line-height: 1.2em;
    padding: 1em;
  }
}

.nav-is-open {
  position: fixed !important;
  width: 100%;
}

.nav {
  width: 100%;
  z-index: 3;
  background: #fafafa;
  /* NAV: Links + Logo
    ------------------------------------------------------ */
}

.nav .nav-container {
  box-shadow: 0 0 5px rgba(70, 70, 70, 0.5);
}

.nav ul {
  display: block;
  list-style: none;
  margin: auto;
  line-height: 1;
  max-height: 65px;
  /* NAV: dropdowns */
}

.nav ul li {
  position: relative;
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  /* activate nav dropdowns */
}

.nav ul li > a {
  display: block;
  padding: 25px 5px;
  color: #192857;
  background: transparent;
  font-weight: 700;
  -webkit-transition: all 150ms ease;
  -moz-transition: all 150ms ease;
  -o-transition: all 150ms ease;
  transition: all 150ms ease;
}

@media screen and (max-width: 63.9375em) {
  .nav ul li > a {
    padding: 0 5px;
  }
}

[data-whatinput="touch"] .nav ul li > a:focus,
[data-whatinput="touch"] .nav ul li > a:active,
[data-whatinput="mouse"] .nav ul li > a:focus,
[data-whatinput="mouse"] .nav ul li > a:active,
[data-whatinput="mouse"] .nav ul li > a:hover, .nav ul li > a:hover, .nav ul li > a:active {
  color: #00b2e2;
}

.nav ul li > a.logo {
  padding: 0 15px;
  -webkit-transform: scale(0.95);
  -moz-transform: scale(0.95);
  -ms-transform: scale(0.95);
  -o-transform: scale(0.95);
  transform: scale(0.95);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0) scale(1, 1);
  -moz-transform: translateZ(0) scale(1, 1);
  -ms-transform: translateZ(0) scale(1, 1);
  -o-transform: translateZ(0) scale(1, 1);
  transform: translateZ(0) scale(1, 1);
}

.nav ul li > a.logo i {
  text-transform: none;
}

.nav ul li > a.logo img {
  max-height: 45px;
  float: left;
  padding: 3px 0 3px 10px;
}

@media only screen and (max-width: 68em) {
  .nav ul li > a.logo img {
    padding: 0;
  }
}

[data-whatinput="touch"] .nav ul li > a.logo:focus,
[data-whatinput="touch"] .nav ul li > a.logo:active,
[data-whatinput="mouse"] .nav ul li > a.logo:focus,
[data-whatinput="mouse"] .nav ul li > a.logo:active,
[data-whatinput="mouse"] .nav ul li > a.logo:hover, .nav ul li > a.logo:hover, .nav ul li > a.logo:active {
  color: #192857;
}

.nav ul li > a.loc {
  line-height: 1em;
  height: 62px;
  text-align: right;
}

.nav ul li > a.loc span, .nav ul li > a.loc i {
  display: inline-block;
}

.nav ul li > a.loc i {
  font-size: 2em;
  padding-left: 8px;
  vertical-align: top;
}

.nav ul li.active a {
  color: #404040;
  background: #ebebeb;
}

.nav ul li:hover > ul {
  display: block;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}

.nav ul ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 0;
}

.nav ul ul li {
  float: none;
  width: 200px;
  background: #e1e1e1;
}

.nav ul ul li a {
  color: #404040;
}

.nav ul ul li.active a {
  color: #404040;
  background: #b8b7b4;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}

.nav ul ul a {
  line-height: 120%;
  padding: 10px 15px;
  text-align: left;
}

.nav .navitem .menulabel {
  padding-top: 8px;
  font-size: 10.512px;
  letter-spacing: 0.72px;
}

@media screen and (max-width: 63.9375em) {
  .nav .navitem {
    font-size: .73em;
    font-weight: 300;
    padding: 13px 5px;
  }
  .nav .navitem .fa {
    font-size: 22px;
    display: block;
  }
  .nav .navitem span {
    display: block;
    padding-top: 5px;
  }
  [data-whatinput="touch"] .nav .navitem:focus,
  [data-whatinput="touch"] .nav .navitem:active,
  [data-whatinput="mouse"] .nav .navitem:focus,
  [data-whatinput="mouse"] .nav .navitem:active,
  [data-whatinput="mouse"] .nav .navitem:hover, .nav .navitem:hover, .nav .navitem:active {
    color: #c8922b;
  }
}

.nav .google-translate {
  padding-left: 10px;
  cursor: pointer;
}

.nav .right {
  float: right;
  padding-right: 10px;
}

.nav .right .nav-right-hidden {
  display: inline-block;
}

.nav .left {
  float: left;
}

@media only screen and (max-width: 68em) {
  .nav .row {
    padding-left: 0.25em;
    padding-right: 0.25em;
  }
}

.mobile-only {
  display: none;
}

@media only screen and (max-width: 68em) {
  .mobile-only {
    display: block;
  }
}

/* NAV: MOBILE TRIGGER
--------------------------------------- */
.nav-wrapper {
  padding: 10px;
  background: #c8922b;
}

.nav .nav-trigger {
  display: block !important;
  float: left;
  width: 45px;
  height: 45px;
  padding: 0;
  cursor: pointer;
}

.nav .nav-trigger.nav-open {
  position: relative;
}

.nav .nav-trigger.nav-open .inner, .nav .nav-trigger.nav-open .inner::before, .nav .nav-trigger.nav-open .inner::after {
  background-color: #fff;
  content: "";
  display: block;
  height: 3px;
  width: 25px;
  transition: all .5s ease;
  margin: 0 auto;
}

.nav .nav-trigger.nav-open .inner {
  position: relative;
  top: 15px;
}

.nav .nav-trigger.nav-open .inner::before {
  margin-top: -6px;
  position: absolute;
}

.nav .nav-trigger.nav-open .inner::after {
  margin-top: 6px;
  position: absolute;
}

.nav .nav-trigger.active .inner {
  background-color: transparent;
  left: 7%;
}

.nav .nav-trigger.active .inner::before, .nav .nav-trigger.active .inner::after {
  transform: rotate(45deg);
  transform-origin: 4px;
}

.nav .nav-trigger.active .inner::after {
  transform: rotate(-45deg);
}

.nav .nav-trigger .menulabel {
  text-transform: uppercase;
  font-weight: normal;
  font-size: 10.512px;
  letter-spacing: 0.72px;
  color: #fff;
  position: relative;
  bottom: -25px;
}

.menulabel {
  text-transform: uppercase;
  font-weight: normal;
  font-size: 10px;
  letter-spacing: 0;
}

/* NAV: mobile left slideout menu
--------------------------------------- */
#nav-menu {
  position: fixed;
  left: -100%;
  z-index: 2;
  background: #fafafa;
  color: #192857;
  -webkit-transition: all 305ms ease;
  -moz-transition: all 305ms ease;
  -o-transition: all 305ms ease;
  transition: all 305ms ease;
  height: 100%;
  width: 100%;
  padding: 30px;
  padding-bottom: 130px;
  overflow-x: scroll;
  /* SOCIAL ICONS */
}

#nav-menu.active {
  left: 0;
}

#nav-menu ul {
  margin: 0;
}

#nav-menu ul li {
  list-style: none;
  margin-bottom: 30px;
}

#nav-menu a {
  color: #192857;
  -webkit-transition: all 150ms ease;
  -moz-transition: all 150ms ease;
  -o-transition: all 150ms ease;
  transition: all 150ms ease;
}

[data-whatinput="touch"] #nav-menu a:focus,
[data-whatinput="touch"] #nav-menu a:active,
[data-whatinput="mouse"] #nav-menu a:focus,
[data-whatinput="mouse"] #nav-menu a:active,
[data-whatinput="mouse"] #nav-menu a:hover, #nav-menu a:hover, #nav-menu a:active {
  color: #00b2e2;
}

#nav-menu hr {
  margin-bottom: 30px;
}

#nav-menu .soc p {
  font-size: 0.85em;
  text-align: left;
  vertical-align: middle;
  color: #e1e1e1;
}

#nav-menu .soc a {
  -webkit-transition: ease-in-out all 0.3s;
  -moz-transition: ease-in-out all 0.3s;
  -o-transition: ease-in-out all 0.3s;
  transition: ease-in-out all 0.3s;
}

#nav-menu .soc a i {
  margin-left: 0.5em;
  padding: 0.25em;
  vertical-align: middle;
  text-align: center;
  font-size: 0.85em;
  background: #fafafa;
  color: #404040;
  border-radius: 4px;
  min-width: 1.875em;
}

[data-whatinput="touch"] #nav-menu .soc a:focus,
[data-whatinput="touch"] #nav-menu .soc a:active,
[data-whatinput="mouse"] #nav-menu .soc a:focus,
[data-whatinput="mouse"] #nav-menu .soc a:active,
[data-whatinput="mouse"] #nav-menu .soc a:hover, #nav-menu .soc a:hover, #nav-menu .soc a:active {
  color: #598db2;
}

.search-alt a {
  letter-spacing: .1em;
  line-height: 2.05;
  font-size: .65em;
  font-weight: 300;
}

.search-alt a .fa {
  font-size: 22px;
}

.navbar-text {
  line-height: 21.32px;
  font-size: 10.4px;
  font-weight: 300;
  letter-spacing: 1.04px;
  color: #003146;
  -moz-text-size-adjust: 100%;
}

.navitem-search {
  font-size: 1em;
  color: #64A70B;
  display: inline-block;
  padding-right: .5em;
}

.desktop-search-wrap {
  width: 150px;
  border: 2px solid #00b2e2;
  font-size: 1em;
  border-radius: 25px;
  padding: .1em .5em .1em 1em;
}

.desktop-search-wrap input {
  width: 100px !important;
  display: inline-block;
  margin: 0;
  font-size: .8em;
  padding: 0;
  color: #464646;
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: 0;
  border-radius: 0;
  transition: ease-in-out .3s;
}

.desktop-search-wrap input:focus {
  color: #192857;
  background-color: #fafafa;
  box-shadow: none;
  border: none;
}

.desktop-search-wrap button.search-button {
  height: 1.5em;
  padding-right: .5em;
}

/* LANGUAGE BAR: above regular navigation
--------------------------------------- */
.language-bar {
  display: block;
  left: 0;
  height: 35px;
  width: 100%;
  float: left;
}

.language-bar p {
  margin: 0;
  line-height: 35px;
}

/* Language Bar */
/****************/
.language-bar {
  font-weight: 400;
  padding: 0.25rem .5rem;
  max-width: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ebebeb;
}

.language-bar .h3 {
  margin-bottom: 0;
}

.language-bar div {
  font-size: 0.8rem;
  line-height: 0.9em;
}

.language-bar a {
  color: #333;
  display: inline-block;
}

.language-bar-left {
  margin-right: auto;
  max-width: 60%;
}

.language-bar-left a {
  padding-left: .5em;
}

[data-whatinput="touch"] .language-bar-left a:focus,
[data-whatinput="touch"] .language-bar-left a:active,
[data-whatinput="mouse"] .language-bar-left a:focus,
[data-whatinput="mouse"] .language-bar-left a:active,
[data-whatinput="mouse"] .language-bar-left a:hover, .language-bar-left a:hover, .language-bar-left a:active {
  text-decoration: underline;
}

.language-bar-left a,
.language-bar-left span {
  line-height: 1.1rem;
}

.lang-logo, .agency-logo.hide-for-large {
  height: 25px;
  width: auto;
}

a#btn-language {
  word-break: normal;
}

#google_translate_element {
  position: absolute;
  display: inline-block;
  opacity: 0;
  right: 0;
  top: .5em;
  height: 2em;
}

#searchModal {
  padding: 2em;
  width: 100%;
  background-color: #fafafa;
}

#searchModal .modalWrapper {
  display: flex;
  height: 100%;
  align-content: center;
  align-items: center;
  justify-content: center;
  font-size: 2em;
}

#searchModal .modalWrapper .fa {
  font-size: 1.5rem;
}

#searchModal .modalWrapper form {
  width: 100%;
}

#searchModal .modalWrapper input {
  font-size: 1em;
  background: transparent;
  padding: 0 .25em;
  margin-bottom: 0;
  line-height: 1.25em;
  -webkit-appearance: none;
  color: #192857;
  background: #fafafa;
  border: 0;
  box-shadow: none;
  outline: 0;
  border-radius: 0;
}

#searchModal .modalWrapper input:focus {
  -webkit-appearance: none;
}

@media screen and (max-width: 39.9375em) {
  #searchModal .modalWrapper {
    font-size: 1.25em;
  }
  #searchModal .modalWrapper .search-bar-wrapper {
    margin-bottom: 6em;
  }
}

@media screen and (min-width: 40em) {
  #searchModal .modalWrapper .search-bar-wrapper {
    margin-bottom: 4em;
  }
}

#searchModal button {
  font-size: inherit;
}

.shortcode-expand {
  float: left;
  display: block;
  width: 100%;
}

.shortcode-expand ul {
  list-style-type: none;
  list-style: none;
  padding-left: 0;
  background: transparent;
  list-style-type: none !important;
}

.shortcode-expand ul ul {
  list-style: disc;
  padding-left: 2.5em;
}

.shortcode-expand .accordion-title {
  font-size: inherit;
  border: 3px solid #c8922b;
  padding: 1rem;
  margin: 1.25em 0;
  text-decoration: none !important;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.shortcode-expand .accordion-title:hover, .shortcode-expand .accordion-title:focus {
  background-color: inherit;
  color: #003146;
}

.shortcode-expand .accordion-item.is-active .accordion-title {
  background-color: #c8922b;
  color: #fafafa;
}

.shortcode-expand .accordion-item.is-active .accordion-title .fa {
  -webkit-transform: rotateX(180deg);
  transform: rotateX(180deg);
}

.shortcode-expand .accordion-item.is-active .accordion-title:hover, .shortcode-expand .accordion-item.is-active .accordion-title:focus {
  color: #fafafa;
}

.shortcode-expand .accordion-content {
  border: none;
  background-color: transparent;
  padding: 0;
  margin: 0 0 1.25em;
}

.shortcode-expand .accordion-content p:last-child {
  margin-bottom: 0;
}

.shortcode-expand :last-child:not(.is-active) > .accordion-title {
  border-bottom: 3px solid #c8922b;
}

.shortcode-expand :last-child > .accordion-content:last-child {
  border-bottom: none;
}

.shortcode-expand .accordion-title::before {
  content: none;
}

.wrapp_featured_section .shortcode-expand .accordion-title .fa {
  color: #fafafa;
}

.wrapp_featured_section .shortcode-expand .accordion-title:hover, .wrapp_featured_section .shortcode-expand .accordion-title:focus {
  color: #fafafa;
}

.wrapp_featured_section .shortcode-expand .accordion-item {
  color: #fafafa;
}

.wrapp_featured_section .shortcode-expand .accordion-item a {
  color: #fafafa;
}

a {
  color: #00b2e2;
  -webkit-transition: color 0.2s ease;
  -moz-transition: color 0.2s ease;
  -o-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

.featured a {
  color: #fafafa;
  text-decoration: underline;
}

[data-whatinput="touch"] .featured a:focus,
[data-whatinput="touch"] .featured a:active,
[data-whatinput="mouse"] .featured a:focus,
[data-whatinput="mouse"] .featured a:active,
[data-whatinput="mouse"] .featured a:hover, .featured a:hover, .featured a:active {
  color: #fafafa !important;
}

.content a:not([class]),
#content #main a:not([class]) {
  text-decoration: underline;
  word-wrap: break-word;
}

.content a:not([class]):hover, .content a:not([class]):focus,
#content #main a:not([class]):hover,
#content #main a:not([class]):focus {
  color: #00b2e2;
}

.button, input[type='button'], .btn.btn-success, .files_uploaded .delete {
  letter-spacing: .12em;
  position: relative;
  padding-bottom: 15px;
  text-transform: uppercase;
  color: #c8922b;
}

.button:hover, input:hover[type='button'], .btn.btn-success:hover, .files_uploaded .delete:hover {
  background-color: #c8922b;
  color: #fafafa;
}

.secondary.button, input.secondary[type='button'], .secondary.btn.btn-success, .files_uploaded .secondary.delete, .success.button, input.success[type='button'], .success.btn.btn-success, .files_uploaded .success.delete, .alert.button, input.alert[type='button'], .alert.btn.btn-success, .files_uploaded .alert.delete, .warning.button, input.warning[type='button'], .warning.btn.btn-success, .files_uploaded .warning.delete, .info.button, input.info[type='button'], .info.btn.btn-success, .files_uploaded .info.delete {
  color: #fafafa;
  border: none;
}

.secondary.button:hover, input.secondary:hover[type='button'], .secondary.btn.btn-success:hover, .files_uploaded .secondary.delete:hover, .success.button:hover, input.success:hover[type='button'], .success.btn.btn-success:hover, .files_uploaded .success.delete:hover, .alert.button:hover, input.alert:hover[type='button'], .alert.btn.btn-success:hover, .files_uploaded .alert.delete:hover, .warning.button:hover, input.warning:hover[type='button'], .warning.btn.btn-success:hover, .files_uploaded .warning.delete:hover, .info.button:hover, input.info:hover[type='button'], .info.btn.btn-success:hover, .files_uploaded .info.delete:hover {
  color: #fafafa;
}

.expand.button, input.expand[type='button'], .expand.btn.btn-success, .files_uploaded .expand.delete {
  padding: 15px 25px;
}

input[type='button'], .btn.btn-success {
  background-color: #CA9A31 !important;
  color: #FFF !important;
  padding: 15px;
  letter-spacing: 2px;
}

.btn-white {
  border-color: #fafafa;
  color: #fafafa;
}

.btn-white:hover {
  background: #fafafa;
  color: #192857;
}

.btn-blue-bright {
  background-color: #00b2e2 !important;
  color: #FFF !important;
  padding: 15px;
  letter-spacing: 1px;
  text-align: left;
  font-weight: 700;
  border: none;
}

.files_uploaded .delete {
  background-color: #ef3a4c !important;
  color: #FFF !important;
  padding: 15px;
  letter-spacing: 1px;
}

.more {
  width: 368px;
  max-width: 100%;
  padding-left: 25px;
  text-align: left;
  position: relative;
}

.more:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 14px;
  height: 19px;
  background-position: -60px -90px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  .more:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.more:before {
  position: absolute;
  right: 20px;
  -webkit-transition: right 0s ease, width 0s ease, opacity 0.2s;
  -moz-transition: right 0s ease, width 0s ease, opacity 0.2s;
  -o-transition: right 0s ease, width 0s ease, opacity 0.2s;
  transition: right 0s ease, width 0s ease, opacity 0.2s;
}

.more:hover:before {
  background-position: -60px -60px;
  right: -2px;
  width: 1px;
  opacity: 0;
  -webkit-transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
  -moz-transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
  -o-transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
  transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
}

.more.white:before {
  background-position: -60px -60px;
}

.more.white:hover:before {
  background-position: -60px -90px;
}

.more.white-sm:before {
  background-position: -30px -90px;
  width: 8px;
  height: 10px;
  margin-top: 5px;
  right: 10px;
}

.more.tiny {
  width: 206px;
  font-size: 0.8rem;
  padding-bottom: 0.6rem;
}

.more.tiny:before {
  right: 10px;
  top: 8px;
}

@media screen and (max-width: 39.9375em) {
  .more {
    width: 100%;
  }
}

.nf-fu-progress-bar {
  background-color: #00b2e2;
}

.files_uploaded .delete {
  font-size: 12px;
  font-weight: 400;
  padding: 5px 10px;
  margin-left: 5px;
  color: #ef3a4c !important;
  position: relative;
}

.files_uploaded .delete:after {
  content: "REMOVE";
  color: white;
  position: absolute;
  left: 8px;
  top: 3px;
}

#respond {
  margin-top: 50px;
  padding-top: 50px;
  border-top: solid 1px #e1e1e1;
}

#respond .form-submit {
  margin-bottom: 0;
}

#respond .form-submit input {
  outline: none;
  border: none;
  text-transform: uppercase;
  background: #192857;
  color: #fafafa;
  display: inline-block;
  font-size: 1em;
  font-weight: normal;
  padding: 10px 15px;
  cursor: pointer;
  -webkit-transition: background ease 0.2s;
  -moz-transition: background ease 0.2s;
  -o-transition: background ease 0.2s;
  transition: background ease 0.2s;
}

#respond .form-submit input:hover {
  background: #0e162f;
}

@media screen and (max-width: 39.9375em) {
  .prev_next_links {
    margin-bottom: 2em;
  }
}

.pa_gov_event + .pa_gov_event {
  padding-top: 2em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last,
.pa_gov_event {
  margin-bottom: 25px;
  background: #fafafa;
}

.tribe-events-loop .type-tribe_events.tribe-events-last .row,
.pa_gov_event .row {
  padding: 25px 10px;
  margin: 0;
  border: solid 1px #0a0a0a;
  border-bottom: none;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-date,
.pa_gov_event-date {
  text-align: center;
}

@media screen and (max-width: 39.9375em) {
  .tribe-events-loop .type-tribe_events.tribe-events-last-date,
  .pa_gov_event-date {
    font-size: .8rem;
  }
}

.tribe-events-loop .type-tribe_events.tribe-events-last-date span,
.pa_gov_event-date span {
  display: block;
  text-transform: uppercase;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-month,
.pa_gov_event-month {
  color: #c8922b;
  font-size: .9em;
  font-weight: 600;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-day,
.pa_gov_event-day {
  font-size: 3.5em;
  line-height: 1.1em;
  font-weight: 600;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-year,
.pa_gov_event-year {
  font-size: .9em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-time,
.pa_gov_event-time {
  font-size: .9em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-time .fa,
.pa_gov_event-time .fa {
  color: #c8922b;
  font-size: 1.25em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-title,
.pa_gov_event-title {
  font-weight: bold;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-title .fa,
.pa_gov_event-title .fa {
  font-size: 75%;
  margin-left: 10px;
}

[data-whatinput="touch"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:focus,
[data-whatinput="touch"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:active,
[data-whatinput="mouse"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:focus,
[data-whatinput="mouse"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:active,
[data-whatinput="mouse"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:hover, .tribe-events-loop .type-tribe_events.tribe-events-last-title a:hover, .tribe-events-loop .type-tribe_events.tribe-events-last-title a:active, [data-whatinput="touch"]
.pa_gov_event-title a:focus,
[data-whatinput="touch"]
.pa_gov_event-title a:active,
[data-whatinput="mouse"]
.pa_gov_event-title a:focus,
[data-whatinput="mouse"]
.pa_gov_event-title a:active,
[data-whatinput="mouse"]
.pa_gov_event-title a:hover,
.pa_gov_event-title a:hover,
.pa_gov_event-title a:active {
  color: #00b2e2;
  text-decoration: underline;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar,
.pa_gov_event-shareBar {
  border: solid 2px #c8922b;
  padding: 10px 20px;
}

@media screen and (max-width: 39.9375em) {
  .tribe-events-loop .type-tribe_events.tribe-events-last-shareBar,
  .pa_gov_event-shareBar {
    padding: 10px;
  }
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .share-title,
.pa_gov_event-shareBar .share-title {
  font-size: .8em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .pull-right span,
.pa_gov_event-shareBar .pull-right span {
  display: inline-block;
  margin-top: 3px;
  margin-left: 8px;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .pull-right a,
.pa_gov_event-shareBar .pull-right a {
  color: #c8922b;
  font-size: .9em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .fa,
.pa_gov_event-shareBar .fa {
  font-size: 1.25em;
  color: #c8922b;
  margin-right: 10px;
}

@media screen and (max-width: 39.9375em) {
  .tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .fa,
  .pa_gov_event-shareBar .fa {
    font-size: .8em;
    margin-right: 5px;
  }
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .cal-link,
.pa_gov_event-shareBar .cal-link {
  margin: 0;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .cal-link a,
.pa_gov_event-shareBar .cal-link a {
  font-size: .8em;
  display: inline-block;
  margin: 0;
  float: none;
  color: #c8922b;
  background: none;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .cal-link .fa,
.pa_gov_event-shareBar .cal-link .fa {
  color: #192857;
}

.events-search-header {
  padding: 20px 30px 15px;
  margin: 0;
  border: solid 1px #0a0a0a;
  background: #fafafa;
  margin-bottom: 20px;
}

.events-search-header h1 {
  font-weight: normal;
  margin: 0;
  padding: 0;
}

.tribe-events-venue-details {
  padding-top: 3px;
  font-weight: normal;
  font-size: .8em;
}

.tribe-events-venue-details .fa {
  color: #c8922b;
  font-size: 1.25em;
}

.tribe-events-venue-details abbr {
  font-weight: normal;
}

.tribe-events-venue-details a {
  color: #c8922b;
  margin: -2px 0 0 5px;
}

.tribe-events-venue-details a abbr.tribe-events-abbr {
  color: #192857;
  cursor: pointer;
}

.tribe-events-sub-nav {
  margin-top: 40px;
}

.tribe-events-sub-nav .tribe-events-nav-previous, .tribe-events-sub-nav .tribe-events-nav-next {
  list-style: none;
  display: inline;
  text-align: center;
  margin: 0 5px;
}

.tribe-events-sub-nav .tribe-events-nav-previous a, .tribe-events-sub-nav .tribe-events-nav-next a {
  display: inline-block;
  color: #000;
  padding: 5px 10px;
  height: 35px;
  border: solid 1px #a3a3a3;
  line-height: 1.8em;
  text-transform: uppercase;
}

.tribe-events-sub-nav .tribe-events-nav-previous a span, .tribe-events-sub-nav .tribe-events-nav-next a span {
  display: none;
}

.tribe-events-sub-nav .tribe-events-nav-previous a:hover, .tribe-events-sub-nav .tribe-events-nav-next a:hover {
  background-color: #ededed;
}

.featured-event .title-container {
  padding: 0 30px;
}

.featured-event .news-post-title {
  padding-top: 0;
  padding-bottom: 20px;
}

.featured-event .pa_gov_event-shareBar {
  background: #c8922b;
  color: #fafafa;
}

.featured-event .pa_gov_event-shareBar .fa {
  font-size: 1.25em;
  color: #c8922b;
}

.featured-event .pa_gov_event-shareBar a {
  color: #fafafa;
}

footer {
  position: relative;
  position: relative;
}

footer ul {
  margin: 0;
}

footer ul li {
  list-style-type: none;
}

@media only screen and (max-width: 68em) {
  footer .columns {
    width: 100% !important;
  }
}

footer #site-footer-nav {
  text-align: center;
  background: #fafafa;
  border-top: solid 2px #c4c4c4;
}

footer #site-footer-nav li {
  display: inline-block;
  padding: 7px 0px;
}

footer #site-footer-nav li a {
  padding: 7px 14px;
  display: inline-block;
  color: #0a0a0a;
  font-size: 1em;
  letter-spacing: .08em;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
  -webkit-transition: background 0.2s ease, color 0.2s ease;
  -moz-transition: background 0.2s ease, color 0.2s ease;
  -o-transition: background 0.2s ease, color 0.2s ease;
  transition: background 0.2s ease, color 0.2s ease;
}

footer #site-footer-nav li a:hover {
  background: #ebebeb;
  color: #707070;
}

footer #site-footer-nav li a:active {
  background: #e6e6e6;
}

footer #copyright {
  background: #003146;
  padding: 8px 20px;
  color: #fafafa;
  width: 100%;
  min-width: 100%;
}

footer #copyright a,
footer #copyright p {
  font-size: .65em;
  letter-spacing: .1em;
  margin: 0;
}

footer #copyright p {
  float: right;
  text-transform: initial;
  padding-top: 0;
  font-size: .75em;
}

@media only screen and (max-width: 68em) {
  footer #copyright p {
    text-align: right;
    padding-right: 0;
  }
}

footer #copyright li:first-child a,
footer #copyright ul {
  padding-left: 0;
}

@media only screen and (max-width: 68em) {
  footer #copyright li {
    width: 100%;
  }
}

footer #copyright li a {
  color: #fafafa;
  border-right: solid 1px #666;
  padding: 3px 20px;
  float: left;
}

[data-whatinput="touch"] footer #copyright li a:focus,
[data-whatinput="touch"] footer #copyright li a:active,
[data-whatinput="mouse"] footer #copyright li a:focus,
[data-whatinput="mouse"] footer #copyright li a:active,
[data-whatinput="mouse"] footer #copyright li a:hover, footer #copyright li a:hover, footer #copyright li a:active {
  color: #1CB0B5;
  text-decoration: underline;
}

@media only screen and (max-width: 68em) {
  footer #copyright li a {
    border: none;
    padding: 0;
    width: 100%;
    text-align: left;
    text-transform: capitalize;
    text-decoration: underline;
    font-size: .9em;
    line-height: 2;
  }
}

footer #copyright li:last-child a {
  border-right: 0;
}

@media only screen and (max-width: 68em) {
  footer #copyright {
    background: #2e2e2e;
    padding: 0 40px 40px 40px;
  }
}

@media only screen and (max-width: 68em) {
  footer #copyright {
    text-align: left;
  }
  footer #copyright p {
    padding-left: 0;
    text-align: left;
  }
  footer #copyright ul {
    width: 100%;
    padding: 0;
  }
  footer #copyright ul li {
    float: none;
    display: inline-block;
  }
}

.footer-nav.-stacked {
  padding: 50px 0;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .row {
    padding: 0 20px;
  }
}

.footer-nav.-stacked .menu-item {
  display: inline-block;
  width: 100%;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-menu {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media screen and (max-width: 320px) {
  .footer-nav.-stacked .footer-menu {
    padding: 0;
  }
}

.footer-nav.-stacked .footer-left {
  padding-right: 30px;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-left {
    width: 100%;
    padding: 0;
  }
  .footer-nav.-stacked .footer-left .menu-link {
    width: 100%;
    text-align: left;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-left .columns {
    padding: 0;
  }
}

.footer-nav.-stacked .footer-right {
  padding-left: 30px;
  border-left-width: 1px;
  border-left-style: solid;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-right {
    width: 100%;
    padding-left: 0;
    border-left: none;
    border-bottom: 1px solid #fafafa;
    border-top: 1px solid #fafafa;
    padding-top: 10px;
    padding-bottom: 10px;
    margin-top: 10px;
    margin-bottom: 15px;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-right .columns {
    border-bottom: 1px solid #fafafa;
    padding-bottom: 10px;
    margin-bottom: 10px;
    padding-left: 0;
  }
  .footer-nav.-stacked .footer-right .columns:last-child {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-img {
    width: 100%;
    text-align: center;
  }
}

.footer-nav.-stacked .footer-img img {
  max-width: 300px;
  width: 100%;
  margin-bottom: 20px;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-img img {
    max-width: 240px;
    width: 100%;
  }
}

.footer-nav.-stacked li.show-for-small-only {
  text-align: center;
}

.footer-nav.-stacked a, .footer-nav.-stacked p {
  position: relative;
  color: #b8b7b4;
  font-size: .9em;
  margin-bottom: 8px;
  padding: 0;
}

.footer-nav.-stacked a {
  -webkit-transition: color 0.3s ease-in-out;
  -moz-transition: color 0.3s ease-in-out;
  -o-transition: color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out;
}

[data-whatinput="touch"] .footer-nav.-stacked a:focus,
[data-whatinput="touch"] .footer-nav.-stacked a:active,
[data-whatinput="mouse"] .footer-nav.-stacked a:focus,
[data-whatinput="mouse"] .footer-nav.-stacked a:active,
[data-whatinput="mouse"] .footer-nav.-stacked a:hover, .footer-nav.-stacked a:hover, .footer-nav.-stacked a:active {
  color: #1CB0B5;
  text-decoration: underline;
}

.footer-nav.-stacked .fa {
  position: absolute;
  top: 2px;
  left: -24px;
  padding-right: 4px;
  width: 23px;
}

.footer-nav.-stacked .main-menu-link {
  margin-bottom: 10px;
  color: #fafafa;
  letter-spacing: .1em;
  font-weight: 700;
  display: inline-block;
  text-transform: uppercase;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .main-menu-link {
    margin-top: 10px;
    width: 100%;
    text-align: left;
  }
}

.footer-nav.-stacked .main-menu-link + ul {
  margin-left: 24px;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .main-menu-link + ul {
    margin-bottom: 10px;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked {
    padding: 40px 20px 0 20px;
  }
  .footer-nav.-stacked ul.footer-menu {
    padding: 1.5625em 0 1.5625em 1em;
    display: block;
    margin: auto;
  }
  .footer-nav.-stacked li {
    padding: 0;
  }
  .footer-nav.-stacked li ul {
    margin-bottom: 1.25em;
  }
  .footer-nav.-stacked li a {
    width: 100%;
  }
  .footer-nav.-stacked li a.main-menu-link {
    margin: 0;
    padding: 20px;
    border: none;
  }
  .footer-nav.-stacked li .main-menu-link {
    position: relative;
  }
  .footer-nav.-stacked li .main-menu-link:before {
    content: '';
    display: block;
    width: 18px;
    height: 13px;
    background-position: -90px -60px;
    position: absolute;
    z-index: 1;
    background-size: 210px 760px;
  }
  .footer-nav.-stacked li .main-menu-link:before {
    top: 25px;
    right: 20px;
  }
  [data-whatinput="touch"] .footer-nav.-stacked li .main-menu-link:focus:before,
  [data-whatinput="touch"] .footer-nav.-stacked li .main-menu-link:active:before,
  [data-whatinput="mouse"] .footer-nav.-stacked li .main-menu-link:focus:before,
  [data-whatinput="mouse"] .footer-nav.-stacked li .main-menu-link:active:before,
  [data-whatinput="mouse"] .footer-nav.-stacked li .main-menu-link:hover:before, .footer-nav.-stacked li .main-menu-link:hover:before, .footer-nav.-stacked li .main-menu-link:active:before {
    right: 20px;
    width: 18px;
    opacity: 1;
  }
}

.footer-nav.-stacked.-gov {
  background-color: #fafafa;
  color: #192857;
}

.footer-nav.-stacked.-gov .menu-link {
  color: #192857;
}

[data-whatinput="touch"] .footer-nav.-stacked.-gov .menu-link:focus,
[data-whatinput="touch"] .footer-nav.-stacked.-gov .menu-link:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov .menu-link:focus,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov .menu-link:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov .menu-link:hover, .footer-nav.-stacked.-gov .menu-link:hover, .footer-nav.-stacked.-gov .menu-link:active {
  color: #00b2e2;
}

.footer-nav.-stacked.-gov a, .footer-nav.-stacked.-gov p {
  color: #192857;
}

[data-whatinput="touch"] .footer-nav.-stacked.-gov a:focus,
[data-whatinput="touch"] .footer-nav.-stacked.-gov a:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov a:focus,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov a:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov a:hover, .footer-nav.-stacked.-gov a:hover, .footer-nav.-stacked.-gov a:active {
  color: #00b2e2;
}

.footer-nav.-stacked.-gov .footer-right {
  border-left-color: #192857;
}

.footer-nav.-stacked.-enterprise {
  background: #2e2e2e;
  color: #fafafa;
}

.footer-nav.-stacked.-enterprise .footer-right {
  border-left-color: #fafafa;
}

.footer-action-plan {
  background-color: #00b2e2;
}

.footer-action-plan h1 {
  color: #fafafa;
  margin-bottom: .5em;
}

[data-whatinput="touch"] .footer-action-plan h1:focus,
[data-whatinput="touch"] .footer-action-plan h1:active,
[data-whatinput="mouse"] .footer-action-plan h1:focus,
[data-whatinput="mouse"] .footer-action-plan h1:active,
[data-whatinput="mouse"] .footer-action-plan h1:hover, .footer-action-plan h1:hover, .footer-action-plan h1:active {
  color: #192857;
}

.footer-action-plan li {
  color: #fafafa;
}

.footer-action-plan_logo {
  margin-top: -82.5px;
  position: relative;
}

.footer-action-plan_logo img {
  padding: 7.5px;
  max-height: 190px;
  max-width: 190px;
  background: #00b2e2;
  border-radius: 190px;
}

.footer-action-plan_link {
  color: #fafafa;
}

.footer-action-plan_list {
  margin-left: 0;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list {
    margin-top: 1em;
  }
}

.footer-action-plan_list-item {
  position: relative;
  float: none;
  display: inline-block;
  margin: 0;
  color: #fafafa;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list-item {
    display: block;
  }
}

@media screen and (max-width: 39.9375em) {
  .footer-action-plan_list-item {
    font-weight: bold;
  }
}

.footer-action-plan_list-item + .footer-action-plan_list-item {
  margin-left: 30px;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list-item + .footer-action-plan_list-item {
    margin-left: 0;
  }
}

.footer-action-plan_list-item + .footer-action-plan_list-item:before {
  content: '\2022';
  left: -22px;
  top: -11px;
  position: absolute;
  font-size: 1.5em;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list-item + .footer-action-plan_list-item:before {
    display: none;
  }
}

#hero {
  position: relative;
}

#hero #social-nav {
  width: 100%;
  position: relative;
  border: none;
  z-index: 40;
  margin-top: -37px;
}

#hero #social-nav ul li {
  list-style-type: none;
  width: 16.66667%;
  float: left;
}

#hero #social-nav ul li a {
  background-color: #192857;
  background-color: rgba(25, 40, 87, 0.8);
  border-color: #fafafa;
  color: #fafafa;
}

[data-whatinput="touch"] #hero #social-nav ul li a:focus,
[data-whatinput="touch"] #hero #social-nav ul li a:active,
[data-whatinput="mouse"] #hero #social-nav ul li a:focus,
[data-whatinput="mouse"] #hero #social-nav ul li a:active,
[data-whatinput="mouse"] #hero #social-nav ul li a:hover, #hero #social-nav ul li a:hover, #hero #social-nav ul li a:active {
  background-color: #ab7d25;
  background-color: rgba(179, 131, 38, 0.7);
}

#hero #social-nav ul li a span.fb-icon:before {
  background-position: 0 -150px;
}

#hero #social-nav ul li a span.tw-icon:before {
  background-position: -60px -150px;
}

#hero #social-nav ul li a span.yt-icon:before {
  background-position: -90px -150px;
}

#hero #social-nav ul li a span.flk-icon:before {
  background-position: -150px -150px;
}

#hero #social-nav ul li a span.mail-small-icon:before {
  background-position: -180px -150px;
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #hero {
    background-position: top -100px;
  }
}

@media (min-width: 582px) and (max-width: 767px) {
  #hero {
    min-height: 300px;
  }
}

@media (min-width: 1320px) {
  #hero {
    background-size: 125% auto;
  }
}

.fiat-alert {
  margin: 10px;
  text-align: center;
  margin-top: 8px;
  background: #ef3a4c !important;
  text-shadow: none;
  border: 0;
  letter-spacing: .08em;
}

.fiat-alert p {
  margin-bottom: 0;
  color: #fafafa;
  text-transform: uppercase;
}

.fiat-alert button {
  padding: 0 !important;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  padding-top: 4px;
  color: #fafafa !important;
  border-color: #fafafa;
  float: right;
  outline: none;
}

.fiat-alert button:hover {
  background-color: #fafafa;
  color: #ef3a4c !important;
  cursor: pointer;
}

.fiat-alert a {
  color: #fafafa;
  display: inline-block;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
  padding: 5px 10px;
  background-color: #b40f1f;
  -webkit-transition: background-color ease 0.3s;
  -moz-transition: background-color ease 0.3s;
  -o-transition: background-color ease 0.3s;
  transition: background-color ease 0.3s;
}

.fiat-alert a:hover {
  background-color: #850b17;
}

@media screen and (max-width: 39.9375em) {
  .fiat-alert {
    margin-top: 20px;
  }
}

#priorities .tab-title {
  width: 33.333333333%;
  background-color: #af8026;
}

#priorities .tab-title a {
  background: #c8922b;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzFlNTc5OSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3ZGI5ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: -moz-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #c8922b), color-stop(100%, #af8026));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* IE10+ */
  background: linear-gradient(to bottom, #c8922b 0%, #af8026 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
  /* IE6-8 */
  transition: all .5s ease;
  color: #fafafa;
  border-right: solid 1px #fafafa;
  text-transform: uppercase;
  text-align: center;
  font-weight: normal;
  letter-spacing: .1em;
  padding: 40px 0;
  background-repeat: no-repeat;
  outline: none;
  -webkit-transition: background-position 0.3s ease;
  -moz-transition: background-position 0.3s ease;
  -o-transition: background-position 0.3s ease;
  transition: background-position 0.3s ease;
}

#priorities .tab-title a:hover {
  background-position: left -106px;
}

#priorities .tab-title a .schools-tab {
  position: relative;
  width: 62px;
}

#priorities .tab-title a .schools-tab:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 56px;
  height: 41px;
  background-position: 0 -330px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities .tab-title a .schools-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities .tab-title a .jobs-tab {
  position: relative;
  width: 50px;
}

#priorities .tab-title a .jobs-tab:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 40px;
  height: 42px;
  background-position: -60px -330px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities .tab-title a .jobs-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities .tab-title a .gov-tab {
  position: relative;
  width: 63px;
}

#priorities .tab-title a .gov-tab:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 53px;
  height: 45px;
  background-position: -120px -330px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities .tab-title a .gov-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities .tab-title a .tab-icon {
  height: 18px;
  margin: 0;
  display: inline-block;
}

#priorities .tab-title.active a {
  background: #fafafa;
  color: #0a0a0a;
  -webkit-transition: background 0.2s ease;
  -moz-transition: background 0.2s ease;
  -o-transition: background 0.2s ease;
  transition: background 0.2s ease;
}

#priorities .tab-title.active a .schools-tab:before {
  background-position: 0 -270px;
}

#priorities .tab-title.active a .jobs-tab:before {
  background-position: -60px -270px;
}

#priorities .tab-title.active a .gov-tab:before {
  background-position: -120px -270px;
}

#priorities .tab-title.active a:active {
  background: #ededed;
}

#priorities .tab-title:last-child a {
  border-right: none;
}

#priorities .tab-text {
  display: none;
}

#priorities .tabs-content {
  position: relative;
  z-index: 20;
}

#priorities .tabs-content .home-priorities-image {
  width: 100%;
  height: 300px;
  background-position: center;
  background-size: cover;
  position: relative;
}

#priorities .tabs-content .home-priorities-image:before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  background-position: center;
  background-color: #c8922b;
  background-image: url("../../images/coa_xsmall.png");
  background-size: contain;
  background-repeat: no-repeat;
  z-index: -1;
  border: solid 20px #c8922b;
}

#priorities .tabs-content h2 {
  font-weight: bold;
  margin-top: -10px;
  margin-bottom: 30px;
  font-size: 2rem;
}

#priorities .tabs-content p {
  margin-bottom: 40px;
}

@media screen and (max-width: 39.9375em) {
  #priorities .tab-title a {
    height: 100px;
    padding: 25px 0;
  }
  #priorities .tabs-content img {
    margin: 25px 0 50px 0;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title a {
    padding: 20px 0;
    font-size: .85em;
  }
  #priorities .tab-title a .tab-icon {
    margin-left: 0;
    margin-bottom: 10px;
  }
  #priorities .tab-title a .schools-tab {
    position: relative;
    width: 22px;
  }
  #priorities .tab-title a .schools-tab:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 29px;
    height: 20px;
    background-position: 0 -480px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: 63.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-resolution: 144dppx) {
  #priorities .tab-title a .schools-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title a .jobs-tab {
    position: relative;
    width: 22px;
  }
  #priorities .tab-title a .jobs-tab:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 22px;
    height: 24px;
    background-position: -30px -480px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: 63.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-resolution: 144dppx) {
  #priorities .tab-title a .jobs-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title a .gov-tab {
    position: relative;
    width: 29px;
  }
  #priorities .tab-title a .gov-tab:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 29px;
    height: 25px;
    background-position: -60px -480px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: 63.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-resolution: 144dppx) {
  #priorities .tab-title a .gov-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title.active a .schools-tab:before {
    background-position: 0 -450px;
  }
  #priorities .tab-title.active a .jobs-tab:before {
    background-position: -30px -450px;
  }
  #priorities .tab-title.active a .gov-tab:before {
    background-position: -60px -450px;
  }
  #priorities .tab-text {
    display: block;
  }
}

@media screen and (min-width: 40em) {
  #priorities .tabs-content {
    padding: 75px 0;
  }
  #priorities .tabs-content img {
    max-width: 95%;
  }
}

@media screen and (min-width: 64em) {
  #priorities .tab-text {
    display: inline;
  }
  #priorities .tab-title a .tab-icon:before {
    top: -10px;
  }
}

#homeHeadline {
  margin-top: 20px;
}

#homeHeadline .news-post.news-post-headline {
  margin-bottom: 20px;
}

@media screen and (max-width: 39.9375em) {
  #homeHeadline {
    display: none;
  }
}

#governor {
  background: #192857;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzFlNTc5OSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3ZGI5ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: -moz-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #192857), color-stop(100%, #121d3f));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* IE10+ */
  background: linear-gradient(to bottom, #192857 0%, #121d3f 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
  /* IE6-8 */
  transition: all .5s ease;
  transition: all .5s ease;
  color: #fafafa;
  padding-top: 2.5em;
}

#governor #gov-photo {
  margin-top: 3.5em;
}

@media screen and (min-width: 64em) {
  #governor #gov-photo {
    height: 300px;
    margin-top: 6.5em;
  }
}

#governor #gov-info {
  margin: 30px 0 140px;
}

@media screen and (min-width: 64em) {
  #governor #gov-info {
    margin: 100px 0 140px;
  }
}

#governor #gov-info span {
  letter-spacing: 0.1em;
}

#governor #gov-info h1 {
  color: #fafafa;
  margin-bottom: 10px;
  margin-top: 0;
  line-height: inherit;
}

#governor #gov-info p {
  margin-bottom: 30px;
  color: #fafafa;
}

#governor #gov-info .button {
  color: #fafafa;
  border-color: transparent;
  margin-bottom: 0;
  padding: 0;
}

#governor #gov-info .button:hover {
  background-color: transparent;
  color: #192857;
}

#governor .news-image {
  display: inline-block;
  width: 100%;
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  background-size: 100%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-image: url(../../images/coa_xsmall.png);
  background-color: transparent;
}

#governor .news-image #image-inner {
  display: block;
  height: 0;
  padding-top: 58.3%;
  background-size: cover;
  background-position: center;
}

#social-media {
  padding: 50px 0;
}

#social-media .social-link {
  overflow: hidden;
  margin-bottom: 40px;
}

#social-media .social-link .social-icon {
  width: 60px;
  height: 60px;
  border: solid 2px #0a0a0a;
  border-radius: 50%;
  position: relative;
  float: left;
}

#social-media .social-link .social-icon.tw-icon:before, #social-media .social-link .social-icon.flickr-icon:before {
  margin: 15px 0 0 10px;
}

#social-media .social-link .social-icon.tw-icon {
  position: relative;
}

#social-media .social-link .social-icon.tw-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 32px;
  height: 27px;
  background-position: -150px -450px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .social-link .social-icon.tw-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .social-link .social-icon.tw-icon:before {
  margin-left: 12px;
}

#social-media .social-link .social-icon.flickr-icon {
  position: relative;
}

#social-media .social-link .social-icon.flickr-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 37px;
  height: 15px;
  background-position: -150px -480px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .social-link .social-icon.flickr-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .social-link .social-icon.flickr-icon:before {
  top: 5px;
}

#social-media .social-link .social-icon:after {
  content: '';
  width: 60px;
  height: 2px;
  background: #0a0a0a;
  display: block;
  position: absolute;
  top: 50%;
  right: -62px;
}

#social-media .social-link a {
  font-size: 24px;
  font-weight: bold;
  display: block;
  float: left;
  margin-left: 73px;
  margin-top: 11px;
  position: relative;
  color: #c8922b;
}

#social-media .social-link a:after {
  content: '';
  height: 2px;
  background: #0a0a0a;
  width: 1000px;
  display: block;
  position: absolute;
  right: -1015px;
  top: 19px;
}

#social-media .social-link a:hover {
  color: black;
}

#social-media .social-link a span {
  display: inline !important;
}

@media screen and (max-width: 39.9375em) {
  #social-media .social-link .social-icon:after {
    width: 500px;
    right: -502px;
  }
  #social-media .social-link a {
    background: #fafafa;
    float: right;
    font-size: 18px;
    margin-left: 0;
    margin-top: 18px;
    padding: 0 0 0 10px;
  }
  #social-media .social-link a:after {
    display: none;
  }
}

#social-media article {
  margin-bottom: -7px;
}

#social-media .latest-tweet h2 {
  font-weight: normal;
  margin-bottom: 50px;
}

#social-media .latest-tweet .tweet-date {
  color: #AAAAAA;
  font-weight: normal;
  font-style: italic;
  font-size: 1.2em;
}

#social-media .latest-tweet ul {
  text-align: center;
  margin: 0;
}

#social-media .latest-tweet ul li {
  list-style-type: none;
  padding: 0;
  display: inline-block;
  margin-top: 20px;
}

#social-media .latest-tweet ul li a {
  text-transform: uppercase;
  color: #0a0a0a;
  font-weight: normal;
  letter-spacing: .1em;
  padding: 10px 12px 9px 60px;
  position: relative;
  margin: 0;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
}

#social-media .latest-tweet ul li a:before {
  left: 13px;
}

#social-media .latest-tweet ul li a.reply-icon {
  position: relative;
}

#social-media .latest-tweet ul li a.reply-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 28px;
  height: 16px;
  background-position: 0 -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .latest-tweet ul li a.reply-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .latest-tweet ul li a.reply-icon:before {
  top: 9px;
}

#social-media .latest-tweet ul li a.rt-icon {
  position: relative;
}

#social-media .latest-tweet ul li a.rt-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 27px;
  height: 24px;
  background-position: -30px -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .latest-tweet ul li a.rt-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .latest-tweet ul li a.rt-icon:before {
  top: 5px;
}

#social-media .latest-tweet ul li a.fav-icon {
  position: relative;
}

#social-media .latest-tweet ul li a.fav-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 25px;
  height: 24px;
  background-position: -60px -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .latest-tweet ul li a.fav-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .latest-tweet ul li a.fav-icon:before {
  top: 6px;
}

#social-media .latest-tweet ul li a:hover {
  color: #192857;
  background: #f2f2f2;
}

#social-media .latest-tweet ul li a:active {
  background: #ededed;
}

#social-media .latest-tweet ul li:last-child a {
  margin: 0px;
}

@media screen and (min-width: 40em) {
  #social-media .latest-tweet ul {
    text-align: right;
  }
  #social-media .latest-tweet ul li {
    display: inline;
    float: none;
  }
  #social-media .latest-tweet ul li a {
    margin-left: 25px;
  }
}

#social-media div.fetch-tweets {
  max-height: 100% !important;
}

#social-media .latest-flickr:after {
  content: '';
  display: block;
  padding-bottom: 50px;
}

#social-media .latest-flickr .flickr-photos a img {
  -webkit-transition: opacity 0.2s ease;
  -moz-transition: opacity 0.2s ease;
  -o-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

#social-media .latest-flickr .flickr-photos a img:hover {
  -webkit-opacity: 0.5;
  -moz-opacity: 0.5;
  -ms-opacity: 0.5;
  -o-opacity: 0.5;
  opacity: 0.5;
}

@media screen and (max-width: 39.9375em) {
  #social-media {
    padding: 15px 0 0 0;
  }
  #social-media h1 {
    margin-bottom: 20px;
  }
  #social-media .latest-tweet h2 {
    margin-bottom: 15px;
  }
}

.reveal {
  border: none;
}

.reveal .close-button {
  font-size: 22px;
  font-weight: 700;
  padding: 10px;
  text-transform: uppercase;
  top: 0;
  right: 0;
  width: auto;
  background: transparent;
}

.reveal .close-button:hover {
  background: transparent;
}

.reveal .close-button .inner {
  height: 3px;
  background-color: transparent;
  color: #003146;
  content: "";
  width: 25px;
  margin: 0 auto;
  position: relative;
  top: 10px;
}

.reveal .close-button .inner:before {
  transform: rotate(45deg);
  background-color: #003146;
  content: "";
  display: block;
  height: 3px;
  width: 25px;
}

.reveal .close-button .inner:after {
  transform: rotate(-45deg);
  background-color: #003146;
  content: "";
  display: block;
  height: 3px;
  width: 25px;
  margin-top: -3px;
}

.reveal .close-button .menulabel {
  color: #003146;
  position: relative;
  bottom: -20px;
  font-weight: 300;
  font-size: 10px;
  letter-spacing: 0;
}

.close-button.text-white .menulabel {
  color: #fafafa;
}

.close-button.text-white .inner:before, .close-button.text-white .inner:after {
  background-color: #fafafa;
}

#newsroom {
  padding: 4em 0 7em 0;
}

#newsroom .section-title {
  color: #192857;
  padding-bottom: .5em;
}

#newsroom .section-title:hover {
  color: #00b2e2;
}

#newsroom .banner-image {
  width: 100%;
}

#newsroom .newsroom-date {
  text-transform: uppercase;
  font-weight: normal;
  display: inline-block;
  margin-bottom: 0;
  font-style: italic;
  font-size: .9em;
  display: block;
  margin: 10px 0;
}

#newsroom .news-post-byline {
  font-weight: 500;
  font-style: normal;
  font-size: .9em;
  display: block;
  margin: 10px 0;
}

.news-post-title {
  margin: 0;
  border-bottom: solid 1px #e1e1e1;
  padding-left: 55px;
  padding-bottom: 30px;
  margin-bottom: 40px;
  width: 368px;
  font-size: 1rem;
  line-height: 1.25;
  padding-bottom: 0.6875rem;
  font-weight: bold;
  text-transform: uppercase;
  position: relative;
}

.news-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 29px;
  height: 29px;
  background-position: -90px -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  .news-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.news-post-title:before {
  top: 2px;
  left: 0;
}

.news-post-category {
  color: #c8922b !important;
  font-size: .65rem !important;
  text-transform: uppercase;
  margin: 10px 0 !important;
}

.news-post-category > a {
  color: #c8922b;
  text-decoration: none !important;
}

.news-post-image {
  position: relative;
  margin-bottom: 15px;
}

.news-post-post-title {
  margin-top: 0;
  font-size: 1.25em;
  line-height: 1.3em;
}

.news-post-post-title a {
  color: #192857;
  text-decoration: none !important;
}

.news-post-post-date {
  font-weight: normal;
  font-style: italic;
  font-size: .9em;
  display: block;
  margin: 10px 0;
}

.news-post .button {
  margin: 0;
}

.news-post article.row {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: solid 1px #e1e1e1;
}

.news-post article.row:last-child {
  border: none;
  margin-bottom: 0;
}

.news-post.news-post-priority {
  margin: 50px 0 0;
  padding-bottom: 40px;
  border-bottom: none;
}

.news-post.news-post-headline {
  padding: 30px 40px 40px;
  margin-bottom: 50px;
  border-color: #192857;
}

.news-post.news-post-headline .news-post-title {
  margin-bottom: 30px;
  padding-bottom: 20px;
}

.news-post.news-post-headline .news-post-title:before {
  background-position: -120px -180px;
}

.view-all-news {
  padding: 25px 50px;
  background: #c8922b;
  color: #fafafa;
  margin-bottom: 75px;
}

.view-all-news h5 {
  color: #fafafa;
  margin: 0;
  font-weight: bold;
}

.view-all-news .button {
  margin: 0;
  margin-top: 8px;
}

#social-article {
  background: #c8922b;
  color: #fafafa;
  padding: 10px;
}

#social-article span {
  margin-right: 8px;
}

#social-article a {
  color: #fafafa;
}

#social-article a:hover {
  opacity: .7;
}

section#related-news h3, section#related-news .h3, section#related-media h3, section#related-media .h3 {
  padding-top: 1em;
  padding-bottom: .25em;
}

section#related-news .column-block, section#related-media .column-block {
  margin-bottom: 0;
}

.prev_next_links {
  margin-top: 25px;
}

.prev_next_links span {
  width: 150px;
  max-width: 50%;
}

.prev_next_links a {
  font-size: .8em;
  text-transform: uppercase;
  padding: 10px 15px;
  display: inline-block;
  color: #c8922b;
  border: solid 2px #c8922b;
}

.prev_next_links a:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f053";
  margin-right: 10px;
}

.prev_next_links a:hover {
  background: #c8922b;
  color: #fafafa;
}

.prev_next_links .previous_post a {
  text-align: right;
}

.prev_next_links .next_post a {
  text-align: left;
}

.prev_next_links .next_post a:before {
  right: 10px;
}

#content {
  padding: 50px 0 140px;
  position: relative;
}

@media screen and (max-width: 63.9375em) {
  #content {
    padding: 15px 0 140px;
  }
}

@media screen and (max-width: 39.9375em) {
  .priorities-content h1 {
    margin-top: 20px;
  }
}

#gov {
  text-align: center;
  padding: 9px 0;
  padding-top: 0;
  border-bottom: solid 1px #fafafa;
  overflow: hidden;
}

#gov .state {
  margin-bottom: 20px;
  position: relative;
}

#gov .state .state-icon {
  margin: 0 auto;
  width: 29px;
  position: relative;
}

#gov .state .state-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 28px;
  height: 17px;
  background-position: 0px -90px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #gov .state .state-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#gov .state:before, #gov .state:after {
  content: '';
  width: 100%;
  border-top: solid 1px #fafafa;
  display: block;
  position: absolute;
  top: 8px;
}

#gov .state:before {
  left: 55%;
}

#gov .state:after {
  right: 55%;
}

#gov h2, #gov h4 {
  color: #fafafa;
  letter-spacing: .18em;
  margin: 0px;
  text-transform: uppercase;
}

#gov h2 {
  font-size: 30px;
}

#gov h4 {
  font-weight: normal;
  font-size: 15px;
  line-height: 22px;
  letter-spacing: .14em;
}

#header_image {
  height: 420px;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

@media screen and (max-width: 39.9375em) {
  #header_image {
    height: 210px;
  }
}

#header_image.priorities-header {
  margin-top: 0px;
}

#priorities-nav {
  padding: 0;
  background: transparent;
}

#sticky-header {
  background: #c8922b;
  z-index: 9999;
  color: #fafafa;
  padding: 10px;
}

#sticky-header .right {
  margin-top: 5px;
  margin-right: 10px;
}

#sticky-header .right .share-title {
  font-size: .8em;
}

#sticky-header h3, #sticky-header a {
  display: inline-block;
  color: #fafafa;
  margin: 0;
  margin-left: 10px;
}

#sticky-header span {
  display: inline-block;
  height: 19px;
}

#sticky-header .fb-icon {
  width: 10px;
  height: 19px;
  margin-bottom: -3px;
}

#sticky-header .fb-icon:before {
  background-position: 0 -150px;
}

#sticky-header .tw-icon {
  width: 23px;
  height: 15px;
  margin-bottom: -2px;
}

#sticky-header .tw-icon:before {
  background-position: -60px -150px;
}

#sticky-header a:hover {
  opacity: .7;
}

#priorities-sidebar {
  background: #3d3d3d;
  display: inline-block;
  position: absolute;
  z-index: 20;
  width: 243px;
}

#priorities-sidebar h5 {
  color: #fafafa;
  text-transform: uppercase;
  font-weight: normal;
  margin: 0;
  font-size: .8em;
  padding: 10px 0 10px 40px;
  background: #242424;
  position: relative;
}

#priorities-sidebar h5:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 18px;
  height: 18px;
  background-position: -180px -240px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities-sidebar h5:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities-sidebar h5:before {
  left: 15px;
}

#priorities-sidebar ul {
  background: #3d3d3d;
  list-style-type: none;
  margin: 0;
}

#priorities-sidebar ul li:last-child ul {
  border-bottom: solid 1px #575757;
}

#priorities-sidebar ul a {
  padding: 18px 20px 12px;
  text-transform: uppercase;
  display: block;
  font-size: .8em;
  color: #fafafa;
  border: solid 1px #575757;
  border-left: none;
  border-right: none;
  position: relative;
  line-height: 1.5em;
  -webkit-transition: background 0.2s ease;
  -moz-transition: background 0.2s ease;
  -o-transition: background 0.2s ease;
  transition: background 0.2s ease;
}

#priorities-sidebar ul a:hover {
  background: #383838;
}

#priorities-sidebar ul a span {
  font-weight: bold;
  font-size: 1.4em;
  display: block;
}

#priorities-sidebar ul .active > a {
  color: #192857;
}

#priorities-sidebar ul .active > a + ul {
  height: auto;
  overflow: initial;
}

#priorities-sidebar ul ul {
  overflow: hidden;
  height: 0;
  opacity: 1;
  filter: alpha(opacity=100);
  -webkit-transition: opacity 0.5s ease-out;
  -moz-transition: opacity 0.5s ease-in-out;
  -ms-transition: opacity 0.5s ease-in-out;
  -o-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}

#priorities-sidebar ul ul li {
  padding: 0 15px;
  background: #242424;
}

#priorities-sidebar ul ul li a {
  font-size: .8em;
  border: none;
  border-bottom: solid 1px #3d3d3d;
  padding: 12px 0 9px 0;
  max-width: 100%;
  text-align: left;
  position: relative;
  padding-right: 20px;
  position: relative;
}

#priorities-sidebar ul ul li a:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 8px;
  height: 10px;
  background-position: -30px -90px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities-sidebar ul ul li a:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities-sidebar ul ul li a:before {
  position: absolute;
  margin-top: -5px;
  top: 50%;
  right: 0;
  -webkit-transition: right 0.2s ease, width 0s ease, opacity 0.2s;
  -moz-transition: right 0.2s ease, width 0s ease, opacity 0.2s;
  -o-transition: right 0.2s ease, width 0s ease, opacity 0.2s;
  transition: right 0.2s ease, width 0s ease, opacity 0.2s;
}

#priorities-sidebar ul ul li a:hover {
  background: #242424;
}

#priorities-sidebar ul ul li a:hover:before {
  right: -40px;
}

#priorities-sidebar ul ul li:hover a {
  color: #949494;
}

#priorities-sidebar ul ul li:last-child a {
  border: none;
}

@media screen and (max-width: 39.9375em) {
  #priorities-sidebar {
    margin: 0;
    width: 100%;
    height: auto;
  }
  #priorities-sidebar ul#priorities-main-nav .active {
    position: relative;
  }
  #priorities-sidebar ul#priorities-main-nav .active:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 20px;
    height: 20px;
    background-position: -180px -240px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (max-width: 39.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (max-width: 39.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (max-width: 39.9375em) and (min--moz-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-resolution: 144dppx) {
  #priorities-sidebar ul#priorities-main-nav .active:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (max-width: 39.9375em) {
  #priorities-sidebar ul#priorities-main-nav .active:before {
    left: 15px;
    top: 14px;
  }
  #priorities-sidebar ul li {
    opacity: 0;
    height: 0px;
  }
  #priorities-sidebar ul li.active {
    height: auto;
    opacity: 1;
  }
  #priorities-sidebar ul li.active > a {
    padding-left: 45px;
  }
  #priorities-sidebar ul a {
    padding: 14px 20px 10px;
    position: relative;
  }
  #priorities-sidebar ul a:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 18px;
    height: 13px;
    background-position: -90px -60px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (max-width: 39.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (max-width: 39.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (max-width: 39.9375em) and (min--moz-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-resolution: 144dppx) {
  #priorities-sidebar ul a:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (max-width: 39.9375em) {
  #priorities-sidebar ul a:before {
    right: 13px;
  }
  #priorities-sidebar ul a span {
    display: inline-block;
    margin-right: 2px;
  }
  #priorities-sidebar ul.mobile-priorities-main-nav li {
    height: auto;
    opacity: 1;
  }
}

.fixedPrioNav {
  position: fixed;
  top: 109px;
  width: 100%;
  z-index: 3000;
}

.fixedPrioNav #priorities-sidebar {
  margin-top: 0;
}

@media screen and (max-width: 39.9375em) {
  .fixedPrioNav {
    top: 45px;
  }
}

.priorities-nav-bg {
  background: #3d3d3d;
  display: inline-block;
  position: absolute;
  height: 100%;
  width: 243px;
  z-index: -1;
  top: 0;
}

#content.priorities-content {
  margin-left: 275px;
  margin-top: 0;
  padding-top: 0;
}

@media screen and (max-width: 39.9375em) {
  #content.priorities-content {
    margin: 0;
    margin-top: 50px;
  }
}

.priorities-nav-arrow {
  display: block;
  position: absolute;
  top: 17px;
  right: -40px;
  width: 0;
  height: 0;
  border-top: 18px solid transparent;
  border-bottom: 18px solid transparent;
  border-right: 20px solid transparent;
  border-left: 20px solid #3d3d3d;
  opacity: 1;
  filter: alpha(opacity=100);
  -webkit-transition: top 0.3s 0s ease;
  -moz-transition: top 0.3s 0s ease;
  -o-transition: top 0.3s 0s ease;
  transition: top 0.3s 0s ease;
}

@media screen and (max-width: 39.9375em) {
  .priorities-nav-arrow {
    display: none;
  }
}

.priority-section {
  margin-top: 50px;
  border-bottom: solid 1px #e1e1e1;
}

.priority-section:first-child {
  margin-top: 0;
}

.priority-section:last-child {
  border: none;
}

.priority-post-title {
  padding-left: 65px;
  color: #0a0a0a;
  font-weight: bold;
  display: inline-block;
  margin-bottom: 25px;
  text-transform: uppercase;
}

.priority-post-title:before {
  top: 2px;
  left: 0;
}

#schools-section .priority-post-title {
  padding-left: 75px;
  position: relative;
}

#schools-section .priority-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 56px;
  height: 41px;
  background-position: 0 -390px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #schools-section .priority-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#jobs-section .priority-post-title {
  position: relative;
}

#jobs-section .priority-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 40px;
  height: 42px;
  background-position: -60px -390px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #jobs-section .priority-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#government-section .priority-post-title {
  position: relative;
}

#government-section .priority-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 53px;
  height: 45px;
  background-position: -120px -390px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #government-section .priority-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.anchor {
  display: block;
  visibility: hidden;
}

.priorities-main-nav_fade-out {
  opacity: 0.0;
  filter: alpha(opacity=0);
  position: relative;
  -webkit-transition: opacity 0.5s ease-out;
  -moz-transition: opacity 0.5s ease-in-out;
  -ms-transition: opacity 0.5s ease-in-out;
  -o-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}

select {
  background-image: none;
}

.widget {
  margin-bottom: 50px;
}

.widget h5 {
  color: #fafafa;
  background-color: #192857;
  font-weight: normal;
  text-transform: uppercase;
  font-size: .9em;
  padding: 15px 20px 13px 25px;
  letter-spacing: .08em;
  margin: 0;
}

.widget .menu-about-container ul li {
  border-bottom: solid 1px #e1e1e1;
}

.widget ul {
  background: #fafafa;
  margin: 0;
  border: solid 1px #e1e1e1;
  border-top: 0;
}

.widget ul ul {
  border-bottom: 0;
}

.widget ul li {
  width: 100%;
  list-style-type: none;
}

.widget ul li a {
  position: relative;
  width: 100%;
  text-transform: uppercase;
  display: block;
  font-size: 1.1em;
  color: #0a0a0a;
  padding: 15px 20px;
  -webkit-transition: background ease 0.2s;
  -moz-transition: background ease 0.2s;
  -o-transition: background ease 0.2s;
  transition: background ease 0.2s;
}

.widget ul li a:hover {
  background: #ededed;
}

.widget ul li:last-child {
  border: none;
}

.widget div {
  background: #fafafa;
  border: solid 1px #e1e1e1;
}

.widget div ul {
  border: 0;
}

.widget .textwidget {
  padding: 1.25rem 1.25rem 0;
}

.panel .widget_text {
  background: #fafafa;
}

.panel .widget_text .textwidget {
  border: none;
  background: #fafafa;
}

.widget_nav_menu #newsroom-sidebar ul#menu-newsroom li.current-menu-item a {
  color: #192857;
}

@media screen and (max-width: 39.9375em) {
  .widget_nav_menu ul#menu-newsroom {
    border-top: solid 1px #e1e1e1;
    overflow: hidden;
  }
  .widget_nav_menu ul#menu-newsroom.mobile-dropdown li {
    height: auto;
    border-bottom: solid 1px #e1e1e1;
  }
  .widget_nav_menu ul#menu-newsroom.mobile-dropdown li:last-child {
    border: none;
  }
}

.widget-archivelist-year > a,
.widget-archivelist-year .menu-item-has-children > a,
.widget #menu-weekly-reports > a,
.widget #menu-weekly-reports .menu-item-has-children > a {
  font-size: 1.1em;
  color: #0a0a0a;
}

.widget-archivelist-year ul,
.widget #menu-weekly-reports ul {
  height: 0px;
  overflow: hidden;
  border: none;
}

.widget-archivelist-year ul li,
.widget #menu-weekly-reports ul li {
  border: none;
}

.widget-archivelist-year ul li a,
.widget #menu-weekly-reports ul li a {
  border: none;
  font-size: .9em;
  padding: 5px 30px;
}

.widget-archivelist-year.current-archive-year > a, .widget-archivelist-year.current-archive-year .menu-item-has-children > a, .widget-archivelist-year .current-report > a, .widget-archivelist-year .current-report .menu-item-has-children > a,
.widget #menu-weekly-reports.current-archive-year > a,
.widget #menu-weekly-reports.current-archive-year .menu-item-has-children > a,
.widget #menu-weekly-reports .current-report > a,
.widget #menu-weekly-reports .current-report .menu-item-has-children > a {
  color: #192857;
  border: none;
}

.widget-archivelist-year.current-archive-year > a:before, .widget-archivelist-year.current-archive-year .menu-item-has-children > a:before, .widget-archivelist-year .current-report > a:before, .widget-archivelist-year .current-report .menu-item-has-children > a:before,
.widget #menu-weekly-reports.current-archive-year > a:before,
.widget #menu-weekly-reports.current-archive-year .menu-item-has-children > a:before,
.widget #menu-weekly-reports .current-report > a:before,
.widget #menu-weekly-reports .current-report .menu-item-has-children > a:before {
  top: 10px;
  background-position: -120px -90px;
}

.widget-archivelist-year.current-archive-year ul, .widget-archivelist-year .current-report ul,
.widget #menu-weekly-reports.current-archive-year ul,
.widget #menu-weekly-reports .current-report ul {
  border: none;
  height: auto;
  padding-bottom: 5px;
  border-bottom: solid 1px #e1e1e1;
}

.widget-archivelist-year .current-report > a, .widget-archivelist-year .current-report .menu-item-has-children > a,
.widget #menu-weekly-reports .current-report > a,
.widget #menu-weekly-reports .current-report .menu-item-has-children > a {
  color: black;
  background: #ededed;
}

.widget .tut-tweet {
  padding: 20px;
  font-size: .95em;
}

.widget .tut-tweet .tut-user-name {
  display: none;
}

.widget .tut-tweet .tut-screen-name {
  display: none;
}

.widget .tut-tweet header {
  float: left;
  width: 20%;
  padding-right: 5px;
}

.widget .tut-tweet .tut-profile-image {
  height: auto;
}

.widget .tut-tweet li, .widget .tut-tweet .tut-text {
  border: none;
  margin: 0;
}

.widget .tut-tweet .tut-text {
  float: right;
  width: 80%;
}

.widget .tut-tweet a {
  display: inline;
  color: #192857;
  padding: 0;
  text-transform: capitalize;
  font-size: .95em;
}

.widget .tut-tweet::before, .widget .tut-tweet::after {
  content: ' ';
  display: table;
  clear: both;
}

.widget .tut-tweets li {
  margin-top: 0;
}

.widget .tut-follow-link {
  border: solid 1px #e1e1e1;
  border-top: none;
  display: block;
  margin: 0;
  padding: 15px;
  text-align: center;
  padding-left: 2px;
  font-size: 1em;
}

.widget .tut-actions {
  float: right;
  border: 1px solid #fafafa !important;
}

.widget .tut-actions a {
  margin-left: 8px;
  width: 16px;
  height: 16px;
  display: inline-block;
  background-image: url("../../images/everything-sprite-light.png");
}

.widget .tut-actions .tut-reply:hover {
  background-position: -16px 0;
}

.widget .tut-actions .tut-retweet {
  background-position: -82px 0;
}

.widget .tut-actions .tut-retweet:hover {
  background-position: -101px 0;
}

.widget .tut-actions .tut-favorite {
  background-position: -32px 0;
}

.widget .tut-actions .tut-favorite:hover {
  background-position: -48px 0;
}

.widget .tut-time {
  border: 1px solid #fafafa !important;
}

.widget_newsletter_widget .newsletter_widget_container {
  padding: 15px 20px;
}

.widget_newsletter_widget .newsletter_widget_container div {
  border: none;
}

.widget_newsletter_widget .newsletter_widget_container .ninja-forms-cont input[type="submit"] {
  background: #c8922b;
  border-color: #c8922b;
  color: #fafafa !important;
}

.widget_newsletter_widget h3 {
  text-align: center;
  line-height: 1.2em;
  padding-bottom: 5px;
  font-size: 1em;
  font-weight: 700;
  margin-top: 5px;
}

.widget_newsletter_widget form input {
  outline: none;
  border: solid 4px #e1e1e1;
  padding: 0 20px;
  min-height: 50px;
  font-weight: normal;
}

.widget_newsletter_widget form input:focus {
  border-color: #192857;
}

.widget_newsletter_widget form .button.secondary {
  background-color: #192857;
  margin-bottom: 5px;
}

.widget_newsletter_widget form .button.secondary:hover {
  background-color: #131f43;
}

.widget_schedule_filter_widget #tribe-events-bar {
  padding: 20px;
}

.widget_schedule_filter_widget #tribe-events-bar h4 {
  font-size: 1em;
  font-weight: bold;
}

.widget_schedule_filter_widget #tribe-events-bar div {
  border: none;
}

.widget_schedule_filter_widget #tribe-events-bar label {
  color: #aeaeae;
  font-weight: normal;
  margin-bottom: 5px;
}

.widget_schedule_filter_widget #tribe-events-bar input[type="text"] {
  border: solid 5px #e6e6e6;
  outline: none;
  padding: 0 15px;
  display: block;
  height: 50px;
  box-shadow: none;
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container {
  position: relative;
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container input {
  border: solid 1px #8a8a8a;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
  padding-left: 45px;
  color: #aeaeae;
  font-weight: normal;
  height: 40px;
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 15px;
  height: 15px;
  background-position: -150px -30px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  .widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container:before {
  top: 13px;
  left: 16px;
}

.widget_schedule_filter_widget #tribe-events-bar .button.primary {
  background: #c8922b;
  color: #fafafa;
  padding: 12px 20px;
  font-size: 1em;
  margin-bottom: 0;
}

.widget_schedule_filter_widget #schedule-widget {
  padding: 20px;
}

.widget_schedule_filter_widget #schedule-widget h4 {
  font-size: 1em;
  font-weight: bold;
}

.widget_schedule_filter_widget #schedule-widget div {
  border: none;
}

.widget_schedule_filter_widget #schedule-widget label {
  color: #aeaeae;
  font-weight: normal;
  margin-bottom: 5px;
}

.widget_schedule_filter_widget #schedule-widget input[type="text"] {
  border: solid 5px #e6e6e6;
  outline: none;
  padding: 0 15px;
  display: block;
  height: 50px;
  box-shadow: none;
}

.widget_schedule_filter_widget #schedule-widget .schedule_search {
  position: relative;
  margin-bottom: 15px;
  padding-bottom: 5px;
}

.widget_schedule_filter_widget #schedule-widget .schedule_search input[type="search"] {
  border: solid 1px #00b2e2;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
  padding-left: 15px;
  color: #192857;
  font-weight: normal;
  height: 40px;
  width: 100%;
}

.widget_schedule_filter_widget #schedule-widget .schedule_search .search-button-wrapper {
  background: transparent;
  right: 15px;
}

.widget_schedule_filter_widget #schedule-widget .button.primary {
  background: #c8922b;
  color: #fafafa;
  padding: 12px 20px;
  font-size: 1em;
  margin-bottom: 0;
}

.ui-datepicker-header {
  background: #fafafa;
  padding: 10px;
  border: solid 2px #dddddd;
  border-bottom: none;
}

.ui-datepicker-header .ui-datepicker-next {
  float: right;
}

.ui-datepicker-header .ui-datepicker-prev {
  float: left;
}

.ui-datepicker-header .ui-datepicker-title {
  text-align: center;
}

@media screen and (max-width: 63.9375em) {
  .schedule-page {
    height: auto;
    width: 100%;
    align-content: center;
  }
}

@media screen and (max-width: 39.9375em) {
  .schedule-page {
    max-width: 100%;
  }
}

@media screen and (max-width: 39.9375em) {
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget .schedule_search {
    border: none;
    margin: 20px 0;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget .schedule_search input[type=searcsh] {
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    -o-border-radius: 0;
    border-radius: 0;
    border: solid 2px #e1e1e1;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget label {
    float: left;
    padding: 0 5px;
    width: 50%;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget label:first-of-type {
    padding-left: 0;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget label:last-of-type {
    padding-right: 0;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget .button.primary {
    width: 230px;
    margin: 0 auto;
    display: block;
    max-width: 100%;
  }
}

#ui-datepicker-div table {
  margin-bottom: 0;
}

ul.site-map {
  list-style-type: none;
  margin: 0;
}

ul.site-map li {
  list-style-type: none;
  font-weight: normal;
}

ul.site-map li.menu-item-depth-0 {
  margin: 0;
  margin-left: 0;
  margin-top: 15px;
  list-style-type: none;
  font-size: 25px;
  font-weight: bold;
}

ul.site-map li.menu-item-depth-0 > a {
  color: #c8922b;
}

table {
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}

@media screen and (max-width: 63.9375em) {
  table {
    /* Get table cells to act like rows */
  }
  table thead {
    display: none;
  }
  table thead tr {
    position: absolute;
    top: -9999em;
    left: -9999em;
  }
  table tr {
    display: block;
  }
  table td {
    width: 100%;
    border: none;
    display: inline-block;
  }
  table td:before {
    content: attr(data-label);
    display: block;
    font-weight: bold;
    line-height: 1.5;
    width: 100%;
    position: relative;
    z-index: 1;
  }
}

.text-weight-bold {
  font-weight: bold;
}

.text-weight-normal {
  font-weight: normal;
}

.text-weight-light {
  font-weight: 100;
}

.text-uppercase {
  text-transform: uppercase;
}

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

.top-navigation-text {
  font-size: .9em;
  font-weight: bold;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.sidebar-navigation-text {
  font-size: 1.75em;
  font-weight: bold;
  text-transform: uppercase;
  color: #192857;
}

blockquote {
  margin: 30px 0;
  padding: 0.5625rem 1.25rem 0 1.5875rem;
}

blockquote p {
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.2em;
  color: #0a0a0a;
  margin-bottom: 10px;
}

blockquote p:last-child {
  color: #192857;
}

.h1,
h1, .h2,
h2, .h3,
h3, .h4,
h4, .h5,
h5, .h6,
h6 {
  color: #192857;
  font-family: "Montserrat", "Gotham", "Open Sans", "Helvetica Neue", Helvetica, sans-serif;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: .5rem;
}

@media screen and (max-width: 39.9375em) {
  .h1,
  h1, .h2,
  h2, .h3,
  h3, .h4,
  h4, .h5,
  h5, .h6,
  h6 {
    font-weight: 700;
  }
}

.italic.h1,
h1.italic, .italic.h2,
h2.italic, .italic.h3,
h3.italic, .italic.h4,
h4.italic, .italic.h5,
h5.italic, .italic.h6,
h6.italic {
  font-style: italic;
}

.h1 > a, h1 > a, .h2 > a, h2 > a, .h3 > a, h3 > a, .h4 > a, h4 > a, .h5 > a, h5 > a, .h6 > a, h6 > a {
  color: inherit;
}

.article .h1:not([class]),
#content #main article .h1:not([class]), .article h1:not([class]),
#content #main article h1:not([class]), .header__section {
  color: #00b2e2;
  line-height: 1;
  font-size: 2.5em;
  font-weight: 600;
  text-align: center;
  text-transform: uppercase;
  border-bottom: 8px solid #00b2e2;
  padding-bottom: 5px;
  margin-bottom: 20px;
  width: 100%;
  text-align: left;
}

@media screen and (max-width: 39.9375em) {
  .article .h1:not([class]),
  #content #main article .h1:not([class]), .article h1:not([class]),
  #content #main article h1:not([class]), .header__section {
    font-size: 1.5em;
    border-bottom-width: 4px;
  }
}

.section-title {
  color: #00b2e2;
  padding-bottom: 1em;
  text-decoration: underline;
}

.h1,
h1 {
  font-size: 3rem;
  font-weight: bold;
  word-wrap: break-word;
  word-break: break-word;
}

.article .h1:not([class]),
#content #main article .h1:not([class]), .article
h1:not([class]),
#content #main article
h1:not([class]) {
  margin-top: 2.5rem;
}

@media screen and (max-width: 39.9375em) {
  .article .h1:not([class]),
  #content #main article .h1:not([class]), .article
  h1:not([class]),
  #content #main article
  h1:not([class]) {
    margin-top: 1.25rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .h1,
  h1 {
    font-size: 1.5rem;
    line-height: 1;
  }
}

.h2,
h2 {
  font-size: 2.5rem;
}

.article .h2, .article
h2 {
  padding-top: 2.5rem;
}

@media screen and (max-width: 39.9375em) {
  .article .h2, .article
  h2 {
    padding-top: 1.25rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .h2,
  h2 {
    font-size: 1.25rem;
  }
}

.h3,
h3 {
  font-size: 1.9375rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: .5rem;
}

.article .h3, .article
h3 {
  padding-bottom: .625rem;
}

@media screen and (max-width: 39.9375em) {
  .h3,
  h3 {
    font-size: 1.1875rem;
  }
}

.h4,
h4 {
  font-size: 1.5625rem;
}

.article .h4, .article
h4 {
  padding-bottom: .625rem;
}

@media screen and (max-width: 39.9375em) {
  .h4,
  h4 {
    font-size: 1.125rem;
  }
}

.h5,
h5 {
  font-size: 1.25rem;
}

@media screen and (max-width: 39.9375em) {
  .h5,
  h5 {
    font-size: 1.0625rem;
  }
}

.h6,
h6 {
  font-size: 1rem;
}

/* ======================================================
        PAI: governor.PA.gov
   ====================================================== */
@media screen and (max-width: 39.9375em) {
  .column, .columns {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .column .column, .columns .column, .column .columns, .columns .columns {
    padding: 0;
  }
}

.header__photo-cred {
  position: absolute;
  right: 40px;
  color: #fafafa;
  bottom: 20px;
  text-align: right;
}

.header__photo-cred p {
  line-height: 1.25rem;
}

.header__photo-cred p a {
  color: #1CB0B5;
}

.header__photo-cred p a:hover {
  text-decoration: underline;
}

.header__photo-cred p::after {
  font-family: FontAwesome;
  content: "\f041";
  color: #1CB0B5;
  font-size: 1.75rem;
  padding-left: .25rem;
}

@media screen and (max-width: 39.9375em) {
  .widget_archivelist_widget,
  .widget_ordersarchivelist_widget {
    display: none;
  }
}

@media screen and (max-width: 39.9375em) {
  .widget_newsletter_widget {
    display: none;
  }
}

#schedule-sidebar .widget_schedule_filter_widget #schedule-widget label {
  float: none;
}

#schedule-sidebar .widget_schedule_filter_widget #schedule-widget input {
  display: block;
  display: -webkit-inline-flex;
}

.google-translate {
  top: 0;
  right: 0;
  height: 46px;
}

.google-translate > div {
  top: 16px;
}

[data-whatinput="touch"] .google-translate:focus .google-alt,
[data-whatinput="touch"] .google-translate:active .google-alt,
[data-whatinput="mouse"] .google-translate:focus .google-alt,
[data-whatinput="mouse"] .google-translate:active .google-alt,
[data-whatinput="mouse"] .google-translate:hover .google-alt, .google-translate:hover .google-alt, .google-translate:active .google-alt {
  color: #1CB0B5;
}

@media only screen and (max-width: 68em) {
  .google-translate {
    width: 90px;
    top: 10px;
    margin-right: 15px;
  }
  .google-translate > div {
    top: 0;
  }
}

#google_translate_element {
  height: 0;
}

.goog-te-banner-frame {
  position: fixed !important;
  top: 64px !important;
  box-shadow: none !important;
  text-shadow: none !important;
  z-index: 1004 !important;
}

.goog-te-gadget-icon {
  display: none;
}

.google-alt {
  width: 100%;
  right: 10px;
  top: 0;
  z-index: 0 !important;
  color: red;
  display: block;
  margin-top: 0;
  margin-bottom: 0;
  text-transform: uppercase;
  font-weight: 500;
  font-size: .9em;
  letter-spacing: .1em;
  color: #003146;
  background: transparent;
  transition: all 150ms ease;
  pointer-events: none;
}

@media only screen and (max-width: 68em) {
  .google-alt {
    display: -ms-inline-grid;
    display: inline-grid;
    padding-top: 4px;
    padding-right: 20px;
    padding-bottom: 0;
    margin-right: 0;
    float: right;
    z-index: 2;
    top: 10px;
    right: 20px;
    left: initial !important;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    line-height: 2.05;
    font-size: .65em;
    font-weight: 300;
    color: #003146;
    border-left: none;
    border-right: 2px solid #003146;
    width: auto;
  }
  .google-alt .fa {
    color: #003146;
    font-size: 22px;
  }
  .google-alt .fa-caret-down {
    display: none;
  }
}

.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}

[data-abide] .error small.error, [data-abide] .error span.error {
  display: block;
  font-size: .75rem;
  font-style: italic;
  font-weight: 400;
  margin-bottom: 1rem;
  margin-top: -1px;
  padding: .375rem .5625rem .5625rem;
  background: #f04124;
  color: #fafafa;
}

[data-abide] small.error, [data-abide] span.error {
  display: block;
  font-size: .75rem;
  font-style: italic;
  font-weight: 400;
  margin-bottom: 1rem;
  margin-top: -1px;
  padding: .375rem .5625rem .5625rem;
  background: #f04124;
  color: #fafafa;
}

[data-abide] small.error, [data-abide] span.error {
  display: none;
}

.error small.error, small.error, span.error {
  font-weight: 400;
  display: block;
  font-size: .75rem;
  font-style: italic;
  margin-top: -1px;
  padding: .375rem .5625rem .5625rem;
  background: #f04124;
}

small.error, span.error {
  margin-bottom: 1rem;
  color: #fafafa;
}

.error input, .error select, .error textarea {
  margin-bottom: 0;
}

.error input[type=checkbox], .error input[type=radio] {
  margin-bottom: 1rem;
}

.error small.error {
  margin-bottom: 1rem;
}

.error label {
  color: #f04124;
}

.error label.error {
  color: #f04124;
}

.error small.error {
  color: #fafafa;
}

.error > label > small {
  background: 0 0;
  color: #676767;
  display: inline;
  font-size: 60%;
  font-style: normal;
  margin: 0;
  padding: 0;
  text-transform: capitalize;
}

.error span.error-message {
  display: block;
}

input.error, select.error, textarea.error {
  margin-bottom: 0;
}

/*

    Custom PA.Gov styling for Ninja Forms elements

*/
/*  COLORS
--------------------------------------

[ modifying foundations default palette ]

$foundation-palette: (
  primary: #E44347,
  mars: #D7525C,
  saturn: #E4B884,
  neptune: #5147D7,
)

Using the above palette, we can add the .mars, .saturn, or .neptune classes to buttons, labels, badges, and more.

To access the colors in your code, use Sass's map-get() function:

.mars {
  color: map-get($foundation-palette, mars);
}

-------------------------------------- */
.bg-wht {
  background: #fafafa;
}

.bg-blk {
  background: #000222;
}

.bg-blkalt {
  background: #3c4245;
}

.bg-blkdrk {
  background: #000000;
}

.bg-whtlite {
  background: #fff;
}

.bg-gry {
  background: #ebebeb;
}

.bg-gray {
  background: #ebebeb;
}

.bg-grylite {
  background: #e1e1e1;
}

.bg-gryslvr {
  background: #dadada;
}

.bg-gry_muted {
  background: #b8b7b4;
}

.bg-grydrk {
  background: #464646;
}

.bg-slate {
  background: #404040;
}

.bg-blu {
  background: #598db2;
}

.bg-blue {
  background: #003146;
}

.bg-blue-bright {
  background: #00b2e2;
}

.bg-bludrk {
  background: #294c65;
}

.bg-pch {
  background: #ffe0b2;
}

.bg-gld {
  background: #ffb74d;
}

.bg-trq {
  background: #006064;
}

.bg-teal {
  background: #1CB0B5;
}

.bg-navy {
  background: #192857;
}

.bg-green {
  background: #64A70B;
}

.txt-wht {
  color: #fafafa;
}

.txt-wht-hover:hover {
  color: #fafafa;
}

.txt-blk {
  color: #000222;
}

.txt-blkalt {
  color: #3c4245;
}

.txt-blkdrk {
  color: #000000;
}

.txt-slate {
  color: #404040;
}

.txt-gry {
  color: #ebebeb;
}

.txt-grylite {
  color: #e1e1e1 !important;
}

.txt-gryslvr {
  color: #dadada;
}

.txt-grydrk {
  color: #464646;
}

.txt-gry_muted {
  color: #b8b7b4;
}

.txt-blu {
  color: #598db2;
}

.txt-blue {
  color: #003146;
}

.txt-navy {
  color: #192857;
}

.txt-bludrk {
  color: #598db2;
}

.txt-pch {
  color: #ffe0b2;
}

.txt-gld {
  color: #ffb74d;
}

.txt-trq {
  color: #006064;
}

/* .clearfix { *zoom: 1; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }*/
.content-cntrd {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* background mixin (wip)
@mixin background($bg-color $bg-img_url $bg-attachment $bg-position_x $bg-position_y $bg-repeat $bg-size) {
    background-color:           $bg-color;
    background-image:       url($bg-img_url);
    background-attachment:      $bg-attachment;
    background-position:        $bg-position_x
                                $bg-position_y;
    background-repeat:          $bg-repeat;
    -webkit-background-size:    $bg-size;
       -moz-background-size:    $bg-size;
         -o-background-size:    $bg-size;
            background-size:    $bg-size;
}
*/
.nf-field-label label {
  line-height: inherit;
  font-weight: 400 !important;
  font-size: 1rem;
  color: #003146;
  padding-bottom: .25em;
  text-transform: none;
}

.nf-form-fields-required {
  margin-bottom: 15px;
}

.inner-wrap #inner-content {
  padding: 0 0 8em 0;
}

@media screen and (max-width: 39.9375em) {
  .inner-wrap #inner-content {
    padding: 0;
  }
}

.fb-post {
  margin-bottom: 1em;
}

.reveal.full {
  top: 0 !important;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdXRpbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdmFsdWUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZGlyZWN0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwiaGVscGVycy9fY29sb3JzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19taXNzaW5nLWRlcGVuZGVuY2llcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL190cnVlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B1cmdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcmVtb3ZlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcmVwbGFjZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RvLWxpc3Quc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdXRpbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19mb3Jtcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19yYW5nZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcHJvZ3Jlc3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX21ldGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL194eS1ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2ZyYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jb2xsYXBzZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24tZ3JvdXAuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zbGlkZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FyZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGh1bWJuYWlsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19wcm90b3R5cGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yZWxhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JveC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JvdGF0ZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtdXRpbGl0aWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC10cmFuc2Zvcm1hdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2ZvbnQtc3R5bGluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2xpc3Qtc3R5bGUtdHlwZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JvdW5kZWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXJlZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NoYWRvdy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Fycm93LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2VwYXJhdG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fb3ZlcmZsb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19kaXNwbGF5LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcG9zaXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm9yZGVyLW5vbmUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zaXppbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zcGFjaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9tb3Rpb24tdWkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hcmdzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fc2VsZWN0b3Iuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX3Nlcmllcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdW5pdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fZmFkZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX3NwaW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX3pvb20uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX3NoYWtlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19zbGlkZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fd2lnZ2xlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2hpbmdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fem9vbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCJoZWxwZXJzL19taXhpbnMuc2NzcyIsImhlbHBlcnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJoZWxwZXJzL19oZWxwZXJzLnNjc3MiLCJoZWxwZXJzL193cmFwcGVycy5zY3NzIiwiaGVscGVycy9fc2hhZG93cy5zY3NzIiwiYmFzZS9fYmFja2dyb3VuZHMuc2NzcyIsInBhZ2VzL180MDQuc2NzcyIsInBhZ2VzL190b3BpY3Muc2NzcyIsInBhZ2VzL19zZWFyY2guc2NzcyIsInBhZ2VzL190cmF2ZWxFeHBlbnNlcy5zY3NzIiwiY29tcG9uZW50cy9fY29tcG9uZW50cy5zY3NzIiwiY29tcG9uZW50cy9fYmFja1RvVG9wLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fY2FsbG91dHMuc2NzcyIsImNvbXBvbmVudHMvX2dvb2dsZS1tYXBzLnNjc3MiLCJjb21wb25lbnRzL19uZXdzbGV0dGVyQ1RBLnNjc3MiLCJjb21wb25lbnRzL19uZXdzbGV0dGVyTW9kYWwuc2NzcyIsImNvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX3BhbmVscy5zY3NzIiwiY29tcG9uZW50cy9fY2FyZHMuc2NzcyIsImNvbXBvbmVudHMvX3RvcG5hdi5zY3NzIiwiY29tcG9uZW50cy9fc2VhcmNoTW9kYWwuc2NzcyIsImNvbXBvbmVudHMvX3Nob3J0Y29kZUV4cGFuZC5zY3NzIiwidGhlbWUvX3RoZW1lLnNjc3MiLCJ0aGVtZS9fYW5jaG9ycy5zY3NzIiwidGhlbWUvX2J1dHRvbnMuc2NzcyIsInRoZW1lL19jb21tZW50cy5zY3NzIiwidGhlbWUvX2V2ZW50cy5zY3NzIiwidGhlbWUvX2Zvb3Rlci5zY3NzIiwidGhlbWUvX2hlYWRlci5zY3NzIiwidGhlbWUvX2hvbWUuc2NzcyIsInRoZW1lL19tb2RhbC5zY3NzIiwidGhlbWUvX25ld3Nyb29tLnNjc3MiLCJ0aGVtZS9fcGFnZXMuc2NzcyIsInRoZW1lL19wcmlvcml0aWVzLnNjc3MiLCJ0aGVtZS9fc2VsZWN0LnNjc3MiLCJ0aGVtZS9fc2lkZWJhci5zY3NzIiwidGhlbWUvX3NpdGVtYXAuc2NzcyIsInRoZW1lL190YWJsZXMuc2NzcyIsInRoZW1lL190eXBvZ3JhcGh5LnNjc3MiLCJfY3VzdG9tLnNjc3MiLCJuaW5qYUZvcm1zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnc2V0dGluZ3MnO1xyXG5AaW1wb3J0ICdmb3VuZGF0aW9uJztcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1ldmVyeXRoaW5nKCRmbGV4OiBmYWxzZSk7XHJcbkBpbXBvcnQgJ21vdGlvbi11aSc7XHJcbkBpbXBvcnQgJ3V0aWwvbWl4aW5zJztcclxuQGltcG9ydCAndXRpbC91dGlsJztcclxuXHJcbi8vIEBpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcclxuLy8gQGluY2x1ZGUgbW90aW9uLXVpLWFuaW1hdGlvbnM7XHJcblxyXG4vLyBAaW1wb3J0ICdmb250LWF3ZXNvbWUnO1xyXG5cclxuLy8gSGVscGVyc1xyXG5AaW1wb3J0ICdoZWxwZXJzL21peGlucyc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvY29sb3JzJztcclxuQGltcG9ydCAnaGVscGVycy9icmVha3BvaW50cyc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvaGVscGVycyc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvd3JhcHBlcnMnO1xyXG5AaW1wb3J0ICdoZWxwZXJzL3NoYWRvd3MnO1xyXG5cclxuLy8gQmFzZVxyXG5AaW1wb3J0ICdiYXNlL2JhY2tncm91bmRzJztcclxuXHJcbi8vIFBhZ2VzXHJcbkBpbXBvcnQgJ3BhZ2VzLzQwNCc7XHJcbkBpbXBvcnQgJ3BhZ2VzL3RvcGljcyc7XHJcbkBpbXBvcnQgJ3BhZ2VzL3NlYXJjaCc7XHJcbkBpbXBvcnQgJ3BhZ2VzL3RyYXZlbEV4cGVuc2VzJztcclxuXHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29tcG9uZW50cyc7XHJcbkBpbXBvcnQgJ3RoZW1lL3RoZW1lJztcclxuQGltcG9ydCAnY3VzdG9tJztcclxuQGltcG9ydCAnbmluamFGb3Jtcyc7XHJcblxyXG4vLyBnbG9iYWwgc3R5bGVzXHJcblxyXG4vLyAjY29udGVudC5yb3cge1xyXG4vLyAgICAgbWF4LXdpZHRoOiAxMjAwcHg7IC8vIG1heGltdW0gc2l6ZSBvdXIgY29udGVudCBzaG91bGQgZ3Jvd1xyXG4vLyAgICAgcGFkZGluZzogNGVtIDAgOGVtIDA7IC8vIGJvdHRvbSBpcyBiZWNhdXNlIG9mIHRoZSBnb3Zlcm5vciBiYXJcclxuLy8gfVxyXG5cclxuLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHBhZ2Ugc3RydWN0dXJlXHJcbi5pbm5lci13cmFwIHtcclxuICAgICNpbm5lci1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgOGVtIDA7XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBXUCdzIGVtYmVkZGVkIGZhY2Vib29rIHBvc3RzXHJcbi5mYi1wb3N0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxufVxyXG5cclxuLy8gc29tZSBraW5kYSBpc3N1ZSB3dGloIG91ciBzdGlja3kgbmF2IGFuZCBmdWxsIHNjcmVlbiByZXZlYWxzXHJcbi5yZXZlYWwuZnVsbCB7XHJcbiAgICB0b3A6IDAgIWltcG9ydGFudDtcclxufSIsIi8vIHp1cmIgZm91bmRhdGlvbiBvdmVyd3JpdGVzXHJcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvY29sb3JzJztcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHN0YWNrc1xyXG4kZm9udC1tb250c2VycmF0OidNb250c2VycmF0JywgJ0dvdGhhbScsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYgO1xyXG4kYm9keS1mb250LWZhbWlseTogJGZvbnQtbW9udHNlcnJhdDtcclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcblxyXG4vLyBkZWZhdWx0IGZvbnQgd2VpZ2h0cyBpbiBhZGRpdGlvbiB0byBmb3VuZGF0aW9uc1xyXG4vLyAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgYW5kICRnbG9iYWwtd2VpZ2h0LWJvbGRcclxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAxMDA7XHJcblxyXG4vLyBkZWZhdWx0IGNvbG9yIHBhbGV0dGVcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICRuYXZ5LFxyXG4gIHNlY29uZGFyeTogJGdvbGQsXHJcbiAgc3VjY2VzczogIzNhZGI3NixcclxuICB3YXJuaW5nOiAjZmZhZTAwLFxyXG4gIGFsZXJ0OiAjY2M0YjM3LFxyXG4pO1xyXG5cclxuLy8gY3VzdG9tIHR5cG9ncmFwaHkgc2V0dGluZ3NcclxuJGhlYWRlci1zdHlsZXM6IChcclxuICBzbWFsbDogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXHJcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcclxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpXHJcbiAgKSxcclxuICBtZWRpdW06IChcclxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMzIpLFxyXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAzMCksXHJcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDI2KSxcclxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjApLFxyXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxOCksXHJcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KVxyXG4gICksXHJcbiAgbGFyZ2U6IChcclxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDApLFxyXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAzNiksXHJcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcclxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjQpLFxyXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXHJcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KVxyXG4gIClcclxuKTtcclxuXHJcbi8vIGkgZG9uJ3QgYmVsaWV2ZSB0aGlzIGlzIG5lY2Vzc2FyeVxyXG4vLyBXZWJmb250IHNtb290aGluZ1xyXG4vLyAqIHtcclxuLy8gICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuLy8gICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4vLyAgIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMDA0KTtcclxuLy8gfVxyXG5cclxuLy8gY3VzdG9tIHNwcml0ZSBzaXplc1xyXG4vLyBpIGRvbid0IGJlbGlldmUgd2UgYWN0dWFsbHkgdXNlIHNwcml0ZXNcclxuJHNwcml0ZS13OjIxMHB4OyAvLyBAMXhcclxuJHNwcml0ZS1oOjU3MHB4OyAvLyBAMXhcclxuXHJcbi8vIE1lZGlhIFF1ZXJ5IFJhbmdlc1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcblxyXG4vLyBmb3VuZGF0aW9ucyBkZWZpbmVkIGJyZWFrcG9pbnRzXHJcbi8vICRicmVha3BvaW50czogKFxyXG4vLyAgIHNtYWxsOiAwLFxyXG4vLyAgIG1lZGl1bTogNjQwcHgsXHJcbi8vICAgbGFyZ2U6IDEwMjRweCxcclxuLy8gICB4bGFyZ2U6IDEyMDBweCxcclxuLy8gICB4eGxhcmdlOiAxNDQwcHgsXHJcbi8vICk7XHJcblxyXG4vLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgLi4uIHdlIHNob3VsZCBjb25zaWRlciB1c2luZyBmb3VuZGF0aW9uc1xyXG4vLyBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7IGNvbG9yOiBncmVlbjsgfSBmb3IgZXhhbXBsZVxyXG4kc21hbGwtcmFuZ2U6ICgwLCA2MzlweCk7XHJcbiRtZWRpdW0tcmFuZ2U6ICg2NDBweCwgMTAyM3B4KTtcclxuJGxhcmdlLXJhbmdlOiAoMTAyNHB4LCAxMTk5cHgpO1xyXG4keGxhcmdlLXJhbmdlOiAoMTIwMHB4LCAxNDM5cHgpO1xyXG4keHhsYXJnZS1yYW5nZTogKDE0NDBweCk7XHJcblxyXG4kc2NyZWVuOiBcIm9ubHkgc2NyZWVuXCI7XHJcblxyXG4kbGFuZHNjYXBlOiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVwiO1xyXG4kcG9ydHJhaXQ6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcIjtcclxuXHJcbiRzbWFsbC11cDogJHNjcmVlbjtcclxuJHNtYWxsLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpfSlcIjtcclxuXHJcbiRtZWRpdW0tdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcclxuJG1lZGl1bS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiO1xyXG5cclxuJGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcclxuJGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiO1xyXG5cclxuJHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiO1xyXG4keGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCI7XHJcblxyXG4keHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7JHh4bGFyZ2UtcmFuZ2V9KVwiO1xyXG4keHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3skeHhsYXJnZS1yYW5nZX0pXCI7XHJcblxyXG5cclxuLy8gVmlzaWJpbGl0eSBDbGFzc2VzXHJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi5zaG93LWZvci1zciB7XHJcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDFweDtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5AaW1wb3J0ICd1bml0JztcbkBpbXBvcnQgJ3ZhbHVlJztcbkBpbXBvcnQgJ2RpcmVjdGlvbic7XG5AaW1wb3J0ICdjb2xvcic7XG5AaW1wb3J0ICdzZWxlY3Rvcic7XG5AaW1wb3J0ICdmbGV4JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXQncyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXIgdGhhbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBub3QgZmFsc2V5LCBpbiBDU1MgdGVybXMuIEZhbHNleSB2YWx1ZXMgYXJlIGBudWxsYCwgYG5vbmVgLCBgMGAgd2l0aCBhbnkgdW5pdCwgb3IgYW4gZW1wdHkgbGlzdC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICR2YWwgLSBWYWx1ZSB0byBjaGVjay5cbi8vL1xuLy8vIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWxgIGlzIG5vdCBmYWxzZXkuXG5AZnVuY3Rpb24gaGFzLXZhbHVlKCR2YWwpIHtcbiAgQGlmICR2YWwgPT0gbnVsbCBvciAkdmFsID09IG5vbmUge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJHZhbCkgPT0gMCB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIERldGVybWluZSBhIHRvcC9yaWdodC9ib3R0b20vcmlnaHQgdmFsdWUgb24gYSBwYWRkaW5nLCBtYXJnaW4sIGV0Yy4gcHJvcGVydHksIG5vIG1hdHRlciBob3cgbWFueSB2YWx1ZXMgd2VyZSBwYXNzZWQgaW4uIFVzZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIHNwZWNpZmljIHNpZGUgb2YgYSB2YWx1ZSwgYnV0IGRvbid0IGtub3cgaWYgdGhlIHZhbHVlIGlzIHVzaW5nIGEgc2hvcnRoYW5kIGZvcm1hdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxOdW1iZXJ9ICR2YWwgLSBWYWx1ZSB0byBhbmFseXplLiBTaG91bGQgYmUgYSBzaG9ydGhhbmQgc2l6aW5nIHByb3BlcnR5LCBlLmcuIFwiMWVtIDJlbSAxZW1cIlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRvIHJldHVybi4gU2hvdWxkIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBzaW5nbGUgdmFsdWUgYmFzZWQgb24gYCR2YWxgIGFuZCBgJHNpZGVgLlxuQGZ1bmN0aW9uIGdldC1zaWRlKCR2YWwsICRzaWRlKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcblxuICBAaWYgJGxlbmd0aCA9PSAxIHtcbiAgICBAcmV0dXJuICR2YWw7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICksICRzaWRlKTtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAzIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDQge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCA0KSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbn1cblxuLy8vIEdpdmVuIGJvcmRlciAkdmFsLCBmaW5kIGEgc3BlY2lmaWMgZWxlbWVudCBvZiB0aGUgYm9yZGVyLCB3aGljaCBpcyAkZWxlbS4gVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgJGVsZW0gYXJlIHdpZHRoLCBzdHlsZSwgYW5kIGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsIC0gQm9yZGVyIHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIC0gQm9yZGVyIGNvbXBvbmVudCB0byBleHRyYWN0LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBJZiB0aGUgdmFsdWUgZXhpc3RzLCByZXR1cm5zIHRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBpbiB0aGUgYm9yZGVyIGRlZmluaXRpb24sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIDBweCB3aWR0aCwgc29saWQgc3R5bGUsIG9yIGJsYWNrIGJvcmRlci5cbkBmdW5jdGlvbiBnZXQtYm9yZGVyLXZhbHVlKCR2YWwsICRlbGVtKSB7XG4gIC8vIEZpbmQgdGhlIHdpZHRoLCBzdHlsZSwgb3IgY29sb3IgYW5kIHJldHVybiBpdFxuICBAZWFjaCAkdiBpbiAkdmFsIHtcbiAgICAkdHlwZTogdHlwZS1vZigkdik7XG4gICAgQGlmICRlbGVtID09IHdpZHRoIGFuZCAkdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgICBAaWYgJGVsZW0gPT0gc3R5bGUgYW5kICR0eXBlID09ICdzdHJpbmcnIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBjb2xvciBhbmQgJHR5cGUgPT0gJ2NvbG9yJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHRzXG4gICRkZWZhdWx0czogKFxuICAgIHdpZHRoOiAwLFxuICAgIHN0eWxlOiBzb2xpZCxcbiAgICBjb2xvcjogIzAwMCxcbiAgKTtcblxuICBAcmV0dXJuIG1hcC1nZXQoJGRlZmF1bHRzLCAkZWxlbSk7XG59XG5cbi8vLyBGaW5kcyBhIHZhbHVlIGluIGEgbmVzdGVkIG1hcC5cbi8vLyBAbGluayBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvZGVlcC1nZXRzZXQtbWFwcy8gRGVlcCBHZXQvU2V0IGluIE1hcHNcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHB1bGwgYSB2YWx1ZSBmcm9tLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5cy4uLiAtIEtleXMgdG8gdXNlIHdoZW4gbG9va2luZyBmb3IgYSB2YWx1ZS5cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG4gIEByZXR1cm4gJG1hcDtcbn1cblxuLy8vIENhc3RzIGEgbWFwIGludG8gYSBsaXN0LlxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTQvMDQvMjgvY2FzdGluZy1tYXAtaW50by1saXN0L1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRGVwZW5kaW5nIG9uIHRoZSBmbGFnLCByZXR1cm5zIGVpdGhlciAka2V5cyBvciAkdmFsdWVzIG9yIGJvdGguXG5AZnVuY3Rpb24gbWFwLXRvLWxpc3QoJG1hcCwgJGtlZXA6ICdib3RoJykge1xuICAka2VlcDogaWYoaW5kZXgoJ2tleXMnICd2YWx1ZXMnLCAka2VlcCksICRrZWVwLCAnYm90aCcpO1xuXG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAka2V5czogKCk7XG4gICAgJHZhbHVlczogKCk7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xuICAgICAgJGtleXM6IGFwcGVuZCgka2V5cywgJGtleSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHZhbCk7XG4gICAgfVxuXG4gICAgQGlmICRrZWVwID09ICdrZXlzJyB7XG4gICAgICBAcmV0dXJuICRrZXlzO1xuICAgIH1cbiAgICBAZWxzZSBpZiAka2VlcCA9PSAndmFsdWVzJyB7XG4gICAgICBAcmV0dXJuICR2YWx1ZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gemlwKCRrZXlzLCAkdmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJG1hcCkgIT0gJ2xpc3QnLCAoJHZhbHVlLCksICRtYXApO1xuXG59XG5cbi8vLyBTYWZlbHkgcmV0dXJuIGEgdmFsdWUgZnJvbSBhIG1hcC5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHJldHJpZXZlIGEgdmFsdWUgZnJvbS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgdGhlIG1hcCBrZXkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRm91bmQgdmFsdWUuXG5AZnVuY3Rpb24gbWFwLXNhZmUtZ2V0KCRtYXAsICRrZXkpIHtcbiAgQGlmICh0eXBlLW9mKCRtYXApID09ICdtYXAnIG9yICh0eXBlLW9mKCRtYXApID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRtYXApID09IDApKSB7XG4gICAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0tleTogYCN7JGtleX1gIGlzIG5vdCBhdmFpbGFibGUgaW4gYCN7JG1hcH1gJztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnYCN7JG1hcH1gIGlzIG5vdCBhIHZhbGlkIG1hcCc7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mICRkaXJcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFVzZWQgZGlyZWN0aW9uIGJldHdlZW4gXCJ0b3BcIiwgXCJyaWdodFwiLCBcImJvdHRvbVwiIGFuZCBcImxlZnRcIi5cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBPcHBvc2l0ZSBkaXJlY3Rpb24gb2YgJGRpclxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1vcHBvc2l0ZShcbiAgJGRpclxuKSB7XG4gICRkaXJzOiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTtcbiAgJHBsYWNlOiBpbmRleCgkZGlycywgJGRpcik7XG5cbiAgQGlmICRwbGFjZSA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ2RpcmVjdGlvbi1vcHBvc2l0ZTogSW52YWxpZCAkZGlyIHBhcmFtZXRlciwgZXhwZWN0ZWQgYSB2YWx1ZSBmcm9tIFwiI3skZGlyc31cIiwgZm91bmQgXCIjeyRkaXJ9XCIuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgdGhlIG9wcG9zaXRlIHBsYWNlIGluIGEgY2lyY2xlLCB3aXRoIGEgc3RhcnRpbmcgaW5kZXggb2YgMVxuICAkbGVuZ3RoOiBsZW5ndGgoJGRpcnMpO1xuICAkZGVtaTogJGxlbmd0aCAvIDI7XG4gICRvcHBvc2l0ZS1wbGFjZTogKCgkcGxhY2UgKyAkZGVtaSAtIDEpICUgJGxlbmd0aCkgKyAxO1xuXG4gIEByZXR1cm4gbnRoKCRkaXJzLCAkb3Bwb3NpdGUtcGxhY2UpO1xufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzZWNvbmRhcnktY29sb3I6ICM3Njc2NzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJGFsZXJ0LWNvbG9yOiAjY2M0YjM3ICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gR2VuZXJhdGVzIGEgc2VsZWN0b3Igd2l0aCBldmVyeSB0ZXh0IGlucHV0IHR5cGUuIFlvdSBjYW4gYWxzbyBmaWx0ZXIgdGhlIGxpc3QgdG8gb25seSBvdXRwdXQgYSBzdWJzZXQgb2YgdGhvc2Ugc2VsZWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fEtleXdvcmR9ICR0eXBlcyBbKCldIC0gQSBsaXN0IG9mIHRleHQgaW5wdXQgdHlwZXMgdG8gdXNlLiBMZWF2ZSBibGFuayB0byB1c2UgYWxsIG9mIHRoZW0uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbW9kaWZpZXIgWycnXSAtIEEgbW9kaWZpZXIgdG8gYmUgYXBwbGllZCB0byBlYWNoIHRleHQgaW5wdXQgdHlwZSAoZS5nLiBhIGNsYXNzIG9yIGEgcHNldWRvLWNsYXNzKS4gTGVhdmUgYmxhbmsgdG8gaWdub3JlLlxuQGZ1bmN0aW9uIHRleHQtaW5wdXRzKCR0eXBlczogKCksICRtb2RpZmllcjogJycpIHtcbiAgJHJldHVybjogKCk7XG5cbiAgJGFsbC10eXBlczpcbiAgICB0ZXh0XG4gICAgcGFzc3dvcmRcbiAgICBkYXRlXG4gICAgZGF0ZXRpbWVcbiAgICBkYXRldGltZS1sb2NhbFxuICAgIG1vbnRoXG4gICAgd2Vla1xuICAgIGVtYWlsXG4gICAgbnVtYmVyXG4gICAgc2VhcmNoXG4gICAgdGVsXG4gICAgdGltZVxuICAgIHVybFxuICAgIGNvbG9yO1xuXG4gIEBpZiBub3QgaGFzLXZhbHVlKCR0eXBlcykge1xuICAgICR0eXBlczogJGFsbC10eXBlcztcbiAgfVxuXG4gIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJ1t0eXBlPVxcJyN7JHR5cGV9XFwnXSN7JG1vZGlmaWVyfScpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pe1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtIC4wMDEyNTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gIH1cbiAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4kc21hbGwtdXA6ICcnO1xuJHNtYWxsLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG4kbWVkaXVtLXVwOiAnJztcbiRtZWRpdW0tb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuJGxhcmdlLXVwOiAnJztcbiRsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHhsYXJnZS11cDogJyc7XG4keGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4eGxhcmdlLXVwOiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDA7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUsICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJC16Zi1mb250LXN0YWNrOiAoXG4gICdnZW9yZ2lhJzogKEdlb3JnaWEsIFwiVVJXIEJvb2ttYW4gTFwiLCBzZXJpZiksXG4gICdoZWx2ZXRpY2EnOiAoSGVsdmV0aWNhLCBBcmlhbCwgXCJOaW1idXMgU2FucyBMXCIsIHNhbnMtc2VyaWYpLFxuICAnbHVjaWRhLWdyYW5kZSc6IChcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiQml0c3RyZWFtIFZlcmEgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbiAgJ21vbm9zcGFjZSc6IChcIkNvdXJpZXIgTmV3XCIsIENvdXJpZXIsIFwiTmltYnVzIFNhbnMgTFwiLCBtb25vc3BhY2UpLFxuICAnc3lzdGVtJzogKC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiksXG4gICd2ZXJkYW5hJzogKFZlcmRhbmEsIEdlbmV2YSwgXCJEZWphVnUgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbik7XG5cbi8vLyBSZXR1cm4gYSBmb250IHN0YWNrIGxpc3QgZnJvbSBhIG1hcC4gRXF1aXZhbGVudCB0byBgbWFwLXNhZmUtZ2V0KCRuYW1lLCAkLXpmLWZvbnQtc3RhY2spYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RhY2sgLSBOYW1lIG9mIHRoZSBmb250IHN0YWNrLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIFskLXpmLWZvbnQtc3RhY2tdIC0gTWFwIG9mIGZvbnQgc3RhY2tzIHRvIHJldHJpZXZlIGEgbGlzdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEZvdW5kIGZvbnQgc3RhY2suXG5AZnVuY3Rpb24gZm9udC1zdGFjaygkc3RhY2ssICRtYXA6ICQtemYtZm9udC1zdGFjaykge1xuICBAcmV0dXJuIG1hcC1zYWZlLWdldCgkbWFwLCAkc3RhY2spO1xufVxuIiwiLyogIENPTE9SU1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuWyBtb2RpZnlpbmcgZm91bmRhdGlvbnMgZGVmYXVsdCBwYWxldHRlIF1cclxuXHJcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcclxuICBwcmltYXJ5OiAjRTQ0MzQ3LFxyXG4gIG1hcnM6ICNENzUyNUMsXHJcbiAgc2F0dXJuOiAjRTRCODg0LFxyXG4gIG5lcHR1bmU6ICM1MTQ3RDcsXHJcbilcclxuXHJcblVzaW5nIHRoZSBhYm92ZSBwYWxldHRlLCB3ZSBjYW4gYWRkIHRoZSAubWFycywgLnNhdHVybiwgb3IgLm5lcHR1bmUgY2xhc3NlcyB0byBidXR0b25zLCBsYWJlbHMsIGJhZGdlcywgYW5kIG1vcmUuXHJcblxyXG5UbyBhY2Nlc3MgdGhlIGNvbG9ycyBpbiB5b3VyIGNvZGUsIHVzZSBTYXNzJ3MgbWFwLWdldCgpIGZ1bmN0aW9uOlxyXG5cclxuLm1hcnMge1xyXG4gIGNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIG1hcnMpO1xyXG59XHJcblxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLy8gU1RBTkRBUkQgQ09MT1JTXHJcblxyXG4kd2h0OiAgICAgICAjZmFmYWZhOyAvLyBicmlnaHRlcjogI2ZlZmVmZVxyXG4kYmxrOiAgICAgICAjMDAwMjIyOyAvLyBqdXN0IGEgdG91Y2ggbGlnaHRlciB0aGFuIGJsazogIzExMVxyXG4kYmxrYWx0OiAgICAjM2M0MjQ1O1xyXG4kd2h0bGl0ZTogICAjZmZmOyAvLyBwdXJlIHdoaXRlXHJcbiRibGtkcms6ICAgICMwMDAwMDA7IC8vIHB1cmUgYmxhY2tcclxuXHJcbiRncnk6ICAgICAgICNlYmViZWI7IC8vICNlNGU0ZTRcclxuJGdyeWxpdGU6ICAgI2UxZTFlMTsgLy8gI2VlZVxyXG4kZ3J5c2x2cjogICAjZGFkYWRhO1xyXG4kZ3J5X211dGVkOiAjYjhiN2I0O1xyXG4kc2xhdGU6ICAgICBkYXJrZW4oIzU5NTk1OSwgMTAlKTsgLy8gYWxtb3N0LWJsYWNrIGdyZXksIGZvciB0ZXh0XHJcbiRncnlkcms6ICAgICM0NjQ2NDY7IC8vIzc3N1xyXG5cclxuJGJhc2U6ICNBQUFBQUE7XHJcbiRnb2xkOiByZ2IoMjAwLCAxNDYsIDQzKTtcclxuJGdvbGQtbGlnaHQ6IHJnYigyMjMsIDE3OCwgOTgpO1xyXG4kbmF2eTogcmdiKDI1LCA0MCwgODcpO1xyXG4kYmx1ZS1icmlnaHQ6IHJnYigwLCAxNzgsIDIyNik7XHJcbiRyZWQtYnJpZ2h0OiByZ2IoMjM5LCA1OCwgNzYpO1xyXG5cclxuLy8gQlJBTkQgQ09MT1JTXHJcbiRibHVkcms6ICAjMjk0YzY1OyAvLyAjMDI4OEQxIC0gNzAwICB8ICMwMTU3OWIgLSA5MDAgIHwgYmx1ZSAtICMwZDQ3YTEgLSA5MDBcclxuJGJsdTogICAgICM1OThkYjI7IC8vICMwM0E5RjQgLSA1MDAgIHwgIzAyNzdCRCAtIDgwMCAgfCBibHVlIC0gIzE1NjVjMCAtIDgwMCAgfCBvbGQ6ICMwZDQ3YTE7IG9sZDogIzU5OGRiMjsgLy8gIzc0OTVhZjs9XHJcbiRibHVlcjogICAjMTE1NWNjO1xyXG4kZ2xkOiAgICAgI2ZmYjc0ZDsgLy8gI0ZGQ0M4MCAtIDIwMCAgfCAjZmZhNzI2IC0gNDAwICB8IG9sZDogI2ZmOTgwMDsgLy8gI2NiOWIyMTtcclxuJHBjaDogICAgICNmZmUwYjI7IC8vIDEwMCAgfCAjZmZiNzRkIC0gMzAwIC8gYWx0ID0gI0ZGQzE2NSAgfCBvbGQ6ICNlYWQ2YTQ7XHJcbiR0cnE6ICAgICAjMDA2MDY0OyAvLyA4MDAgLSAwMDgzOGYgfCA5MDAgLSAwMDYwNjQgfCBvbGQgPSA0ZTY0NzY7XHJcblxyXG4vLyBORVcgQlJBTkRJTkdcclxuJHdoaXRlOiAkd2h0O1xyXG4kZ3JleTogJGdyeTtcclxuJGdyYXk6ICRncmV5O1xyXG5cclxuLy9QQS5HT1ZcclxuJHRlYWw6ICAgICMxQ0IwQjU7XHJcbiRncmVlbjogICAjNjRBNzBCO1xyXG4kZ3JleWRhcms6ICRncnlkcms7XHJcbiRibHVlOiAgICAjMDAzMTQ2O1xyXG4kcmVkOiAgICAgI0M2MEYxMztcclxuJHdoaXRlLXRydWU6ICNmZmY7XHJcblxyXG4vL0VOVEVSUFJJU0VcclxuJGdyYXktZW50ZXJwcmlzZTogIzJlMmUyZTtcclxuXHJcbi8vIFNPQ0lBTCBNRURJQSBDT0xPUlNcclxuXHJcbiRmYWNlYm9vazogICMzYjU5OTg7XHJcbiR0d2l0dGVyOiAgICMwMGFjZWQ7XHJcbiRsaW5rZWRpbjogICMwMDc3YjU7XHJcbiRnb29nbGU6ICAgICNkZDRiMzk7XHJcbiRpbnN0YWdyYW06ICM1MTdmYTQ7XHJcbiRwaW50ZXJlc3Q6ICNjYjIwMjc7XHJcbiRmbGlja3I6ICAgICNmZjAwODQ7XHJcbiR2aW1lbzogICAgICMxYWI3YWU7XHJcbiR5b3V0dWJlOiAgICNiYjAwMDA7XHJcblxyXG5cclxuLy8gQkcgQ09MT1JTXHJcblxyXG4uYmctd2h0ICAgICAgICAgeyBiYWNrZ3JvdW5kOiR3aHQ7fVxyXG4uYmctYmxrICAgICAgICAgeyBiYWNrZ3JvdW5kOiRibGs7fVxyXG4uYmctYmxrYWx0ICAgICAgeyBiYWNrZ3JvdW5kOiRibGthbHQ7fVxyXG4uYmctYmxrZHJrICAgICAgeyBiYWNrZ3JvdW5kOiRibGtkcms7fVxyXG4uYmctd2h0bGl0ZSAgICAgeyBiYWNrZ3JvdW5kOiR3aHRsaXRlO31cclxuXHJcbi5iZy1ncnkgICAgICAgICB7IGJhY2tncm91bmQ6JGdyeTt9XHJcbi5iZy1ncmF5ICAgICAgICB7IGJhY2tncm91bmQ6ICRncmF5OyB9XHJcbi5iZy1ncnlsaXRlICAgICB7IGJhY2tncm91bmQ6JGdyeWxpdGU7IH1cclxuLmJnLWdyeXNsdnIgICAgIHsgYmFja2dyb3VuZDokZ3J5c2x2cjsgfVxyXG4uYmctZ3J5X211dGVkICAgeyBiYWNrZ3JvdW5kOiRncnlfbXV0ZWQ7IH1cclxuLmJnLWdyeWRyayAgICAgIHsgYmFja2dyb3VuZDokZ3J5ZHJrOyB9XHJcbi5iZy1zbGF0ZSAgICAgICB7IGJhY2tncm91bmQ6JHNsYXRlOyB9XHJcblxyXG4uYmctYmx1ICAgICAgICAgeyBiYWNrZ3JvdW5kOiRibHU7fVxyXG4uYmctYmx1ZSAgICAgICAgeyBiYWNrZ3JvdW5kOiAkYmx1ZTsgfVxyXG4uYmctYmx1ZS1icmlnaHQgeyBiYWNrZ3JvdW5kOiAkYmx1ZS1icmlnaHQ7IH1cclxuLmJnLWJsdWRyayAgICAgIHsgYmFja2dyb3VuZDokYmx1ZHJrOyB9XHJcbi5iZy1wY2ggICAgICAgICB7IGJhY2tncm91bmQ6JHBjaDsgfVxyXG4uYmctZ2xkICAgICAgICAgeyBiYWNrZ3JvdW5kOiRnbGQ7IH1cclxuLmJnLXRycSAgICAgICAgIHsgYmFja2dyb3VuZDokdHJxOyB9XHJcbi5iZy10ZWFsICAgICAgICB7IGJhY2tncm91bmQ6ICR0ZWFsOyB9XHJcbi5iZy1uYXZ5ICAgICAgICB7IGJhY2tncm91bmQ6ICRuYXZ5OyB9XHJcbi5iZy1ncmVlbiAgICAgICB7IGJhY2tncm91bmQ6ICRncmVlbjsgfVxyXG5cclxuLy8gVEVYVCBDT0xPUlNcclxuXHJcbi50eHQtd2h0ICAgICAgICB7Y29sb3I6JHdodDt9XHJcbi50eHQtd2h0LWhvdmVyOmhvdmVyICB7IGNvbG9yOiAkd2h0OyB9XHJcbi50eHQtYmxrICAgICAgICB7Y29sb3I6JGJsazt9XHJcbi50eHQtYmxrYWx0ICAgICB7Y29sb3I6JGJsa2FsdDt9XHJcbi50eHQtYmxrZHJrICAgICB7Y29sb3I6JGJsa2Ryazt9XHJcbi50eHQtc2xhdGUgICAgICB7Y29sb3I6JHNsYXRlO31cclxuXHJcbi50eHQtZ3J5ICAgICAgICB7Y29sb3I6JGdyeTt9XHJcbi50eHQtZ3J5bGl0ZSAgICB7Y29sb3I6JGdyeWxpdGUgIWltcG9ydGFudDt9XHJcbi50eHQtZ3J5c2x2ciAgICB7Y29sb3I6JGdyeXNsdnI7fVxyXG4udHh0LWdyeWRyayAgICAge2NvbG9yOiRncnlkcms7fVxyXG4udHh0LWdyeV9tdXRlZCAge2NvbG9yOiRncnlfbXV0ZWQ7fVxyXG5cclxuLnR4dC1ibHUgICAgICAgIHtjb2xvcjokYmx1O31cclxuLnR4dC1ibHVlICAgICAgIHsgY29sb3I6ICRibHVlOyB9XHJcbi50eHQtbmF2eSAgICAgICB7IGNvbG9yOiAkbmF2eTsgfVxyXG4udHh0LWJsdWRyayAgICAge2NvbG9yOiRibHU7fVxyXG4udHh0LXBjaCAgICAgICAge2NvbG9yOiRwY2g7fVxyXG4udHh0LWdsZCAgICAgICAge2NvbG9yOiRnbGQ7fVxyXG4udHh0LXRycSAgICAgICAge2NvbG9yOiR0cnE7fVxyXG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi41LjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gLS0tIFNldHRpbmdzIC0tLVxuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcbi8vIEdsb2JhbCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG4vLyBHcmlkc1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG4vLyBHZW5lcmljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG4vLyBCYXNpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2Vcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW5vcm1hbGl6ZSgpIHtcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4gIC8vIERvY3VtZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cblxuICBodG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICB9XG5cbiAgLy8gU2VjdGlvbnNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAvLyBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLy8gR3JvdXBpbmcgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gIC8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICAgIGhlaWdodDogMDsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyAyXG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgcHJlIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICAvLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyAvLyAxXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8vIDJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLy9cbi8vLyBDaGVja3Mgd2hldGhlciBgJGZ1bmN0aW9uc2AgZXhpc3QgaW4gZ2xvYmFsIHNjb3BlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ0xpc3R9ICRmdW5jdGlvbnMgLSBsaXN0IG9mIGZ1bmN0aW9ucyB0byBjaGVjayBmb3Jcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9IFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBtaXNzaW5nIGRlcGVuZGVuY2llc1xuLy8vXG4gXG5AZnVuY3Rpb24gc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJGZ1bmN0aW9ucy4uLikge1xuICAkbWlzc2luZy1kZXBlbmRlbmNpZXM6ICgpO1xuICBcbiAgQGVhY2ggJGZ1bmN0aW9uIGluICRmdW5jdGlvbnMge1xuICAgIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKCRmdW5jdGlvbikge1xuICAgICAgJG1pc3NpbmctZGVwZW5kZW5jaWVzOiBhcHBlbmQoJG1pc3NpbmctZGVwZW5kZW5jaWVzLCAkZnVuY3Rpb24sIGNvbW1hKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBpZiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDAge1xuICAgIEBlcnJvciAnVW5tZXQgZGVwZW5kZW5jaWVzISBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQ6ICN7JG1pc3NpbmctZGVwZW5kZW5jaWVzfS4nO1xuICB9XG5cbiAgQHJldHVybiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDA7XG59XG4iLCIvLy9cbi8vLyBSZXR1cm5zIHRydXRoaW5lc3Mgb2YgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2hlY2tcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1pcy10cnVlKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSA9PSBudWxsLCBmYWxzZSwgJHZhbHVlIGFuZCAkdmFsdWUgIT0gbnVsbCBhbmQgJHZhbHVlICE9ICcnIGFuZCAkdmFsdWUgIT0gKCkpO1xufVxuIiwiLy8vXG4vLy8gUmV0dXJucyB3aGV0aGVyIGAkbGlzdGAgY29udGFpbnMgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtY29udGFpblxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICAkbGlzdCAgLSBsaXN0IHRvIGNoZWNrXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSB2YWx1ZSB0byBsb29rIGZvclxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1jb250YWluKGEgYiBjLCBhKVxuLy8vIC8vIHRydWVcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtY29udGFpbihhIGIgYywgeilcbi8vLyAvLyBmYWxzZVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gbm90IG5vdCBpbmRleCgkbGlzdCwgJHZhbHVlKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLWNvbnRhaW5cbi8vLyBAYWxpYXMgc2wtY29udGFpblxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtaW5jbHVkZSgkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vLyBSZW1vdmVzIGFsbCBmYWxzZSBhbmQgbnVsbCB2YWx1ZXMgZnJvbSBgJGxpc3RgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXB1cmdlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gbGlzdCB0byBwdXJnZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1wdXJnZShudWxsIGEgZmFsc2UgYilcbi8vLyAvLyBhIGJcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXB1cmdlKCRsaXN0KSB7XG4gICRfOiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygnc2wtaXMtdHJ1ZScsICdzbC10by1saXN0Jyk7XG4gIFxuICAkcmVzdWx0OiAoKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIHNsLWlzLXRydWUoJGl0ZW0pIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSwgbGlzdC1zZXBhcmF0b3IoJGxpc3QpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEBhbGlhcyBzbC1wdXJnZVxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtY2xlYW4oJGxpc3QpIHtcbiAgQHJldHVybiBzbC1wdXJnZSgkbGlzdCk7XG59XG4iLCIvLy9cbi8vLyBSZW1vdmVzIHZhbHVlKHMpIGAkdmFsdWVgIGZyb20gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZW1vdmVcbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZXBsYWNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAgICAgLSBsaXN0IHRvIHVwZGF0ZVxuLy8vIEBwYXJhbSB7Kn0gICAgICAgJHZhbHVlICAgICAtIHZhbHVlIHRvIHJlbW92ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZW1vdmUoYSBiIGMsIGEpXG4vLy8gLy8gYiBjXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG5cbkBmdW5jdGlvbiBzbC1yZW1vdmUoJGxpc3QsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLXJlcGxhY2UnKTtcblxuICBAcmV0dXJuIHNsLXJlcGxhY2UoJGxpc3QsICR2YWx1ZSwgbnVsbCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZW1vdmVcbi8vLyBAYWxpYXMgc2wtcmVtb3ZlXG4vLy9cblxuQGZ1bmN0aW9uIHNsLXdpdGhvdXQoJGxpc3QsICR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXJlbW92ZSgkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vL1xuLy8vIFJlcGxhY2VzIGAkb2xkYCBieSBgJG5ld2AgaW4gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZXBsYWNlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAtIGxpc3QgdG8gdXBkYXRlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkb2xkICAgLSB2YWx1ZSB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSBuZXcgdmFsdWUgZm9yICRvbGRcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcmVwbGFjZShhIGIgYywgYiwgeilcbi8vLyAvLyBhIHogY1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZXBsYWNlKGEgYiBjLCB5LCB6KVxuLy8vIC8vIGEgYiBjXG4vLy8gXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLXJlcGxhY2UoJGxpc3QsICRvbGQsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLWlzLXRydWUnLCAnc2wtcHVyZ2UnLCAnc2wtdG8tbGlzdCcpO1xuXG4gICRydW5uaW5nOiB0cnVlO1xuXG4gIEB3aGlsZSAkcnVubmluZyB7XG4gICAgJGluZGV4OiBpbmRleCgkbGlzdCwgJG9sZCk7XG5cbiAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAkcnVubmluZzogZmFsc2U7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJGxpc3Q6IHNldC1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKTtcbiAgICB9XG5cbiAgfVxuXG4gICRsaXN0OiBpZihzbC1pcy10cnVlKCR2YWx1ZSksICRsaXN0LCBzbC1wdXJnZSgkbGlzdCkpO1xuICBcbiAgQHJldHVybiBzbC10by1saXN0KCRsaXN0KTtcbn1cbiIsIi8vL1xuLy8vIENhc3RzIGAkdmFsdWVgIGludG8gYSBsaXN0LlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXRvLWxpc3Rcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2FzdCB0byBsaXN0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZXBhcmF0b3IgW3NwYWNlXSAtIHNlcGFyYXRvciB0byB1c2Vcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtdG8tbGlzdChhIGIgYywgY29tbWEpXG4vLy8gLy8gYSwgYiwgY1xuLy8vIFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXRvLWxpc3QoJHZhbHVlLCAkc2VwYXJhdG9yOiBsaXN0LXNlcGFyYXRvcigkdmFsdWUpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJHZhbHVlLCAkc2VwYXJhdG9yKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXRvLWxpc3Rcbi8vLyBAYWxpYXMgc2wtdG8tbGlzdFxuLy8vXG5cbkBmdW5jdGlvbiBzbC1saXN0aWZ5KCR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHZhbHVlKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlIHRoYXQgY29udGFpbnMgdGhlIGZsZXgganVzdGlmeWluZyBvcHRpb25zXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pZHNcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiAkZ2xvYmFsLWJ1dHRvbi1jdXJzb3I7XG4gIH1cblxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBHbG9iYWwgc3BhY2luZyBmb3IgZm9ybSBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuQGltcG9ydCAndGV4dCc7XG5AaW1wb3J0ICdjaGVja2JveCc7XG5AaW1wb3J0ICdsYWJlbCc7XG5AaW1wb3J0ICdoZWxwLXRleHQnO1xuQGltcG9ydCAnaW5wdXQtZ3JvdXAnO1xuQGltcG9ydCAnZmllbGRzZXQnO1xuQGltcG9ydCAnc2VsZWN0JztcbkBpbXBvcnQgJ3JhbmdlJztcbkBpbXBvcnQgJ3Byb2dyZXNzJztcbkBpbXBvcnQgJ21ldGVyJztcbkBpbXBvcnQgJ2Vycm9yJztcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tdGV4dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXg7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLXNlbGVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWVycm9yO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICA6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcblxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhlaWdodDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzbGlkZXIncyB0cmFjay5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGFjdGl2ZSBmaWxsIGNvbG9yIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGhhbmRsZSBmb3IgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgYW1vdW50IG9mIGEgZGlzYWJsZWQgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQge1xuICBpbnB1dFt0eXBlPSdyYW5nZSddIHsgIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICRtYXJnaW46ICgkc2xpZGVyLWhhbmRsZS1oZWlnaHQgLSAkc2xpZGVyLWhlaWdodCkgLyAyO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6ICRtYXJnaW47XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgLy8gQ2hyb21lL1NhZmFyaVxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tdG9wOiAtJG1hcmdpbjtcblxuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaXJlZm94XG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tdG9wOiAtJG1hcmdpbjtcblxuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlclxuICAgICY6Oi1tcy10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItdG9wOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgICBib3JkZXItYm90dG9tOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBhdC1yb290IHtcbiAgICAgIG91dHB1dCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb2dyZXNzLWJhclxuLy8vL1xuXG4vLy8gSGVpZ2h0IG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLWhlaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHByb2dyZXNzIGJhcidzIG1ldGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1lbGVtZW50IHtcbiAgcHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJHByb2dyZXNzLWJhY2tncm91bmQ7XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgc2V0cyB0aGUgZmlsbCB3aXRoIGNvbG9yXG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciBJRSBhbmQgRWRnZVxuICAgICY6Oi1tcy1maWxsIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZXRlclxuLy8vL1xuXG4vLy8gSGVpZ2h0IG9mIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kbWV0ZXItaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIExlbmd0aFxuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhbiBvcHRpbWFsIHZhbHVlIGluIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gTWV0ZXIgZmlsbCBmb3IgYW4gYXZlcmFnZSB2YWx1ZSBpbiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gTWV0ZXIgZmlsbCBmb3IgYSBzdWJvcHRpbWFsIHZhbHVlIGluIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1tZXRlci1lbGVtZW50IHtcbiAgbWV0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJG1ldGVyLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgLy8gRGlzYWJsZSBgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lYCBmcm9tIGdldHRpbmcgcHJlZml4ZWQsXG4gICAgLy8gV2UgaGF2ZSBkaXNhYmxlZCBhdXRvcHJlZml4ZXIgZmlyc3QgYW5kIGFyZSBqdXN0IG9ubHkgdXNpbmcgXG4gICAgLy8gYC1tb3otYXBwZWFyYW5jZTogbm9uZWAgYXMgYSBwcmVmaXggYW5kIG5lZ2xlY3RpbmcgdGhlIHdlYmtpdC5cbiAgICBcbiAgICAvKiEgYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBGb3IgRmlyZWZveFxuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcblxuICAgIC8vIENocm9tZS9TYWZhcmkvRWRnZVxuICAgICY6Oi13ZWJraXQtbWV0ZXItYmFyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQge1xuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWdvb2Q7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1tZWRpdW07XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItZXZlbi1sZXNzLWdvb2QtdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtYmFkO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbW96LW1ldGVyLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjotbW96LW1ldGVyLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWdvb2Q7XG4gICAgfVxuXG4gICAgJjotbW96LW1ldGVyLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1tZWRpdW07XG4gICAgfVxuXG4gICAgJjotbW96LW1ldGVyLXN1Yi1zdWItb3B0aW11bTo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtYmFkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLy9cblxuLy8gQmFzZSB0eXBvZ3JhcGh5IHN0eWxlcyAodGFncyBvbmx5KVxuQGltcG9ydCAnYmFzZSc7XG5cbi8vIFR5cG9ncmFwaHkgaGVscGVyIGNsYXNzZXMgKGNsYXNzZXMgb25seSlcbkBpbXBvcnQgJ2hlbHBlcnMnO1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzc2VzXG5AaW1wb3J0ICdhbGlnbm1lbnQnO1xuXG4vLyBQcmludCBzdHlsZXNcbkBpbXBvcnQgJ3ByaW50JztcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeSB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcmludC1zdHlsZXM7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTtcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuXG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXlzIG5leHQgdG8gYWxsIGxpbmtzIHRoZWlyIFwiaHJlZlwiIHdoZW4gcHJpbnRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCBvZiBhIHJvdy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudCBvZiBhIGdyaWQuIENoYW5naW5nIHRoaXMgdmFsdWUgYWZmZWN0cyB0aGUgbG9naWMgb2YgdGhlIGdyaWQgbWl4aW5zLCBhbmQgdGhlIG51bWJlciBvZiBDU1MgY2xhc3NlcyBvdXRwdXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIGNvbHVtbnMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcy4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbi8vLyBAc2luY2UgNi4xLjBcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyB3aWxsIGFsaWduIHRvIHRoZSBvcHBvc2l0ZSBlZGdlIG9mIHRoZSByb3cuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciB1c2VkIGZvciBhbiBhbGlhcyBvZiBjb2x1bW4gKHdpdGggQGV4dGVuZCkuIElmIGBmYWxzZWAsIG5vIGFsaWFzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJyAhZGVmYXVsdDtcblxuLy8vIFRoZSBoaWdoZXN0IG51bWJlciBvZiBgLngtdXBgIGNsYXNzZXMgYXZhaWxhYmxlIHdoZW4gdXNpbmcgdGhlIGJsb2NrIGdyaWQgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJGJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YWx1ZSB0byBzdG9yZSB0aGUgZW5kIGNvbHVtbiBmbG9hdCBkaXJlY3Rpb25cbiQtemYtZW5kLWZsb2F0OiBpZigkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSwgJGdsb2JhbC1yaWdodCwgJGdsb2JhbC1sZWZ0KTtcblxuQGltcG9ydCAncm93JztcbkBpbXBvcnQgJ2NvbHVtbic7XG5AaW1wb3J0ICdzaXplJztcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcbkBpbXBvcnQgJ2d1dHRlcic7XG5AaW1wb3J0ICdjbGFzc2VzJztcbkBpbXBvcnQgJ2xheW91dCc7XG5cbkBpbXBvcnQgJ2ZsZXgtZ3JpZCc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIFBvc2l0aW9uXG4gIEBpbmNsdWRlIGdyaWQtY29sLXBvcyhhdXRvKTtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIEl0IGNhbiBiZTpcbi8vLyAgICogQSBudW1iZXI6IFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50XG4vLy8gICAgIHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZVxuLy8vICAgICBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuXG4vLy8gICAqIGBjZW50ZXJgOiBDb2x1bW4gd2lsbCBiZSBjZW50ZXJlZFxuLy8vICAgKiBgYXV0b2A6IENvbHVtbiB3aWxsIGJlIHB1c2hlZCB0byB0aGUgbGVmdCAob3IgdG8gdGhlIHJpZ2h0IGZvciB0aGUgbGFzdCBjb2x1bW4pLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICAvLyBBdXRvIHBvc2l0aW9uaW5nXG4gIEBpZiAkcG9zaXRpb24gPT0gYXV0byB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHVzaC9wdWxsXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuXG4gIC8vIENlbnRlciBwb3NpdGlvbmluZ1xuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBcImNlbnRlclwiIG9yIFwiYXV0b1wiLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oYXV0byk7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBPdXRwdXRzIENTUyBjbGFzc2VzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiBmb3VuZGF0aW9uLWdyaWQoXG4gICRyb3c6ICdyb3cnLFxuICAkY29sdW1uOiAnY29sdW1uJyxcbiAgJGNvbHVtbi1yb3c6ICdjb2x1bW4tcm93JyxcbiAgJGd1dHRlcjogJ2d1dHRlcicsXG4gICRwdXNoOiAncHVzaCcsXG4gICRwdWxsOiAncHVsbCcsXG4gICRjZW50ZXI6ICdjZW50ZXJlZCcsXG4gICR1bmNlbnRlcjogJ3VuY2VudGVyZWQnLFxuICAkY29sbGFwc2U6ICdjb2xsYXBzZScsXG4gICR1bmNvbGxhcHNlOiAndW5jb2xsYXBzZScsXG4gICRvZmZzZXQ6ICdvZmZzZXQnLFxuICAkZW5kOiAnZW5kJyxcbiAgJGV4cGFuZGVkOiAnZXhwYW5kZWQnLFxuICAkYmxvY2s6ICdibG9jaydcbikge1xuICAvLyBSb3dcbiAgLiN7JHJvd30ge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgLy8gQ29sbGFwc2luZ1xuICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJiAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRncmlkLWNvbHVtbi1ndXR0ZXIpO1xuXG4gICAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgKGZ1bGwtd2lkdGgpIHJvd1xuICAgICYuI3skZXhwYW5kZWR9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC4jeyRleHBhbmRlZH0pIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICBAaWYgdHlwZS1vZigkZ3JpZC1jb2x1bW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAvLyBTdGF0aWMgKHVucmVzcG9uc2l2ZSkgcm93IGd1dHRlcnNcbiAgICAgIC8vXG4gICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRncmlkLWNvbHVtbi1ndXR0ZXIge1xuICAgICAgICAmLiN7JGd1dHRlcn0tI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCR2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC4jeyRjb2x1bW59IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbDtcblxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmLiN7JGVuZH0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1lbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLiN7JHJvd30gLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBDb2x1bW4gd2lkdGhcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1zaXplKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgICBAaWYgJGkgPCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1c2h9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoJGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKC0kaSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRvZmZzZXR9LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtbGF5b3V0KCRpLCAnLiN7JGNvbHVtbn0nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRleHBhbmRlZH0uI3skcm93fSAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfS4jeyRyb3d9IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25pbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNlbnRlcn0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLy8gR3V0dGVyIGFkanVzdG1lbnRcbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY2VudGVyfSxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1c2h9LTAsXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0wIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXVucG9zO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuI3skY29sdW1ufS0jeyRibG9ja30ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIEBpZiAkY29sdW1uID09ICdjb2x1bW4nIGFuZCBoYXMtdmFsdWUoJGdyaWQtY29sdW1uLWFsaWFzKSB7XG4gICAgLiN7JGdyaWQtY29sdW1uLWFsaWFzfSB7XG4gICAgICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1ibG9jayBwbGFjZWhvbGRlci1pbi1leHRlbmRcbiAgICAgIEBleHRlbmQgLmNvbHVtbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZ3V0dGVyXG4vLy8gICBUaGUgZ3V0dGVyIHRvIGFwcGx5IHRvIGNoaWxkIGVsZW1lbnRzLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gJGdyaWQtY29sdW1uLWd1dHRlciB3aWxsIHVzZSB0aGUgdmFsdWVzIGluIHRoZSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIG1hcCwgaW5jbHVkaW5nIGJyZWFrcG9pbnQgc2l6ZXMuXG4vLy8gICAtIEEgZml4ZWQgbnVtZXJpYyB2YWx1ZSB3aWxsIGFwcGx5IHRoaXMgZ3V0dGVyIHRvIGFsbCBicmVha3BvaW50cy5cbkBtaXhpbiBncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nLFxuICAkZ3V0dGVyOiBudWxsXG4pIHtcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgxLyRuKTtcblxuICAgIC8vIElmIGEgJGd1dHRlciB2YWx1ZSBpcyBwYXNzZWRcbiAgICBAaWYoJGd1dHRlcikge1xuICAgICAgLy8gR3V0dGVyc1xuICAgICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcbiAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRvICRuIHtcbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gaGF2ZSByb3cgd3JhcHBpbmcgYmVoYXZpb3Igc2V0IHRvIG5vd3JhcFxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIEVuYWJsZXMgdGhlIFhZIGdyaWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHh5LWdyaWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCBvZiBhIGdyaWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29udGFpbmVyOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gVGhlIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2YgbWFyZ2luIGJldHdlZW4gY2VsbHMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcyB3aGVuIHVzaW5nIHRoZSBtYXJnaW4gZ3JpZC4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHBhZGRpbmcgaW4gY2VsbHMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcyB3aGVuIHVzaW5nIHRoZSBwYWRkaW5nIGdyaWQuIFRvIHVzZSBqdXN0IG9uZSBzaXplLCBzZXQgdGhlIHZhcmlhYmxlIHRvIGEgbnVtYmVyIGluc3RlYWQgb2YgYSBtYXAuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4kZ3JpZC1wYWRkaW5nLWd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBwYWRkaW5nIHRvIHVzZSB3aGVuIHBhZGRpbmcgdGhlIGdyaWQtY29udGFpbmVyLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuJGdyaWQtY29udGFpbmVyLXBhZGRpbmc6ICRncmlkLXBhZGRpbmctZ3V0dGVycyAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIHRvIGFwcGx5IHRvIGEgZ3JpZCBjb250YWluZXJcbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbnRhaW5lci1tYXg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2VsbHMgaW4gYW4gWFkgYmxvY2sgZ3JpZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR4eS1ibG9jay1ncmlkLW1heDogOCAhZGVmYXVsdDtcblxuQGltcG9ydCAnZ3V0dGVycyc7XG5AaW1wb3J0ICdncmlkJztcbkBpbXBvcnQgJ2NlbGwnO1xuQGltcG9ydCAnZnJhbWUnO1xuQGltcG9ydCAncG9zaXRpb24nO1xuQGltcG9ydCAnbGF5b3V0JztcbkBpbXBvcnQgJ2NvbGxhcHNlJztcbkBpbXBvcnQgJ2NsYXNzZXMnO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIHlvdXIgZmxleCBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbaG9yaXpvbnRhbF0gLSBFaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBkaXJlY3Rpb24gb2YgY2VsbHMgd2l0aGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gSWYgdGhlIGNlbGxzIHdpdGhpbiBzaG91bGQgd3JhcCBvciBub3QuXG5AbWl4aW4geHktZ3JpZChcbiAgJGRpcmVjdGlvbjogaG9yaXpvbnRhbCxcbiAgJHdyYXA6IHRydWVcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uID09ICdob3Jpem9udGFsJywgcm93LCBjb2x1bW4pO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzNgLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgbiBvZiBuIGFuZCBudW1iZXIgY291bnRzXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJHNpemUpID09ICclJyB7XG4gICAgICAkc2l6ZTogJHNpemU7XG4gICAgfVxuICAgIEBlbHNlIGlmICRzaXplIDwgMSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKCRzaXplIC8gJGdyaWQtY29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIG9yIFwibi9uXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRzaXplKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIiBvciBcIm4vblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKG50aCgkc2l6ZSwgMSkgLyBudGgoJHNpemUsIDMpKTtcbiAgICB9XG4gIH1cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkc2l6ZTtcbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgIG9yIGBncm93YC5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIC8vIFRoaXMgaXMgdGhlIGJhc2Ugc3R5bGUsIGFsbCBvdGhlcnMgaW5oZXJpdCBmcm9tIGl0XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnZ3JvdycpIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgd2lkdGgsIGhlaWdodCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIG1heC0jeyRkaXJlY3Rpb259OiBub25lO1xufVxuXG4vLyBTZXRzIG91ciBjZWxsIHdpZHRocyBvciBoZWlnaHRzIGRlcGVuZGluZyBvbiBndXR0ZXIgdHlwZS5cbkBtaXhpbiAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkbWFyZ2luLWd1dHRlciwgJHZlcnRpY2FsKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgMTAwJSwgY2FsYygxMDAlIC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgI3t4eS1jZWxsLXNpemUoJHNpemUpfSwgY2FsYygje3h5LWNlbGwtc2l6ZSgkc2l6ZSl9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkYnAtaXMtZmFsbGJhY2s6IGZhbHNlO1xuXG4gIEBpZigkYnJlYWtwb2ludCA9PSBudWxsKSB7XG4gICAgLy8gSWYgYCRicC1zaXplYCBpcyBhdmFpbGFibGUgdGhlbiB1c2UgdGhpcywgb3RoZXJ3aXNlIHJldmVydCB0byB0aGUgc21hbGxlc3QgYnAuXG4gICAgQGlmKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICAgICRicmVha3BvaW50OiAkLXpmLXNpemU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgICAgICRicC1pcy1mYWxsYmFjazogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciBmb3IgdGhlIGdpdmVuIGJyZWFrcG9pbnQvdmFsdWUuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgZmFsbGJhY2ssIHVzZSBhIGZhbGxiYWNrIGd1dHRlciBhcyB3ZWxsXG4gIEBpZiAoJGJwLWlzLWZhbGxiYWNrID09IHRydWUgYW5kICRndXR0ZXIgPT0gbnVsbCkge1xuICAgICRndXR0ZXI6IDA7XG4gIH1cblxuICBAaWYoJGd1dHRlciAhPSBudWxsKSB7XG4gICAgLy8gQmFzZSBmbGV4IHByb3BlcnRpZXNcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoJHNpemUpO1xuXG4gICAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAaWYgJGd1dHRlci1vdXRwdXQge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ3h5LWNlbGw6IG5vIGd1dHRlcnMgd2VyZSBmb3VuZCBpbiBgJGd1dHRlcnNgIGZvciBcIiRicmVha3BvaW50OiAjeyRicmVha3BvaW50fVwiLCBjZWxsIHdhcyBub3QgZ2VuZXJhdGVkYCdcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIC8vIElmIHdlIHdhbnQgdG8gb3V0cHV0IHRoZSBndXR0ZXJzXG4gIEBpZigkZ3V0dGVyLW91dHB1dCkge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBwYXNzIGJyZWFrcG9pbnQgaW4gaGVyZSB0b28uXG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvLy8gTW9kaWZpZXMgYSBncmlkIHRvIGdpdmUgaXQgXCJmcmFtZVwiIGJlaGF2aW9yIChubyBvdmVyZmxvdywgbm8gd3JhcCwgc3RyZXRjaCBiZWhhdmlvcilcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3RlZCBbZmFsc2VdIC0gSXMgZ3JpZCBuZXN0ZWQgb3Igbm90LiBJZiBuZXN0ZWQgaXMgdHJ1ZSB0aGlzIHNldHMgdGhlIGZyYW1lIHRvIDEwMCUgaGVpZ2h0LCBvdGhlcndpc2Ugd2lsbCBiZSAxMDB2aC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFtudWxsXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbmNsdWRlLWJhc2UgW3RydWVdIC0gSW5jbHVkZSB0aGUgYmFzZSBzdHlsZXMgdGhhdCBkb24ndCB2YXJ5IHBlciBicmVha3BvaW50LlxuQG1peGluIHh5LWdyaWQtZnJhbWUoXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRuZXN0ZWQ6IGZhbHNlLFxuICAkZ3V0dGVyczogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICRpbmNsdWRlLWJhc2U6IHRydWVcbikge1xuXG4gIEBpZiAkaW5jbHVkZS1iYXNlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUoJHZlcnRpY2FsLCAkbmVzdGVkLCAkZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBHZXQgb3VyIGd1dHRlcnMgaWYgYXBwbGljYWJsZVxuICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgZ3V0dGVyLCBhZGQgaXQgdG8gdGhlIHdpZHRoL2hlaWdodFxuICAgIEBpZiAkZ3V0dGVyIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIHdpZHRoOiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgIGhlaWdodDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgd2lkdGg6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gTW9kaWZpZXMgYSBjZWxsIHRvIGdpdmUgaXQgXCJibG9ja1wiIGJlaGF2aW9yIChvdmVyZmxvdyBhdXRvLCBpbmVydGlhbCBzY3JvbGxpbmcpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrKFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHByb3BlcnR5OiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgJ292ZXJmbG93LXknLCAnb3ZlcmZsb3cteCcpO1xuXG4gIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH0gQGVsc2Uge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbn1cblxuLy8vIENvbnRhaW5lciBmb3IgaW5zaWRlIGEgZ3JpZCBmcmFtZSBjb250YWluaW5nIG11bHRpcGxlIGJsb2Nrcy4gVHlwaWNhbGx5IHVzZWRcbi8vLyBhcyBhIG1vZGlmaWVyIGZvciBhIGAuY2VsbGAgdG8gYWxsb3cgdGhlIGNlbGwgdG8gcGFzcyBhbG9uZyBmbGV4IHNpemluZ1xuLy8vIGNvbnN0cmFpbnRzIC8gZnJvbSBwYXJlbnRzIHRvIGNoaWxkcmVuLlxuQG1peGluIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gID4gLmdyaWQteCB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQvYm90dG9tIGJ5IGAkbmAgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB6Zi1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSBNYXAgb2YgZ3V0dGVycyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIGZvciByZXNwb25zaXZlIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHVzZS4gQ2FuIGJlIGBtYXJnaW5gIG9yIGBwYWRkaW5nYFxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRicmVha3BvaW50IFskLXpmLXplcm8tYnJlYWtwb2ludF0gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZSBmb3IgYCRndXR0ZXJzYC4gU2VlIGAtemYtYnJlYWtwb2ludC12YWx1ZSgpYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRicmVha3BvaW50LCAkZ3V0dGVycykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcbiAgICAkZ3V0dGVyLW1hcmdpbjogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCAkZ3V0dGVyLCAwKTtcbiAgICAkc2l6ZTogaWYoJGd1dHRlci1tYXJnaW4gPT0gMCwgI3t4eS1jZWxsLXNpemUoJG4pfSwgY2FsYygje3h5LWNlbGwtc2l6ZSgkbil9ICsgI3skZ3V0dGVyLW1hcmdpbn0pKTtcblxuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAjeyRzaXplfTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY2VsbCddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCBvciBgcGFkZGluZ2AuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIGJyZWFrcG9pbnQgdG8gdXNlIGZvciB0aGUgY2VsbCBnZW5lcmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHNpemU6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbCgkc2l6ZSwgJGd1dHRlci1vdXRwdXQsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZXMgdGhlIGdyaWQgYSBjZWxscyB3aXRoaW4gaXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsuY2VsbF0gLSBUaGUgY2hpbGQgZWxlbWVudCB0byByZW1vdmUgdGhlIGd1dHRlciBmcm9tLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHJlbW92ZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9ucyB0byByZW1vdmUgZ3V0dGVycyBmcm9tLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRtaW4tYnJlYWtwb2ludCBbJC16Zi16ZXJvLWJyZWFrcG9pbnRdIC0gTWluaW11bSBicmVha3BvaW50IGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBmb3Igd2hpY2ggdG8gY29sbGFwc2UgdGhlIGd1dHRlci5cbkBtaXhpbiB4eS1ncmlkLWNvbGxhcHNlKFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbWluLWJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50XG4pIHtcbiAgLy8gRmlyc3QsIGxldHMgbmVnYXRlIGFueSBtYXJnaW5zIG9uIHRoZSB0b3AgbGV2ZWxcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkZXhjbHVkZWQtYnBzOiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRtaW4tYnJlYWtwb2ludCk7XG5cbiAgICAvLyBPdXRwdXQgbmV3IHdpZHRocyB0byBub3QgaW5jbHVkZSBndXR0ZXJzXG4gICAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmKHNsLWNvbnRhaW4oJGV4Y2x1ZGVkLWJwcywgJGJwKSkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCAkZ3V0dGVyLW91dHB1dDogZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIHBhZGRpbmctI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1iYXNlLWdyaWQtY2xhc3NlcyB7XG5cbiAgLy8gR3JpZCBDb250YWluZXJcbiAgLmdyaWQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcblxuICAgICYuZmx1aWQge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSk7XG4gICAgfVxuXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgLmdyaWQteCB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgfVxuXG4gIC5jZWxsIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoKTtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkZ3JpZC1jb2x1bW5zLCBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICAgICYuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgfVxuXG4gICAgJi5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gIH1cbiAgLmdyaWQteCB7XG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gd2lkdGhcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzICYgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgIC5ncmlkLXgge1xuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBSZXNwb25zaXZlIFwiYXV0b1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHdpZHRoIG1vZGlmaWVyc1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgd2lkdGggd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXhgIG5vdCBvbiBgLmdyaWQteGBcbiAgLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi15YCBub3Qgb24gYC5ncmlkLXlgXG4gIC5ncmlkLW1hcmdpbi15Om5vdCguZ3JpZC15KSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkY2xhc3MtYnJlYWtwb2ludCwgJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWwpIHtcbiAgJHByZWZpeDogaWYoJGNsYXNzLWJyZWFrcG9pbnQgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQsICcnLCAnI3skY2xhc3MtYnJlYWtwb2ludH0tJyk7XG4gID4gLiN7JHByZWZpeH1hdXRvIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgPiAuI3skcHJlZml4fXNocmluayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgJGNsYXNzbmFtZTogaWYoJHZlcnRpY2FsLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9JywgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScpO1xuXG4gICAgPiAjeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktbWFyZ2luLWdyaWQtY2xhc3NlcyhcbiAgJGd1dHRlci1wb3NpdGlvbjogbGVmdCByaWdodCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJHdyYXBwaW5nLXNlbGVjdG9yOiAnLmdyaWQtbWFyZ2luLXgnXG4pe1xuICAjeyR3cmFwcGluZy1zZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiAkZ3V0dGVyLXBvc2l0aW9uKTtcblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBiYXNlIHN0eWxlcyBuZWVkIHRvIGFsbCBiZSBiZWZvcmUgdGhlIGF1dG8gYW5kIHNocmluayBzdHlsZXNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSBhbmQgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLmNlbGwge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG5cbiAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAvLyBmb3IgYWxsIHByaW9yIGJyZWFrcG9pbnRzLlxuICAgICAgLy8gQXMgdGhlaXIgZ3V0dGVyIGlzIGRlZmluZWQgd2l0aCB0aGVpciB3aWR0aC9oZWlnaHQsIGV2ZW4gYnJlYWtwb2ludCB3aXRob3V0IGEgbmV3IG1hcmdpbiBtdXN0IGJlXG4gICAgICAvLyBnZW5lcmF0ZWQgdG8gbm90IGhhdmluZyB0aGVpciB3aWR0aC9oZWlnaHQgb3ZlcnJpZGVkIGJ5IHJlLWFkanVzdGVkIHNtYWxsZXIgYnJlYWtwb2ludHMuXG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkYnAsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJC16Zi1zaXplLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZGRpbmcgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktcGFkZGluZy1ncmlkLWNsYXNzZXMge1xuICAuZ3JpZC1wYWRkaW5nLXgge1xuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgZ3JpZHMgd2l0aGluIGBncmlkLWNvbnRhaW5lci9ncmlkLWNvbnRhaW5lci5mbHVpZGBcbiAgICAvLyBUaGlzIGFsbG93cyBtYXJnaW4gYW5kIHBhZGRpbmcgZ3JpZHMgdG8gbGluZSB1cCB3aXRoIGVhY2hvdGhlclxuICAgIC5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gJiB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCbG9jayBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItb3V0cHV0OiBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgICAvLyBmb3IgcHJpb3IgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyLlxuICAgICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRicCkpIHtcbiAgICAgICAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skYnB9LXVwLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sbGFwc2UgY2xhc3Nlc1xuQG1peGluIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgICAgLiN7JGJwfS1tYXJnaW4tY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogbWFyZ2luLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgICAgLiN7JGJwfS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT2Zmc2V0IGNsYXNzZXNcbkBtaXhpbiB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLW1hcmdpbi14ID4gLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZlcnRpY2FsIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcyhcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQteSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZCh2ZXJ0aWNhbCwgZmFsc2UpO1xuXG5cbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICB9XG5cbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgYW5kIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBSZXNwb25zaXZlIFwiYXV0b1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZXNwb25zaXZlIHdpZHRoIG1vZGlmaWVyc1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLXZlcnRpY2FsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICR2ZXJ0aWNhbDogdHJ1ZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuXG4gICAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgICA+IC5jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gIH1cblxufVxuXG5AbWl4aW4geHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkOiB0cnVlLCAkbWFyZ2luLWdyaWQ6IHRydWUpIHtcbiAgLy8gRnJhbWVkIGdyaWQgc3R5bGVzXG4gIC5ncmlkLWZyYW1lIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICB9XG5cbiAgLmNlbGwgLmdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICB9XG5cbiAgLmNlbGwtYmxvY2sge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgfVxuXG4gIC5jZWxsLWJsb2NrLXkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gIH1cblxuXG4gIC5jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuXG4gICAgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gICAgfVxuXG4gICAgLmNlbGwgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICR2ZXJ0aWNhbC1ncmlkIHtcbiAgICAuZ3JpZC15IHtcbiAgICAgICYuZ3JpZC1mcmFtZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgICYuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbCB7XG4gICAgICAuZ3JpZC15LmdyaWQtZnJhbWUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICB9XG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgIC5ncmlkLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICAgIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRpbmNsdWRlLWJhc2U6IGZhbHNlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgLmdyaWQtbWFyZ2luLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZpbmFsIGNsYXNzZXNcbkBtaXhpbiBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcyhcbiAgJGJhc2UtZ3JpZDogdHJ1ZSxcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlLFxuICAkYmxvY2stZ3JpZDogdHJ1ZSxcbiAgJGNvbGxhcHNlOiB0cnVlLFxuICAkb2Zmc2V0OiB0cnVlLFxuICAkdmVydGljYWwtZ3JpZDogdHJ1ZSxcbiAgJGZyYW1lLWdyaWQ6IHRydWVcbikge1xuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgQGlmKCRiYXNlLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1iYXNlLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gTWFyZ2luIGdyaWRcbiAgQGlmKCRtYXJnaW4tZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFBhZGRpbmcgZ3JpZFxuICBAaWYoJHBhZGRpbmctZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBCbG9jayBncmlkXG4gIEBpZigkYmxvY2stZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gQ29sbGFwc2UgZ3V0dGVyc1xuICBAaWYoJGNvbGxhcHNlKSB7XG4gICAgQGluY2x1ZGUgeHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBPZmZzZXQgZ3V0dGVyc1xuICBAaWYoJG9mZnNldCkge1xuICAgIEBpbmNsdWRlIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGdyaWRcbiAgQGlmKCR2ZXJ0aWNhbC1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICBAaWYgKCRmcmFtZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkLCAkbWFyZ2luLWdyaWQpXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRpdGlvbmFsIHJlc3BvbnNpdmUgY2xhc3NlcyBmb3IgLmV4cGFuZGVkXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0ge1xuICAgICYsXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIEBpZiAkYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQge1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gb25seSkge1xuICAgICAgICAgICYuI3skc2l6ZX0tb25seS1leHBhbmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gZG93bikge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1kb3duLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9KSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3IsIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gY2xlYXIge1xuICAgICAgJi5jbGVhciB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG5cbiAgICAgICAgICAgICYsICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3csICYuY2xlYXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG5cbiAgYS5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLiAoT25seSBuZWVkZWQgd2hlbiAkZ2xvYmFsLWZsZXhib3g6IGZhbHNlOylcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skc3BhY2luZ30pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuXG4gICAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYmFkZ2Vcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcbiAgLmJhZGdlIHtcbiAgICBAaW5jbHVkZSBiYWRnZTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRiYWRnZS1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRiYWRnZS1jb2xvciwgJGJhZGdlLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNlcGVyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCkge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoO1xufVxuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nICFkZWZhdWx0O1xuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvciBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3Ige1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XG4gICAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgZGlzcGxheTogbm9uZTtcblxuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG5cbiAgLy8gQWxsb3cgYW4gaW50ZXJtaXR0ZW50IHN0YXRlIHRvIGRvIHBvc2l0aW9uaW5nIGJlZm9yZSBtYWtpbmcgdmlzaWJsZS5cbiAgJi5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBhYic7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvb2x0aXBcbi8vLy9cblxuLy8vIERlZmF1bHQgY3Vyc29yIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhhcy10aXAtY3Vyc29yOiBoZWxwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIHRvb2x0aXAgdGV4dC4gQnkgZGVmYXVsdCwgd2UgcmVjb21tZW5kIGEgc21hbGxlciBmb250IHNpemUgdGhhbiB0aGUgYm9keSBjb3B5LlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b207XG4gIGZvbnQtd2VpZ2h0OiAkaGFzLXRpcC1mb250LXdlaWdodDtcbiAgY3Vyc29yOiAkaGFzLXRpcC1jdXJzb3I7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xuICB6LWluZGV4OiAxMjAwO1xuXG4gIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYudG9wIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYucmlnaHQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTtcbiAgfVxuXG4gICYuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tbGVmdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b29sdGlwIHtcbiAgLmhhcy10aXAge1xuICAgIEBpbmNsdWRlIGhhcy10aXA7XG4gIH1cblxuICAudG9vbHRpcCB7XG4gICAgQGluY2x1ZGUgdG9vbHRpcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICYubWlkZGxlIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJi5ib3R0b20ge1xuICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmVzcG9uc2l2ZS1lbWJlZFxuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBBc3BlY3QgcmF0aW9zIHVzZWQgdG8gZGV0ZXJtaW5lIHBhZGRpbmctYm90dG9tIG9mIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVycy5cbi8vLyBAdHlwZSBNYXBcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRyYXRpbyBbZGVmYXVsdF0gLSBSYXRpbyBvZiB0aGUgY29udGFpbmVyLiBDYW4gYmUgYSBrZXkgZnJvbSB0aGUgYCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvc2AgbWFwIG9yIGEgbGlzdCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpIHtcbiAgQGlmIHR5cGUtb2YoJHJhdGlvKSA9PSAnc3RyaW5nJyB7XG4gICAgJHJhdGlvOiBtYXAtZ2V0KCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgJHJhdGlvKTtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCB7XG4gIC5yZXNwb25zaXZlLWVtYmVkLFxuICAuZmxleC12aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpO1xuXG4gICAgJHJhdGlvczogbWFwLXJlbW92ZSgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsZGVmYXVsdCk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIExlZnRcbiAgICAmLmljb24tbGVmdCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBSaWdodFxuICAgICYuaWNvbi1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIH1cblxuICAgIC8vIEljb24gVG9wXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJvdHRvbVxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuICAgIFxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG59XG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG5cbiAgLmFjY29yZGlvbi1tZW51IHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luLCByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gIH1cblxuICAvLyBTdWJtZW51IHRvZ2dsZVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxuXG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSB0b3AgbGV2ZWwgPHVsPlxuICAuZHJpbGxkb3duIHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBcHBsaWVkIHRvIHN1Ym1lbnUgPHVsPnNcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJtZW51IGl0ZW0gcGFkZGluZ1xuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC8vIFRvcC1sZXZlbCBpdGVtXG4gICAgPiBsaSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIFRvcC1sZXZlbCBpdGVtIGFjdGl2ZSBzdGF0ZVxuICAgID4gbGkuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmRyb3Bkb3duICYgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggbWFwIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG1hcCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIG92ZXJsYXAgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IHNpemUgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBjb2xvciBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBjb250ZW50IG92ZXJsYXkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTMgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuXG4gIC8vLyBUcmFuc2Zvcm0gZGVwcmVjYXRlZCBzaXplIHNldHRpbmdzIGludG8gbWFwICYgc2hvdyB3YXJuaW5nXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcyBpbnN0ZWFkJztcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGUgei1pbmRleGVzIGFuZCBpbmNyZWFzZSB0aGVtIGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb3ZlcmxheSdzIHotaW5kZXggaXMgbmV3IHNpbmNlIHY2LjQgYW5kIG1heSBiZSBpZGVudGljYWwgdG8gdGhlIHVzZXIgY3VzdG9tIHNldHRpbmdzIG9mIHRoZSBwdXNoIHotaW5kZXguXG4gIEBpZiAkb2ZmY2FudmFzLXB1c2gtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXB1c2gtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4IDw9ICRvZmZjYW52YXMtcHVzaC16aW5kZXggeyAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuXG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemVzOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplcywgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcylcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0cmFuc2l0aW9uOiBub25lO1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbi8vIFRoaXMgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGJyZWFrcG9pbnQgdGhlbiBgQG1peGluIHJldmVhbC1tb2RhbC13aWR0aGBcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIC8vIEV4dGVuZHMgbXVzdCBiZSBtYWRlIG91dHNpZGUgb2YgYnJlYWtwb2ludHMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBuZXdlciBTYXNzIHZlcnNpb25zIChsaWJzYXNzIHYzLjUpXG4gIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXZlYWwge1xuXG4gIC8vLyBEaXNhYmxlcyB0aGUgc2Nyb2xsIHdoZW4gUmV2ZWFsIGlzIHNob3duIHRvIHByZXZlbnQgdGhlIGJhY2tncm91bmQgZnJvbSBzaGlmdGluZ1xuICBodG1sLmlzLXJldmVhbC1vcGVuIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgJi56Zi1oYXMtc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB9XG5cbiAgICBib2R5IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICYubWVudSA+IGxpID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlXG4vLy8vXG5cbi8vIFJlbGF0aW9uYWwgTWl4aW5zXG5AaW1wb3J0ICdyZWxhdGlvbic7XG5cbi8vIEJveCBNaXhpblxuQGltcG9ydCAnYm94JztcblxuLy8gUm90YXRlIE1peGluXG5AaW1wb3J0ICdyb3RhdGUnO1xuXG4vLyBUZXh0IHV0aWxpdGllc1xuQGltcG9ydCAndGV4dC11dGlsaXRpZXMnO1xuXG4vLyBUZXh0IHRyYW5zZm9ybWF0aW9uIGNsYXNzZXNcbkBpbXBvcnQgJ3RleHQtdHJhbnNmb3JtYXRpb24nO1xuXG4vLyBUZXh0IERlY29yYXRpb24gY2xhc3Nlc1xuQGltcG9ydCAndGV4dC1kZWNvcmF0aW9uJztcblxuLy8gRm9udCBTdHlsaW5nXG5AaW1wb3J0ICdmb250LXN0eWxpbmcnO1xuXG4vLyBMaXN0IFN0eWxlIHR5cGVcbkBpbXBvcnQgJ2xpc3Qtc3R5bGUtdHlwZSc7XG5cbi8vIFJvdW5kZWQgVXRpbGl0eVxuQGltcG9ydCAncm91bmRlZCc7XG5cbi8vIEJvcmRlcmVkIFV0aWxpdHlcbkBpbXBvcnQgJ2JvcmRlcmVkJztcblxuLy8gU2hhZG93IFV0aWxpdHlcbkBpbXBvcnQgJ3NoYWRvdyc7XG5cbi8vIEFycm93IFV0aWxpdHlcbkBpbXBvcnQgJ2Fycm93JztcblxuLy8gU2VwYXJhdG9yIFV0aWxpdHlcbkBpbXBvcnQgJ3NlcGFyYXRvcic7XG5cbi8vIE92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG5AaW1wb3J0ICdvdmVyZmxvdyc7XG5cbi8vIERpc3BsYXkgY2xhc3Nlc1xuQGltcG9ydCAnZGlzcGxheSc7XG5cbi8vIFBvc2l0aW9uIEhlbHBlcnNcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcblxuLy8gQm9yZGVyIGJveFxuQGltcG9ydCAnYm9yZGVyLWJveCc7XG5cbi8vIEJvcmRlciBub25lIFV0aWx0eVxuQGltcG9ydCAnYm9yZGVyLW5vbmUnO1xuXG4vLyBTaXppbmcgVXRpbGl0aWVzXG5AaW1wb3J0ICdzaXppbmcnO1xuXG4vLyBTcGFjaW5nIFV0aWxpdGllc1xuQGltcG9ydCAnc3BhY2luZyc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXJvdW5kZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zZXBhcmF0b3I7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1kaXNwbGF5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1wb3NpdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLWJveDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNpemluZztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtc3BhY2luZztcbn1cbiIsIi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEZpcnN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGZpcnN0KCRudW0pIHtcbiAgQGlmICRudW0gPT0gMSB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICY6bnRoLWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGZpcnN0IGV4YWN0IGNoaWxkXG5AbWl4aW4gZmlyc3QtY2hpbGQge1xuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGxhc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gTGFzdCBgbmAgbnVtYmVycyBvZiB0b3RhbCBjaGlsZHJlbiBcbkBtaXhpbiBsYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IHRoZSBsYXN0IGV4YWN0IGNoaWxkXG5AbWl4aW4gbGFzdC1jaGlsZCB7XG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGNoaWxkcmVuIGV2ZXJ5IGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEV2ZXJ5IGBuYCBudW1iZXIgb2YgYWxsIGNoaWxkcmVuXG5AbWl4aW4gZXZlcnkoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19bikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3Qgb25seSB0aGUgZmlyc3QgYW5kIGxhc3QgY2hpbGQuXG5AbWl4aW4gZmlyc3QtbGFzdCB7XG4gICY6Zmlyc3QtY2hpbGQsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYWZ0ZXIgdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEFmdGVyIEZpcnN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGFmdGVyLWZpcnN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bSArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmVmb3JlIGAkbnVtYCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRnJvbSBMYXN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGZyb20tbGFzdCgkbnVtKSB7XG4gICY6bnRoLWxhc3QtY2hpbGQoI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGAkbnVtYCBjaGlsZCBmcm9tIHRoZSBmaXJzdCBhbmQgdGhlIGAkbnVtYCBjaGlsZCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciBjYWxsZWQgZnJvbSBmaXJzdCBhbmQgbGFzdCBcbkBtaXhpbiBmcm9tLWZpcnN0LWxhc3QoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19KSxcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYnV0IGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIGBuYCBudW1iZXIgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBhbGwgb3RoZXIgY2hpbGRyZW4gXG5AbWl4aW4gYWxsLWJ1dCgkbnVtKSB7XG4gICY6bm90KDpudGgtY2hpbGQoI3skbnVtfSkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZXR3ZWVuIHRoZSBgJG51bWAgZmlyc3QgYW5kIHRoZSBgJG51bWAgbGFzdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIGBuYCBudW1iZXIgZXhjbHVkZWQgZnJvbSBmaXJzdCBhbmQgbGFzdCBmcm9tIGFsbCBvdGhlciBjaGlsZHJlblxuQG1peGluIGFsbC1idXQtZmlyc3QtbGFzdCgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKG4gKyAjeyRudW19KTpudGgtbGFzdC1jaGlsZChuICsgI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IHRoZSBjaGlsZCBpZiBpdCdzIHVuaXF1ZS4gVGhhdCBtZWFucyB0aGF0IGlmIHRoZXJlIGFyZSBhdCBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgd2lsbCBub3QgYmUgYXBwbGllZC5cbkBtaXhpbiB1bmlxdWUge1xuICAmOm9ubHktY2hpbGQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IGNoaWxkcmVuIGlmIHRoZXkgYXJlIG5vdCB1bmlxdWUuIFRoYXQgbWVhbnMgdGhhdCBpZiB0aGVyZSBhcmUgYXQgbGVhc3QgMiBjaGlsZHJlbiwgdGhlIHN0eWxlIHdpbGwgYmUgYXBwbGllZC5cbkBtaXhpbiBub3QtdW5pcXVlKCkge1xuICAmOm5vdCg6b25seS1jaGlsZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBudGhgIG51bWJlclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGFzdFtdIExhc3QgYG50aGAgbnVtYmVyXG5AbWl4aW4gYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbi5cbkBtaXhpbiBldmVuIHtcbiAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGV2ZW4gY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBldmVuLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChldmVuKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4uXG5AbWl4aW4gb2RkIHtcbiAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgb2RkIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBudGhgIG51bWJlclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGFzdFtdIExhc3QgYG50aGAgbnVtYmVyXG5AbWl4aW4gb2RkLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChvZGQpOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGAkbnVtYCBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRXZlcnkgYG5gIG51bWJlciBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbmAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbmAgbnVtYmVyXG5AbWl4aW4gbnVtYmVyLWJldHdlZW4oJG51bSwgJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZCgjeyRudW19bik6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3hcbi8vLy9cblxuLy8vIEJveCBNaXhpbjogRWFzaWx5IGNyZWF0ZSBhIHNxdWFyZSwgcmVjdGFuZ2xlIG9yIGEgY2lyY2xlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aFtdIFdpZHRoIG9mIHRoZSBib3hcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodFskd2lkdGhdIEhlaWdodCBvZiB0aGUgYm94LCBkZWZhdWx0cyB0byBgJHdpZHRoYCB0byBlYXNpbHkgbWFrZSBhIHNxdWFyZVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNpcmNsZVtmYWxzZV0gTWFrZXMgdGhlIGJveCBhIGNpcmNsZSwgYnkgZGVmYXVsdCBgZmFsc2VgLlxuQG1peGluIGJveChcbiAgJHdpZHRoLCBcbiAgJGhlaWdodDogJHdpZHRoLCBcbiAgJGNpcmNsZTogZmFsc2Vcbikge1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIEBpZiAkY2lyY2xlIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXJvdGF0ZVxuLy8vL1xuXG4vLy8gUm90YXRlIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGUoJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlKCRkZWcgKyBkZWcpO1xufVxuXG4vLy8gUm90YXRlWCBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZyBvbiBYLUF4aXNcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZVgoJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlWCgkZGVnICsgZGVnKTtcbn1cblxuLy8vIFJvdGF0ZVkgTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWcgb24gWS1BeGlzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGVZKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZVkoJGRlZyArIGRlZyk7XG59XG5cbi8vLyBSb3RhdGVaIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnIG9uIFotQXhpc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlWigkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGVaKCRkZWcgKyBkZWcpO1xufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXV0aWxpdGllc1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCB1dGlsaXRpZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IFZhbHVlIGZvciBgdGV4dC1vdmVyZmxvd2AgdmFyaWFibGVcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWRlZmF1bHQ7XG5cbi8vLyBJbWFnZSBSZXBsYWNlbWVudCB1dGlsaXR5LiBgdGV4dC1oaWRlYFxuQG1peGluIHRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLy8vIFRydW5jYXRpbmcgdGhlIHRleHQsIGVsaXBzaXMgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG92ZXJmbG93IFskcHJvdG90eXBlLXRleHQtb3ZlcmZsb3ddIFRleHQgVHJ1bmNhdGVcbkBtaXhpbiB0ZXh0LXRydW5jYXRlKFxuICAkb3ZlcmZsb3c6ICRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd1xuKSB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHRleHQtb3ZlcmZsb3c6ICRvdmVyZmxvdzsgXG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIE5vIHdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC1ub3dyYXBgXG5AbWl4aW4gdGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBXcmFwcGluZyBvZiB0aGUgdGV4dC4gYHRleHQtd3JhcGBcbkBtaXhpbiB0ZXh0LXdyYXAge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzIHtcbiAgLnRleHQtaGlkZSB7XG4gICAgQGluY2x1ZGUgdGV4dC1oaWRlO1xuICB9XG5cbiAgLnRleHQtdHJ1bmNhdGUge1xuICAgIEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7XG4gIH1cblxuICAudGV4dC1ub3dyYXAge1xuICAgIEBpbmNsdWRlIHRleHQtbm93cmFwO1xuICB9XG5cbiAgLnRleHQtd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC13cmFwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtaGlkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtdHJ1bmNhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1ub3dyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCB0cmFuc2Zvcm1hdGlvbiBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGB0ZXh0LXRyYW5zZm9ybWF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbikgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IFRyYW5zZm9ybWF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb25gXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0cmFuc2Zvcm1hdGlvbiBbXSBUZXh0IFRyYW5zZm9ybWF0aW9uXG5AbWl4aW4gdGV4dC10cmFuc2Zvcm0oJHRyYW5zZm9ybWF0aW9uKSB7XG4gIHRleHQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICBAZWFjaCAkdHJhbnNmb3JtYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgICAudGV4dC0jeyR0cmFuc2Zvcm1hdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgdGV4dC10cmFuc2Zvcm0oJHRyYW5zZm9ybWF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICBcdEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkdHJhbnNmb3JtYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skdHJhbnNmb3JtYXRpb259IHtcbiAgXHRcdFx0ICAgICAgQGluY2x1ZGUgdGV4dC10cmFuc2Zvcm0oJHRyYW5zZm9ybWF0aW9uKTtcbiAgXHRcdFx0ICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHRleHQgZGVjb3JhdGlvbiBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHRleHQtZGVjb3JhdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgRGVjb3JhdGlvbiwgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb25gXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWNvcmF0aW9uIFtdIFRleHQgRGVjb3JhdGlvblxuQG1peGluIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbikge1xuICB0ZXh0LWRlY29yYXRpb246ICRkZWNvcmF0aW9uICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICBAZWFjaCAkZGVjb3JhdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgLnRleHQtI3skZGVjb3JhdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skZGVjb3JhdGlvbn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWZvbnQtc3R5bGluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZm9udCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIExldHRlciBzcGFjaW5nIGZvciBgLmZvbnQtd2lkZWBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LW5vcm1hbGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdlaWdodCBmb3IgYC5mb250LWJvbGRgLCBkZWZhdWx0ZWQgdG8gYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ib2xkOiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3aWRlIGxldHRlciBzcGFjaW5nIVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGV0dGVyLXNwYWNpbmcgWyRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZ10gV2lkZSBsZXR0ZXIgc3BhY2luZyBmb3IgdGhlIGZvbnRcbkBtaXhpbiBmb250LXdpZGUoXG4gICRsZXR0ZXItc3BhY2luZzogJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXG4pIHtcbiAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZztcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IE5vcm1hbCwgZGVmYXVsdCB2YWx1ZSBjb21pbmcgdGhyb3VnaCBgZ2xvYmFsLXdlaWdodC1ub3JtYWxgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ub3JtYWxdIFdlaWdodCBvZiB0aGUgZm9udCAobm9ybWFsKVxuQG1peGluIGZvbnQtbm9ybWFsKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtbm9ybWFsXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFdlaWdodCBCb2xkLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LWJvbGRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWyRwcm90b3R5cGUtZm9udC1ib2xkXSBXZWlnaHQgb2YgdGhlIGZvbnQgKGJvbGQpXG5AbWl4aW4gZm9udC1ib2xkKFxuICAkd2VpZ2h0OiAkcHJvdG90eXBlLWZvbnQtYm9sZFxuKSB7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuXG4vLy8gRm9udCBTdHlsZSBJdGFsaWNcbkBtaXhpbiBmb250LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nIHtcbiAgLmZvbnQtd2lkZXtcbiAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gIH1cblxuICAuZm9udC1ub3JtYWwge1xuICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICB9XG5cbiAgLmZvbnQtYm9sZCB7XG4gICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICB9XG5cbiAgLmZvbnQtaXRhbGljIHtcbiAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC13aWRle1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC13aWRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LW5vcm1hbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LW5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtYm9sZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1pdGFsaWMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1pdGFsaWM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtbGlzdC1zdHlsZS10eXBlXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBsaXN0IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc3R5bGUtdHlwZS11bm9yZGVyZWRgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQ6IChcbiAgZGlzYyxcbiAgY2lyY2xlLFxuICBzcXVhcmVcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzdHlsZS10eXBlLW9yZGVyZWRgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbikgIWRlZmF1bHQ7XG5cblxuLy8vIFN0eWxlIHR5cGUgZm9yIHVub3JkZXJlZCBMaXN0cywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZGBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0eWxlLXR5cGUtdW5vcmRlcmVkIFtdIFN0eWxlIHR5cGUgZm9yIHVub3JkZXJlZCBMaXN0c1xuQG1peGluIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCkge1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzdHlsZS10eXBlLXVub3JkZXJlZCAhaW1wb3J0YW50O1xufVxuXG4vLy8gU3R5bGUgdHlwZSBmb3Igb3JkZXJlZCBMaXN0cywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWRgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZS10eXBlLW9yZGVyZWQgW10gU3R5bGUgdHlwZSBmb3Igb3JkZXJlZCBMaXN0c1xuQG1peGluIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHN0eWxlLXR5cGUtb3JkZXJlZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gbGlzdC11bm9yZGVyZWQge1xuICBAZWFjaCAkc3R5bGUtdHlwZS11bm9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZCB7XG4gICAgdWwubGlzdC0jeyRzdHlsZS10eXBlLXVub3JkZXJlZH0ge1xuICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRzdHlsZS10eXBlLXVub3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgdWwuI3skc2l6ZX0tbGlzdC0jeyRzdHlsZS10eXBlLXVub3JkZXJlZH0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1vcmRlcmVkIHtcbiAgQGVhY2ggJHN0eWxlLXR5cGUtb3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZCB7XG4gICAgb2wubGlzdC0jeyRzdHlsZS10eXBlLW9yZGVyZWR9IHtcbiAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRzdHlsZS10eXBlLW9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBvbC4jeyRzaXplfS1saXN0LSN7JHN0eWxlLXR5cGUtb3JkZXJlZH0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGUge1xuICBAaW5jbHVkZSBsaXN0LXVub3JkZXJlZDtcbiAgQGluY2x1ZGUgbGlzdC1vcmRlcmVkO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXJvdW5kZWRcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHJvdW5kZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItcmFkaXVzYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKSAhZGVmYXVsdDtcblxuLy8vIFJvdW5kZWQgdXRpbGl0eSAoYWxsIGNvcm5lcnMpOiBBZGRzIHJhZGl1cyBjb3JuZXJzIChhbGwgY29ybmVycykgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaXVzIFskcHJvdG90eXBlLWJvcmRlci1yYWRpdXNdIEJvcmRlciByYWRpdXMgKGFsbCBjb3JuZXJzKVxuQG1peGluIGJvcmRlci1yYWRpdXMoXG4gICRyYWRpdXM6ICRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c1xuKSB7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG59XG5cbi8vLyBSb3VuZGVkIHNxdWFyZSB1dGlsaXR5IG9yIHJlY3RhbmdsZSB1dGlsaXR5IChhbGwgY29ybmVycyk6IFJvdW5kcyBhbGwgY29ybmVycyB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQgdG8gbWFrZSBhIHBpbGwgc2hhcGUuXG5AbWl4aW4gYm9yZGVyLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA1MDAwcHggIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXJvdW5kZWQge1xuICAucm91bmRlZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8vIEZvciBzd2l0Y2hlc1xuICAgIH1cbiAgfVxuXG4gIC5yYWRpdXMge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXJvdW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1yYWRpdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXJlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXdpZHRoYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItdHlwZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItY29sb3JgIGRlZmF1bHRlZCB0byBgbWVkaXVtLWdyYXlgXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXJlZCBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskcHJvdG90eXBlLWJvcmRlci13aWR0aF0gV2lkdGggb2YgdGhlIGJvcmRlclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSBbJHByb3RvdHlwZS1ib3JkZXItdHlwZV0gVHlwZSBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskcHJvdG90eXBlLWJvcmRlci1jb2xvcl0gQ29sb3Igb2YgdGhlIGJvcmRlclxuQG1peGluIGJvcmRlcmVkKFxuICAkd2lkdGg6ICRwcm90b3R5cGUtYm9yZGVyLXdpZHRoLFxuICAkdHlwZTogJHByb3RvdHlwZS1ib3JkZXItdHlwZSxcbiAgJGNvbG9yOiAkcHJvdG90eXBlLWJvcmRlci1jb2xvclxuKSB7XG4gIGJvcmRlcjogJHdpZHRoICR0eXBlICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkIHtcbiAgLmJvcmRlcmVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXJlZDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlcmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNoYWRvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2hhZG93IHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3gtc2hhZG93YFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMikgIWRlZmF1bHQ7XG5cbi8vLyBTaGFkb3cgVXRpbGl0eTogQWRkcyBhIGxpZ2h0IGJveCBzaGFkb3cgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2hhZG93IFskcHJvdG90eXBlLWJveC1zaGFkb3ddIEJveCBTaGFkb3cgb2YgYSBjb21wb25lbnRcbkBtaXhpbiBzaGFkb3coXG4gICRzaGFkb3c6ICRwcm90b3R5cGUtYm94LXNoYWRvd1xuKSB7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3cge1xuICAuc2hhZG93IHtcbiAgICBAaW5jbHVkZSBzaGFkb3c7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tc2hhZG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1hcnJvd1xuLy8vL1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgYXJyb3dgIGRpcmVjdGlvblxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIHRoZSBBcnJvdywgYDAuNDM3NXJlbWAgYnkgZGVmYXVsdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuXG4vLy8gQ29sb3Igb2YgdGhlIEFycm93LCBgJGJsYWNrYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1hcnJvdyB7XG4gIEBlYWNoICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uIGluICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9ucyB7XG4gICAgLmFycm93LSN7JHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb259IHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZShcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1zaXplLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1jb2xvciwgXG4gICAgICAgICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNlcGFyYXRvclxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2VwYXJhdG9yLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWxpZ25tZW50IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgTWFyZ2luIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUaXRsZSBzZXBhcmF0b3IgVXRpbGl0eSwgbW9zdGx5IHVzZWQgdG8gc3R5bGUgdGhlIG1haW4gaGVhZGluZyBvZiBhIHNlY3Rpb25cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFsaWduIFskcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbl0gLSBzZXBhcmF0b3IgQWxpZ25tZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodF0gLSBXaWR0aFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoXSAtIEhlaWdodFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcF0gLSBNYXJnaW4gVG9wXG5AbWl4aW4gc2VwYXJhdG9yIChcbiAgJGFsaWduOiAkcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbixcbiAgJGhlaWdodDogJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0LFxuICAkd2lkdGg6ICRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoLFxuICAkYmFja2dyb3VuZDogJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZCxcbiAgJHRvcDogJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcFxuKSB7XG4gIHRleHQtYWxpZ246ICRhbGlnbiAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUpO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBtYXJnaW46ICR0b3AgYXV0byAwO1xuXG4gICAgQGlmICRhbGlnbiA9PSBsZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICRhbGlnbiA9PSByaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvciB7XG5cdC5zZXBhcmF0b3ItY2VudGVyIHtcblx0XHRAaW5jbHVkZSBzZXBhcmF0b3IoY2VudGVyKTtcblx0fVxuXG4gIC5zZXBhcmF0b3ItbGVmdCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICB9XG5cbiAgLnNlcGFyYXRvci1yaWdodCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgfVxuXG5cdEBpZiAoJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItY2VudGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLWxlZnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihyaWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtb3ZlcmZsb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIG92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBvdmVyZmxvd2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKSAhZGVmYXVsdDtcblxuLy8vIE92ZXJmbG93IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzXG5AbWl4aW4gb3ZlcmZsb3coJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuLy8vIE92ZXJmbG93IGNsYXNzZXMgb24gaG9yaXpvbnRhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAoaG9yaXpvbnRhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXgoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXg6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgIC5vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWRpc3BsYXlcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGRpc3BsYXkgY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBkaXNwbGF5YCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKSAhZGVmYXVsdDtcblxuLy8vIERpc3BsYXkgY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1kaXNwbGF5YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbXSBEaXNwbGF5IGNsYXNzZXNcbkBtaXhpbiBkaXNwbGF5KCRkaXNwbGF5KSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1kaXNwbGF5IHtcbiAgQGVhY2ggJGRpc3BsYXkgaW4gJHByb3RvdHlwZS1kaXNwbGF5IHtcbiAgICAuZGlzcGxheS0jeyRkaXNwbGF5fSB7XG4gICAgICBAaW5jbHVkZSBkaXNwbGF5KCRkaXNwbGF5KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRkaXNwbGF5IGluICRwcm90b3R5cGUtZGlzcGxheSB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1kaXNwbGF5LSN7JGRpc3BsYXl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZGlzcGxheSgkZGlzcGxheSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcG9zaXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHBvc2l0aW9uIGhlbHBlcnNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHBvc2l0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKSAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIGZpeGVkIHBvc2l0aW9uaW5nXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NSAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uIGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtcG9zaXRpb25gLCB3aGVyZWFzIGFsbCB0aGUgb2Zmc2V0IHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1wb3NpdGlvbmAgd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwb3NpdGlvbiBbXSBQb3NpdGlvbiBjbGFzc2VzLCBFaXRoZXIgYHN0YXRpY2AsIGByZWxhdGl2ZWAsIGBhYnNvbHV0ZWAgb3IgYGZpeGVkYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIFRvcCBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIFJpZ2h0IG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIEJvdHRvbSBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gTGVmdCBvZmZzZXRcbkBtaXhpbiBwb3NpdGlvbihcbiAgJHBvc2l0aW9uLFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgcG9zaXRpb246ICRwb3NpdGlvbiAhaW1wb3J0YW50O1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICB0b3A6ICR0b3AgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICByaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIGJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgbGVmdDogJGxlZnQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFBvc2l0aW9uIEZpeGVkIG9uIHRvcCBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR6LWluZGV4IFskcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhdIHotaW5kZXggZm9yIGBwb3NpdGlvbi1maXhlZC10b3BgXG5AbWl4aW4gcG9zaXRpb24tZml4ZWQtdG9wKFxuICAkei1pbmRleDogJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XG4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAsIDAsIG51bGwsIDApO1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuLy8vIFBvc2l0aW9uIEZpeGVkIG9uIGJvdHRvbSBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR6LWluZGV4IFskcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhdIHotaW5kZXggZm9yIGBwb3NpdGlvbi1maXhlZC1ib3R0b21gXG5AbWl4aW4gcG9zaXRpb24tZml4ZWQtYm90dG9tKFxuICAkei1pbmRleDogJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XG4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIG51bGwsIDAsIDAsIDApO1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgLy8gUG9zaXRpb246IFN0YXRpYywgUmVsYXRpdmUsIEZpeGVkLCBBYnNvbHV0ZVxuICBAZWFjaCAkcG9zaXRpb24gaW4gJHByb3RvdHlwZS1wb3NpdGlvbiB7XG4gICAgLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbigkcG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBvc2l0aW9uOiBGaXhlZCBUb3AsIEZpeGVkIEJvdHRvbVxuICAucG9zaXRpb24tZml4ZWQtdG9wIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gIH1cbiAgLnBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtYm90dG9tO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgLy8gUG9zaXRpb246IFN0YXRpYywgUmVsYXRpdmUsIEZpeGVkLCBBYnNvbHV0ZVxuICAgICAgICBAZWFjaCAkcG9zaXRpb24gaW4gJHByb3RvdHlwZS1wb3NpdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbigkcG9zaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBvc2l0aW9uOiBGaXhlZCBUb3AsIEZpeGVkIEJvdHRvbVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi1maXhlZC10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtdG9wO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi1maXhlZC1ib3R0b20ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtYm90dG9tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ib3hcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGJvcmRlciBib3guXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBib3ggdXRpbGl0eVxuQG1peGluIGJvcmRlci1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94IHtcbiAgLmJvcmRlci1ib3gge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3g7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXItbm9uZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIG5vbmUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgbm9uZSB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLW5vbmUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ub25lIHtcbiAgLmJvcmRlci1ub25lIHtcbiAgICBAaW5jbHVkZSBib3JkZXItbm9uZTtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ub25lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNpemluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc2l6aW5nYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWF4IFdpZHRoIDEwMCB1dGlsaXR5LlxuQG1peGluIG1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy8vIE1heCBIZWlnaHQgMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LWhlaWdodC0xMDAge1xuICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaXppbmcge1xuICAvLyBFbGVtZW50IFNpemluZ1xuICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgIC4jeyRzaXppbmd9LSN7JGxlbmd0aH0ge1xuICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1heCB3aWR0aCAmIGhlaWdodFxuICAubWF4LXdpZHRoLTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LXdpZHRoLTEwMDtcbiAgfVxuICAubWF4LWhlaWdodC0xMDAge1xuICAgIEBpbmNsdWRlIG1heC1oZWlnaHQtMTAwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGVhY2ggJHNpemluZyBpbiAkcHJvdG90eXBlLXNpemluZyB7XG4gICAgICAgICAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgICAgICAgICAgLiN7JHNpemV9LSN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICAgICAgICAgI3skc2l6aW5nfTogJHBlcmNlbnRhZ2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNwYWNpbmdcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNwYWNpbmcgY2xhc3NlcyAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG51bWJlciBvZiBzcGFjZXJzIGNvdW50IChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDMgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1tYXJnaW5gIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gTWFyZ2luIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gTWFyZ2luIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gTWFyZ2luIEJvdHRvbVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBNYXJnaW4gTGVmdFxuQG1peGluIG1hcmdpbihcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIG1hcmdpbi10b3A6ICR0b3AgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBtYXJnaW4tbGVmdDogJGxlZnQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBQYWRkaW5nIGhlbHBlciBtaXhpbiwgYWxsIHRoZSB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtcGFkZGluZ2Agd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBQYWRkaW5nIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUGFkZGluZyBSaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIFBhZGRpbmcgQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIFBhZGRpbmcgTGVmdFxuQG1peGluIHBhZGRpbmcoXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXRvcDogJHRvcCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1yaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBNYXJnaW4gY2xhc3NlcyBmb3Igc3BlY2lmaWMgZGlyZWN0aW9uIHByb3BlcnRpZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpciBbXSBEaXJlY3Rpb25cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNlciBbXSBTcGFjZXJcbkBtaXhpbiBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpIHtcbiAgQGlmICgkZGlyID09IHRvcCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHRvcDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHJpZ2h0KSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkcmlnaHQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBib3R0b20pIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBsZWZ0KSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGhvcml6b250YWwpIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCRyaWdodDogJHNwYWNlciwgJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSB2ZXJ0aWNhbCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHRvcDogJHNwYWNlciwgJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG59XG5cbi8vLyBQYWRkaW5nIGNsYXNzZXMgZm9yIHNwZWNpZmljIGRpcmVjdGlvbiBwcm9wZXJ0aWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXIgW10gRGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjZXIgW10gU3BhY2VyXG5AbWl4aW4gcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcikge1xuICBAaWYgKCRkaXIgPT0gdG9wKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHRvcDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHJpZ2h0KSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHJpZ2h0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gYm90dG9tKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGxlZnQpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGhvcml6b250YWwpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkcmlnaHQ6ICRzcGFjZXIsICRsZWZ0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gdmVydGljYWwpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkdG9wOiAkc3BhY2VyLCAkYm90dG9tOiAkc3BhY2VyKTsgXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNwYWNpbmcge1xuICBAZm9yICRzcGFjZXIgZnJvbSAwIHRocm91Z2ggJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50IHtcbiAgICBcbiAgICBAZWFjaCAkcHJvcCBpbiAobWFyZ2luLCBwYWRkaW5nKSB7XG4gICAgICAvLyBBbGwgU2lkZXNcbiAgICAgIC4jeyRwcm9wfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2VyICogJGdsb2JhbC1tYXJnaW47IFxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7IFxuICAgICAgICAgIHBhZGRpbmc6ICRzcGFjZXIgKiAkZ2xvYmFsLXBhZGRpbmc7IFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBlYWNoICRkaXIgaW4gKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgaG9yaXpvbnRhbCwgdmVydGljYWwpIHtcbiAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgLiN7JHByb3B9LSN7JGRpcn0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9IHtcbiAgICAgICAgICAgICAgQGVhY2ggJHByb3AgaW4gKG1hcmdpbiwgcGFkZGluZykge1xuICAgICAgICAgICAgICAgIC8vIEFsbCBTaWRlc1xuICAgICAgICAgICAgICAgICYtI3skcHJvcH0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2VyICogJGdsb2JhbC1tYXJnaW47IFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9wID09IHBhZGRpbmcpIHsgXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzcGFjZXIgKiAkZ2xvYmFsLXBhZGRpbmc7IFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlYWNoICRkaXIgaW4gKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgaG9yaXpvbnRhbCwgdmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICAgIC8vIFRvcCBTaWRlXG4gICAgICAgICAgICAgICAgICAmLSN7JHByb3B9LSN7JGRpcn0tI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7IFxuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbi1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9wID09IHBhZGRpbmcpIHsgXG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIE1vdGlvbiBVSSBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tL21vdGlvbi11aVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ3NldHRpbmdzJztcblxuQGltcG9ydCAndXRpbC9hbmltYXRpb24nO1xuQGltcG9ydCAndXRpbC9hcmdzJztcbkBpbXBvcnQgJ3V0aWwva2V5ZnJhbWUnO1xuQGltcG9ydCAndXRpbC9zZWxlY3Rvcic7XG5AaW1wb3J0ICd1dGlsL3Nlcmllcyc7XG5AaW1wb3J0ICd1dGlsL3RyYW5zaXRpb24nO1xuQGltcG9ydCAndXRpbC91bml0JztcblxuQGltcG9ydCAnZWZmZWN0cy9mYWRlJztcbkBpbXBvcnQgJ2VmZmVjdHMvaGluZ2UnO1xuQGltcG9ydCAnZWZmZWN0cy9zcGluJztcbkBpbXBvcnQgJ2VmZmVjdHMvem9vbSc7XG5AaW1wb3J0ICdlZmZlY3RzL3NoYWtlJztcbkBpbXBvcnQgJ2VmZmVjdHMvc2xpZGUnO1xuQGltcG9ydCAnZWZmZWN0cy93aWdnbGUnO1xuXG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9mYWRlJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL2hpbmdlJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL3pvb20nO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc2xpZGUnO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc3Bpbic7XG5cbkBpbXBvcnQgJ2NsYXNzZXMnO1xuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gYXBwZW5kIFt0cnVlXSAtIERlZmluZXMgaWYgc2VsZWN0b3JzIGFyZSBjaGFpbmVkIHRvIHRoZSBzZWxlY3RvciAoYC5jbGFzcy5lbnRlcmApLCBvciBhcHBlbmRlZCBhcyBhIG5ldyBjbGFzcyAoYC5jbGFzcy1lbnRlcmApLlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWyctYWN0aXZlJ10gLSBTdWZmaXggdG8gYWRkIHRvIHRoZSBhY3RpdmUgc3RhdGUgY2xhc3MuXG4kbW90aW9uLXVpLWNsYXNzZXM6IChcbiAgY2hhaW46IHRydWUsXG4gIHByZWZpeDogJ211aS0nLFxuICBhY3RpdmU6ICctYWN0aXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0ZSBuYW1lcyB0byByZWZlcmVuY2Ugd2hlbiB3cml0aW5nIG1vdGlvbiBjbGFzc2VzLiBUbyB1c2UgbXVsdGlwbGUgY2xhc3MgbmFtZXMgZm9yIG9uZSBzdGF0ZSwgZW50ZXIgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBvbmUgc3RyaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zdGF0ZXM6IChcbiAgaW46ICdlbnRlcicsXG4gIG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG4gIGRlZmF1bHQ6IDUwMG1zLFxuICBzbG93OiA3NTBtcyxcbiAgZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG4gIGRlZmF1bHQ6IDAsXG4gIHNob3J0OiAzMDBtcyxcbiAgbG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuICBkZWZhdWx0OiBsaW5lYXIsXG4gIGxpbmVhcjogbGluZWFyLFxuICBlYXNlOiBlYXNlLFxuICBlYXNlLWluOiBlYXNlLWluLFxuICBlYXNlLW91dDogZWFzZS1vdXQsXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcbiAgYm91bmNlLWluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSksXG4gIGJvdW5jZS1vdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG4gIHNsaWRlLWFuZC1mYWRlOiBmYWxzZSxcbiAgaGluZ2UtYW5kLWZhZGU6IHRydWUsXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuICBzcGluLWFuZC1mYWRlOiB0cnVlLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIiwiLy8vIFByb2Nlc3NlcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBmdW5jdGlvbiBhcmd1bWVudHMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkYXJncykgPT0gMSB7XG4gICAgJGFyZzogbnRoKCRhcmdzLCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRhcmcpID09ICdzdHJpbmcnIHtcbiAgICAgIEByZXR1cm4gY2FsbCgkYXJnKTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJGFyZykgPT0gJ21hcCcge1xuICAgICAgQHJldHVybiAkYXJnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRhcmdzLi4uKTtcbn1cbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbWFwOiBjYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBCdWlsZHMgYSBzZWxlY3RvciBmb3IgYSBtb3Rpb24gY2xhc3MsIHVzaW5nIHRoZSBzZXR0aW5ncyBkZWZpbmVkIGluIHRoZSBgJG1vdGlvbi11aS1jbGFzc2VzYCBhbmQgYCRtb3Rpb24tdWktc3RhdGVzYCBtYXBzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRzdGF0ZXMgLSBPbmUgb3IgbW9yZSBzdHJpbmdzIHRoYXQgY29ycmVsYXRlIHRvIGEgc3RhdGUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWN0aXZlIC0gRGVmaW5lcyBpZiB0aGUgc2VsZWN0b3IgaXMgZm9yIHRoZSBzZXR1cCBvciBhY3RpdmUgY2xhc3MuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNlbGVjdG9yIHRoYXQgY2FuIGJlIGludGVycG9sYXRlZCBpbnRvIHlvdXIgU2FzcyBjb2RlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktYnVpbGQtc2VsZWN0b3IoJHN0YXRlcywgJGFjdGl2ZTogZmFsc2UpIHtcbiAgJHJldHVybjogJyc7XG4gICRjaGFpbjogbWFwLWdldCgkbW90aW9uLXVpLWNsYXNzZXMsIGNoYWluKTtcbiAgJHByZWZpeDogbWFwLWdldCgkbW90aW9uLXVpLWNsYXNzZXMsIHByZWZpeCk7XG4gICRzdWZmaXg6IG1hcC1nZXQoJG1vdGlvbi11aS1jbGFzc2VzLCBhY3RpdmUpO1xuXG4gIEBlYWNoICRzZWwgaW4gJHN0YXRlcyB7XG4gICAgJHJldHVybjogJHJldHVybiArIGlmKCRjaGFpbiwgJyYuJywgJyN7Jn0tJykgKyAkcHJlZml4ICsgJHNlbDtcblxuICAgIEBpZiAkYWN0aXZlIHtcbiAgICAgICRyZXR1cm46ICRyZXR1cm4gKyBpZigkY2hhaW4sICcuJywgJyN7Jn0tJykgKyAkcHJlZml4ICsgJHNlbCArICRzdWZmaXg7XG4gICAgfVxuXG4gICAgJHJldHVybjogJHJldHVybiArICcsICc7XG4gIH1cblxuICBAcmV0dXJuIHN0ci1zbGljZSgkcmV0dXJuLCAxLCAtMyk7XG59XG4iLCIkLW11aS1xdWV1ZTogKCk7XG5cbi8vLyBQYXVzZXMgdGhlIGFuaW1hdGlvbiBvbiBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCB0aGVuIHBsYXlzIGl0IHdoZW4gYW4gYWN0aXZlIGNsYXNzIGlzIGFkZGVkIHRvIGEgcGFyZW50LiBBbHNvIHNldHMgdGhlIGZpbGwgbW9kZSBvZiB0aGUgYW5pbWF0aW9uIHRvIGBib3RoYC4gVGhpcyBwYXVzZXMgdGhlIGVsZW1lbnQgYXQgdGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBhbmltYXRpb24sIGFuZCBob2xkcyBpdCBpbiBwbGFjZSBhdCB0aGUgZW5kLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuJWFuaW1hdGVkLWVsZW1lbnQge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuXG4gIC4je21hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgYWN0aXZhdGUtcXVldWUtY2xhc3MpfSAmIHtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG5ldyBhbmltYXRpb24gcXVldWUuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFswc10gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyB0byBwbGFjZSBhdCB0aGUgZnJvbnQgb2YgdGhlIGFuaW1hdGlvbiBxdWV1ZS5cbkBtaXhpbiBtdWktc2VyaWVzKCRkZWxheTogMHMpIHtcbiAgJC1tdWktcXVldWU6ICgpICFnbG9iYWw7XG5cbiAgQGlmICRkZWxheSA+IDAge1xuICAgICRpdGVtOiAoJGRlbGF5LCAwcyk7XG4gICAgJC1tdWktcXVldWU6IGFwcGVuZCgkLW11aS1xdWV1ZSwgJGl0ZW0pICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8vIEFkZHMgYW4gYW5pbWF0aW9uIHRvIGFuIGFuaW1hdGlvbiBxdWV1ZS4gT25seSB1c2UgdGhpcyBtaXhpbiBpbnNpZGUgb2YgYG11aS1zZXJpZXMoKWAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFsxc10gLSBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZ2FwIFswc10gLSBBbW91bnQgb2YgdGltZSB0byBwYXVzZSBiZWZvcmUgcGxheWluZyB0aGUgYW5pbWF0aW9uIGFmdGVyIHRoaXMgb25lLiBVc2UgYSBuZWdhdGl2ZSB2YWx1ZSB0byBtYWtlIHRoZSBuZXh0IGVmZmVjdCBvdmVybGFwIHdpdGggdGhlIGN1cnJlbnQgb25lLlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRrZXlmcmFtZXMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1xdWV1ZShcbiAgJGR1cmF0aW9uOiAxcyxcbiAgJGdhcDogMHMsXG4gICRrZXlmcmFtZXMuLi5cbikge1xuICAvLyBCdWlsZCB0aGUgYW5pbWF0aW9uXG4gICRrZjogLW11aS1wcm9jZXNzLWFyZ3MoJGtleWZyYW1lcy4uLik7XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBkZWxheSBmb3IgdGhpcyBhbmltYXRpb24gYmFzZWQgb24gaG93IGxvbmcgdGhlIHByZXZpb3VzIG9uZXMgdGFrZVxuICAkYWN0dWFsLWRlbGF5OiAwcztcbiAgQGVhY2ggJGFuaW0gaW4gJC1tdWktcXVldWUge1xuICAgICRhY3R1YWwtZGVsYXk6ICRhY3R1YWwtZGVsYXkgKyBudGgoJGFuaW0sIDEpICsgbnRoKCRhbmltLCAyKTtcbiAgfVxuXG4gIC8vIEFwcGVuZCB0aGlzIGFuaW1hdGlvbidzIGxlbmd0aCBhbmQgZ2FwIHRvIHRoZSBlbmQgb2YgdGhlIHF1ZXVlXG4gICRpdGVtOiAoJGR1cmF0aW9uLCAkZ2FwKTtcbiAgJC1tdWktcXVldWU6IGFwcGVuZCgkLW11aS1xdWV1ZSwgJGl0ZW0pICFnbG9iYWw7XG5cbiAgLy8gQ1NTIG91dHB1dFxuICBAZXh0ZW5kICVhbmltYXRlZC1lbGVtZW50O1xuICBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKCRrZik7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICBhbmltYXRpb24tZGVsYXk6ICRhY3R1YWwtZGVsYXk7XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbMV0gLSBPcGFjaXR5IHRvIGVuZCBhdC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEga2V5ZnJhbWVzIG1hcCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGBnZW5lcmF0ZS1rZXlmcmFtZXMoKWAgbWl4aW4uXG5AZnVuY3Rpb24gZmFkZShcbiAgJGZyb206IDAsXG4gICR0bzogMVxuKSB7XG4gICR0eXBlOiB0eXBlLW9mKCRmcm9tKTtcbiAgJGtleWZyYW1lczogKCk7XG5cbiAgQGlmICR0eXBlID09ICdzdHJpbmcnIHtcbiAgICBAaWYgJGZyb20gPT0gaW4ge1xuICAgICAgJGZyb206IDA7XG4gICAgICAkdG86IDE7XG4gICAgfSBAZWxzZSBpZiAkZnJvbSA9PSBvdXQge1xuICAgICAgJGZyb206IDE7XG4gICAgICAkdG86IDA7XG4gICAgfVxuICB9XG5cbiAgJGZyb21OYW1lOiAkZnJvbSAqIDEwMDtcbiAgJHRvTmFtZTogICAkdG8gICAqIDEwMDtcblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2ZhZGUtI3skZnJvbU5hbWV9LXRvLSN7JHRvTmFtZX0nLFxuICAgIDA6IChvcGFjaXR5OiAkZnJvbSksXG4gICAgMTAwOiAob3BhY2l0eTogJHRvKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIGVmZmVjdCBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXG5AZnVuY3Rpb24gaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFja1xuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICRyb3RhdGlvbjogJyc7XG4gIEBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1mcm9udCB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtZnJvbSwgJGZyb20pO1xuICB9IEBlbHNlIGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWJhY2sge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWJhY2ssICRmcm9tKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJyR0dXJuLW9yaWdpbiBtdXN0IGJlIGVpdGhlciBcImZyb20tYmFja1wiIG9yIFwiZnJvbS1mcm9udFwiJztcbiAgfVxuXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG4gIEBpZiAkc3RhdGUgPT0gaW4ge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gIH1cblxuICAvLyBUdXJuIGF4aXNcbiAgJG9yaWdpbjogJyc7XG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcbiAgICAkb3JpZ2luOiAkZnJvbTtcbiAgfSBAZWxzZSB7XG4gICAgJG9yaWdpbjogY2VudGVyO1xuICB9XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdoaW5nZS0jeyRzdGF0ZX0tI3skZnJvbX0tI3skYXhpc30tI3skdHVybi1vcmlnaW59JyxcbiAgICAwOiAodHJhbnNmb3JtOiAkc3RhcnQsIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW4pLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJGVuZCksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzcGlubmluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFszNjBkZWddIC0gQW1vdW50IHRvIHNwaW4uIENhbiBiZSBhbnkgQ1NTIGFuZ2xlIHVuaXQuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIHNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAxdHVyblxuKSB7XG4gICRzdGFydDogMDtcbiAgJGVuZDogMDtcblxuICBAaWYgJHN0YXRlID09IGluIHtcbiAgICAkc3RhcnQ6IGlmKCRkaXJlY3Rpb24gPT0gY2N3LCAkYW1vdW50LCAkYW1vdW50ICogLTEpO1xuICAgICRlbmQ6IDA7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogMDtcbiAgICAkZW5kOiBpZigkZGlyZWN0aW9uID09IGNjdywgJGFtb3VudCAqIC0xLCAkYW1vdW50KTtcbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc3Bpbi0jeyRkaXJlY3Rpb259LSN7JGFtb3VudH0nLFxuICAgIDA6ICh0cmFuc2Zvcm06IHJvdGF0ZSgkc3RhcnQpKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06IHJvdGF0ZSgkZW5kKSksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzEuNV0gLSBTaXplIHRvIHN0YXJ0IGF0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gU2l6ZSB0byBlbmQgYXQuXG5AZnVuY3Rpb24gem9vbShcbiAgJGZyb206IDAsXG4gICR0bzogMVxuKSB7XG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc2NhbGUtI3skdG99LXRvLSN7JGZyb219JyxcbiAgICAwOiAodHJhbnNmb3JtOiBzY2FsZSgkZnJvbSkpLFxuICAgIDEwMDogKHRyYW5zZm9ybTogc2NhbGUoJHRvKSksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzaGFraW5nIGFuaW1hdGlvbi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRpbnRlbnNpdHkgWzclXSAtIEludGVuc2l0eSBvZiB0aGUgc2hha2UsIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEga2V5ZnJhbWVzIG1hcCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGBnZW5lcmF0ZS1rZXlmcmFtZXMoKWAgbWl4aW4uXG5AZnVuY3Rpb24gc2hha2UoJGludGVuc2l0eTogNyUpIHtcbiAgJHJpZ2h0OiAoMCwgMTAsIDIwLCAzMCwgNDAsIDUwLCA2MCwgNzAsIDgwLCA5MCk7XG4gICRsZWZ0OiAoNSwgMTUsIDI1LCAzNSwgNDUsIDU1LCA2NSwgNzUsIDg1LCA5NSk7XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdzaGFrZS0jeygkaW50ZW5zaXR5IC8gMSUpfScsXG4gICAgJHJpZ2h0OiAodHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRpbnRlbnNpdHkpKSxcbiAgICAkbGVmdDogKHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJGludGVuc2l0eSkpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFdoZXRoZXIgdG8gbW92ZSB0byAoYGluYCkgb3IgZnJvbSAoYG91dGApIHRoZSBlbGVtZW50J3MgZGVmYXVsdCBwb3NpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3VwXSAtIERpcmVjdGlvbiB0byBtb3ZlLiBDYW4gYmUgYHVwYCwgYGRvd25gLCBgbGVmdGAsIG9yIGByaWdodGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzEwMCVdIC0gRGlzdGFuY2UgdG8gbW92ZS4gQ2FuIGJlIGFueSBDU1MgbGVuZ3RoIHVuaXQuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIHNsaWRlKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiB1cCxcbiAgJGFtb3VudDogMTAwJVxuKSB7XG4gICRmcm9tOiAkYW1vdW50O1xuICAkdG86IDA7XG4gICRmdW5jOiAndHJhbnNsYXRlWSc7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCBvciAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAkZnVuYzogJ3RyYW5zbGF0ZVgnO1xuICB9XG5cbiAgQGlmICRzdGF0ZSA9PSBvdXQge1xuICAgICRmcm9tOiAwO1xuICAgICR0bzogJGFtb3VudDtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09IGRvd24gb3IgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgICAkZnJvbTogLSRmcm9tO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmICRzdGF0ZSA9PSBvdXQge1xuICAgICAgJHRvOiAtJHRvO1xuICAgIH1cbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc2xpZGUtI3skc3RhdGV9LSN7JGRpcmVjdGlvbn0tI3tzdHJpcC11bml0KCRhbW91bnQpfScsXG4gICAgMDogKHRyYW5zZm9ybTogJyN7JGZ1bmN9KCN7JGZyb219KScpLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJyN7JGZ1bmN9KCN7JHRvfSknKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHdpZ2dsaW5nIGFuaW1hdGlvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGludGVuc2l0eSBbN2RlZ10gLSBJbnRlbnNpdHkgb2YgdGhlIHdpZ2dsZS4gQ2FuIGJlIGFueSBDU1MgYW5nbGUgdW5pdC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEga2V5ZnJhbWVzIG1hcCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGBnZW5lcmF0ZS1rZXlmcmFtZXMoKWAgbWl4aW4uXG5AZnVuY3Rpb24gd2lnZ2xlKCRpbnRlbnNpdHk6IDdkZWcpIHtcbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICd3aWdnbGUtI3skaW50ZW5zaXR5fScsXG4gICAgKDQwLCA1MCwgNjApOiAodHJhbnNmb3JtOiByb3RhdGUoJGludGVuc2l0eSkpLFxuICAgICgzNSwgNDUsIDU1LCA2NSk6ICh0cmFuc2Zvcm06IHJvdGF0ZSgtJGludGVuc2l0eSkpLFxuICAgICgwLCAzMCwgNzAsIDEwMCk6ICh0cmFuc2Zvcm06IHJvdGF0ZSgwKSksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBmYWRlIHRyYW5zaXRpb24gYnkgYWRqdXN0aW5nIHRoZSBvcGFjaXR5IG9mIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMF0gLSBPcGFjaXR5IHRvIHN0YXJ0IGF0LiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFsxXSAtIE9wYWNpdHkgdG8gZW5kIG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWZhZGUoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAwLFxuICAkdG86IDEsXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZhZGU6IGZhZGUoJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDApO1xuXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAxMDApO1xuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbGVmdF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGxlZnQsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFswLjc1dHVybl0gLSBBbW91bnQgdG8gZWxlbWVudCB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zcGluKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBjdyxcbiAgJGFtb3VudDogMC43NXR1cm4sXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNwaW4tYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzcGluOiBzcGluKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIEltcG9ydGFudFJ1bGUsIFNwYWNlQWZ0ZXJDb21tYSwgU2luZ2xlTGluZVBlclByb3BlcnR5XG5cbkBtaXhpbiAtbW90aW9uLXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cbiAgLnNsaWRlLWluLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBsZWZ0KTsgfVxuICAuc2xpZGUtb3V0LWRvd24gICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGRvd24pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdXApOyB9XG4gIC5zbGlkZS1vdXQtbGVmdCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgbGVmdCk7IH1cblxuICAvLyBGYWRlXG4gIC5mYWRlLWluICB7IEBpbmNsdWRlIG11aS1mYWRlKGluLCAgMCwgMSk7IH1cbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxuXG4gIC8vIEhpbmdlXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1yaWdodCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1ib3R0b20gICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGJvdHRvbSk7IH1cbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteCAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteSAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCwgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWJvdHRvbSAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBib3R0b20pOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQsIGNlbnRlcik7IH1cblxuICAvLyBTY2FsZVxuICAuc2NhbGUtaW4tdXAgICAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDAuNSwgMSk7IH1cbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XG4gIC5zY2FsZS1vdXQtdXAgICB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMS41KTsgfVxuICAuc2NhbGUtb3V0LWRvd24geyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDAuNSk7IH1cblxuICAvLyBTcGluXG4gIC5zcGluLWluICAgICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY3cpOyB9XG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XG4gIC5zcGluLWluLWNjdyAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGNjdyk7IH1cbiAgLnNwaW4tb3V0LWNjdyB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY2N3KTsgfVxuXG4gIC8vIFRyYW5zaXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktYW5pbWF0aW9ucyB7XG4gIC5zaGFrZSAgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cbiAgLnNwaW4tY2N3IHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKGNjdykpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24od2lnZ2xlKTsgfVxuXG4gIC5zaGFrZSxcbiAgLnNwaW4tY3csXG4gIC5zcGluLWNjdyxcbiAgLndpZ2dsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiAgLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgYW5pbWF0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgICAgICAgICAgICAgICAgIE1JWElOU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8qIC5jbGVhcmZpeCB7ICp6b29tOiAxOyB9XHJcbi5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IHRhYmxlOyB9XHJcbi5jbGVhcmZpeDphZnRlciB7IGNsZWFyOiBib3RoOyB9Ki9cclxuXHJcbkBtaXhpbiBjbGVhcigpIHtcclxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlxcMDAyMFwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7Y2xlYXI6IGJvdGg7fVxyXG59XHJcblxyXG4vLyBUUkFOU0lUSU9OU1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gb25lIHRyYW5zaXRpb24gXHJcbkBtaXhpbiBhbmltKCRhbmltYXRpb24pIHtcclxuICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYW5pbWF0aW9uO1xyXG4gICAgICAtbW96LXRyYW5zaXRpb246ICRhbmltYXRpb247XHJcbiAgICAgICAgLW8tdHJhbnNpdGlvbjogJGFuaW1hdGlvbjtcclxuICAgICAgICAgICB0cmFuc2l0aW9uOiAkYW5pbWF0aW9uO1xyXG59XHJcblxyXG4vLyB0d28gdHJhbnNpdGlvbnNcclxuQG1peGluIGFuaW1fbXVsdGkoJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yKSB7XHJcbiAgIC13ZWJraXQtdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yO1xyXG4gICAgICAtbW96LXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMjtcclxuICAgICAgICAtby10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzI7XHJcbiAgICAgICAgICAgdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yO1xyXG59IFxyXG5cclxuLy8gMyB0cmFuc2l0aW9ucyBcclxuQG1peGluIGFuaW1fbXVsdGlfMygkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMykge1xyXG4gICAtd2Via2l0LXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zO1xyXG4gICAgICAtbW96LXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zO1xyXG4gICAgICAgIC1vLXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zO1xyXG4gICAgICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zO1xyXG59ICAgIFxyXG5cclxuLy8gNCB0cmFuc2l0aW9ucyBcclxuQG1peGluIGFuaW1fbXVsdGlfNCgkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMywgJGFuaW1hdGlvbl80KSB7XHJcbiAgIC13ZWJraXQtdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzMsICRhbmltYXRpb25fNDtcclxuICAgICAgLW1vei10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMywgJGFuaW1hdGlvbl80O1xyXG4gICAgICAgIC1vLXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zLCAkYW5pbWF0aW9uXzQ7XHJcbiAgICAgICAgICAgdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzMsICRhbmltYXRpb25fNDtcclxufSAgICBcclxuICAgIFxyXG4vLyBUUkFOU0ZPUk1TIFxyXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm0pIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG4gICAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcclxuICAgICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcbn1cclxuXHJcbi8vIEFOSU1BVElPTlNcclxuQG1peGluIGFuaW1hdGlvbigkY29udGVudCkge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiAkY29udGVudDtcclxuICAgICAtbW96LWFuaW1hdGlvbjogJGNvbnRlbnQ7XHJcbiAgICAgICAgICBhbmltYXRpb246ICRjb250ZW50O1xyXG59XHJcblxyXG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XHJcbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7IEBjb250ZW50OyB9XHJcbiAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHsgQGNvbnRlbnQ7IH1cclxuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0geyBAY29udGVudDsgfVxyXG59XHJcblxyXG5cclxuLy8gRklMVEVSU1xyXG5AbWl4aW4gZmlsdGVyKCRmaWx0ZXIpIHtcclxuICAgIHdlYmtpdC1maWx0ZXI6JGZpbHRlcjtcclxuICAgICAgLW1vei1maWx0ZXI6JGZpbHRlcjtcclxuICAgICAgIC1tcy1maWx0ZXI6JGZpbHRlcjtcclxuICAgICAgICAtby1maWx0ZXI6JGZpbHRlcjtcclxuICAgICAgICAgICBmaWx0ZXI6JGZpbHRlcjtcclxufVxyXG5cclxuLy8gSFlQRVJMSU5LUyBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gTU9CSUxFIE5PLUhPVkVSIE1JWElOIFxyXG5AbWl4aW4gaG92ZXIoKSB7XHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAmOmZvY3VzLCBcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICY6YWN0aXZlLFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjpmb2N1cywgXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmFjdGl2ZSxcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6aG92ZXIsXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjphY3RpdmUgXHJcbiAgICB7QGNvbnRlbnQ7fVxyXG59XHJcblxyXG4vLyBNT0JJTEUgTk8tSE9WRVIgTUlYSU4gLSBKVVNUIDpIT1ZFUiBcclxuQG1peGluIGhvdmVyX29ubHkoKSB7IFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6aG92ZXIge0Bjb250ZW50O30gfVxyXG5cclxuXHJcbi8vIE1PQklMRSBOTy1IT1ZFUiBNSVhJTiAtIFcvIFZJU0lURUQgXHJcbkBtaXhpbiBob3Zlcl92aXNpdGVkKCkge1xyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gJjp2aXNpdGVkLCBcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICY6Zm9jdXMsIFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gJjphY3RpdmUsXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOnZpc2l0ZWQsIFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjpmb2N1cywgXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmFjdGl2ZSxcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6aG92ZXIge0Bjb250ZW50O31cclxufVxyXG5cclxuLy8gTElOS1MgXHJcbkBtaXhpbiBsaW5rcyAoJGxpbmssICR2aXNpdCwgJGhvdmVyLCAkYWN0aXZlKSB7XHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGxpbms7XHJcbiAgICAmOnZpc2l0ZWQge2NvbG9yOiAkdmlzaXQ7fVxyXG4gICAgJjpob3ZlciB7Y29sb3I6ICRob3Zlcjt9XHJcbiAgICAmOmFjdGl2ZSB7Y29sb3I6ICRhY3RpdmU7fVxyXG4gIH1cclxufVxyXG5cclxuLy8gQSBUQUdTIC0gVkFSSUFCTEVTIEFTIFNFTEVDVE9SU1xyXG4kYS10YWdzOiAnYSwgYTphY3RpdmUsIGE6aG92ZXIsIGE6dmlzaXRlZCc7XHJcbiRhLXRhZ3MtaG92ZXI6ICdhOmFjdGl2ZSwgYTpob3Zlcic7XHJcblxyXG4vLyB1c2FnZSAgXHJcbi8vIC5jbGFzcyB7IFxyXG4vLyAgICN7JGEtdGFnc30geyBjb2xvcjogcmVkOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cclxuLy8gfVxyXG4vLyAjeyRhLXRhZ3MtaG92ZXJ9IHsgY29sb3I6IGJsdWU7IH1cclxuXHJcbi8vIEhPVkVSIFNUWUxFXHJcbkBtaXhpbiBob3Zlci1zdHlsZSgkY29sb3IpIHtcclxuICAmOmhvdmVyIHsgYmFja2dyb3VuZDogbGlnaHRlbigkY29sb3IsIDMlKTsgfVxyXG59XHJcblxyXG5cclxuLy8gQk9YIFNJWklOR1xyXG5AbWl4aW4gYm94LXNpemluZygkYm94LXNpemUpIHtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGJveC1zaXplO1xyXG4gICAgICAgLW1vei1ib3gtc2l6aW5nOiAkYm94LXNpemU7XHJcbiAgICAgICAgICAgIGJveC1zaXppbmc6ICRib3gtc2l6ZTtcclxufVxyXG5cclxuLy8gQk9YIFNIQURPVyBcclxuQG1peGluIGJveC1zaGFkb3coJGJveHNoYWRvdykge1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkYm94c2hhZG93O1xyXG4gICAgICAgLW1vei1ib3gtc2hhZG93OiAkYm94c2hhZG93O1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAkYm94c2hhZG93O1xyXG59XHJcblxyXG4vLyBDRU5URVJFRFxyXG5AbWl4aW4gY29udGVudC1jbnRyZCB7ZGlzcGxheTogYmxvY2s7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDogYXV0bzt9XHJcbi5jb250ZW50LWNudHJkIHsgQGluY2x1ZGUgY29udGVudC1jbnRyZCB9XHJcblxyXG5cclxuLy8gTkFWIE1FTlUgXHJcbkBtaXhpbiBuYXZpZ2F0aW9uLWxpc3Qge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcbiAgICBwYWRkaW5nOjA7XHJcbiAgICBtYXJnaW46MDtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgID4gbGl7XHJcbiAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIEJBQ0tHUk9VTkRTIFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8qIGJhY2tncm91bmQgbWl4aW4gKHdpcClcclxuQG1peGluIGJhY2tncm91bmQoJGJnLWNvbG9yICRiZy1pbWdfdXJsICRiZy1hdHRhY2htZW50ICRiZy1wb3NpdGlvbl94ICRiZy1wb3NpdGlvbl95ICRiZy1yZXBlYXQgJGJnLXNpemUpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAkYmctY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoJGJnLWltZ191cmwpO1xyXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiAgICAgICRiZy1hdHRhY2htZW50O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogICAgICAgICRiZy1wb3NpdGlvbl94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJnLXBvc2l0aW9uX3k7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogICAgICAgICAgJGJnLXJlcGVhdDtcclxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxuICAgICAgIC1tb3otYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxuICAgICAgICAgLW8tYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxufVxyXG4qL1xyXG5cclxuLy8gcmdiYVxyXG5AbWl4aW4gcmdiYSgkciwkZywkYiwkYSl7YmFja2dyb3VuZDogcmdiYSgkciwkZywkYiwkYSk7fVxyXG5cclxuLy8gbGluZWFyIGdyYWRpZW50XHJcbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHIsJGcsJGIsJGEsICRyXzIsICRnXzIsICRiXzIsICRhXzIpe1xyXG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJnYmEoJHIsJGcsJGIsJGEpLCByZ2JhKCRyXzIsJGdfMiwkYl8yLCRhXzIpKTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAtbW96LWxpbmVhci1ncmFkaWVudChyZ2JhKCRyLCRnLCRiLCRhKSwgcmdiYSgkcl8yLCRnXzIsJGJfMiwkYV8yKSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogICAgICAtby1saW5lYXItZ3JhZGllbnQocmdiYSgkciwkZywkYiwkYSksIHJnYmEoJHJfMiwkZ18yLCRiXzIsJGFfMikpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoJHIsJGcsJGIsJGEpLCByZ2JhKCRyXzIsJGdfMiwkYl8yLCRhXzIpKTtcclxufVxyXG5cclxuLy8gYmcgLSBhbGxcclxuQG1peGluIGJnLWFsbCgkdXJsLCAkcG9zaXRpb24sICRyZXBlYXQsICRhdHRhY2htZW50KSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHVybCk7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6ICRhdHRhY2htZW50O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvc2l0aW9uO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6ICRyZXBlYXQ7XHJcbn1cclxuXHJcbi8vIGJnIC0ganVzdCB1cmxcclxuQG1peGluIGJnLXVybCgkdXJsKSB7YmFja2dyb3VuZC1pbWFnZTogdXJsKCR1cmwpO31cclxuXHJcbi8vIGJnIC0gbm8gdXJsXHJcbkBtaXhpbiBiZy1ub191cmwoJHBvc2l0aW9uLCAkcmVwZWF0LCAkYXR0YWNobWVudCkge1xyXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiAkYXR0YWNobWVudDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiAkcmVwZWF0O1xyXG59XHJcblxyXG4vLyBiZyAtIHNpemVcclxuQG1peGluIGJnLXNpemUoJGJnLXNpemUpIHtcclxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxuICAgICAgIC1tb3otYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxuICAgICAgICAgLW8tYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAgICAkYmctc2l6ZTtcclxufVxyXG5cclxuQG1peGluIGJhY2tncm91bmQtZ3JhZGllbnQoJGdyYWRpZW50LWNvbG9yLCAkc3RhcnQtZ3JhZGllbnQ6IDAlLCAkc3RvcC1ncmFkaWVudDogMTAwJSwgJHN0YXJ0LXBvczogdG9wLCAkc3RvcC1wb3M6IGJvdHRvbSkge1xyXG5cdGJhY2tncm91bmQ6ICRncmFkaWVudC1jb2xvcjsgLyogT2xkIGJyb3dzZXJzICovXHJcblx0LyogSUU5IFNWRywgbmVlZHMgY29uZGl0aW9uYWwgb3ZlcnJpZGUgb2YgJ2ZpbHRlcicgdG8gJ25vbmUnICovXHJcblx0YmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSXpGbE5UYzVPU0lnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM1pHSTVaVGdpSUhOMGIzQXRiM0JoWTJsMGVUMGlNU0l2UGdvZ0lEd3ZiR2x1WldGeVIzSmhaR2xsYm5RK0NpQWdQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRWlJR2hsYVdkb2REMGlNU0lnWm1sc2JEMGlkWEpzS0NObmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0tTSWdMejRLUEM5emRtYyspO1xyXG5cdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCRzdGFydC1wb3MsICRncmFkaWVudC1jb2xvciAkc3RhcnQtZ3JhZGllbnQsIGRhcmtlbigkZ3JhZGllbnQtY29sb3IsIDYlKSAkc3RvcC1ncmFkaWVudCk7IC8qIEZGMy42KyAqL1xyXG5cdGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0ICRzdGFydC1wb3MsIGxlZnQgJHN0b3AtcG9zLCBjb2xvci1zdG9wKDAlLCRncmFkaWVudC1jb2xvciksIGNvbG9yLXN0b3AoJHN0b3AtZ3JhZGllbnQsZGFya2VuKCRncmFkaWVudC1jb2xvciwgNiUpKSk7IC8qIENocm9tZSxTYWZhcmk0KyAqL1xyXG5cdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRzdGFydC1wb3MsICRncmFkaWVudC1jb2xvciAkc3RhcnQtZ3JhZGllbnQsZGFya2VuKCRncmFkaWVudC1jb2xvciwgNiUpICRzdG9wLWdyYWRpZW50KTsgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cclxuXHRiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LXBvcywgJGdyYWRpZW50LWNvbG9yICRzdGFydC1ncmFkaWVudCxkYXJrZW4oJGdyYWRpZW50LWNvbG9yLCA2JSkgJHN0b3AtZ3JhZGllbnQpOyAvKiBPcGVyYSAxMS4xMCsgKi9cclxuXHRiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KCRzdGFydC1wb3MsICRncmFkaWVudC1jb2xvciAkc3RhcnQtZ3JhZGllbnQsZGFya2VuKCRncmFkaWVudC1jb2xvciwgNiUpICRzdG9wLWdyYWRpZW50KTsgLyogSUUxMCsgKi9cclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gJHN0b3AtcG9zLCAkZ3JhZGllbnQtY29sb3IgJHN0YXJ0LWdyYWRpZW50LCBkYXJrZW4oJGdyYWRpZW50LWNvbG9yLCA2JSkgJHN0b3AtZ3JhZGllbnQpOyAvKiBXM0MgKi9cclxuXHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzFlNTc5OScsIGVuZENvbG9yc3RyPScjN2RiOWU4JyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOCAqL1xyXG5cdHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcclxufVxyXG5cclxuQG1peGluIGZvbnQtd2VpZ2h0LW5vcm1hbCB7XHJcblx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuIH1cclxuIEBtaXhpbiBmb250LXdlaWdodC1saWdodCB7XHJcblx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1saWdodDtcclxuIH1cclxuICBAbWl4aW4gZm9udC13ZWlnaHQtYm9sZCB7XHJcblx0Zm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiB9XHJcblxyXG5AbWl4aW4gc3ByaXRlKCR3aWR0aCwgJGhlaWdodCwgJHgtcG9zLCAkeS1wb3MpIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0JjpiZWZvcmV7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9zcHJpdGUucG5nJyk7XHJcblx0XHR3aWR0aDogJHdpZHRoO1xyXG5cdFx0aGVpZ2h0OiAkaGVpZ2h0O1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogJHgtcG9zICR5LXBvcztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogJHNwcml0ZS13ICRzcHJpdGUtaDtcclxuXHRcdEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxKSwgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMgLyAyKSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcHB4KSB7XHJcblx0ICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9zcHJpdGVAMngucG5nJyk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gdmVuZG9yLXByZWZpeCgkdmVuZG9yLXN0eWxlLCAkdmVuZG9yLWFyZ3VtZW50KXtcclxuXHQtd2Via2l0LSN7JHZlbmRvci1zdHlsZX06I3skdmVuZG9yLWFyZ3VtZW50fTtcclxuXHQtbW96LSN7JHZlbmRvci1zdHlsZX06I3skdmVuZG9yLWFyZ3VtZW50fTtcclxuXHQtbXMtI3skdmVuZG9yLXN0eWxlfTojeyR2ZW5kb3ItYXJndW1lbnR9O1xyXG5cdC1vLSN7JHZlbmRvci1zdHlsZX06I3skdmVuZG9yLWFyZ3VtZW50fTtcclxuXHQjeyR2ZW5kb3Itc3R5bGV9OiN7JHZlbmRvci1hcmd1bWVudH07XHJcbn1cclxuXHJcbi8vIHRyYW5zaXRpb25zXHJcbiBcclxuQG1peGluIHRyYW5zaXRpb24oJHZhbHVlcy4uLikgeyBcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHZhbHVlcztcclxuICAgIC1tb3otdHJhbnNpdGlvbjogJHZhbHVlcztcclxuICAgIC1vLXRyYW5zaXRpb246ICR2YWx1ZXM7XHJcbiAgICB0cmFuc2l0aW9uOiAkdmFsdWVzO1xyXG59XHJcblxyXG4vLyBmb250YXdlc29tZSB3aXRob3V0IHRoZSBjbGFzc1xyXG5cclxuQG1peGluIGZvbnRhd2Vzb21lKCkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lO1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbn1cclxuIiwiLyogQlJFQUtQT0lOVFMgJiBFTSBRVUlDS1ZJRVdcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuMWVtID0gMTZweFxyXG4yZW0gPSAzMnB4XHJcbjNlbSA9IDQ4cHhcclxuNGVtID0gNjRweFxyXG5cclxuMC4wNjI1ZW0gICA9ICAgICAgIDFweFxyXG4wLjEyNWVtICAgID0gICAgICAgMnB4XHJcbjAuMTU2MjVlbSAgPSAgICAgICAyLjVweFxyXG4wLjE4NzVlbSAgID0gICAgICAgM3B4XHJcbjAuMzEyNWVtICAgPSAgICAgICA1cHggXHJcbjAuNjI1ZW0gICAgPSAgICAgIDEwcHhcclxuMC45Mzc1ZW0gICA9ICAgICAgMTVweFxyXG4xLjI1ZW0gICAgID0gICAgICAyMHB4XHJcbjEuNTYyNWVtICAgPSAgICAgIDI1cHhcclxuMi41ZW0gICAgICA9ICAgICAgNDBweFxyXG4zLjEyNWVtICAgID0gICAgICA1MHB4XHJcbjMuMzc1ZW07ICAgPSAgICAgIDU0cHggLSBiYWNrLXRvLXRvcCBib3R0b20gKyBib3R0b20gbmF2YmFyIGhlaWdodFxyXG40LjY4NzVlbSAgID0gICAgICA3NXB4XHJcbjYuMjVlbSAgICAgPSAgICAgMTAwcHhcclxuXHJcbjIwZW0gPSAgMzIwcHggLSBpUGhvbmUgNVxyXG4zMGVtID0gIDQ4MHB4XHJcbjQwZW0gPSAgNjQwcHggLSBmb3VuZGF0aW9uIG1lZGl1bVxyXG41MGVtID0gIDgwMHB4XHJcbjYwZW0gPSAgOTYwcHhcclxuNjRlbSA9IDEwMjRweCAtIGlQYWQgLyBmb3VuZGF0aW9uIGxhcmdlXHJcbjcwZW0gPSAxMTIwcHhcclxuODBlbSA9IDEyODBweFxyXG5cclxuNjMuOTM3NWVtID0gICAgMTAyM3B4IC0gc2luZ2xlIHBhZ2UgLSBnb2FsIHRpdGxlIHN3aXRjaCB0byB0YWJsZXQgdmlld1xyXG44MS4yNWVtICAgPSAgICAxMzAwcHhcclxuODcuNWVtICAgID0gICAgMTQwMHB4IC0gd2hlcmUgR09WRVJOTUVOVCBvdmVybGFwcyBlZGdlXHJcblxyXG4qL1xyXG5cclxuLy8gRk9VTkRBVElPTiBCUkVBS1BPSU5UU1xyXG5cclxuJHNtYWxsLXRvcC1icmVha3BvaW50OiAzOS45Mzc1ZW07XHJcbiRtZWRpdW0tYm90dG9tLWJyZWFrcG9pbnQ6IDQwZW07XHJcbiRtZWRpdW0tdG9wLWJyZWFrcG9pbnQ6IDYzLjkzNzVlbTtcclxuJGxhcmdlLWJvdHRvbS1icmVha3BvaW50OiA2NGVtO1xyXG4kbGFyZ2UtdG9wLWJyZWFrcG9pbnQ6IDc0LjkzNzVlbTtcclxuXHJcbi8vIG1lZGlhIHF1ZXJ5IHZhcmlhYmxlc1xyXG5cclxuLy8gVXNhZ2U6ICBAbWVkaWEgI3skc21hbGwtb25seX1cclxuLy8gb3V0cHV0OiBcIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSlcclxuJHNtYWxsLW9ubHk6IFwic2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyAkc21hbGwtdG9wLWJyZWFrcG9pbnQgfSlcIjtcclxuJG1lZGl1bS11cDogXCJzY3JlZW4gYW5kIChtaW4td2lkdGg6ICN7ICRtZWRpdW0tYm90dG9tLWJyZWFrcG9pbnQgfSlcIjtcclxuJG1lZGl1bS1kb3duOiBcInNjcmVlbiBhbmQgKG1heC13aWR0aCA6ICN7ICRtZWRpdW0tdG9wLWJyZWFrcG9pbnQgfSlcIjtcclxuJG1lZGl1bS1vbmx5OiBcInNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3sgJG1lZGl1bS1ib3R0b20tYnJlYWtwb2ludCB9KSBhbmQgKG1heC13aWR0aDogI3skbWVkaXVtLXRvcC1icmVha3BvaW50fSlcIjtcclxuJGxhcmdlLWRvd246IFwic2NyZWVuIGFuZCAobWF4LXdpZHRoIDogI3sgJGxhcmdlLXRvcC1icmVha3BvaW50IH0pXCI7XHJcbiRsYXJnZS11cDogXCJzY3JlZW4gYW5kIChtaW4td2lkdGg6ICN7ICRsYXJnZS1ib3R0b20tYnJlYWtwb2ludCB9KVwiO1xyXG4kbGFyZ2Utb25seTogXCJzY3JlZW4gYW5kIChtaW4td2lkdGg6ICN7ICRsYXJnZS1ib3R0b20tYnJlYWtwb2ludCB9KSBhbmQgKG1heC13aWR0aDogI3sgJGxhcmdlLXRvcC1icmVha3BvaW50IH0pXCI7XHJcblxyXG5cclxuLyogU21hbGwgb25seSAqL1xyXG4vL0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRzbWFsbC10b3AtYnJlYWtwb2ludCkge31cclxuXHJcbi8qIE1lZGl1bSBhbmQgdXAgKi9cclxuLy9AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7fVxyXG5cclxuLyogTWVkaXVtIG9ubHkgKi9cclxuLy9AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7fVxyXG5cclxuLyogTGFyZ2UgYW5kIHVwICovXHJcbi8vQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge31cclxuXHJcbi8qIExhcmdlIG9ubHkgKi9cclxuLy9AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7fVxyXG5cclxuXHJcbi8vIEZPVU5EQVRJT04gQlJFQUtQT0lOVCBNSVhJTlxyXG5cclxuLmVsZW1lbnQge1xyXG4gICAgLy8gT25seSBhZmZlY3RzIG1lZGl1bSBzY3JlZW5zIGFuZCBsYXJnZXJcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAvLyBBbGwgQ1NTIGluIGhlcmUgZ29lcyBpbnNpZGUgdGhlIG1lZGlhIHF1ZXJ5XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKiogRGVmaW5lIHdpZHRoIFZhbHVlcyBmb3IgSlMgcmVmZXJlbmNlICoqL1xyXG4ud2lkdGgtZGVmaW5pdGlvbnMge1xyXG4gICAgdmlzaWJpbGl0eSA6IGhpZGRlbjtcclxuICAgIGRpdiB7dmlzaWJpbGl0eSA6IGhpZGRlbjt9XHJcbiAgICAud2lkdGgtc21hbGwge3dpZHRoIDogJHNtYWxsLXRvcC1icmVha3BvaW50O31cclxuICAgIC53aWR0aC1tZWRpdW0ge3dpZHRoIDogJG1lZGl1bS10b3AtYnJlYWtwb2ludDt9XHJcbiAgICAud2lkdGgtbGFyZ2Uge3dpZHRoIDogJGxhcmdlLXRvcC1icmVha3BvaW50O31cclxufVxyXG5cclxuXHJcbi8vIE1PQklMRVpFIC0gcXVpY2sgbiBkaXJ0eVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8gZXh0cmEgc21hbGwgLSBpUGhvbmU1XHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDIwZW0pIHtcclxuICAgIC53cmFwcC0xMDAgICAgICAgIHsgcGFkZGluZzogMC45Mzc1ZW0gMC42MjVlbTsgfSAvLyA9IDE1cHggMTBweFxyXG4gICAgLy8gLnJvdyAgICAgICAgICAgICAgeyBwYWRkaW5nLWxlZnQ6IDAuNWVtOyBwYWRkaW5nLXJpZ2h0OiAwLjVlbTsgfVxyXG4gICAgLy8gLmNvbHVtbiwgLmNvbHVtbnMgeyBwYWRkaW5nLWxlZnQ6IDA7ICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XHJcbiAgICAvLyAucm93IC5yb3cgICAgICAgICB7IG1hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxufVxyXG4vLyBzbWFsbCBvbmx5XHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MjAuMDFlbSkgYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xyXG4gICAgLndyYXBwLTEwMCAgICAgICAgeyBwYWRkaW5nOiAxLjI1ZW0gMC42MjVlbTsgfSAvLyA9IDIwcHggMTBweFxyXG4gICAgLy8gLnJvdyAgICAgICAgICAgICAgeyBwYWRkaW5nLWxlZnQ6IDEuNWVtOyBwYWRkaW5nLXJpZ2h0OiAxLjVlbTsgfVxyXG4gICAgLy8gLmNvbHVtbiwgLmNvbHVtbnMgeyBwYWRkaW5nLWxlZnQ6IDA7ICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XHJcbn1cclxuLy8gbWVkaXVtIG9ubHlcclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgLy8gLnJvdyAgICAgICAgICAgICAgeyBwYWRkaW5nLWxlZnQ6IDJlbTsgcGFkZGluZy1yaWdodDogMmVtOyB9XHJcbn1cclxuLy8gbGFyZ2Ugb25seVxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XHJcbiAgICAvLyAucm93ICAgICAgICAgICAgICB7IHBhZGRpbmctbGVmdDogMmVtOyBwYWRkaW5nLXJpZ2h0OiAyZW07IH1cclxufSIsIi8vIEhFTFBFUlNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gXHJcblxyXG4vLyBQQURESU5HICsgTUFSR0lOIEhFTFBFUiBDTEFTU0VTXHJcblxyXG4ubXQyNSB7bWFyZ2luLXRvcDogMjVweDt9XHJcbi5tYjI1IHttYXJnaW4tYm90dG9tOiAyNXB4O31cclxuLm1iNzUge21hcmdpbi1ib3R0b206IDc1cHg7fVxyXG4ubXRiNzUge21hcmdpbi10b3A6IDc1cHg7IG1hcmdpbi1ib3R0b206IDc1cHg7fVxyXG5cclxuLnB0MCB7cGFkZGluZy10b3A6MHB4ICFpbXBvcnRhbnQ7fVxyXG4ucDEwIHtwYWRkaW5nOjEwcHg7fVxyXG4ucDE1IHtwYWRkaW5nOjE1cHg7fVxyXG4ucDI1IHtwYWRkaW5nOjI1cHg7fVxyXG4ucDUwIHtwYWRkaW5nOiA1MHB4O31cclxuXHJcbi5wdDEwIHtwYWRkaW5nLXRvcDogMTBweDt9XHJcbi5wYjEwIHtwYWRkaW5nLWJvdHRvbTogMTBweDt9XHJcbi5wdGIxMCB7cGFkZGluZy10b3A6MTBweDsgcGFkZGluZy1ib3R0b206IDEwcHg7fVxyXG5cclxuLnB0MTUge3BhZGRpbmctdG9wOjE1cHg7fVxyXG4ucGIxNSB7cGFkZGluZy1ib3R0b206MTVweDt9XHJcbi5wcjE1IHtwYWRkaW5nLXJpZ2h0OjE1cHg7fVxyXG4ucHRiMTUge3BhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOiAxNXB4O31cclxuXHJcbi5wdDI1IHtwYWRkaW5nLXRvcDoyNXB4O31cclxuLnBiMjUge3BhZGRpbmctYm90dG9tOjI1cHg7fVxyXG4ucHRiMjUge3BhZGRpbmctdG9wOjI1cHg7IHBhZGRpbmctYm90dG9tOjI1cHg7fVxyXG5cclxuLnB0NTAge3BhZGRpbmctdG9wOjUwcHg7fVxyXG4ucGI1MCB7cGFkZGluZy1ib3R0b206NTBweDt9XHJcbi5wdGI1MCB7cGFkZGluZy10b3A6NTBweDsgcGFkZGluZy1ib3R0b206NTBweDt9XHJcbi5wdGxyNTAge3BhZGRpbmctdG9wOiA1MHB4OyBwYWRkaW5nLWxlZnQ6IDUwcHg7IHBhZGRpbmctcmlnaHQ6IDUwcHg7fVxyXG4ucHRibDUwIHtwYWRkaW5nLXRvcDo1MHB4OyBwYWRkaW5nLWJvdHRvbTo1MHB4OyBwYWRkaW5nLWxlZnQ6IDUwcHg7fVxyXG5cclxuLnB0NzUge3BhZGRpbmctdG9wOjc1cHg7fVxyXG4ucHRiNzUge3BhZGRpbmctdG9wOjc1cHg7IHBhZGRpbmctYm90dG9tOjc1cHg7fVxyXG5cclxuLnB0MTAwIHtwYWRkaW5nLXRvcDoxMDBweDt9XHJcbi5wYjEwMCB7cGFkZGluZy1ib3R0b206MTAwcHggIWltcG9ydGFudDt9XHJcbi5wdGIxMDAge3BhZGRpbmctdG9wOjEwMHB4OyBwYWRkaW5nLWJvdHRvbToxMDBweDt9XHJcblxyXG4ucGFkd3JhcCB7cGFkZGluZzogMTBweDt9XHJcblxyXG5cclxuLy8gQ0VOVEVSSU5HIFxyXG4udHh0LWNudHIge3RleHQtYWxpZ246IGNlbnRlcjt9IC8vbWF5YmUgdXNlIGZvdW5kYXRpb25zPyB0ZXh0LWNlbnRlclxyXG4uY2VudGVyZWQge2Rpc3BsYXk6YmxvY2s7IG1hcmdpbjogMCBhdXRvO31cclxuXHJcbi8vIFBPU0lUSU9OOiBSRUxBVElWRVxyXG4ucmVsYXRpdmUge3Bvc2l0aW9uOiByZWxhdGl2ZTt9XHJcblxyXG4vLyBISURFXHJcbi5kaXNwbGF5LW5vbmUge2Rpc3BsYXk6IG5vbmU7fVxyXG5cclxuLy8gSU1HIC0gUkVTUE9OU0lWRVxyXG5pbWcge1xyXG4gICAgJi5yZXNwb25zaXZlIHsgZGlzcGxheTogYmxvY2s7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XHJcbiAgICAmLmFsaWducmlnaHQge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjVweFxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8gei1pbmRleFxyXG4uei10b3Age3Bvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDozOyBvcGFjaXR5OiAwLjk5O31cclxuLno1MDAge3otaW5kZXg6IDUwMDt9XHJcblxyXG4vLyAgUElQRSAoaWUuIFwifFwiIClcclxuLnBpcGUge2ZvbnQtc2l6ZToxLjU2MjVlbTsgcGFkZGluZzowIDAuOTM3NWVtOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO31cclxuc21hbGwge1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIC5waXBlIHtmb250LXNpemU6MS41ZW07IHBhZGRpbmc6MCAwLjkzNzVlbTsgdmVydGljYWwtYWxpZ246IHRvcDsgbGluZS1oZWlnaHQ6IDEuNWVtO31cclxufVxyXG5cclxuLy8gZml4IG92ZXJsYXlcclxuLnNlYXJjaC1vdmVybGF5IHt6LWluZGV4OiAxO31cclxuXHJcbi8vIEZPVU5EQVRJT04gVE9HR0xFU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4uaXMtaGlkZGVuIHtkaXNwbGF5OiBub25lO31cclxuLmlzLWZvdW5kIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgLyogdHJhbnNpdGlvbiB2aXNpYmlsaXR5ICovXHJcbiAgICBAaW5jbHVkZSBhbmltKHZpc2liaWxpdHkgMHMpO1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxufVxyXG4ucmVhZG1vcmUge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZy10b3A6MjVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOjI1cHg7XHJcbiAgICBhIHtjb2xvcjogJHdoaXRlOyBAaW5jbHVkZSBhbmltKGNvbG9yIDAuM3MgZWFzZSk7IEBpbmNsdWRlIGhvdmVyKCkge2NvbG9yOiRzbGF0ZTt9IH1cclxufVxyXG5cclxuLy8gRVhURVJOQUwgTElOSyBJQ09OICBcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLmV4dGVybmFsX2xpbmsge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6XCJcXGYwOGVcIjsgLy8gXFxmMTRjID0gZXh0ZXJuYWwgbGluayBzcXVhcmUgfCBcXGYwOGUgPSBleHRlcm5hbCBsaW5rIG91dGxpbmVcclxuICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xyXG4gICAgICAgIGNvbG9yOiAkZ3J5c2x2cjtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMHB4OyByaWdodDowcHg7XHJcbiAgICAgICAgcGFkZGluZzogN3B4IDI1cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5uYXYtaXMtb3BlbiB7XHJcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbn0iLCIvLyBDT05URU5UIFdSQVBQRVJTXHJcbi53cmFwIHtcclxuICAgICBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO1xyXG59XHJcblxyXG4ud3JhcHAge3BhZGRpbmctdG9wOiA1MHB4OyBwYWRkaW5nLWJvdHRvbTogNTBweDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcbi53cmFwcC0xMDAge3BhZGRpbmctdG9wOiAxMDBweDsgcGFkZGluZy1ib3R0b206IDEwMHB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO31cclxuLndyYXBwLTE1MCB7cGFkZGluZy10b3A6IDE1MHB4OyBwYWRkaW5nLWJvdHRvbTogMTUwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG4ud3JhcHAtMjAwIHtwYWRkaW5nLXRvcDogMjAwcHg7IHBhZGRpbmctYm90dG9tOiAyMDBweDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcbi53cmFwbSB7bWFyZ2luLXRvcDogMTAwcHg7IG1hcmdpbi1ib3R0b206IDE1MHB4OyBkaXNwbGF5OmJsb2NrOyBAaW5jbHVkZSBjbGVhcigpO31cclxuLndyYXBwLW5vcGFkIHtwYWRkaW5nLXRvcDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO31cclxuLndyYXBwLW5vcGFkLTE1MCB7cGFkZGluZy10b3A6IDBweDsgcGFkZGluZy1ib3R0b206IDE1MHB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO31cclxuXHJcbi8vIG11c3QgYXBwZWFyIGJlZm9yZSBiYWNrZ3JvdW5kIHN0dWZmXHJcbi53cmFwcC1zZWFyY2gge1xyXG4gICAgcGFkZGluZzogNi4yNWVtIDE1JSA2ZW07XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBAaW5jbHVkZSBjbGVhcigpO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xyXG4gICAgfVxyXG59XHJcbi53cmFwcC1sb2NhdGlvbiB7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4OyAvLyAxNTVweDsgLy8gMjM1IC0gbm93OiAyMzUgLSA2Mihsb2MgaGVpZ2h0KVxyXG4gICAgcGFkZGluZy1ib3R0b206MHB4O1xyXG4gICAgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMS4yNWVtOyByaWdodDogMHB4O1xyXG59XHJcblxyXG4ud3JhcHBfZ29lc19zcXVpc2gge1xyXG4gICAgcGFkZGluZzogNC42ODc1ZW0gMDsgLy8gPSA3NXB4XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIEBpbmNsdWRlIGNsZWFyKCk7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjQ1cmVtO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICBTaGFkb3dzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4uc2hhZG93IHtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDJweCAycHggMXB4IHJnYmEoMTUzLCAxNTMsIDE1MywgMC44Myk7XHJcbiAgICAgLW1vei1ib3gtc2hhZG93OiAycHggMnB4IDFweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuODMpO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMnB4IDJweCAxcHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjgzKTtcclxufVxyXG4uc2hhZG93LWluc2V0IHtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAxMnB4ICMwMDAwMDA7XHJcbiAgICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDAgMTJweCAjMDAwMDAwO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDEycHggIzAwMDAwMDtcclxufVxyXG4uc2hhZG93LWNlbnRlciB7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDZweCAtNnB4IHJnYmEoMTUzLCAxNTMsIDE1MywgMC44Myk7XHJcbiAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgOHB4IDZweCAtNnB4IHJnYmEoMTUzLCAxNTMsIDE1MywgMC44Myk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDZweCAtNnB4IHJnYmEoMTUzLCAxNTMsIDE1MywgMC44Myk7XHJcbn1cclxuXHJcbi5zaGFkb3ctY2VudGVyLTIge1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDZweCAtNnB4ICM3Nzc7XHJcbiAgICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggNnB4IC02cHggIzc3NztcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCA2cHggLTZweCAjNzc3O1xyXG59XHJcblxyXG5cclxuLnNoYWRvdy10YiB7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAwIDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xyXG4gICAgICAgLW1vei1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XHJcbn1cclxuLnNoYWRvdy10YjpiZWZvcmUsIC5zaGFkb3ctdGI6YWZ0ZXIge1xyXG4gICAgY29udGVudDpcIlwiO1xyXG4gICAgei1pbmRleDotMTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6MCAwIDIwcHggcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICB0b3A6MDtcclxuICAgIGJvdHRvbTowO1xyXG4gICAgbGVmdDoxMHB4O1xyXG4gICAgcmlnaHQ6MTBweDtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czoxMDBweCAvIDEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOjEwMHB4IC8gMTBweDtcclxufVxyXG4uc2hhZG93LXRiOmFmdGVyIHtcclxuICByaWdodDoxMHB4O1xyXG4gICAgbGVmdDphdXRvO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06c2tldyg4ZGVnKSByb3RhdGUoM2RlZyk7XHJcbiAgICAgICAtbW96LXRyYW5zZm9ybTpza2V3KDhkZWcpIHJvdGF0ZSgzZGVnKTtcclxuICAgICAgICAtbXMtdHJhbnNmb3JtOnNrZXcoOGRlZykgcm90YXRlKDNkZWcpO1xyXG4gICAgICAgICAtby10cmFuc2Zvcm06c2tldyg4ZGVnKSByb3RhdGUoM2RlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTpza2V3KDhkZWcpIHJvdGF0ZSgzZGVnKTtcclxufVxyXG5cclxuLnNoYWRvdy1wYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLnNoYWRvdy1wYWdlOmFmdGVyIHtcclxuICB6LWluZGV4OiAtMTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBib3R0b206IDE1cHg7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbiAgbGVmdDogYXV0bztcclxuICB3aWR0aDogNTAlO1xyXG4gIHRvcDogODAlO1xyXG4gIG1heC13aWR0aDozMDBweDtcclxuICBiYWNrZ3JvdW5kOiAjNzc3O1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxNXB4IDEwcHggIzc3NztcclxuICAtbW96LWJveC1zaGFkb3c6IDAgMTVweCAxMHB4ICM3Nzc7XHJcbiAgYm94LXNoYWRvdzogMCAxNXB4IDEwcHggIzc3NztcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xyXG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XHJcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xyXG59XHJcblxyXG4uc2hhZG93LWN1cnZlIHtcclxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcclxuICAgICAgIC1tb3otYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAwIDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xyXG59XHJcbi5zaGFkb3ctY3VydmU6YmVmb3JlLCAuc2hhZG93LWN1cnZlOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6XCJcIjtcclxuICAgIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gICAgei1pbmRleDotMTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6MCAwIDIwcHggcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICB0b3A6NTAlO1xyXG4gICAgYm90dG9tOjA7XHJcbiAgICBsZWZ0OjEwcHg7XHJcbiAgICByaWdodDoxMHB4O1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOjEwMHB4IC8gMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6MTAwcHggLyAxMHB4O1xyXG59IiwiLyogQkFDS0dST1VORFNcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIGJhY2tncm91bmQ6IGNvbG9yIGltYWdlIHBvc2l0aW9uL3NpemUgcmVwZWF0IG9yaWdpbiBjbGlwIGF0dGFjaG1lbnQgaW5pdGlhbHxpbmhlcml0O1xyXG5cclxuLmJnIHtcclxuICAgIC8vIGFsbG93cyA6YmVmb3JlIHRvIGhhdmUgZnVsbCBzY3JlZW4gYmdcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8vIHotaW5kZXg6IDI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICBwYWRkaW5nOiA5MHB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgYmctbm9fdXJsKGNlbnRlciBjZW50ZXIsIG5vLXJlcGVhdCwgc2Nyb2xsKTtcclxuICAgIEBpbmNsdWRlIGJnLXNpemUoY292ZXIpO1xyXG4gICAgQGluY2x1ZGUgZmlsdGVyKGNvbnRyYXN0KDEuMSkpO1xyXG4gICAgQGluY2x1ZGUgYW5pbShhbGwgZWFzZSAxcyk7XHJcblxyXG4gICAgJi53cmFwcC1zZWFyY2gge2JhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7fSAvLyBlbnN1cmUgaGVhZGVyIGltYWdlcyBhcmUgZml4ZWRcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIC8vIGFsbG93cyBtdWx0aS1iZ1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IGJvdHRvbTogMDsgcmlnaHQ6IDA7XHJcbiAgICAgICAgd2lkdGg6MTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwKSwgcmdiYSgwLDAsMCwwKSwgcmdiYSgwLDAsMCwwLjQwKSwgcmdiYSgwLDAsMCwwLjYwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iZy1vdmVybGF5IHtcclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNzUpLCByZ2JhKDAsMCwwLDAuNzUpKSxcclxuICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjc1KSwgcmdiYSgyNTUsMjI0LDE3OCwwLjI1KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xyXG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7IFxyXG4gICAgICAgIC53cmFwcC1zZWFyY2gge2JhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7fVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7IFxyXG4gICAgICAgIC53cmFwcC1zZWFyY2gge2JhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7fVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbCAhaW1wb3J0YW50O31cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgICAgID4gLnJvdyB7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyAgT1VUTElORVMgLSBURVhUIE9WRVIgSU1BR0UgU1RZTEVTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLm91dGxpbmUge1xyXG4gICAgZGlzcGxheTpibG9jaztcclxuICAgIGJvcmRlcjogMC4xMjVlbSBzb2xpZCAkd2h0OyAvLyA9IDJweFxyXG4gICAgcGFkZGluZzogMy4xMjVlbTsgLy8gPSA1MHB4XHJcbiAgICBjb2xvcjogJHdodDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xNzUpO1xyXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBwIHsgY29sb3I6ICR3aHQ7IGZvbnQtd2VpZ2h0OiA3MDA7fVxyXG4gICAgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICAmLm91dGxpbmVfd2h0IHtcclxuICAgICAgICBoMSwgcCB7Y29sb3I6ICR3aHQ7IEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZS1pbi1vdXQpO31cclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgYmFja2dyb3VuZDogJHdodDsgIGgxLCBwIHtjb2xvcjogJHNsYXRlO30gfVxyXG4gICAgfVxyXG4gICAgJi5vdXRsaW5lX3dodF90aXRsZSB7XHJcbiAgICAgICAgaDEsIHAge2NvbG9yOiAkd2h0OyBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICB9XHJcbiAgICAmLm91dGxpbmVfc2xhdGUge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzbGF0ZTtcclxuICAgICAgICBoMSwgcCB7IGNvbG9yOiAkc2xhdGU7IEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZS1pbi1vdXQpO31cclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgYmFja2dyb3VuZDogJHdodDsgfVxyXG4gICAgfVxyXG4gICAgJi5vdXRsaW5lX3NsYXRlYWx0IHtcclxuICAgICAgICBoMSwgcCB7IGNvbG9yOiAkd2h0OyBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7IGJhY2tncm91bmQ6ICRzbGF0ZTsgYm9yZGVyOiAwLjEyNWVtIHNvbGlkICRzbGF0ZTsgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMS4yNWVtO1xyXG4gICAgICAgICYub3V0bGluZV93aHQge1xyXG4gICAgICAgICAgICBwIHsgbWFyZ2luLWJvdHRvbTogMC4yNWVtOyBzbWFsbCB7Zm9udC1zaXplOiAwLjg1cmVtO30gfVxyXG4gICAgICAgICAgICBoMSB7Zm9udC1zaXplOiAxLjI1cmVtO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtwYWRkaW5nOiAyLjVlbTt9XHJcbn1cclxuXHJcbi8vIEZ1bGxzY3JlZW4gYmdcclxuLmZ1bGwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgbWF4LWhlaWdodDogMTAwJTsgLyogMTAwdmggKi9cclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ucmV2ZWFsLmZ1bGwge1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG59IiwiLy9UT0RPIE1ha2UgdGhlc2UgLjQwNC0gZXh0ZW50aW9uc1xyXG4lXzQwNC1zZWFyY2gge1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgbWluLWhlaWdodDogMTZlbTtcclxuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XHJcblxyXG4gICAgLy8gc3BlY2lhbCB0cmVhdG1lbnQgZm9yIDQwNCBzZWFyY2hcclxuICAgIC5zZWFyY2gtaW5wdXQge1xyXG4gICAgICAgICYuaGlkZS1mb3ItbGFyZ2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuc2hvdy1mb3ItbGFyZ2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiVfNDA0LWhlYWRlciB7XHJcbiAgICBjb2xvcjogJG5hdnk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiVfNDA0LXdyYXBwIHtcclxuICAgIHBhZGRpbmctdG9wOiAyMnZoICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5fNDA0IHtcclxuICAgICZfX2hlYWRlciB7XHJcbiAgICAgICAgQGV4dGVuZCAlXzQwNC1oZWFkZXI7XHJcbiAgICB9XHJcbiAgICAmX19zZWFyY2gge1xyXG4gICAgICAgIEBleHRlbmQgJV80MDQtc2VhcmNoO1xyXG4gICAgfVxyXG4gICAgJl9fd3JhcHAge1xyXG4gICAgICAgIEBleHRlbmQgJV80MDQtd3JhcHA7XHJcbiAgICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgIFRvcGljcyAvIENvbGxlY3Rpb25zIC8gR3VpZGVzIC8gQUNGIEN1c3RvbSBQYWdlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4udGVtcGxhdGVfX2FjZi1wYWdlIHtcclxuICAgICNjb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gIEFSVElDTEUgLSB1c2VkIGluIHNpbmdsZSwgdG9waWNzLCAmIHBhZ2UgdGVtcGxhdGVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi5hcnRpY2xlIHtcclxuICAgIGgyIHtwYWRkaW5nLXRvcDogMi41cmVtO30gLy8gPSA0MHB4XHJcbiAgICBoMywgaDQge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOjAuNjI1cmVtO1xyXG4gICAgfVxyXG4gICAgdWwge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IGRpc2MgIWltcG9ydGFudDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNWVtO1xyXG4gICAgfSAvLyAzLjEyNWVtID0gNTBweFxyXG4gICAgLy8gYSB7XHJcbiAgICAvLyAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgLy8gICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgLy8gICAgIEBpbmNsdWRlIGhvdmVyKCkgeyBjb2xvcjogJGJsdWUtYnJpZ2h0OyB9XHJcbiAgICAvLyB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGgyIHtwYWRkaW5nLXRvcDogMS40cmVtOyBwYWRkaW5nLWJvdHRvbTogLjI1cmVtOyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAxLjJyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS4ycmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucm93LFxyXG4gICAgICAgIC5yb3cgLnJvdyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmFsZXJ0X2ljb24ge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgaSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNWVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNjI1cmVtO1xyXG4gICAgfVxyXG59XHJcbi5mZWF0dXJlZCB7XHJcbiAgICAmLXRpdGxlIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICB1bCBsaSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIC8vIE5PVEUgbWlncmF0ZWQgbGluayBzdHlsZXMgdG8gX2FuY2hvclxyXG4gICAgfVxyXG4gICAgcCB7XHJcbiAgICAgICAgY29sb3I6ICR3aHQ7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2h0O1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBob21lcGFnZSBmZWF0dXJlZCB0b3BpY3NcclxuXHJcbiVmZWF0dXJlZC13cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgJjpob3ZlciAlZmVhdHVyZWQtaXRlbS1pbm5lciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM3NSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtLWlubmVyIHtcclxuICAgIHBhZGRpbmc6IDMuMTI1ZW07XHJcbiAgICBjb2xvcjogI2ZhZmFmYTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xyXG4gICAgbWluLWhlaWdodDogMzUwcHg7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDEuNWVtO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xyXG4gICAgfVxyXG4gICAgLmJnICYge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNzUpO1xyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG4gICAgfVxyXG4gICAgc21hbGwge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNTAlO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtLWhhbGYge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgLy8gbWluLWhlaWdodDogNjMwcHg7XHJcblxyXG4gICAgLy8gVE9ETyBSZXdyaXRlIG1lZGlhIHF1ZXJ5IHNvIEBleHRlbmQgY2FuIGJlIHVzZWRcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtLXRoaXJkcyB7XHJcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAvLyBtaW4taGVpZ2h0OiA3MzBweDtcclxuXHJcbiAgICAvLyBUT0RPIFJld3JpdGUgbWVkaWEgcXVlcnkgc28gQGV4dGVuZCBjYW4gYmUgdXNlZFxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgbWluLWhlaWdodDogMDtcclxuICAgIH1cclxufVxyXG5cclxuJWZlYXR1cmVkLWl0ZW0tZnVsbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgbWluLWhlaWdodDogbm9uZTtcclxufVxyXG5cclxuLy8gYWxsIGZlYXR1cmVkIHRvcGljcyBwYXJ0aWFsc1xyXG4uZmVhdHVyZWQge1xyXG4gICAgJl9fd3JhcHBlciB7XHJcbiAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtd3JhcHBlcjtcclxuXHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19pdGVtIHtcclxuICAgICAgICBAZXh0ZW5kICVmZWF0dXJlZC1pdGVtO1xyXG4gICAgICAgICYtLWlubmVyIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbS1pbm5lcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi0tdGl0bGUge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmZWF0dXJlZC1pdGVtLXRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuLWNvbC0yICYge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmZWF0dXJlZC1pdGVtLWhhbGY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4tY29sLTMgJiB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZlYXR1cmVkLWl0ZW0tdGhpcmRzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vIG1vYmlsZSB0b3BpY3MgbGF5b3V0XHJcbi50b3BpY3NfaGVhZGVyX21vYmlsZSB7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6MTIuMzc1cmVtOyAvLyA9IDE5OHB4XHJcbiAgICAgICAgLy8gbWF4LWhlaWdodDoxMi4zNzVyZW07IC8vID0gMTk4cHhcclxuICAgIH1cclxufVxyXG4udG9waWNzX2hlYWRlciB7XHJcbiAgICBAZXh0ZW5kIC53cmFwcF9nb2VzX3NxdWlzaDtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgLnJvdyB7cGFkZGluZzogMDsgbWFyZ2luOiAwO31cclxuICAgICAgICAmLnJvdywgLnJvdyAucm93IHtwYWRkaW5nOjA7IG1hcmdpbjowO31cclxuICAgIH1cclxufVxyXG5cclxuLy8gU1VNTUFSWVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4udG9waWNzX2hlYWRlclxyXG4udG9waWNfc3VtbWFyeV93cmFwcCB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMS41NjI1ZW07XHJcbiAgICAgICAgLmFydGljbGUge21hcmdpbi1ib3R0b206IDEuMjVlbTt9XHJcbiAgICB9XHJcbn1cclxuLnRvcGljX3N1bW1hcnkge1xyXG4gICAgYmFja2dyb3VuZDogJHdodDtcclxuICAgIHBhZGRpbmc6IDMuMTI1ZW07XHJcbiAgICBoMSB7Zm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAudG9waWNfbWVudV90aXRsZSB7bWFyZ2luLXRvcDoxcmVtO31cclxuICAgIC50b3BpY19tZW51IHsgXHJcbiAgICAgICAgbGkgPiBhIHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyKCkgeyBjb2xvcjogJGJsdWUtYnJpZ2h0OyB9XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICAuYmFjay10byB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkgeyBjb2xvcjogJG5hdnk7IH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcclxuICAgICAgICAuY29sdW1ucyB7bWFyZ2luOiAwOyBwYWRkaW5nOiAwO31cclxuICAgICAgICAuYXJ0aWNsZSB7bWFyZ2luLWJvdHRvbTogMS4yNWVtO31cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC43ZW07XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDEuMjVlbSAwO1xyXG4gICAgICAgIGgxIHtmb250LXNpemU6IDEuNGVtOyBwYWRkaW5nLWJvdHRvbTogMXJlbTt9XHJcbiAgICAgICAgLnRvcGljX3N1bW1hcnlfdGl0bGUge2ZvbnQtc2l6ZTogMC45NXJlbTsgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTt9XHJcbiAgICAgICAgLy8gLnRvcGljX21lbnUgeyBsaSA+IGEge2ZvbnQtc2l6ZTowLjk1ZW07fSB9XHJcbiAgICAgICAgLmFydGljbGUge21hcmdpbi1ib3R0b206IDEuMjVlbTt9XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vLyAudG9waWNfc2VjdGlvbnNfd3JhcHAsXHJcbi53cmFwcF9mZWF0dXJlZF9zZWN0aW9uIHtcclxuICAgIEBleHRlbmQgLndyYXBwX2dvZXNfc3F1aXNoO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGgyIHtwYWRkaW5nLWJvdHRvbTogMC4ycmVtOyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjQ1cmVtO1xyXG4gICAgICAgIHAge3BhZGRpbmc6IDB9XHJcbiAgICAgICAgaDIsIGg0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDAgMC4ycmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmFydGljbGVfd3JhcHAge1xyXG4gICAgaDIge3BhZGRpbmc6IDEuNXJlbSAwcmVtIDAuMnJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICBoNCB7cGFkZGluZzogMC41cmVtIDByZW0gMC4ycmVtOyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgcCB7cGFkZGluZzogMH1cclxuICAgICAgICBoMiwgaDQsIGg1IHtwYWRkaW5nOiAxLjVyZW0gMCAwLjJyZW07IG1hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgICAgICYucm93LCAmLnJvdyAucm93LCB7bWFyZ2luOiAwIGF1dG87fVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLndyYXBwX2FjdGlvbnMge1xyXG4gICAgQGV4dGVuZCAud3JhcHBfZ29lc19zcXVpc2g7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge3BhZGRpbmctdG9wOiAxLjc1cmVtO31cclxufVxyXG5cclxuLmd1aWRlc193cmFwcGVyIHtcclxuICAgIG1heC13aWR0aDogNTdyZW07XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICYuLWFjdGlvbnMge1xyXG4gICAgICAgIEBleHRlbmQgLndyYXBwX2dvZXNfc3F1aXNoO1xyXG4gICAgICAgIHBhZGRpbmc6IDIuNWVtIDAgMDtcclxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMS43NXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5oMiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnJlbGF0ZWQtbGlua3Mge1xyXG4gICAgcGFkZGluZzogOTBweCAwO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nOiAxLjI1ZW0gMDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQUNUSU9OIElURU1TXHJcbi5hY3Rpb25pdGVtIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFlbSAhaW1wb3J0YW50O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgXHJcbiAgICAuYWN0aW9uaXRlbS10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICB9XHJcbiAgICBcclxuICAgICYuY29sdW1ucyB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBmb3Igcm93cyBtb3JlIHRoYW4gNFxyXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRpdiB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGdyeTtcclxuICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgbWluLWhlaWdodDogMjEwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG5cclxuICAgICAgICAvLyBjdXN0b20gc2l6aW5nXHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTE2MHB4KSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIzNXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UpO1xyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDRlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICAgICAgLy9zbWFsbCArIG1lZGl1bSBvbmx5XHJcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge2ZvbnQtc2l6ZTogMmVtOyB9XHJcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtmb250LXNpemU6IDNlbTsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgJi5leHRlcm5hbC1pY29uOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDpcIlxcZjA4ZVwiO1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVlbTsgLy8gPSAxOHB4XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMHB4OyByaWdodDowcHg7XHJcbiAgICAgICAgcGFkZGluZzogMC40Mzc1ZW0gMS41NjI1ZW07IC8vID0gN3B4IDI1cHhcclxuICAgIH1cclxuXHJcbiAgICAmLm5vX2V4dCB7ICY6YmVmb3JlIHtjb250ZW50OlwiXCI7fSB9XHJcbiAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICBkaXYge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2eTtcclxuICAgICAgICAgICAgLmFjdGlvbml0ZW0tdGl0bGUgeyBjb2xvcjogJHdoaXRlOyB9XHJcbiAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmOmJlZm9yZSB7Y29sb3I6ICR3aGl0ZTt9XHJcbiAgICB9XHJcbn1cclxuIiwiLy8gU0VBUkNIIFdSQVBQRVJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLnNlYXJjaC1mb3JtIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgLnJlc3VsdHMgLnJvdyAucm93IHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtaW5wdXQge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMCAuMjVlbTtcclxuICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCAuM3M7XHJcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IC0xcHg7XHJcbiAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICBoZWlnaHQ6IDQycHg7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgICAgIGhlaWdodDogMzhweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBjb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLm1vcmUtcmVzdWx0cyB7XHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBjdXN0b20gc2VhcmNoIGJyZWFkY3J1bWJzXHJcbiNicmVhZGNydW1iRXh0ZW5zaW9uIHtcclxuICAgIHBhZGRpbmctbGVmdDogNHB4O1xyXG5cclxuICAgIHAge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGZpeCBmb3IgRkYgYW5kIG5vIHRleHQgc2hvd2luZyB1cCBpbiBpbnB1dFxyXG4uc2VhcmNoLWlucHV0IHtcclxuICAgIC8vIGZvbGxvd2luZyBjb2RlIGNvdWxkIGJlIG1vdmVkIGludG8gZ2VuZXJhbCBpbnB1dFxyXG4gICAgcGFkZGluZzogMCAxLjVlbTtcclxufVxyXG5cclxuLnNlYXJjaC1iYXItd3JhcHBlciB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZS1icmlnaHQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICBwYWRkaW5nOiAycHggMTVweDtcclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgcGFkZGluZzogLjVlbSAxLjVlbSAuNWVtIC41ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbW9kYWwncyBzZWFyY2ggaWNvblxyXG4gICAgLm1vZGFsaWNvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHBhZ2Ugc2VhcmNoIGljb25cclxuICAgIC5wYWdlaWNvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtaGVscGVyIHtcclxuICAgIG1hcmdpbjogNDBweCAwIDAgMjBweDtcclxufVxyXG4uc2VhcmNoLXdyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGlucHV0IHtcclxuICAgICAgICBmb250LXNpemUgOiAxcmVtO1xyXG5cclxuICAgICAgICArIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMjBweDtcclxuICAgIFxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxufVxyXG5cclxuQG1peGluIG11bHRpTGluZUVsbGlwc2lzKCRsaW5lSGVpZ2h0OiAxLjJlbSwgJGxpbmVDb3VudDogMSwgJGJnQ29sb3I6ICR3aGl0ZSkge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZUhlaWdodDtcclxuICAgIG1heC1oZWlnaHQ6ICRsaW5lSGVpZ2h0ICogJGxpbmVDb3VudDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNTVweDtcclxuICAgIHdvcmQtc3BhY2luZzogLTFweDtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJy4uLic7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAxZW07XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMWVtO1xyXG4gICAgICAgIHdpZHRoOiAxZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yZW07XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJnQ29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuJXJlc3VsdHMtcmVndWxhciB7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBtYXJnaW4tYm90dG9tIDogMDtcclxuXHJcbiAgICAvL2ZvciBlbGxpcHNpc1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjc1ZW07XHJcblxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbiVyZXN1bHRzLXNtYWxsIHtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgIGZvbnQtc2l6ZTogLjdyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxufVxyXG5cclxuJXJlc3VsdHMtbGFyZ2Uge1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1ib3R0b206IC42NjY3ZW07XHJcbn1cclxuXHJcblxyXG4ucmVzdWx0cyB7XHJcblxyXG4gICAgLnNvcnQtd3JhcHBlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VsZWN0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtcmV1bHRzLXdyYXBwZXIge1xyXG5cclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG5cclxuICAgICAgICAvLyBwcmUtc2VhcmNoIG1lc3NhZ2VcclxuICAgICAgICAucHJlcmVzdWx0cyB7XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC43NWVtO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHt0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkge3RleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHRzLXRpdGxlIHtcclxuICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLWxhcmdlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdHMtdXJsLFxyXG4gICAgLnJlc3VsdHMtY2F0ZWdvcmllcyB7XHJcbiAgICAgICAgQGV4dGVuZCAlcmVzdWx0cy1zbWFsbDtcclxuICAgIH1cclxuXHJcbiAgICAucmVzdWx0LWRlc2NyaXB0aW9uIHtcclxuICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLXJlZ3VsYXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnF1aWNrLWxpbmtzIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgLy8gc21hbGwgb25seSArIG1lZGl1bSBvbmx5XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGxlZnQ7XHJcbiAgICAgICAgICAgIHVsIHtwYWRkaW5nLXJpZ2h0IDogMCAhaW1wb3J0YW50O31cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIC8vIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNWVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMyB7cGFkZGluZy1yaWdodDo1MHB4O31cclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAvLyBzbWFsbCBvbmx5ICsgbWVkaXVtIG9ubHlcclxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MS4yNWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpIHtwYWRkaW5nLWJvdHRvbTogMWVtO31cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgcGFkZGluZyA6IDFlbTtcclxuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGdyZWVuO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgICAvLyBAaW5jbHVkZSBhbmltKGFsbCAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgICAgICAgICAvLyAmOjphZnRlciB7QGluY2x1ZGUgYW5pbShhbGwgLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyX29ubHkoKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiRncmVlbjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIHAge2NvbG9yOiAkd2hpdGU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgICAgICY6YWN0aXZlLFxyXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoLXJlc3VsdHMge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5O1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC4xODc1ZW0gc29saWQgJGJsdWUtYnJpZ2h0O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHsgbWFyZ2luLWJvdHRvbTogMmVtOyB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAucG9zdC1kYXRlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAuNWVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6MTVweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5yZXN1bHRzLXRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLWxhcmdlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgaDQsIHAsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGg0LCBwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRpbWUgey8qZm9udC1zaXplOiAxLjJyZW07Ki8gY29sb3I6ICM3MDcyN2Q7fVxyXG5cclxuICAgIC8vIC5wYWdpbmF0aW9uIHtcclxuICAgIC8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAvLyAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAvLyAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG5cclxuICAgIC8vICAgICBsaSB7XHJcbiAgICAvLyAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuXHJcbiAgICAvLyAgICAgICAgIGEsIHNwYW4ge1xyXG4gICAgLy8gICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAvLyAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvLyAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIC8vICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgLy8gICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgLy8gICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAvLyAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICAgIC8vICAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODVyZW07XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIH1cclxuXHJcbiAgICAvLyAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICBhLCBhOmZvY3VzLCBhOmhvdmVyLCBzcGFuLCBzcGFuOmZvY3VzLCBzcGFuOmhvdmVyIHtcclxuICAgIC8vICAgICAgICAgICYuY3VycmVudHtcclxuICAgIC8vICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAvLyAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XHJcbiAgICAvLyAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlO1xyXG4gICAgLy8gICAgICAgICB9XHJcblxyXG4gICAgLy8gICAgICAgICAmLmRvdHMge1xyXG4gICAgLy8gICAgICAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAvLyAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JleTtcclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxufVxyXG5cclxuLnJlc3VsdHN3cmFwIHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICAucGFnaW5hdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcbiAgICAubm8tcmVzdWx0cyB7XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyZW07XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdHMge1xyXG4gICAgICAgID4gaDQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZhOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwidGFibGUuY2FiVHJhdmVsXHJcbntcclxuXHRtYXJnaW4tbGVmdDogYXV0bztcclxuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7IFxyXG5cdFx0Zm9udC1zaXplOiAuOHJlbTtcclxuXHR9XHJcbn1cclxuXHJcbnRhYmxlLmNhYlRyYXZlbCB0ciB0ZDpudGgtY2hpbGQoNCkgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxyXG5cclxudGFibGUuY2FiVHJhdmVsIHRyIHRoIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxyXG5cclxuLmxlZ2VuZFRleHRcclxue1xyXG5cdGZvbnQtc2l6ZTogLjg4ZW07XHJcblx0bGluZS1oZWlnaHQ6IDMycHg7XHJcbn1cclxuXHJcbi50YWJDb2xvcjEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzQjY2OyB9XHJcblxyXG4udGFiQ29sb3IyIHsgYmFja2dyb3VuZC1jb2xvcjogIzhkOGMzNTsgfVxyXG5cclxuLnRhYkNvbG9yMyB7IGJhY2tncm91bmQtY29sb3I6ICNDQTlBMzE7IH1cclxuXHJcbi50YWJDb2xvcjQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2E3MTMxOyB9XHJcblxyXG4udGFiQ29sb3I1IHsgYmFja2dyb3VuZC1jb2xvcjogI2NjM2MyZjsgfVxyXG5cclxuLmxlZ2VuZEJsb2NrXHJcbntcclxuXHR3aWR0aDogMThweDtcclxuXHRoZWlnaHQ6IDIycHg7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0bWFyZ2luLXRvcDogNHB4O1xyXG5cdGZsb2F0OiBsZWZ0O1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmhpZGVNZWQgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG5kaXYuZ3JpZC1jZWxsXHJcbntcclxuXHR3aWR0aDogMjAlO1xyXG5cdGhlaWdodDogMTZweDtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRmbG9hdDogbGVmdDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbmRpdi5ncmlkLWxhYmVsXHJcbntcclxuXHR3aWR0aDogNTBweDtcclxuXHRoZWlnaHQ6IDE2cHg7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IC0yNXB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRmb250LXNpemU6IDExcHg7XHJcblx0cGFkZGluZy10b3A6IDRweDtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3dwLWNvbnRlbnQvdGhlbWVzL2JvbmVzL3RyYXZlbC9zdGVtLmdpZik7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdCAyNXB4XHJcbn1cclxuXHJcbmRpdi5iYXItY29udGFpbmVyXHJcbntcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAyNXB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5kaXYuYmFyLWJsb2NrXHJcbntcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAyMHB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGZsb2F0OiBsZWZ0XHJcbn1cclxuXHJcbmRpdi5iYXItc2VnbWVudFxyXG57XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGJvdHRvbTogMjVweDtcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0bGluZS1oZWlnaHQ6IDEzcHg7XHJcblx0d2lkdGg6IDEwMHB4O1xyXG5cdGxlZnQ6IC01MHB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRwYWRkaW5nOiA0cHg7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuZGl2LmJhci1ibG9jazpob3Zlcj5kaXYuYmFyLXNlZ21lbnQgeyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuLmljb24tcG5nXHJcbntcclxuXHR3aWR0aDogMjhweDtcclxuXHRoZWlnaHQ6IDI4cHg7XHJcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuXHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiAwIDEycHggMCAwO1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQ4MHB4KSB7XHJcblxyXG50YWJsZS5jYWJUcmF2ZWwgdHIgdGQ6bnRoLWNoaWxkKDIpIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxudGFibGUuY2FiVHJhdmVsIHRyIHRoOm50aC1jaGlsZCgyKSB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5oaWRlTWVkIHsgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcbi5oaWRlU21hbGwgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4uZG93bkxhYmVse21hcmdpbi10b3A6MTZweDt9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjQwcHgpIHtcclxuXHJcbi5zbWFsbGVyLXRleHQgeyBmb250LXNpemU6IC44NWVtICFpbXBvcnRhbnQ7IH1cclxuLnNtYWxsLWRvd257bWFyZ2luLXRvcDoxNnB4ICFpbXBvcnRhbnQ7fVxyXG5cclxuLmljb24tcG5nXHJcbntcclxuXHR3aWR0aDogMTZweDtcclxuXHRoZWlnaHQ6IDE2cHg7XHJcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuXHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiAwIDEycHggMCAwO1xyXG59XHJcbn1cclxuXHJcbi5leHRyYVBhZC1ib3R0b20geyBcclxuXHRwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZXh0cmFQYWQtdG9wIHsgXHJcblx0cGFkZGluZy10b3A6IDEuMjVyZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLndhaXRpbmctb3ZlcmxheSB7IFxyXG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXkgOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdG9wIDogMDtcclxuICAgIGxlZnQgOiAwO1xyXG4gICAgd2lkdGggOiAxMDAlO1xyXG4gICAgaGVpZ2h0IDogMTAwJTtcclxuICAgIGJhY2tncm91bmQgOiAjRkZGRkZGO1xyXG4gICAgb3BhY2l0eSA6IC42OyBcclxufVxyXG5cclxuLndhaXRpbmctb3ZlcmxheSBpbWcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG59IiwiQGltcG9ydCBcclxuJ2JhY2tUb1RvcCcsXHJcbidicmVhZGNydW1icycsXHJcbidjYWxsb3V0cycsXHJcbidnb29nbGUtbWFwcycsXHJcbiduZXdzbGV0dGVyQ1RBJyxcclxuJ25ld3NsZXR0ZXJNb2RhbCcsXHJcbidwYWdpbmF0aW9uJyxcclxuJ3BhbmVscycsXHJcbidjYXJkcycsXHJcbid0b3BuYXYnLFxyXG4nc2VhcmNoTW9kYWwnLFxyXG4nc2hvcnRjb2RlRXhwYW5kJztcclxuIiwiLyogQkFDSyBUTyBUT1BcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLmJhY2stdG8tdG9wIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogM3JlbTsgLy8gPSA1NHB4XHJcbiAgICByaWdodDogMWVtOyAvLyAwLjkzNzVyZW07IC8vID0gMTVweFxyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBwYWRkaW5nOiAxLjI1cmVtOyAvLyAwLjkzNzVyZW0gMC45NzVyZW1cclxuICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cclxuICAgIC8vIGJveC1zaGFkb3c6IDBweCAwcHggN3B4IHJnYmEoJHdoaXRlLCAuNCk7XHJcblxyXG4gICAgQGluY2x1ZGUgYW5pbV9tdWx0aShvcGFjaXR5IC4zcyAwcywgdmlzaWJpbGl0eSAwcyAuM3MpO1xyXG5cclxuICAgIGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgfVxyXG5cclxuICAgIHAgeyBcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC40NWVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjdlbTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjdlbTsgLy8gY291bnRlcnMgZXh0cmEgbGV0dGVyLXNwYWNlIFxyXG4gICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFjay10by10b3AtaXMtdmlzaWJsZSxcclxuICAgICYuYmFjay10by10b3AtZmFkZS1vdXQgeyBAaW5jbHVkZSBhbmltX211bHRpKG9wYWNpdHkgMC4zcyAwcywgdmlzaWJpbGl0eSAwcyAwcyk7IH1cclxuICAgICYuYmFjay10by10b3AtaXMtdmlzaWJsZSB7dmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMTt9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICByaWdodDogMXJlbTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG4gICAgICAgIHJpZ2h0OiAxLjFlbTtcclxuICAgIH1cclxufSIsIiNicmVhZGNydW1icywgI2JyZWFkY3J1bWJFeHRlbnNpb24ge1xyXG4gICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC43cmVtO1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYnJlYWRjcnVtYl9sYXN0IHtcclxuICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgfVxyXG59IiwiLy8gQ0FMTE9VVFNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4uYWxlcnQtdG9wLmNhbGxvdXQge1xyXG4gICAgYmFja2dyb3VuZDogJHNsYXRlO1xyXG4gICAgcGFkZGluZzogLjVyZW0gMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICBoNSwgaDYsIHAge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mYSB7IHBhZGRpbmc6IDAgM3B4OyB9XHJcbiAgICB9XHJcbiAgICAmLi1oaWdoLXByaW9yaXR5IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRyZWQsIC4yNSk7XHJcbiAgICB9XHJcbiAgICAmLi1sb3ctcHJpb3JpdHkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRibHVlLCAuMjUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jbG9zZS1idXR0b24geyBcclxuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIHdpZHRoOiBpbml0aWFsO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgdG9wOiA0cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCl7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41ZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAuY29sdW1ucyB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyZW07IC8vIGNsb3NlIGJ1dHRvbiBzaXplXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaDUsXHJcbiAgICAgICAgaDYsXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjdlbTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY2xvc2UtYnV0dG9uICAgICB7IHRvcDogMDsgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ud2Fybi5jYWxsb3V0IHtcclxuICAgIGJhY2tncm91bmQ6ICRyZWQ7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIC5yb3cge1xyXG4gICAgICAgIHBhZGRpbmc6IDMuMTI1ZW07XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAuNWVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIG1hcCBsaW5rXHJcbi5tZWRpYS1vYmplY3Qge1xyXG5cdCYubWFwIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlLWJyaWdodDtcclxuXHRcdHBhZGRpbmc6IDIwcHg7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7XHJcblx0XHR9XHJcblx0XHRoMSwgaDIsIGgzLCBoNCB7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0fVxyXG5cdFx0LmJ1dHRvbiB7XHJcblx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR9XHJcblx0XHQudGh1bWJuYWlsIHtcclxuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRmb250LXNpemU6IDQwcHg7XHJcblx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdFx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLy8gVXNpbmcgRmxleCB0byBmaXggYSBkaXNwbGF5IGlzc3VlLiBUT0RPLCBmaXggdGhlIHJlZmVyZW5jZSwgcG9zc2libHkgRm91bmRhdGlvbiBYWSBpcyBub3QgaW1wb3J0ZWQgcHJvcGVybHlcclxuLmJ1dHRvbiB7XHJcblx0Ji5tYXAge1xyXG5cdFx0LmFsaWduLW1pZGRsZSB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0LW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdH1cclxuXHRcdC5zaHJpbmsge1xyXG5cdFx0XHR3aWR0aDogYXV0bztcclxuXHRcdFx0Ji5maXJzdCB7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQmLmxhc3Qge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMTBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI21hcCB7XHJcbiAgICBoZWlnaHQ6IDc1dmg7XHJcbiAgICBtYXgtaGVpZ2h0OiA4MDBweDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRAbWVkaWEgI3skbWVkaXVtLWRvd259e1xyXG5cdFx0bWluLWhlaWdodDogMDtcclxuXHRcdGhlaWdodDogMzAwcHg7XHJcblx0fVxyXG4gICAgaDEsXHJcbiAgICBwLFxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4jbWFwLWNhbnZhcyBpbWcge1xyXG5cdG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZ20tc3R5bGUgLmdtLXN0eWxlLWl3IHtcclxuXHR3aWR0aDogMzUwcHggIWltcG9ydGFudDtcclxuXHR0b3A6IDE1cHggIWltcG9ydGFudDtcclxuXHRsZWZ0OiAwcHggIWltcG9ydGFudDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdGJveC1zaGFkb3c6IDAgMXB4IDZweCByZ2JhKDE3OCwgMTc4LCAxNzgsIDAuNik7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSg3MiwgMTgxLCAyMzMsIDAuNik7XHJcblx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHRAbWVkaWEgI3skbWVkaXVtLWRvd259e1xyXG5cdFx0d2lkdGg6IDI1MHB4ICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG4jaXctY29udGFpbmVyIHtcclxuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHQuaXctdGl0bGUge1xyXG5cdFx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMgQ29uZGVuc2VkJywgc2Fucy1zZXJpZjtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzQ4YjVlOTtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xyXG5cdFx0QG1lZGlhICN7JG1lZGl1bS1kb3dufXtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHRwYWRkaW5nOiA1cHggMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0Lml3LWNvbnRlbnQge1xyXG5cdFx0Zm9udC1zaXplOiAxM3B4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE4cHg7XHJcblx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAxcHg7XHJcblx0XHRwYWRkaW5nOiAxNXB4IDVweCAwIDE1cHg7XHJcblx0XHRtYXgtaGVpZ2h0OiAxNDBweDtcclxuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcclxuXHRcdG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHRcdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHRcdFx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0XHRcdG1heC1oZWlnaHQ6IDEwMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4uaXctY29udGVudCB7XHJcblx0aW1nIHtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdG1hcmdpbjogMCA1cHggNXB4IDEwcHg7XHJcblx0fVxyXG5cdHAge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcbn1cclxuLml3LXN1YlRpdGxlIHtcclxuXHRmb250LXNpemU6IDE2cHg7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHRmb250LXNpemU6IDEycHg7XHJcblx0fVxyXG59XHJcbiIsIkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcclxuXHJcbiNuZXdzbGV0dGVyIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9jb2EucG5nJyk7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgLTI1MHB4O1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0cGFkZGluZzogNGVtIDA7XHJcblxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcblx0XHRwYWRkaW5nOiAyZW0gMDtcclxuXHR9XHJcblxyXG5cdC5zaWRlYmFyLW5hdmlnYXRpb24tdGV4dCB7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdH1cclxuXHRcclxuXHQuZmxhaXIge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogLjVlbTtcclxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdHBhZGRpbmc6IDE1cHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0NXB4O1xyXG5cdFx0Zm9udC1zaXplOiAxLjVyZW07XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0fVxyXG5cclxuXHRoMSB7XHJcblx0XHRmb250LXNpemU6IDE0LjRweCAhaW1wb3J0YW50O1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0fVxyXG5cclxuXHRwIHsgY29sb3I6ICR3aGl0ZTsgfVxyXG5cclxuXHRhIHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblxyXG5cdFx0Jjpob3ZlcntcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tdXB9e1xyXG5cdFx0LmZpZWxkLXdyYXB7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHR3aWR0aDogMjUlO1xyXG5cdFx0XHRwYWRkaW5nOiAwIDVweDtcclxuXHRcdH1cclxuXHRcdC5uaW5qYS1mb3Jtcy1hbGwtZmllbGRzLXdyYXAge1xyXG5cdFx0XHQjbmluamFfZm9ybXNfZmllbGRfNl9kaXZfd3JhcCxcclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzExX2Rpdl93cmFwIHtcclxuXHRcdFx0XHR3aWR0aDogNTAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlucHV0IHtcclxuXHRcdGJvcmRlcjogNXB4IHNvbGlkIGRhcmtlbigkZ29sZCwgLjY1KTtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0XHRwYWRkaW5nOiAwIDI1cHg7XHJcblx0XHRtaW4taGVpZ2h0OiA2MHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDEwMDtcclxuXHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcblx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdEBpbmNsdWRlIGhvdmVyIHtcclxuXHRcdFx0QGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3gtc2hhZG93LCAwIDAgOHB4IDNweCBkYXJrZW4oJGdvbGQsIDglKSk7XHJcblx0XHR9XHJcblx0XHQmW3R5cGU9XCJzdWJtaXRcIl17XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRmb250LXdlaWdodDogMTAwO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xyXG5cdFx0XHRwYWRkaW5nOiAyMHB4IDA7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiI25ld3NsZXR0ZXJNb2RhbCwgI25ld3NsZXR0ZXJNb2RhbDIge1xyXG5cdHotaW5kZXg6IDEwO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcblxyXG5cdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHR9XHJcblxyXG5cdC5mbGFpciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxZW07XHJcblxyXG5cdFx0LmZhLWludmVyc2Uge1xyXG5cdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQubmluamEtZm9ybXMtY29udCB7XHJcblx0XHRpbnB1dFt0eXBlPVwic3VibWl0XCJde1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0XHQubmluamEtZm9ybXMtZmllbGQtZXJyb3IgcHtcclxuXHRcdFx0YmFja2dyb3VuZDogJHJlZC1icmlnaHQ7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCY6Zm9jdXMge1xyXG5cdFx0b3V0bGluZTogbm9uZTtcclxuXHR9XHJcblxyXG5cdFt0eXBlPSdlbWFpbCddOmZvY3VzLCBbdHlwZT0ndGV4dCddOmZvY3VzIHtcclxuXHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0fVxyXG5cclxuXHRAbWVkaWEgI3skbWVkaXVtLXVwfXtcclxuXHRcdC5uaW5qYS1mb3Jtcy1hbGwtZmllbGRzLXdyYXB7XHJcblx0XHRcdCNuaW5qYV9mb3Jtc19maWVsZF82X2Rpdl93cmFwe1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdCNuaW5qYV9mb3Jtc19maWVsZF83X2Rpdl93cmFwe1xyXG5cdFx0XHRcdHdpZHRoOiA2MCU7XHJcblx0XHRcdH1cclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzhfZGl2X3dyYXB7XHJcblx0XHRcdFx0d2lkdGg6IDQwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuXHRcdGhlaWdodDogaW5oZXJpdDtcclxuXHRcdG1pbi1oZWlnaHQ6IGluaGVyaXQ7XHJcblx0XHR3aWR0aDogOTUlO1xyXG5cdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0fVxyXG59XHJcblxyXG4vLyBOZXdzbGV0dGVyIEZvcm1cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLm5pbmphLWZvcm1zLXJlcXVpcmVkLWl0ZW1zLCAuaW5wdXQtY291bnRlcntcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubmluamEtZm9ybXMtcmVzcG9uc2UtbXNnIHtcclxuXHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi5uaW5qYS1mb3Jtcy1maWVsZC1lcnJvciBwIHtcclxuXHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjMyKTtcclxuXHRib3JkZXItcmFkaXVzOiA1MHB4O1xyXG5cdHBhZGRpbmc6IDNweCAyMHB4IDA7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4vLyBsYWJlbCB7XHJcbi8vIFx0JiNuaW5qYV9mb3Jtc19maWVsZF82X2xhYmVsLFxyXG4vLyBcdCYjbmluamFfZm9ybXNfZmllbGRfN19sYWJlbCxcclxuLy8gXHQmI25pbmphX2Zvcm1zX2ZpZWxkXzExX2xhYmVsLFxyXG4vLyBcdCYjbmluamFfZm9ybXNfZmllbGRfMjFfbGFiZWwsXHJcbi8vIFx0JiNuaW5qYV9mb3Jtc19maWVsZF8zMV9sYWJlbCB7XHJcbi8vIFx0XHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcclxuLy8gXHRcdHRvcDogLTk5OTlweCAhaW1wb3J0YW50O1xyXG4vLyBcdFx0bGVmdDogLTk5OTlweCAhaW1wb3J0YW50O1xyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLm5pbmphLWZvcm1zLWNvbnQge1xyXG5cdGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XHJcblx0XHRib3JkZXItcmFkaXVzOiAwO1xyXG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHRcdGJvcmRlci13aWR0aDogMnB4O1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMXJlbTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAuMTJlbTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuXHRcdGJvcmRlci1jb2xvcjogJG5hdnk7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XHJcblx0XHRwYWRkaW5nOiAyMHB4IDA7XHJcblx0fVxyXG59IiwiLnBhZ2luYXRpb24ge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIFxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcblxyXG4gICAgICAgICY6Zmlyc3QtY2hpbGQsXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSwgc3BhbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMjVyZW07XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xyXG4gICAgICAgICAgICAgICAgLy8gZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuMjVyZW07XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IC44NXJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRnb2xkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vICY6bnRoLWNoaWxkKG4rNCl7XHJcbiAgICAgICAgLy8gICAgIGEsIHNwYW4ge1xyXG4gICAgICAgIC8vICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAvLyAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIC8vICAgICBhLCBzcGFuIHtcclxuICAgICAgICAvLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIC8vICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAuZG90cyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5hY3RpdmUge1xyXG4gICAgICAgICAgICBhLFxyXG4gICAgICAgICAgICBhOmZvY3VzLFxyXG4gICAgICAgICAgICBhOmhvdmVyLFxyXG4gICAgICAgICAgICBzcGFuLFxyXG4gICAgICAgICAgICBzcGFuOmZvY3VzLFxyXG4gICAgICAgICAgICBzcGFuOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgLmRpc2FibGVkIHtcclxuICAgICAgICAgICAgYSxcclxuICAgICAgICAgICAgYTpmb2N1cyxcclxuICAgICAgICAgICAgYTpob3ZlcixcclxuICAgICAgICAgICAgc3BhbixcclxuICAgICAgICAgICAgc3Bhbjpmb2N1cyxcclxuICAgICAgICAgICAgc3Bhbjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdyeV9tdXRlZDtcclxuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59IiwiLnBhbmVsIHtcclxuICAgIC53aWRnZXQge1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JheTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3J5bGl0ZTtcclxuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkZ29sZDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGgzLFxyXG4gICAgICAgIGg0IHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXZ5O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICAgICAgY29sb3I6ICRncmV5ZGFyaztcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbnRhY3QtcGFuZWwge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2eSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9mcm9tIGNvbnZlcnNpb25cclxuICAgICAgICAmLmNhbGxvdXQgPiA6Zmlyc3QtY2hpbGQsXHJcbiAgICAgICAgPiA6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDEuc3ViaGVhZGVyLCBoMi5zdWJoZWFkZXIsIGgzLnN1YmhlYWRlciwgaDQuc3ViaGVhZGVyLCBoNS5zdWJoZWFkZXIsIGg2LnN1YmhlYWRlciB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvLyBDQVJEIFNUWUxFU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4vLyBUT0RPIFJld29yayB0aGlzIGFzIGEgZ2VuZXJpY1xyXG4uY2FyZF9saW5rcyB7XHJcbiAgICAuZGF0YS1saXN0LWVsZW1lbnQge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1ZW0gMC41ZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyAvLyA9IDE1cHhcclxuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncnlsaXRlO1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC4xODc1ZW0gc29saWQgJGJsdWUtYnJpZ2h0OyAvLyA9IDNweFxyXG4gICAgICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UpO1xyXG5cclxuICAgICAgICAgICAgc3BhbiB7bWFyZ2luLXJpZ2h0OiAxZW07fVxyXG5cclxuICAgICAgICAgICAgJi5ub19leHQgeyAmOmJlZm9yZSB7Y29udGVudDpcIlwiO30gfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjFlbTtcclxuICAgICAgICAgICAgICAgIC8vbWFyZ2luLWJvdHRvbTowO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIE5BVklHQVRJT05cclxuLy8gQm9ycm93ZWQgZnJvbSBQQSBHT1ZcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8gZmlsZSBzcGVjaWZpYyB2YXJpYWJsZXNcclxuJG5hdlpJbmRleDogMztcclxuJGxhbmdiYXJIZWlnaHQ6IDM1cHg7XHJcblxyXG4ubmF2LWlzLW9wZW4ge1xyXG4gICAgcG9zaXRpb246IGZpeGVkIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubmF2IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogJG5hdlpJbmRleDtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHJcbiAgICBcclxuXHJcbiAgICAubmF2LWNvbnRhaW5lciB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDcwLDcwLDcwLDAuNSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogTkFWOiBMaW5rcyArIExvZ29cclxuICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4gICAgdWwge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDY1cHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7bWluLWhlaWdodDogNjVweDt9XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggNXB4O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDE1MG1zIGVhc2UpO1xyXG4gICAgICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKXtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJiBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IDAgM3B4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3Zlcigpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjk1KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVaKDApIHNjYWxlKDEsIDEpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYubG9jIHtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjJweDtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBzcGFuLCBpIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG4gICAgICAgICAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmFjdGl2ZSBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3J5O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBhY3RpdmF0ZSBuYXYgZHJvcGRvd25zICovXHJcbiAgICAgICAgICAgICY6aG92ZXIgPiB1bCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgLjNzKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIE5BVjogZHJvcGRvd25zICovXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6MTAwJTtcclxuICAgICAgICAgICAgbGVmdDowO1xyXG4gICAgICAgICAgICBwYWRkaW5nOjA7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDpub25lO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6MjAwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3J5bGl0ZTtcclxuICAgICAgICAgICAgICAgIGEgeyBjb2xvcjogJHNsYXRlOyB9XHJcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSBhIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncnlfbXV0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgLjNzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDoxMjAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzoxMHB4IDE1cHg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdml0ZW0ge1xyXG5cclxuICAgICAgICAubWVudWxhYmVsIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMC41MTJweDtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNzJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IC43M2VtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxM3B4IDVweDtcclxuXHJcbiAgICAgICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmdvb2dsZS10cmFuc2xhdGUge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnJpZ2h0IHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICAgICAgICBcclxuICAgICAgICAubmF2LXJpZ2h0LWhpZGRlbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAubGVmdCB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbW9iaWxlXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAucm93IHsgcGFkZGluZy1sZWZ0OiAwLjI1ZW07IHBhZGRpbmctcmlnaHQ6IDAuMjVlbTsgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubW9iaWxlLW9ubHkgeyBcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jazsgXHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIE5BVjogTU9CSUxFIFRSSUdHRVJcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbi8vIG5vdGU6IHJlZGVzaWduZWQgbWFkZSB0aGlzIGEgdW5pdmVyc2FsIHN0eWxlXHJcbi5uYXYtd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogJGdvbGQ7XHJcbn1cclxuLm5hdiAubmF2LXRyaWdnZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDQ1cHg7XHJcbiAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICYubmF2LW9wZW4ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAuaW5uZXIsIC5pbm5lcjo6YmVmb3JlLCAuaW5uZXI6OmFmdGVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5uZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRvcDogMTVweDtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC02cHg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAgIC5pbm5lciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBsZWZ0OiA3JTtcclxuICAgICAgICAgICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA0cHg7XHJcbiAgICAgICAgICAgICAgICAvLyB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm1lbnVsYWJlbCB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuICAgICAgICBmb250LXNpemU6IDEwLjUxMnB4O1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjcycHg7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBib3R0b206IC0yNXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWVudWxhYmVsIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG59XHJcblxyXG4vKiBOQVY6IG1vYmlsZSBsZWZ0IHNsaWRlb3V0IG1lbnVcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbiNuYXYtbWVudSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAtMTAwJTtcclxuICAgIHotaW5kZXg6ICRuYXZaSW5kZXggLSAxO1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgQGluY2x1ZGUgYW5pbShhbGwgMzA1bXMgZWFzZSk7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7IC8vIHNpemUgb2YgZml4ZWQgdG9wIG5hdiB3aXRoIGxhbmd1YWdlIGJhclxyXG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xyXG4gICAgJi5hY3RpdmUge2xlZnQ6IDA7fVxyXG4gICAgdWwge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDE1MG1zIGVhc2UpO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge2NvbG9yOiAkYmx1ZS1icmlnaHQ7fVxyXG4gICAgfVxyXG4gICAgaHIge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICB9XHJcbiAgICAvKiBTT0NJQUwgSUNPTlMgKi9cclxuICAgIC5zb2Mge1xyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDAuODVlbTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgY29sb3I6ICRncnlsaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgaSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjI1ZW07XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNsYXRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxLjg3NWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW0oZWFzZS1pbi1vdXQgYWxsIC4zcyk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge2NvbG9yOiAkYmx1O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtYWx0IGEge1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi4wNTtcclxuICAgIGZvbnQtc2l6ZTogLjY1ZW07XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgLmZhIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIHRoaXMgaXMgZm9yIHRoZSBzZWFyY2ggYnV0dG9uXHJcbi5uYXZiYXItdGV4dCB7XHJcbiAgICBsaW5lLWhlaWdodDogMjEuMzJweDtcclxuICAgIGZvbnQtc2l6ZTogMTAuNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxLjA0cHg7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAtbW96LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XHJcbn1cclxuXHJcbi5uYXZpdGVtLXNlYXJjaCB7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGNvbG9yOiAkZ3JlZW47XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNWVtO1xyXG59XHJcblxyXG4uZGVza3RvcC1zZWFyY2gtd3JhcCB7XHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZS1icmlnaHQ7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICBwYWRkaW5nOiAuMWVtIC41ZW0gLjFlbSAxZW07XHJcblxyXG4gICAgaW5wdXQge1xyXG4gICAgICAgIHdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICBmb250LXNpemU6IC44ZW07XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICAgIGNvbG9yOiAkZ3JleWRhcms7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IC4zcztcclxuICAgICAgICBcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uLnNlYXJjaC1idXR0b24ge1xyXG4gICAgICAgIGhlaWdodDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVlbTtcclxuICAgIH1cclxufVxyXG5cclxuLyogTEFOR1VBR0UgQkFSOiBhYm92ZSByZWd1bGFyIG5hdmlnYXRpb25cclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4lbGFuZy1iYXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgaGVpZ2h0OiAkbGFuZ2JhckhlaWdodDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBwIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsYW5nYmFySGVpZ2h0O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGFuZ3VhZ2UtYmFyIHtcclxuICAgIEBleHRlbmQgJWxhbmctYmFyO1xyXG59XHJcblxyXG4vKiBMYW5ndWFnZSBCYXIgKi9cclxuLyoqKioqKioqKioqKioqKiovXHJcblxyXG4ubGFuZ3VhZ2UtYmFyIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBwYWRkaW5nOiAwLjI1cmVtIC41cmVtO1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ3J5O1xyXG4gICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzbGF0ZTtcclxuICAgIC5oMyB7bWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgZGl2IHtcclxuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMC45ZW07XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogIzMzMztcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuLmxhbmd1YWdlLWJhci1sZWZ0IHtcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgIC8vIHBhZGRpbmctbGVmdDogLjI1ZW07XHJcbiAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgIGEge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVlbTtcclxuICAgICAgICBAaW5jbHVkZSBob3Zlcigpe1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgYSxcclxuICAgIHNwYW4ge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjFyZW07XHJcbiAgICB9XHJcbn1cclxuLmxhbmctbG9nbywgLmFnZW5jeS1sb2dvLmhpZGUtZm9yLWxhcmdlIHtcclxuICAgIGhlaWdodDogMjVweDtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG59XHJcbmEjYnRuLWxhbmd1YWdlIHtcclxuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcclxufVxyXG4jZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogLjVlbTtcclxuICAgIGhlaWdodDogMmVtO1xyXG59IiwiI3NlYXJjaE1vZGFsIHtcclxuXHRwYWRkaW5nOiAyZW07XHJcblx0d2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblxyXG5cdC5tb2RhbFdyYXBwZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMmVtO1xyXG5cclxuXHRcdC5mYSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMS41cmVtO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvcm0ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHJcblx0XHRpbnB1dCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0cGFkZGluZzogMCAuMjVlbTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMjVlbTtcclxuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG5cdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdFx0Ym9yZGVyOiAwO1xyXG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xyXG5cdFx0XHRvdXRsaW5lOiAwO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xyXG5cdFx0XHQmOmZvY3VzIHtcclxuXHRcdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjVlbTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIG1vdmUgaXQgdXAgb24gdGhlIHNjcmVlblxyXG4gICAgICAgICAgICAuc2VhcmNoLWJhci13cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZlbTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG1vdmUgaXQgdXAgb24gdGhlIHNjcmVlblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcclxuICAgICAgICAgICAgLnNlYXJjaC1iYXItd3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblx0fVxyXG4gICAgXHJcbiAgICBidXR0b24ge1xyXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgfVxyXG59IiwiLnNob3J0Y29kZS1leHBhbmQge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIHVsIHtcclxuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIC8vIHJlc2V0aW5nIFVMIHN0eWxlcyBpbnNpZGUgb3VyIGV4cGFuZCBVTFxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmFjY29yZGlvbi10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRnb2xkO1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgbWFyZ2luOiAxLjI1ZW0gMDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UpO1xyXG5cclxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbiAgICAgICAgXHJcbiAgICAuYWNjb3JkaW9uLWl0ZW0uaXMtYWN0aXZlIHtcclxuICAgICAgICAuYWNjb3JkaW9uLXRpdGxlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgICAgICAgICAuZmEge1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5hY2NvcmRpb24tY29udGVudCB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMS4yNWVtO1xyXG5cclxuICAgICAgICBwOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBkZWZhdWx0IGZvdW5kYXRpb24gc3R5bGVcclxuICAgIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+IC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkZ29sZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBhbm90aGVyIGRlZmF1bHQgZm91bmRhdGlvbiBzdHlsZVxyXG4gICAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZW1vdmUgZm91bmRhdGlvbnMgcGx1c1xyXG4gICAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBmb3IgYW4gZXhwYW5kIGluIHRoZSBmZWF0dXJlZCBzZWN0aW9uc1xyXG4ud3JhcHBfZmVhdHVyZWRfc2VjdGlvbiAuc2hvcnRjb2RlLWV4cGFuZCB7XHJcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcclxuICAgICAgICAuZmEge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICB9IFxyXG4gICAgXHJcbiAgICAuYWNjb3JkaW9uLWl0ZW0ge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5hY2NvcmRpb24taXRlbSBhIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59IiwiQGltcG9ydFxyXG4vLyBUT0RPIFJFTU9WRSBDT05WRVJTSU9OIEFGVEVSIFNUWUxFIEFSRSBNSUdSQVRFRFxyXG4vLyBcInRoZW1lL2NvbnZlcnNpb25cIixcclxuXCJhbmNob3JzXCIsXHJcblwiYnV0dG9uc1wiLFxyXG5cImNvbW1lbnRzXCIsXHJcblwiZXZlbnRzXCIsXHJcblwiZm9vdGVyXCIsXHJcblwiaGVhZGVyXCIsXHJcblwiaG9tZVwiLFxyXG5cIm1vZGFsXCIsXHJcblwibmV3c3Jvb21cIixcclxuXCJwYWdlc1wiLFxyXG5cInByaW9yaXRpZXNcIixcclxuXCJzZWxlY3RcIixcclxuXCJzaWRlYmFyXCIsXHJcblwic2l0ZW1hcFwiLFxyXG5cInRhYmxlc1wiLFxyXG5cInR5cG9ncmFwaHlcIjtcclxuIiwiYXtcclxuICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIC4ycyBlYXNlKTtcclxuICAgIC5mZWF0dXJlZCAmIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBOT1RFIFRoaXMgbWF5IG5vdCBiZSBhIDEwMCUgY29ycmVjdCBzb2x1dGlvblxyXG4uY29udGVudCBhOm5vdChbY2xhc3NdKSxcclxuI2NvbnRlbnQgI21haW4gYTpub3QoW2NsYXNzXSkge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAmOmhvdmVyLCY6Zm9jdXN7XHJcbiAgICAgICAgY29sb3I6ICRibHVlLWJyaWdodDtcclxuICAgIH1cclxufSIsIi8vIEJVVFRPTlMuc2Nzc1xyXG5cclxuJWJ1dHRvbi1kZWZhdWx0IHtcclxuICBsZXR0ZXItc3BhY2luZzogLjEyZW07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6ICRnb2xkO1xyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gIH1cclxuICAmLnNlY29uZGFyeSxcclxuICAmLnN1Y2Nlc3MsXHJcbiAgJi5hbGVydCxcclxuICAmLndhcm5pbmcsXHJcbiAgJi5pbmZvIHtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICB9XHJcbiAgJi5leHBhbmQge1xyXG4gICAgcGFkZGluZzogMTVweCAyNXB4O1xyXG4gIH1cclxufVxyXG5cclxuJWJ1dHRvbi1nb2xkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0E5QTMxICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNGRkYgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAxNXB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbn1cclxuXHJcbiVidXR0b24td2hpdGUge1xyXG4gIGJvcmRlci1jb2xvcjogJHdoaXRlO1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbiAgJjpob3ZlcntcclxuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjUsMjI1LDIyNSwuMik7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4lYnV0dG9uLWJsdWUtYnJpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1icmlnaHQgIWltcG9ydGFudDtcclxuICBjb2xvcjogI0ZGRiAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDE1cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4lYnV0dG9uLXJlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJlZC1icmlnaHQgIWltcG9ydGFudDtcclxuICBjb2xvcjogI0ZGRiAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDE1cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxufVxyXG5cclxuLmJ1dHRvbiB7XHJcbiAgQGV4dGVuZCAlYnV0dG9uLWRlZmF1bHQ7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9J2J1dHRvbiddIHtcclxuICBAZXh0ZW5kICVidXR0b24tZGVmYXVsdDtcclxuICBAZXh0ZW5kICVidXR0b24tZ29sZDtcclxufVxyXG5cclxuLmJ0biB7XHJcbiAgJi5idG4tc3VjY2VzcyB7XHJcbiAgICBAZXh0ZW5kICVidXR0b24tZGVmYXVsdDtcclxuICAgIEBleHRlbmQgJWJ1dHRvbi1nb2xkO1xyXG4gIH1cclxufVxyXG5cclxuLmJ0bi13aGl0ZXtcclxuICBAZXh0ZW5kICVidXR0b24td2hpdGU7XHJcbn1cclxuXHJcbi5idG4tYmx1ZS1icmlnaHQge1xyXG4gIEBleHRlbmQgJWJ1dHRvbi1ibHVlLWJyaWdodDtcclxufVxyXG5cclxuLm1vcmV7XHJcbiAgd2lkdGg6IDM2OHB4O1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBAaW5jbHVkZSBzcHJpdGUoMTRweCwgMTlweCwgLTYwcHgsIC05MHB4KTtcclxuICAmOmJlZm9yZXtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihyaWdodCAwcyBlYXNlLCB3aWR0aCAuMHMgZWFzZSwgb3BhY2l0eSAuMnMpO1xyXG4gIH1cclxuICAmOmhvdmVye1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC02MHB4O1xyXG4gICAgICByaWdodDogLTJweDtcclxuICAgICAgd2lkdGg6IDFweDtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihyaWdodCAuMnMgZWFzZSwgd2lkdGggLjJzIC4xcyBlYXNlLCBvcGFjaXR5IDBzIC4zcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYud2hpdGV7XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggLTYwcHg7XHJcbiAgICB9XHJcbiAgICAmOmhvdmVyOmJlZm9yZXtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggLTkwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYud2hpdGUtc217XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMwcHggLTkwcHg7XHJcbiAgICAgIHdpZHRoOiA4cHg7XHJcbiAgICAgIGhlaWdodDogMTBweDtcclxuICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICByaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbiAgJi50aW55e1xyXG4gICAgd2lkdGg6IDIwNnB4O1xyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMC42cmVtO1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICB0b3A6IDhweDtcclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGaWxlIFVwbG9hZCBTcGVjaWZpY3NcclxuLm5mLWZ1LXByb2dyZXNzLWJhciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG59XHJcblxyXG4uZmlsZXNfdXBsb2FkZWQge1xyXG4gIC5kZWxldGUge1xyXG4gICAgQGV4dGVuZCAlYnV0dG9uLWRlZmF1bHQ7XHJcbiAgICBAZXh0ZW5kICVidXR0b24tcmVkO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIGNvbG9yOiAkcmVkLWJyaWdodCAhaW1wb3J0YW50O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiUkVNT1ZFXCI7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBsZWZ0OiA4cHg7XHJcbiAgICAgIHRvcDogM3B4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBDT01NRU5UUy5zY3NzXHJcblxyXG4jcmVzcG9uZHtcclxuXHRtYXJnaW4tdG9wOiA1MHB4O1xyXG5cdHBhZGRpbmctdG9wOiA1MHB4O1xyXG5cdGJvcmRlci10b3A6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG5cdC5mb3JtLXN1Ym1pdHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRpbnB1dHtcclxuXHRcdFx0b3V0bGluZTogbm9uZTtcclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRmb250LXNpemU6IDFlbTtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kIGVhc2UgLjJzKTtcclxuXHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn0iLCIvLyBFdmVudHMuc2Nzc1xyXG5cclxuLnByZXZfbmV4dF9saW5rcyB7XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHsgbWFyZ2luLWJvdHRvbTogMmVtOyB9XHJcbn1cclxuXHJcbi5wYV9nb3ZfZXZlbnQge1xyXG5cdCsgLnBhX2dvdl9ldmVudCB7XHJcblx0XHRwYWRkaW5nLXRvcDogMmVtO1xyXG5cdH1cclxufVxyXG5cclxuLnRyaWJlLWV2ZW50cy1sb29wIC50eXBlLXRyaWJlX2V2ZW50cy50cmliZS1ldmVudHMtbGFzdCxcclxuLnBhX2dvdl9ldmVudCB7XHJcblx0bWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblx0LnJvdyB7XHJcblx0XHRwYWRkaW5nOiAyNXB4IDEwcHg7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRib3JkZXI6IHNvbGlkIDFweCAkYmxhY2s7XHJcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG5cdH1cclxuXHQmLWRhdGV7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX0geyBmb250LXNpemU6IC44cmVtOyB9XHJcblx0XHRzcGFue1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1tb250aHtcclxuXHRcdGNvbG9yOiAkZ29sZDtcclxuXHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XHJcblx0fVxyXG5cdCYtZGF5e1xyXG5cdFx0Zm9udC1zaXplOiAzLjVlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjFlbTtcclxuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XHJcblx0fVxyXG5cdCYteWVhcntcclxuXHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHR9XHJcblx0Ji10aW1le1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0LmZhIHtcclxuXHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji10aXRsZXtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0XHQuZmEge1xyXG5cdFx0XHRmb250LXNpemU6IDc1JTtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XHJcblx0XHR9XHJcblx0XHRhIHtcclxuXHRcdFx0QGluY2x1ZGUgaG92ZXIoKSB7XHJcblx0XHRcdFx0Y29sb3I6ICRibHVlLWJyaWdodDtcclxuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQmLXNoYXJlQmFye1xyXG5cdFx0Ym9yZGVyOiBzb2xpZCAycHggJGdvbGQ7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDIwcHg7XHJcblxyXG5cdFx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHsgXHJcblx0XHRcdHBhZGRpbmc6IDEwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNoYXJlLXRpdGxlIHtcclxuXHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdFx0fVxyXG5cdFx0LnB1bGwtcmlnaHQge1xyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogM3B4O1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA4cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LmZhIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxLjI1ZW07XHJcblx0XHRcdGNvbG9yOiAkZ29sZDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cclxuXHRcdFx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHsgXHJcblx0XHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogNXB4OyBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LmNhbC1saW5re1xyXG5cdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XHJcblx0XHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XHJcblxyXG5cdFx0XHR9XHJcblx0XHRcdC5mYSB7XHJcblx0XHRcdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZXZlbnRzLXNlYXJjaC1oZWFkZXJ7XHJcblx0cGFkZGluZzogMjBweCAzMHB4IDE1cHg7XHJcblx0bWFyZ2luOiAwO1xyXG5cdGJvcmRlcjogc29saWQgMXB4ICRibGFjaztcclxuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHRoMXtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0fVxyXG59XHJcblxyXG4udHJpYmUtZXZlbnRzLXZlbnVlLWRldGFpbHMge1xyXG5cdHBhZGRpbmctdG9wOiAzcHg7XHJcblx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdGZvbnQtc2l6ZTogLjhlbTtcclxuXHQuZmEge1xyXG5cdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0Zm9udC1zaXplOiAxLjI1ZW07XHJcblx0fVxyXG5cdGFiYnJ7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0fVxyXG5cdGEge1xyXG5cdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0bWFyZ2luOiAtMnB4IDAgMCA1cHg7XHJcblx0XHRhYmJyLnRyaWJlLWV2ZW50cy1hYmJye1xyXG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHR9XHRcclxufVxyXG5cclxuLnRyaWJlLWV2ZW50cy1zdWItbmF2e1xyXG5cdG1hcmdpbi10b3A6IDQwcHg7XHJcblx0LnRyaWJlLWV2ZW50cy1uYXYtcHJldmlvdXMsIC50cmliZS1ldmVudHMtbmF2LW5leHR7XHJcblx0XHRsaXN0LXN0eWxlOiBub25lO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bWFyZ2luOiAwIDVweDtcclxuXHRcdGF7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0Y29sb3I6ICMwMDA7XHJcblx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xyXG5cdFx0XHRoZWlnaHQ6IDM1cHg7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS44ZW07XHJcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRcdHNwYW57XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0YTpob3ZlcntcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR3aGl0ZSwgNSUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmZlYXR1cmVkLWV2ZW50e1xyXG5cdC50aXRsZS1jb250YWluZXJ7XHJcblx0XHRwYWRkaW5nOiAwIDMwcHg7XHJcblx0fVxyXG5cdC5uZXdzLXBvc3QtdGl0bGV7XHJcblx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cdFx0Ly8gQGluY2x1ZGUgc3ByaXRlKDI2cHgsIDI5cHgsIC0xNTBweCwgLTE4MHB4KTtcclxuXHR9XHJcblx0LnBhX2dvdl9ldmVudCB7XHJcblx0XHQmLXNoYXJlQmFyIHtcclxuXHRcdFx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdC5mYSB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxLjI1ZW07XHJcblx0XHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHR9XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy8gRk9PVEVSLnNjc3NcclxuZm9vdGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQvLyBiYWNrZ3JvdW5kOiAkYmx1ZTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0dWwgeyBcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XHJcblx0fVxyXG4gICAgLmNvbHVtbnMge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHR9XHJcblx0I3NpdGUtZm9vdGVyLW5hdntcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdGJvcmRlci10b3A6IHNvbGlkIDJweCBsaWdodGVuKCRiYXNlLCAxMCUpO1xyXG5cdFx0bGl7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzogN3B4IDBweDtcclxuXHRcdFx0YXtcclxuXHRcdFx0XHRwYWRkaW5nOiA3cHggMTRweDtcclxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0Y29sb3I6ICRibGFjaztcclxuXHRcdFx0XHRmb250LXNpemU6IDFlbTtcclxuXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLjA4ZW07XHJcblx0XHRcdFx0QGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3JkZXItcmFkaXVzLCA1cHgpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAuMnMgZWFzZSwgY29sb3IgLjJzIGVhc2UpO1xyXG5cdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA2JSk7XHJcblx0XHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDQwJSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6YWN0aXZle1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgOCUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG4gICAgfVxyXG5cclxuICAgICNjb3B5cmlnaHQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xyXG4gICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGEsXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjY1ZW07XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMWVtO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuNzVlbTtcclxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGk6Zmlyc3QtY2hpbGQgYSxcclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICM2NjY7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggMjBweDtcclxuICAgICAgICAgICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgICAgICAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZWFsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQgYSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktZW50ZXJwcmlzZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMCA0MHB4IDQwcHggNDBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgZm9vdGVyIHtcclxuICAgICAgICAjY29weXJpZ2h0IHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgcCB7IFxyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyBcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIGxpIHsgXHJcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuJWZvb3Rlci1uYXYtc3RhY2tlZCB7XHJcbiAgICBwYWRkaW5nOiA1MHB4IDA7XHJcbiAgICAucm93IHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5tZW51LWl0ZW0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICAgIC5mb290ZXItbWVudSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZm9vdGVyLWxlZnQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAubWVudS1saW5rIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29sdW1ucyB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5mb290ZXItcmlnaHQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkd2hpdGU7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbHVtbnMge1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5mb290ZXItaW1nIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGkge1xyXG4gICAgICAgICYuc2hvdy1mb3Itc21hbGwtb25seSB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxyXG4gICAgfVxyXG4gICAgYSwgcCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGNvbG9yOiAkZ3J5X211dGVkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW0oY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICR0ZWFsO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZmEge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDJweDtcclxuICAgICAgICBsZWZ0OiAtMjRweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XHJcbiAgICAgICAgd2lkdGg6IDIzcHg7XHJcbiAgICB9XHJcbiAgICAubWFpbi1tZW51LWxpbmsge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgKyB1bCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHggMCAyMHB4O1xyXG4gICAgICAgIHVsLmZvb3Rlci1tZW51IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMS41NjI1ZW0gMCAxLjU2MjVlbSAxZW07XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgdWwgeyBtYXJnaW4tYm90dG9tOiAxLjI1ZW07IH0gLy8ge292ZXJmbG93OiBoaWRkZW47IGhlaWdodDogMDt9XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAmLm1haW4tbWVudS1saW5rIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAvLyBib3JkZXItdG9wOiBzb2xpZCAxcHggIzhjOGM4YztcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubWFpbi1tZW51LWxpbmsge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTNweDtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTBweCAtNjBweDtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIxMHB4IDc2MHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge3RvcDogMjVweDsgcmlnaHQ6IDIwcHg7fVxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLW5hdi1zdGFja2VkLWdvdiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICBjb2xvcjogJG5hdnk7XHJcblxyXG4gICAgLm1lbnUtbGluayB7XHJcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhLCBwIHtcclxuICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlLWJyaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci1yaWdodCB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRuYXZ5O1xyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLW5hdi1zdGFja2VkLWVudGVycHJpc2Uge1xyXG4gICAgYmFja2dyb3VuZDogJGdyYXktZW50ZXJwcmlzZTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAuZm9vdGVyLXJpZ2h0IHtcclxuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmZvb3Rlci1uYXYge1xyXG4gICAgJi4tc3RhY2tlZCB7XHJcbiAgICAgICAgQGV4dGVuZCAlZm9vdGVyLW5hdi1zdGFja2VkO1xyXG4gICAgICAgICYuLWdvdiB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZvb3Rlci1uYXYtc3RhY2tlZC1nb3Y7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuLWVudGVycHJpc2Uge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmb290ZXItbmF2LXN0YWNrZWQtZW50ZXJwcmlzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiRhcC1sb2dvLXNpemU6IDE1MHB4O1xyXG4kYXAtbG9nby1wYWRkaW5nLWRlZ3JlZTogJGFwLWxvZ28tc2l6ZS8yMDtcclxuXHJcbiVmb290ZXItYWN0aW9uLXBsYW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cclxuICAgIGgxIHsgXHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsaSB7IGNvbG9yOiAkd2hpdGU7IH1cclxufVxyXG5cclxuXHJcbiVmb290ZXItYWN0aW9uLXBsYW4tbG9nbyB7XHJcblxyXG4gICAgbWFyZ2luLXRvcDogLSgoJGFwLWxvZ28tc2l6ZSkgKyAoJGFwLWxvZ28tcGFkZGluZy1kZWdyZWUqMikpLzI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIHBhZGRpbmc6ICRhcC1sb2dvLXBhZGRpbmctZGVncmVlO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6ICRhcC1sb2dvLXNpemUgKyAoJGFwLWxvZ28tc2l6ZS8kYXAtbG9nby1wYWRkaW5nLWRlZ3JlZSkqMjtcclxuICAgICAgICBtYXgtd2lkdGg6ICRhcC1sb2dvLXNpemUgKyAoJGFwLWxvZ28tc2l6ZS8kYXAtbG9nby1wYWRkaW5nLWRlZ3JlZSkqMjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGFwLWxvZ28tc2l6ZSArICgkYXAtbG9nby1zaXplLyRhcC1sb2dvLXBhZGRpbmctZGVncmVlKSoyO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLWFjdGlvbi1wbGFuLWxpbmsge1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuJWZvb3Rlci1hY3Rpb24tcGxhbi1saXN0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3QtaXRlbSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQoKTtcclxuICAgIH1cclxuICAgICsgJWZvb3Rlci1hY3Rpb24tcGxhbi1saXN0LWl0ZW0ge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnXFwyMDIyJztcclxuICAgICAgICAgICAgbGVmdDogLTIycHg7XHJcbiAgICAgICAgICAgIHRvcDogLTExcHg7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZm9vdGVyIHtcclxuICAgICYtYWN0aW9uLXBsYW4ge1xyXG4gICAgICAgIEBleHRlbmQgJWZvb3Rlci1hY3Rpb24tcGxhbjtcclxuICAgICAgICAmX2xvZ28ge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmb290ZXItYWN0aW9uLXBsYW4tbG9nbztcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9saW5rIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZm9vdGVyLWFjdGlvbi1wbGFuLWxpbms7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfbGlzdCB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZvb3Rlci1hY3Rpb24tcGxhbi1saXN0O1xyXG4gICAgICAgICAgICAmLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgQGV4dGVuZCAlZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3QtaXRlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvLyAvLyBIRUFERVIuU0NTU1xyXG5cclxuXHJcbi8vICNtYWluLWhlYWRlcntcclxuLy8gXHRwb3NpdGlvbjogZml4ZWQ7XHJcbi8vIFx0dG9wOiAwO1xyXG4vLyBcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdHotaW5kZXg6IDkxMDA7XHJcbi8vIFx0LnNlYXJjaC1ib3h7XHJcbi8vIFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHR6LWluZGV4OiA1MDA7XHJcbi8vIFx0XHRtYXJnaW4tbGVmdDogNDBweDtcclxuLy8gXHRcdC5zZWFyY2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjNweCwgMjNweCwgLTEyMHB4LCAtMzBweCk7XHJcbi8vIFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdGxlZnQ6IDEzcHg7XHJcbi8vIFx0XHRcdFx0dG9wOiAxN3B4O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0XHR6LWluZGV4OiAyMDtcclxuLy8gXHRcdFx0bWFyZ2luLWxlZnQ6IDE5MHB4O1xyXG4vLyBcdFx0XHRwYWRkaW5nLWxlZnQ6IDUwcHg7XHJcbi8vIFx0XHRcdGhlaWdodDogNTVweDtcclxuLy8gXHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG4vLyBcdFx0XHRib3JkZXI6IHNvbGlkIDFweCBsaWdodGVuKCRiYXNlLCAyMCUpO1xyXG4vLyBcdFx0XHRib3JkZXItdG9wOiBub25lO1xyXG4vLyBcdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG4vLyBcdFx0XHRyaWdodDogNDBweDtcclxuLy8gXHRcdFx0d2lkdGg6IDQ4cHg7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggLjNzIGVhc2UpO1xyXG4vLyBcdFx0XHQuc2VhcmNoe1xyXG4vLyBcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuLy8gXHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuLy8gXHRcdFx0XHRvdXRsaW5lOiBub25lO1xyXG4vLyBcdFx0XHRcdGlucHV0e1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHRcdFx0b3V0bGluZTogbm9uZTtcclxuLy8gXHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcbi8vIFx0XHRcdFx0XHR0b3A6IDA7XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcbi8vIFx0XHRcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih3aWR0aCAuM3MgZWFzZSk7XHJcbi8vIFx0XHRcdFx0XHQmW3R5cGU9XCJ0ZXh0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0d2lkdGg6IDAlO1xyXG4vLyBcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggbGlnaHRlbigkYmFzZSwgMjAlKTtcclxuLy8gXHRcdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4vLyBcdFx0XHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbi8vIFx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vIFx0XHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggLjNzIGVhc2UsIGJhY2tncm91bmQgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDMlKTtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRcdC5zZWFyY2gge1xyXG4vLyBcdFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRcdCZbdHlwZT1cInRleHRcIl17XHJcbi8vIFx0XHRcdFx0XHRcdFx0d2lkdGg6IDcwJTtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHQmW3R5cGU9XCJzdWJtaXRcIl17XHJcbi8vIFx0XHRcdFx0XHRcdFx0d2lkdGg6IDMwJTtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0QG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4vLyBcdFx0XHRtYXJnaW4tbGVmdDogMTI1cHg7XHJcbi8vIFx0XHRcdC5zZWFyY2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAxMzVweDtcclxuLy8gXHRcdFx0XHRyaWdodDogMDtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0LnNlYXJjaHtcclxuLy8gXHRcdFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRcdFx0Jlt0eXBlPVwidGV4dFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiA4MCU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAyMCU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9IC8vIEVuZCBtZWRpdW0tdXBcclxuLy8gXHRcdEBtZWRpYSAjeyRsYXJnZS11cH0ge1xyXG4vLyBcdFx0XHQuc2VhcmNoLWNvbnRhaW5lcntcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0LnNlYXJjaHtcclxuLy8gXHRcdFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRcdFx0Jlt0eXBlPVwidGV4dFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiA4OCU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAxMiU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9IC8vIEVuZCBsYXJnZS11cFxyXG4vLyBcdH0gLy8gRW5kIHNlYXJjaC1ib3hcclxuLy8gXHQudG9wLWJhcntcclxuLy8gXHRcdG1pbi1oZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRwb3NpdGlvbjogc3RhdGljO1xyXG4vLyBcdFx0YXtcclxuLy8gXHRcdFx0Zm9udC1zaXplOiAxZW07XHJcbi8vIFx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDNlbTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcclxuLy8gXHRcdFx0bWluLWhlaWdodDogNTVweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0I3N0YXRlLW1haW4tbmF2e1xyXG4vLyBcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyBcdFx0ei1pbmRleDogOTk5OTtcclxuLy8gXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCAuMnMgZWFzZSk7XHJcbi8vIFx0XHRtYXgtaGVpZ2h0OiAxMDBweDtcclxuLy8gXHRcdGhlaWdodDogYXV0bztcclxuLy8gXHRcdC50aXRsZS1hcmVhe1xyXG4vLyBcdFx0XHRtYXJnaW4tdG9wOiA1cHg7XHJcbi8vIFx0XHRcdGgxIGF7XHJcbi8vIFx0XHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg0MnB4LCAzOXB4LCAwLCAwKTtcclxuLy8gXHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdHRvcDogMnB4O1xyXG4vLyBcdFx0XHRcdFx0bGVmdDogMThweDtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0c3BhbntcclxuLy8gXHRcdFx0XHRcdCAgY29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRcdCAgZm9udC1zaXplOiAxLjRyZW07XHJcbi8vIFx0XHRcdFx0XHQgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRcdFx0XHRcdCAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbi8vIFx0XHRcdFx0XHQgIHotaW5kZXg6IDIwO1xyXG4vLyBcdFx0XHRcdFx0ICBwYWRkaW5nOiAwIDRweCAwIDEwcHg7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdFx0XHQmOmJlZm9yZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAwO31cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LnVwLWljb257XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDQwcHg7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDE4cHgsIDEzcHgsIC05MHB4LCAtOTBweCk7XHJcbi8vIFx0XHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0XHRsZWZ0OiAxMHB4O1xyXG4vLyAgIFx0XHRcdFx0XHR0b3A6IDE2cHg7XHJcbi8vICAgXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH0gLy8gRW5kIHRpdGxlLWFyZWFcclxuLy8gXHRcdHVsIGxpe1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcbi8vIFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjJzIGVhc2UsIGNvbG9yIC4ycyBlYXNlKTtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgMyUpO1xyXG4vLyBcdFx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA0MCUpO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHRoMSBhOmhvdmVye1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0LmxlZnR7XHJcbi8vIFx0XHRcdG1hcmdpbi10b3A6IDVweDtcclxuLy8gXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgNXB4KTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0LnJpZ2h0e1xyXG4vLyBcdFx0XHRsaSBhe1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdFx0XHRsaW5lLWhlaWdodDogMy41O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcbi8vIFx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcbi8vIFx0XHRcdC5tb2JpbGUtcHVzaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdFx0LnRvcC1iYXItc2VjdGlvbiBhe1xyXG4vLyBcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDIuNTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbi8vIFx0XHRcdHBhZGRpbmctYm90dG9tOiA0NXB4O1xyXG4vLyBcdFx0XHQubW9iaWxlLXB1c2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRcdGJvdHRvbTogMDtcclxuLy8gXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdFx0LnNlYXJjaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdFx0dG9wOiAxMnB4O1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHQudGl0bGUtYXJlYSBoMSBhe1xyXG4vLyBcdFx0XHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG4vLyBcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLyBcdFx0XHRcdFx0d2lkdGg6IGF1dG87XHJcbi8vIFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDhweDtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyOXB4LCAyOXB4LCAtMTIwcHgsIDApO1xyXG4vLyBcdFx0XHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0XHRcdHRvcDogOHB4O1xyXG4vLyBcdFx0XHRcdFx0XHRsZWZ0OiAxMHB4O1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0c3BhbntcclxuLy8gXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxcmVtO1xyXG4vLyBcdFx0XHRcdFx0XHRwYWRkaW5nOiAwIDJweCAwIDdweDtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRcdCY6YmVmb3JleyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTUwcHggMDsgfVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQudGl0bGUtYXJlYXtcclxuLy8gXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC50b3AtYmFyLXNlY3Rpb257XHJcbi8vIFx0XHRcdFx0bWF4LWhlaWdodDogMDtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG1heC1oZWlnaHQgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcbi8vIFx0XHRcdFx0LmxlZnR7XHJcbi8vIFx0XHRcdFx0XHRtYXJnaW46IDA7XHJcbi8vIFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiByZWQ7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC5yaWdodHtcclxuLy8gXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDApO1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRiYXNlO1xyXG5cdFx0XHRcdFx0XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9IC8vIEVuZCBzbWFsbC1vbmx5XHJcbi8vIFx0XHQmLnRvcC1iYXIuZXhwYW5kZWR7XHJcbi8vIFx0XHRcdG1heC1oZWlnaHQ6IDEwMDBweDtcclxuLy8gXHRcdFx0LnRvcC1iYXItc2VjdGlvbntcclxuLy8gXHRcdFx0XHRtYXgtaGVpZ2h0OiAxMDAwcHg7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihtYXgtaGVpZ2h0IC44cyBlYXNlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQubGVmdHtcclxuLy8gXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LnVwLWljb246YmVmb3Jle1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtOTBweDtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gLnNpdGUtbWFpbi1uYXZ7XHJcbi8vIFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcclxuLy8gXHR6LWluZGV4OiA5OTk5O1xyXG4vLyBcdCNnb3Z7XHJcbi8vIFx0XHRtYXJnaW46IDAgYXV0bztcclxuLy8gXHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcbi8vIFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4vLyBcdFx0d2lkdGg6IDMwMHB4O1xyXG4vLyBcdFx0bWF4LXdpZHRoOiA4NSU7XHJcbi8vIFx0XHRoMntcclxuLy8gXHRcdFx0Zm9udC1zaXplOiAxOXB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0aDR7XHJcbi8vIFx0XHRcdGZvbnQtc2l6ZTogMTBweDtcclxuLy8gXHRcdFx0bGluZS1oZWlnaHQ6IDE2cHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdHVse1xyXG4vLyBcdFx0bWFyZ2luOiAwO1xyXG4vLyBcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4vLyBcdH1cclxuLy8gXHQudGl0bGUtYXJlYXtcclxuLy8gXHRcdGhlaWdodDogNDVweDtcclxuLy8gXHRcdGxpe1xyXG4vLyBcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0ZGl2e1xyXG4vLyBcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdCp7XHJcbi8vIFx0XHRcdGhlaWdodDogNTVweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0dWwgbGkgYXtcclxuLy8gXHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XHJcbi8vIFx0XHRkaXNwbGF5OiBibG9jaztcclxuLy8gXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdGJvcmRlci1yaWdodDogc29saWQgMXB4IGxpZ2h0ZW4oJHNlY29uZGFyeS1jb2xvciwgMTAlKTtcclxuLy8gXHRcdHBhZGRpbmc6IDEwcHggMjBweCAhaW1wb3J0YW50O1xyXG4vLyBcdFx0bGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuLy8gXHRcdGZvbnQtc2l6ZTogMWVtO1xyXG4vLyBcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kIC4ycyBlYXNlKTtcclxuLy8gXHRcdCY6YWZ0ZXJ7XHJcbi8vIFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRkaXYuc2l0ZS1zdGF0ZSwgI21lbnUtc2l0ZS1tZW51ID4gbGk6Zmlyc3QtY2hpbGQgYXtcclxuLy8gXHRcdHBhZGRpbmctbGVmdDogNzVweCAhaW1wb3J0YW50O1xyXG4vLyBcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdEBpbmNsdWRlIHNwcml0ZSg0MnB4LCAyNXB4LCAwcHgsIC02MHB4KTtcclxuLy8gXHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRsZWZ0OiAyMHB4O1xyXG4vLyBcdFx0XHR0b3A6IDE2cHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdCNzaXRlLW1lbnV7XHJcbi8vIFx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcbi8vIFx0XHQuc2l0ZS1zdGF0ZXtcclxuLy8gXHRcdFx0ZGlzcGxheTpibG9jaztcclxuLy8gXHRcdH1cclxuLy8gXHRcdD4gdWwgPiBsaXtcclxuLy8gXHRcdFx0YXtcclxuLy8gXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG4vLyBcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vIFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wN2VtO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obm9uZSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LmRyb3Bkb3due1xyXG4vLyBcdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiAwO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgMjUlKTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcblxyXG5cdFxyXG4vLyBcdC5oYXMtZHJvcGRvd257XHJcbi8vIFx0XHRwb3NpdGlvbjogc3RhdGljO1xyXG4vLyBcdFx0LmRyb3Bkb3duLCAuc3ViLW1lbnV7XHJcbi8vIFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0XHRsaXtcclxuLy8gXHRcdFx0XHRsZWZ0OiBhdXRvO1xyXG4vLyBcdFx0XHRcdHdpZHRoOiBhdXRvO1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHRcclxuLy8gXHRcdFx0XHQmLmpzLWdlbmVyYXRlZHtcclxuLy8gXHRcdFx0XHRcdG9wYWNpdHk6IDA7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0XHRcdFx0cGFkZGluZzogNHB4IDEwcHggIWltcG9ydGFudDtcclxuLy8gXHRcdFx0XHRcdGZvbnQtc2l6ZTogLjg3NWVtO1xyXG4vLyBcdFx0XHRcdFx0bWFyZ2luOiAxMHB4IDBweDtcclxuLy8gXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjNlbTtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRcdFx0Y29sb3I6IGRhcmtlbigkd2hpdGUsIDI1JSk7XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4vLyBcdFx0I3NpdGUtbWVudSwgLnNiLXNsaWRlYmFye1xyXG4vLyBcdFx0XHR6LWluZGV4OiAyMDA7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XHJcbi8vIFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRsaXtcclxuLy8gXHRcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0XHQuZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdCY6aG92ZXIgPiAuZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQuc2l0ZS1zdGF0ZSA+IGEsIGEuc2l0ZS1zdGF0ZXtcclxuLy8gXHRcdFx0cGFkZGluZy1sZWZ0OiA3NXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg0MnB4LCAyNXB4LCAwcHgsIC02MHB4KTtcclxuLy8gXHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0bGVmdDogMjBweDtcclxuLy8gXHRcdFx0XHR0b3A6IDE3cHg7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdC5oYXMtZHJvcGRvd257XHJcbi8vIFx0XHRcdC5kcm9wZG93biwgLnN1Yi1tZW51e1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAyMDBweDtcclxuLy8gXHRcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH0gLy8gRW5kIG1lZGl1bS11cFxyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbi8vIFx0XHQmLnNiLXNsaWRlYmFye1xyXG4vLyBcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyYWRpZW50KCRzZWNvbmRhcnktY29sb3IsMCUsMTAwJSxsZWZ0LHJpZ2h0KTtcclxuLy8gXHRcdFx0ei1pbmRleDogMDtcclxuLy8gXHRcdFx0bGksIGF7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC5oYXMtZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0XHRib3JkZXItdG9wOiBzb2xpZCAxcHggbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCAxMCUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4vLyBcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0I3NpdGUtbWVudSA+IHVsPiBsaTpsYXN0LWNoaWxke1xyXG4vLyBcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Lm1lbnUtaXRlbS1oYXMtY2hpbGRyZW57XHJcbi8vIFx0XHRcdFx0JiA+IGF7XHJcbi8vIFx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMThweCwgMTNweCwgLTkwcHgsIC02MHB4KTtcclxuLy8gXHRcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdFx0XHRcdHJpZ2h0OiAxMHB4O1xyXG4vLyBcdFx0XHRcdFx0XHR0b3A6IDEycHg7XHJcbi8vIFx0XHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ocmlnaHQgMHMgZWFzZSwgd2lkdGggLjBzIGVhc2UsIG9wYWNpdHkgLjJzKVxyXG4vLyBcdFx0XHRcdCAgICB9XHJcbi8vIFx0XHRcdFx0ICAgICY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0ICAgIFx0YmFja2dyb3VuZDogZGFya2VuKCRzZWNvbmRhcnktY29sb3IsIDglKTtcclxuLy8gXHRcdFx0XHQgICAgfVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHQmOmxhc3QtY2hpbGQgPiB1bHtcclxuLy8gXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC5kcm9wZG93biBsaSwgLnN1Yi1tZW51IGxpe1xyXG4vLyBcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0XHRcdFx0XHRwYWRkaW5nOiAwIDEwcHg7XHJcbi8vIFx0XHRcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdFx0XHRmb250LXNpemU6IC43ZW07XHJcblxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0LnRpdGxlLWFyZWEge1xyXG4vLyBcdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRcdCp7XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiA0NXB4O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC5zaXRlLXN0YXRle1xyXG4vLyBcdFx0XHRcdHBhZGRpbmc6IDZweCAyMHB4IDBweCA2NXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDQycHgsIDI1cHgsIDBweCwgLTYwcHgpO1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0bGluZS1oZWlnaHQ6IDIuNTtcclxuLy8gXHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdHRvcDogMTFweDtcclxuLy8gXHRcdFx0XHRcdGxlZnQ6IDEycHg7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQjc2l0ZS1tZW51e1xyXG4vLyBcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHRcdGxpe1xyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQuc2ItdG9nZ2xlLWxlZnR7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyNXB4LCAxN3B4LCAtMTgwcHgsIDBweCk7XHJcbi8vIFx0XHRcdHdpZHRoOiA0OHB4O1xyXG4vLyBcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRsZWZ0OiAxMXB4O1xyXG4vLyBcdFx0XHRcdHRvcDogMTRweDtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0dWwgbGkgYXtcclxuLy8gXHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH0gLy8gRW5kIHNtYWxsLW9ubHlcclxuLy8gfVxyXG5cclxuLy8gLnNiLXNsaWRlYmFye1xyXG4vLyBcdG9wYWNpdHk6IDA7XHJcbi8vIH1cclxuXHJcbi8vIC5zYi1hY3RpdmUgLnNiLXNsaWRlYmFye1xyXG4vLyBcdG9wYWNpdHk6IDE7XHJcbi8vIH1cclxuXHJcbi8vIC5zYi1zbGlkZWJhciAjc2l0ZS1tZW51e1xyXG4vLyBcdFx0PiB1bCA+IGxpe1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG5vbmUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0PiBhe1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obm9uZSk7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuLy8gXHRcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC5kcm9wZG93biwgLnN1Yi1tZW51e1xyXG4vLyBcdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuXHJcbi8vIC5hZG1pbi1iYXIgI21haW4taGVhZGVye1xyXG4vLyBcdHRvcDogMzJweDtcclxuLy8gXHRAbWVkaWEgKG1heC13aWR0aDogNzgycHgpIGFuZCAobWluLXdpZHRoOiA2MDFweCl7XHJcbi8vIFx0XHR0b3A6IDQ2cHg7XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7XHJcbi8vIFx0XHR0b3A6IDA7XHJcbi8vIFx0fVxyXG4vLyB9XHJcbiIsIi8vIEhPTUUuc2Nzc1xyXG5cclxuI2hlcm8ge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQvLyBib3JkZXItYm90dG9tOiBzb2xpZCAycHggJHdoaXRlO1xyXG5cdCNzb2NpYWwtbmF2IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0ei1pbmRleDogNDA7XHJcblx0XHRtYXJnaW4tdG9wOiAtMzdweDtcclxuXHRcdHVsIHtcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdFx0XHR3aWR0aDogKDEwMCUgLyA2KTtcclxuXHRcdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbmF2eSwgLjgpO1xyXG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgaG92ZXIge1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGdvbGQsIDclKTtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHJnYmEoJGdvbGQsIC43KSwgNSUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0XHRcdCYuZmItaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE1MHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdCYudHctaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC0xNTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQmLnl0LWljb246YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTBweCAtMTUwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji5mbGstaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAtMTUwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji5tYWlsLXNtYWxsLWljb246YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTgwcHggLTE1MHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tb25seX17XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgLTEwMHB4O1xyXG5cdH1cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogNTgycHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XHJcblx0XHRtaW4taGVpZ2h0OiAzMDBweDtcclxuXHR9XHJcblx0QG1lZGlhIChtaW4td2lkdGg6IDEzMjBweCl7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEyNSUgYXV0bztcclxuXHR9XHJcbn1cclxuXHJcbi8vb3ZlciB3cml0ZXMgZm9yIHRoZSBhbGVydCBiYXJcclxuLmZpYXQtYWxlcnQge1xyXG5cdG1hcmdpbjogMTBweDtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0bWFyZ2luLXRvcDogOHB4O1xyXG5cdGJhY2tncm91bmQ6ICRyZWQtYnJpZ2h0ICFpbXBvcnRhbnQ7XHJcblx0dGV4dC1zaGFkb3c6IG5vbmU7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGxldHRlci1zcGFjaW5nOiAuMDhlbTtcclxuXHRwIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHR9XHJcblx0YnV0dG9uIHtcclxuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHRcdHdpZHRoOiAzMHB4O1xyXG5cdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdFx0cGFkZGluZy10b3A6IDRweDtcclxuXHRcdGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuXHRcdGJvcmRlci1jb2xvcjogJHdoaXRlO1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0b3V0bGluZTogbm9uZTtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdGNvbG9yOiAkcmVkLWJyaWdodCAhaW1wb3J0YW50O1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdGEge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgM3B4KTtcclxuXHRcdHBhZGRpbmc6IDVweCAxMHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQtYnJpZ2h0LCAyMCUpO1xyXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgLjNzKTtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZC1icmlnaHQsIDMwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0fVxyXG59XHJcblxyXG4jcHJpb3JpdGllcyB7XHJcblx0LnRhYi10aXRsZSB7XHJcblx0XHR3aWR0aDogMzMuMzMzMzMzMzMzJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA2JSk7XHJcblx0XHRhIHtcclxuXHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1ncmFkaWVudCgkc2Vjb25kYXJ5LWNvbG9yKTtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggJHdoaXRlO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcblx0XHRcdHBhZGRpbmc6IDQwcHggMDtcclxuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0b3V0bGluZTogbm9uZTtcclxuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLXBvc2l0aW9uIC4zcyBlYXNlKTtcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAtMTA2cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0LnNjaG9vbHMtdGFiIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoNTZweCwgNDFweCwgMCwgLTMzMHB4KTtcclxuXHRcdFx0XHR3aWR0aDogNjJweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuam9icy10YWIge1xyXG5cdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg0MHB4LCA0MnB4LCAtNjBweCwgLTMzMHB4KTtcclxuXHRcdFx0XHR3aWR0aDogNTBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuZ292LXRhYiB7XHJcblx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDUzcHgsIDQ1cHgsIC0xMjBweCwgLTMzMHB4KTtcclxuXHRcdFx0XHR3aWR0aDogNjNweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQudGFiLWljb24ge1xyXG5cdFx0XHRcdGhlaWdodDogMThweDtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmLmFjdGl2ZSBhIHtcclxuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0XHRjb2xvcjogJGJsYWNrO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjJzIGVhc2UpO1xyXG5cdFx0XHQuc2Nob29scy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yNzBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuam9icy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtMjcwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0Lmdvdi10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTI3MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdCY6YWN0aXZlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA1JSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCY6bGFzdC1jaGlsZCBhIHtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQudGFiLXRleHQge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcblx0LnRhYnMtY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OiAyMDtcclxuXHRcdC5ob21lLXByaW9yaXRpZXMtaW1hZ2Uge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiAzMDBweDtcclxuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0ICBkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdCAgd2lkdGg6IDEwMCU7XHJcblx0XHRcdCAgaGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHQgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHRcdFx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cdFx0XHQgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9jb2FfeHNtYWxsLnBuZ1wiKTtcclxuXHRcdFx0ICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcblx0XHRcdCAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0ICB6LWluZGV4OiAtMTtcclxuXHRcdFx0ICBib3JkZXI6IHNvbGlkIDIwcHggJHNlY29uZGFyeS1jb2xvcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aDIge1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAtMTBweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHRcdFx0Zm9udC1zaXplOiAycmVtO1xyXG5cdFx0fVxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcblx0XHQudGFiLXRpdGxlIGEge1xyXG5cdFx0XHRoZWlnaHQ6IDEwMHB4O1xyXG5cdFx0XHRwYWRkaW5nOiAyNXB4IDA7XHJcblx0XHR9XHJcblx0XHQudGFicy1jb250ZW50IHtcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHRtYXJnaW46IDI1cHggMCA1MHB4IDAgO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG5cdFx0LnRhYi10aXRsZSB7XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdHBhZGRpbmc6IDIwcHggMDtcclxuXHRcdFx0XHRmb250LXNpemU6IC44NWVtO1xyXG5cdFx0XHRcdC50YWItaWNvbiB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5zY2hvb2xzLXRhYiB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjlweCwgMjBweCwgMCwgLTQ4MHB4KTsgLy8gZml4LXNwcml0ZVxyXG5cdFx0XHRcdFx0d2lkdGg6IDIycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5qb2JzLXRhYiB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjJweCwgMjRweCwgLTMwcHgsIC00ODBweCk7IC8vIGZpeC1zcHJpdGVcclxuXHRcdFx0XHRcdHdpZHRoOiAyMnB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQuZ292LXRhYiB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjlweCwgMjVweCwgLTYwcHgsIC00ODBweCk7IC8vIGZpeC1zcHJpdGVcclxuXHRcdFx0XHRcdHdpZHRoOiAyOXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmLmFjdGl2ZSBhIHtcclxuXHRcdFx0XHQuc2Nob29scy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTQ1MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQuam9icy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0zMHB4IC00NTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Lmdvdi10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC00NTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC50YWItdGV4dCB7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcblx0XHQudGFicy1jb250ZW50IHtcclxuXHRcdFx0cGFkZGluZzogNzVweCAwO1xyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdG1heC13aWR0aDogOTUlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRsYXJnZS11cCB9e1xyXG5cdFx0LnRhYi10ZXh0IHtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xyXG5cdFx0fVxyXG5cdFx0LnRhYi10aXRsZSBhIC50YWItaWNvbjpiZWZvcmUge1xyXG5cdFx0XHR0b3A6IC0xMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI2hvbWVIZWFkbGluZSB7XHJcblx0bWFyZ2luLXRvcDogMjBweDtcclxuXHQubmV3cy1wb3N0Lm5ld3MtcG9zdC1oZWFkbGluZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdH1cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuI2dvdmVybm9yIHtcclxuXHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyYWRpZW50KCRuYXZ5KTtcdFxyXG5cdHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdHBhZGRpbmctdG9wOiAyLjVlbTtcclxuXHQjZ292LXBob3RvIHtcclxuXHRcdG1hcmdpbi10b3A6IDMuNWVtO1xyXG5cdFx0QG1lZGlhICN7JGxhcmdlLXVwfXtcclxuXHRcdFx0aGVpZ2h0OiAzMDBweDtcclxuXHRcdFx0bWFyZ2luLXRvcDogNi41ZW07XHJcblx0XHR9XHJcblx0fVxyXG5cdCNnb3YtaW5mbyB7XHJcblx0XHRtYXJnaW46IDMwcHggMCAxNDBweDtcclxuXHRcdEBtZWRpYSAjeyRsYXJnZS11cH17XHJcblx0XHRcdG1hcmdpbjogMTAwcHggMCAxNDBweDtcclxuXHRcdH1cclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcblx0XHR9XHJcblx0XHRoMSB7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG5cdFx0fVxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHR9XHJcblx0XHQuYnV0dG9uIHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5uZXdzLWltYWdlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Zm9udC1zaXplOiAwO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL2NvYV94c21hbGwucG5nKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0I2ltYWdlLWlubmVyIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdGhlaWdodDogMDtcclxuXHRcdFx0cGFkZGluZy10b3A6IDU4LjMlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jc29jaWFsLW1lZGlhe1xyXG5cdHBhZGRpbmc6IDUwcHggMDtcclxuXHQuc29jaWFsLWxpbmt7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHRcdC5zb2NpYWwtaWNvbntcclxuXHRcdFx0d2lkdGg6IDYwcHg7XHJcblx0XHRcdGhlaWdodDogNjBweDtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAycHggJGJsYWNrO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdCYudHctaWNvbiwgJi5mbGlja3ItaWNvbntcclxuXHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdG1hcmdpbjogMTVweCAwIDAgMTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ji50dy1pY29ue1xyXG5cdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgzMnB4LCAyN3B4LCAtMTUwcHgsIC00NTBweCk7XHJcblx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMTJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5mbGlja3ItaWNvbntcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMzdweCwgMTVweCwgLTE1MHB4LCAtNDgwcHgpO1xyXG5cdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0dG9wOiA1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0d2lkdGg6IDYwcHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAycHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogJGJsYWNrO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0XHRyaWdodDogLTYycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGF7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiA3M3B4O1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAxMXB4O1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cdFx0XHQmOmFmdGVye1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHRcdGhlaWdodDogMnB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcclxuXHRcdFx0XHR3aWR0aDogMTAwMHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdHJpZ2h0OiAtMTAxNXB4O1xyXG5cdFx0XHRcdHRvcDogMTlweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdGNvbG9yOiBibGFjaztcclxuXHRcdFx0fVxyXG5cdFx0XHRzcGFue1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG5cdFx0XHQuc29jaWFsLWljb257XHJcblx0XHRcdFx0JjphZnRlcntcclxuXHRcdFx0XHRcdHdpZHRoOiA1MDBweDtcclxuXHRcdFx0XHRcdHJpZ2h0OiAtNTAycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0XHRcdGZsb2F0OiByaWdodDtcclxuXHRcdFx0XHRmb250LXNpemU6IDE4cHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogMThweDtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMCAxMHB4O1xyXG5cdFx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRhcnRpY2xle1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogLTdweDtcclxuXHR9XHJcblx0LmxhdGVzdC10d2VldHtcclxuXHRcdGgye1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XHJcblx0XHR9XHJcblx0XHQudHdlZXQtZGF0ZXtcclxuXHRcdFx0Y29sb3I6ICRiYXNlO1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHRcdFx0Zm9udC1zaXplOiAxLjJlbTtcclxuXHRcdH1cclxuXHRcdHVse1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0bGl7XHJcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4IDEycHggOXB4IDYwcHg7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDVweCk7XHJcblx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0bGVmdDogMTNweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCYucmVwbHktaWNvbntcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI4cHgsIDE2cHgsIDAsIC0xODBweCk7XHJcblx0XHRcdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogOXB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmLnJ0LWljb257XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyN3B4LCAyNHB4LCAtMzBweCwgLTE4MHB4KTtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0dG9wOiA1cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCYuZmF2LWljb257XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyNXB4LCAyNHB4LCAtNjBweCwgLTE4MHB4KTtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0dG9wOiA2cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgMyUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0JjphY3RpdmV7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JjpsYXN0LWNoaWxkIGF7XHJcblx0XHRcdFx0XHRtYXJnaW46IDBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0QG1lZGlhICN7JG1lZGl1bS11cH17XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdFx0bGl7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcclxuXHRcdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAyNXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSAvLyBlbmQgdWxcclxuXHR9XHJcblx0ZGl2LmZldGNoLXR3ZWV0c3tcclxuXHRcdG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgLy8gZml4IG92ZXJmbG93IHNjcm9sbGluZyBvbiBtb2JpbGUuIE92ZXJ3cml0aW5nIHBsdWdpbiBpbmxpbmUgc3R5bGUuXHJcblx0fVxyXG5cdC5sYXRlc3QtZmxpY2tye1xyXG5cdFx0JjphZnRlcntcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuXHRcdH1cclxuXHRcdC5mbGlja3ItcGhvdG9zIGF7XHJcblx0XHRcdGltZ3tcclxuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzIGVhc2UpO1xyXG5cdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KG9wYWNpdHksIC41KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0cGFkZGluZzogMTVweCAwIDAgMDtcclxuXHRcdGgxe1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0fVxyXG5cdFx0LmxhdGVzdC10d2VldHtcclxuXHRcdFx0aDJ7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIucmV2ZWFsIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAuY2xvc2UtYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvOyAvLyByZW1vdmUgZ2xvYmFsIGJ1dHRvbiB3aWR0aCAxMDAlXHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICAvLyB0aGlzIGlzIHRoZSBYIGZvciB0aGUgY2xvc2UgYnV0dG9uIC4uLiB3ZSB3YW50ZWQgdGhlIHNhbWUgWCBhcyBpbiB0aGUgbWVudVxyXG4gICAgICAgIC5pbm5lciB7XHJcbiAgICAgICAgICAgIGhlaWdodDogM3B4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdG9wOiAxMHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZW51bGFiZWwge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0Ym90dG9tOiAtMjBweDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcclxuXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGhlbHBlciBmb3Igd2hpdGUgY2xvc2UgYnV0dG9uc1xyXG4uY2xvc2UtYnV0dG9uLnRleHQtd2hpdGUge1xyXG4gICAgLm1lbnVsYWJlbCB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIC5pbm5lcjpiZWZvcmUsIC5pbm5lcjphZnRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59IiwiLy8gTkVXU1JPT00uc2Nzc1xyXG4jbmV3c3Jvb20ge1xyXG5cdC8vIGJvdHRvbSBpcyBiZWNhdXNlIG9mIHRoZSBnb3Zlcm5vciBhY3Rpb24gYmFyXHJcblx0cGFkZGluZzogNGVtIDAgN2VtIDA7XHJcblxyXG5cdC5zZWN0aW9uLXRpdGxlIHtcclxuXHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAuNWVtO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJhbm5lci1pbWFnZSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblxyXG5cdC5uZXdzcm9vbS1kYXRlIHtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW46IDEwcHggMDtcclxuXHR9XHJcblx0Lm5ld3MtcG9zdC1ieWxpbmUge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0bWFyZ2luOiAxMHB4IDA7XHJcblx0fVxyXG59XHJcblxyXG4ubmV3cy1wb3N0IHtcclxuXHQmLXRpdGxle1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDU1cHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XHJcblx0XHR3aWR0aDogMzY4cHg7XHJcblx0XHRmb250LXNpemU6IDFyZW07XHJcblx0XHRsaW5lLWhlaWdodDogMS4yNTtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAwLjY4NzVyZW07XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdEBpbmNsdWRlIHNwcml0ZSgyOXB4LCAyOXB4LCAtOTBweCwgLTE4MHB4KTtcclxuXHRcdCY6YmVmb3Jle1xyXG5cdFx0XHR0b3A6IDJweDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1jYXRlZ29yeXtcclxuXHRcdGNvbG9yOiAkZ29sZCAhaW1wb3J0YW50O1xyXG5cdFx0Zm9udC1zaXplOiAuNjVyZW0gIWltcG9ydGFudDtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRtYXJnaW46IDEwcHggMCAhaW1wb3J0YW50O1xyXG5cdFx0PiBhIHtcclxuXHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1pbWFnZXtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblx0fVxyXG5cdCYtcG9zdC10aXRsZXtcclxuXHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjNlbTtcclxuXHRcdGEge1xyXG5cdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLXBvc3QtZGF0ZXtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0bWFyZ2luOiAxMHB4IDA7XHJcblx0fVxyXG5cdC5idXR0b257XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG5cdGFydGljbGUucm93e1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji5uZXdzLXBvc3QtcHJpb3JpdHl7XHJcblx0XHRtYXJnaW46IDUwcHggMCAwO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XHJcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG5cdH1cclxuXHQmLm5ld3MtcG9zdC1oZWFkbGluZXtcclxuXHRcdHBhZGRpbmc6IDMwcHggNDBweCA0MHB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHRcdGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHQubmV3cy1wb3N0eyAvLyAqIERPIE5PVCBBREQgU1RZTEVTIEhFUkUgKlxyXG5cdFx0XHQmLXRpdGxle1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTE4MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLnZpZXctYWxsLW5ld3N7XHJcblx0cGFkZGluZzogMjVweCA1MHB4O1xyXG5cdGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0bWFyZ2luLWJvdHRvbTogNzVweDtcclxuXHRoNXtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdH1cclxuXHQuYnV0dG9ue1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bWFyZ2luLXRvcDogOHB4O1xyXG5cdH1cclxufVxyXG5cclxuI3NvY2lhbC1hcnRpY2xlIHtcclxuXHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiA4cHg7XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG9wYWNpdHk6IC43O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuc2VjdGlvbiB7XHJcblx0JiNyZWxhdGVkLW5ld3MsICYjcmVsYXRlZC1tZWRpYSB7XHJcblxyXG5cdFx0aDMsIC5oMyB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAxZW07XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiAuMjVlbTtcclxuXHRcdH1cclxuXHJcblx0XHQuY29sdW1uLWJsb2NrIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5wcmV2X25leHRfbGlua3N7XHJcblx0bWFyZ2luLXRvcDogMjVweDtcclxuXHRzcGFue1xyXG5cdFx0d2lkdGg6IDE1MHB4O1xyXG5cdFx0bWF4LXdpZHRoOiA1MCU7XHJcblx0fVxyXG5cdGF7XHJcblx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0cGFkZGluZzogMTBweCAxNXB4O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0Ly8gd2lkdGg6IDEwMCU7XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRib3JkZXI6IHNvbGlkIDJweCAkZ29sZDtcclxuXHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRAaW5jbHVkZSBmb250YXdlc29tZTtcclxuXHRcdFx0Y29udGVudDogXCJcXGYwNTNcIjtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdFx0fVxyXG5cdFx0Jjpob3ZlcntcclxuXHRcdFx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5wcmV2aW91c19wb3N0IGEge1xyXG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0fVxyXG5cdC5uZXh0X3Bvc3QgYSB7XHJcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdHJpZ2h0OiAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufSIsIi8vIGJvZHkge1xyXG4vLyBcdGxldHRlci1zcGFjaW5nOiAuMDJlbTtcclxuLy8gXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0Y29sb3I6ICRibGFjaztcclxuLy8gXHRwYWRkaW5nOiAwO1xyXG4vLyBcdG1hcmdpbi10b3A6IDEwMHB4O1xyXG5cdFxyXG4vLyBcdCNzYi1zaXRlIHtcclxuLy8gXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4vLyBcdFx0LW1vei10cmFuc2Zvcm06IGluaXRpYWw7XHJcbi8vIFx0XHQtby10cmFuc2Zvcm06IGluaXRpYWw7XHJcbi8vIFx0XHR0cmFuc2Zvcm06IGluaXRpYWw7XHJcbi8vIFx0XHRtaW4taGVpZ2h0OiAxMDAlO1xyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gaW5wdXR7XHJcbi8vIFx0Ly8gZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xyXG4vLyBcdFt0eXBlPVwidGV4dFwiXSxcclxuLy8gXHRbdHlwZT1cInNlYXJjaFwiXSB7XHJcbi8vIFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0Jjpmb2N1c3tcclxuLy8gXHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDE1JSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuLy8gXHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0JjotbW96LXBsYWNlaG9sZGVyIHsgLyogRmlyZWZveCAxOC0gKi9cclxuLy8gXHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBGaXJlZm94IDE5KyAqL1xyXG4vLyBcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbi8vIFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNjAlKTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdCY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7XHJcbi8vIFx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6Oi1tb3otaW5wdXQtcGxhY2Vob2xkZXJ7IC8qIEZpcmVmb3ggMTgtICovXHJcbi8vIFx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6Oi1tb3otaW5wdXQtcGxhY2Vob2xkZXJ7IC8qIEZpcmVmb3ggMTkrICovXHJcbi8vIFx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntcclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czotbW96LXBsYWNlaG9sZGVyIHsgLyogRmlyZWZveCAxOC0gKi9cclxuLy8gXHRcdFx0Y29sb3I6ICRibGFjaztcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogRmlyZWZveCAxOSsgKi9cclxuLy8gXHRcdFx0Y29sb3I6ICRibGFjaztcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuLy8gXHRcdFx0Y29sb3I6ICRibGFjaztcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIH1cclxuXHJcbi8vIC5lbGxpcCB7XHJcbi8vIFx0ZGlzcGxheTogYmxvY2s7XHJcbi8vIFx0aGVpZ2h0OiAxMDAlO1xyXG4vLyB9XHJcblxyXG4vLyAuZWxsaXAtbGluZSB7XHJcbi8vIFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLyBcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4vLyBcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vIFx0d29yZC13cmFwOiBub3JtYWw7XHJcbi8vIFx0bWF4LXdpZHRoOiAxMDAlO1xyXG4vLyB9XHJcblxyXG4vLyAuZWxsaXAsXHJcbi8vIC5lbGxpcC1saW5lIHtcclxuLy8gXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8gfVxyXG5cclxuLy8gLmlubmVyLXdyYXB7XHJcbi8vIFx0bWFyZ2luLXRvcDogNDVweDtcclxuLy8gXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiA0NXB4O1xyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gI2lubmVyLWNvbnRlbnR7XHJcbi8vIFx0bWFyZ2luLXRvcDogNTBweDtcclxuLy8gXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiAwO1xyXG4vLyBcdH1cclxuLy8gfVxyXG4vLyAjaW5uZXItY29udGVudC5wdXNoLWNvbnRlbnQtdXB7XHJcbi8vIFx0bWFyZ2luLXRvcDogNTBweDtcclxuLy8gXHRAbWVkaWEgI3skbGFyZ2UtdXB9e1xyXG4vLyBcdFx0bWFyZ2luLXRvcDogLTEwMHB4O1xyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiAwO1xyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gLnJvdyB7XHJcbi8vIFx0Ly8gbWF4LXdpZHRoOiA5MiU7XHJcbi8vIFx0QG1lZGlhICN7JGxhcmdlLXVwfXtcclxuLy8gXHRcdG1heC13aWR0aDogNjguNzVyZW07XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4jY29udGVudCB7XHJcblx0cGFkZGluZzogNTBweCAwIDE0MHB4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAbWVkaWEgI3skbWVkaXVtLWRvd259e1xyXG5cdFx0cGFkZGluZzogMTVweCAwIDE0MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLy8gQmFubmVyIC0gSGVhZGVyIEltYWdlc1xyXG5cclxuLy8gI2hlYWRlcl9pbWFnZXtcclxuLy8gXHRoZWlnaHQ6IDMwOHB4O1xyXG4vLyBcdG1hcmdpbi10b3A6IC01MHB4O1xyXG4vLyBcdGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbi8vIFx0QG1lZGlhICN7JG1lZGl1bS11cH17XHJcbi8vIFx0XHRoZWlnaHQ6IDQyMHB4O1xyXG4vLyBcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAjeyR4bGFyZ2UtdXB9e1xyXG4vLyBcdFx0YmFja2dyb3VuZC1zaXplOiAxMTUlO1xyXG4vLyBcdH1cclxuLy8gXHRoMXtcclxuLy8gXHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRtYXJnaW46IDE0MHB4IDAgMCAwO1xyXG4vLyBcdFx0Ji5zbWFsbC10aXRsZXtcclxuLy8gXHRcdFx0Zm9udC1zaXplOiAyLjRlbTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdGF7XHJcbi8vIFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0Y29sb3I6IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG4vLyBcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XHJcbi8vIFx0XHQmLk1pa2UuU3RhY2t7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xODBweDtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCYucHJpb3JpdGllcy1oZWFkZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDY3JTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCYubmV3c3Jvb20taGVhZGVyLCAmLmV4ZWN1dGl2ZV9vcmRlci1oZWFkZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgI3skbWVkaXVtLW9ubHl9e1xyXG4vLyBcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XHJcbi8vIFx0XHQmLm5ld3Nyb29tLWhlYWRlciwgJi5leGVjdXRpdmVfb3JkZXItaGVhZGVye1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhIChtaW4td2lkdGg6IDEwMjBweCkgYW5kIChtYXgtd2lkdGg6IDExMzZweCl7XHJcbi8vIFx0XHQmLm5ld3Nyb29tLWhlYWRlciwgJi5leGVjdXRpdmVfb3JkZXItaGVhZGVye1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gLnBhZ2UtdGl0bGV7XHJcbi8vIFx0aDF7XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiAtN3B4O1xyXG4vLyBcdH1cclxuLy8gXHRhe1xyXG4vLyBcdFx0Y29sb3I6ICRibGFjaztcclxuLy8gXHR9XHJcbi8vICAgQG1lZGlhICN7JGxhcmdlLXVwfXtcclxuLy8gICBcdHBhZGRpbmc6IDhweCAyMHB4IDVweDtcclxuLy8gXHQgIGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG4vLyBcdCAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbmF2eSwgLjgpO1xyXG4vLyBcdCAgaDF7XHJcbi8vIFx0ICBcdG1hcmdpbjogMDtcclxuLy8gXHQgIH1cclxuLy8gXHQgIGF7XHJcbi8vIFx0ICBcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0ICB9XHJcbi8vICAgfVxyXG4vLyAgICYubmV3c3Jvb20tdGl0bGV7XHJcbi8vICAgXHRAbWVkaWEgI3skbWVkaXVtLXVwfXtcclxuLy8gICBcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XHJcbi8vICAgXHR9XHJcbi8vICAgfVxyXG4vLyB9XHJcblxyXG4ucHJpb3JpdGllcy1jb250ZW50e1xyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdGgxe1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI2dvdntcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0cGFkZGluZzogOXB4IDA7XHJcblx0cGFkZGluZy10b3A6IDA7XHJcblx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4ICR3aGl0ZTtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcblx0LnN0YXRle1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdC5zdGF0ZS1pY29ue1xyXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdFx0d2lkdGg6IDI5cHg7XHJcblx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyOHB4LCAxN3B4LCAwcHgsIC05MHB4KTtcclxuXHRcdH1cclxuXHRcdCY6YmVmb3JlLCAmOmFmdGVye1xyXG5cdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCAkd2hpdGU7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogOHB4O1xyXG5cdFx0fVxyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdGxlZnQ6IDU1JTtcclxuXHRcdH1cclxuXHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdHJpZ2h0OiA1NSU7XHJcblx0XHR9XHJcblx0fVxyXG5cdGgyLCBoNHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogLjE4ZW07XHJcblx0XHRtYXJnaW46IDBweDtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0fVxyXG5cdGgye1xyXG5cdFx0Zm9udC1zaXplOiAzMHB4O1xyXG5cdH1cclxuXHRoNHtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdGZvbnQtc2l6ZTogMTVweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4xNGVtO1xyXG5cdH1cclxufVxyXG5cclxuI2hlYWRlcl9pbWFnZSB7XHJcblx0aGVpZ2h0OiA0MjBweDtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRoZWlnaHQ6IDIxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLy8gaWNvbnNcclxuXHJcbi8vIC5mYi1pY29ue1xyXG4vLyBcdEBpbmNsdWRlIHNwcml0ZSgxMHB4LCAxOXB4LCAwLCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAxMHB4O1xyXG4vLyB9XHJcbi8vIC5tYWlsLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDIzcHgsIDE1cHgsIC0zMHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAyM3B4O1xyXG4vLyB9XHJcbi8vIC50dy1pY29ue1xyXG4vLyBcdEBpbmNsdWRlIHNwcml0ZSgxOHB4LCAxNnB4LCAtNjBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMjNweDtcclxuLy8gfVxyXG4vLyAueXQtaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMjFweCwgMTVweCwgLTkwcHgsIC0xMjBweCk7XHJcbi8vIFx0d2lkdGg6IDIycHg7XHJcbi8vIH1cclxuLy8gLmluc3RhLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDE1cHgsIDE1cHgsIC0xMjBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMTVweDtcclxuLy8gfVxyXG4vLyAuZmxrLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDIzcHgsIDEwcHgsIC0xNTBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMjNweDtcclxuLy8gfVxyXG4vLyAubWFpbC1zbWFsbC1pY29ue1xyXG4vLyBcdEBpbmNsdWRlIHNwcml0ZSgyMHB4LCAxMnB4LCAtMTgwcHgsIC0xMjBweCk7XHJcbi8vIFx0d2lkdGg6IDIwcHg7XHJcbi8vIH1cclxuXHJcbi8vIHNvY2lhbCBuYXZcclxuXHJcbi8vICNzb2NpYWwtbmF2e1xyXG4vLyBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHR6LWluZGV4OiA4MDAwO1xyXG4vLyBcdCY6YWZ0ZXJ7XHJcbi8vIFx0XHRjb250ZW50OicnO1xyXG4vLyBcdFx0Y2xlYXI6IGJvdGg7XHJcbi8vIFx0XHRkaXNwbGF5OiB0YWJsZTtcclxuLy8gXHR9XHJcbi8vIFx0LmZhIHtcclxuLy8gXHRcdGRpc3BsYXk6IGluaGVyaXQ7XHJcbi8vIFx0XHRmb250LXNpemU6IDEuNXJlbTtcclxuLy8gXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XHJcbi8vIFx0XHRjb2xvcjogJGdvbGQ7XHJcbi8vIFx0fVxyXG4vLyBcdHVse1xyXG4vLyBcdFx0bWFyZ2luOiAwcHg7XHJcbi8vIFx0XHRib3JkZXItdG9wOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuLy8gXHRcdGxpe1xyXG4vLyBcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbi8vIFx0XHRcdHdpZHRoOiAoMTAwJSAvIDYpO1xyXG4vLyBcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0YXtcclxuLy8gXHRcdFx0XHRwYWRkaW5nOiA4cHg7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4vLyBcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG4vLyBcdFx0XHRcdGJvcmRlcjogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcclxuLy8gXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAjMDAwO1xyXG4vLyBcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuLy8gXHRcdFx0XHRmb250LXNpemU6IC43ZW07XHJcbi8vIFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wOGVtO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZSk7XHJcbi8vIFx0XHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0JjphY3RpdmV7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwyMjUsMjI1LC42KTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0c3BhbntcclxuLy8gXHRcdFx0XHRcdGhlaWdodDogMTVweDtcclxuLy8gXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG4vLyBcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG4vLyBcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLyBcdFx0XHRcdFx0Ji50dy1pY29uOmJlZm9yZSxcclxuLy8gXHRcdFx0XHRcdCYueXQtaWNvbjpiZWZvcmUsXHJcbi8vIFx0XHRcdFx0XHQmLmluc3RhLWljb257IHRvcDogNHB4OyB9XHJcbi8vIFx0XHRcdFx0XHQmLmZsay1pY29uIHsgdG9wOiA2cHg7IH1cclxuLy8gXHRcdFx0XHRcdCYubWFpbC1zbWFsbC1pY29uIHsgdG9wOiA1cHg7IH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0JjpsYXN0LWNoaWxkIGF7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdCYubW9iaWxlIHtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcbi8vIFx0XHRib3R0b206IDEwcHg7XHJcbi8vIFx0XHR3aWR0aDogMTAwJTtcclxuLy8gXHRcdHVsIHtcclxuLy8gXHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHRsaSB7XHJcbi8vIFx0XHRcdFx0d2lkdGg6ICgxMDAlIC8gNik7XHJcbi8vIFx0XHRcdFx0YSB7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAwIDA7XHJcbi8vIFx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdFx0XHRzcGFuIHtcclxuLy8gXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xyXG4vLyBcdFx0XHRcdFx0XHQmLm1haWwtc21hbGwtaWNvbixcclxuLy8gXHRcdFx0XHRcdFx0Ji5mbGstaWNvbixcclxuLy8gXHRcdFx0XHRcdFx0Ji50dy1pY29uLFxyXG4vLyBcdFx0XHRcdFx0XHQmLmluc3RhLWljb24sXHJcbi8vIFx0XHRcdFx0XHRcdCYueXQtaWNvbiB7XHJcbi8vIFx0XHRcdFx0XHRcdFx0bGVmdDogLTEwcHg7XHJcbi8vIFx0XHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIH1cclxuIiwiLy8gUFJJT1JJVElFUy5zY3NzXHJcbi8vIFRPRE8gVGhpcyBjYW4gbGlrZWx5IGJlIHJlbW92ZWQgYXMgUHJpb3JpdGllcyB3aWxsIGZvbGxvdyB0aGUgR3VpZGVzIGxvb2sgYW5kIGZlZWwgZnJvbSBQQWdvdlxyXG4jaGVhZGVyX2ltYWdlLnByaW9yaXRpZXMtaGVhZGVye1xyXG5cdG1hcmdpbi10b3A6IDBweDtcclxuXHQvLyBAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0Ly8gfVxyXG59XHJcblxyXG4vLyBQcmlvcml0aWVzIFNpZGViYXJcclxuXHJcbiNwcmlvcml0aWVzLW5hdntcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG59XHJcbiNzdGlja3ktaGVhZGVye1xyXG5cdGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cdHotaW5kZXg6IDk5OTk7XHJcblx0Y29sb3I6ICR3aGl0ZTtcclxuXHRwYWRkaW5nOiAxMHB4O1xyXG5cdC5yaWdodHtcclxuXHRcdG1hcmdpbi10b3A6IDVweDtcclxuICBcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIFx0XHQuc2hhcmUtdGl0bGV7XHJcbiAgXHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG4gIFx0XHR9XHJcblx0fVxyXG5cdGgzLCBhe1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdH1cclxuXHRzcGFue1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRoZWlnaHQ6IDE5cHg7XHJcblx0fVxyXG5cdC5mYi1pY29ue1xyXG5cdFx0d2lkdGg6IDEwcHg7XHJcblx0XHRoZWlnaHQ6IDE5cHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAtM3B4O1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE1MHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQudHctaWNvbntcclxuXHRcdHdpZHRoOiAyM3B4O1xyXG5cdFx0aGVpZ2h0OiAxNXB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogLTJweDtcclxuXHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtMTUwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdGE6aG92ZXJ7XHJcblx0XHRvcGFjaXR5OiAuNztcclxuXHR9XHJcbn1cclxuI3ByaW9yaXRpZXMtc2lkZWJhcntcclxuXHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHotaW5kZXg6IDIwO1xyXG5cdHdpZHRoOiAyNDNweDtcclxuXHRoNXtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsKCk7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHRwYWRkaW5nOiAxMHB4IDAgMTBweCA0MHB4O1xyXG5cdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDEwJSk7XHJcblx0XHRAaW5jbHVkZSBzcHJpdGUoMThweCwgMThweCwgLTE4MHB4LCAtMjQwcHgpO1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdGxlZnQ6IDE1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdHVse1xyXG5cdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDIwJSk7XHJcblx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRsaTpsYXN0LWNoaWxkIHVse1xyXG5cdFx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbigkYmxhY2ssIDMwJSk7XHJcblx0XHR9XHJcblx0XHRhe1xyXG5cdFx0XHRwYWRkaW5nOiAxOHB4IDIwcHggMTJweDtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggbGlnaHRlbigkYmxhY2ssIDMwJSk7XHJcblx0XHRcdGJvcmRlci1sZWZ0OiBub25lO1xyXG5cdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjJzIGVhc2UpO1xyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAxOCUpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHNwYW57XHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuNGVtO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYWN0aXZlID4gYXtcclxuXHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG5cdFx0XHQmICsgdWx7XHJcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0XHRcdG92ZXJmbG93OiBpbml0aWFsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR1bHtcclxuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdFx0aGVpZ2h0OiAwO1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1vdXQ7XHJcblx0XHRcdC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0bGl7XHJcblx0XHRcdFx0cGFkZGluZzogMCAxNXB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAxMCUpO1xyXG5cdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbigkYmxhY2ssIDIwJSk7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAxMnB4IDAgOXB4IDA7XHJcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg4cHgsIDEwcHgsIC0zMHB4LCAtOTBweCk7XHJcblx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiAtNXB4O1xyXG5cdFx0XHRcdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0XHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ocmlnaHQgLjJzIGVhc2UsIHdpZHRoIC4wcyBlYXNlLCBvcGFjaXR5IC4ycyk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMTAlKTtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6IC00MHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRhe1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgNDAlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQmOmxhc3QtY2hpbGQgYXtcclxuXHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHR1bHtcclxuXHRcdFx0JiNwcmlvcml0aWVzLW1haW4tbmF2e1xyXG5cdFx0XHRcdC5hY3RpdmV7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjBweCwgMjBweCwgLTE4MHB4LCAtMjQwcHgpO1xyXG5cdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdGxlZnQ6IDE1cHg7XHJcblx0XHRcdFx0XHRcdHRvcDogMTRweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0bGl7XHJcblx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0XHRoZWlnaHQ6IDBweDtcclxuXHRcdFx0XHQmLmFjdGl2ZXtcclxuXHRcdFx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdFx0XHQ+IGF7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogIDQ1cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0cGFkZGluZzogMTRweCAyMHB4IDEwcHg7XHJcblx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDE4cHgsIDEzcHgsIC05MHB4LCAtNjBweCk7XHJcblx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRyaWdodDogMTNweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0c3BhbntcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMnB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmLm1vYmlsZS1wcmlvcml0aWVzLW1haW4tbmF2e1xyXG5cdFx0XHRcdGxpeyBoZWlnaHQ6IGF1dG87IG9wYWNpdHk6IDE7fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSAvLyBFbmQgc21hbGwtb25seVxyXG59XHJcblxyXG4uZml4ZWRQcmlvTmF2e1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHR0b3A6IDEwOXB4O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdHotaW5kZXg6IDMwMDA7XHJcblx0I3ByaW9yaXRpZXMtc2lkZWJhcntcclxuXHRcdG1hcmdpbi10b3A6IDA7XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdHRvcDogNDVweDtcclxuXHR9XHJcbn1cclxuXHJcbi5wcmlvcml0aWVzLW5hdi1iZ3tcclxuXHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHR3aWR0aDogMjQzcHg7XHJcblx0ei1pbmRleDogLTE7XHJcblx0dG9wOiAwO1xyXG59XHJcblxyXG4jY29udGVudC5wcmlvcml0aWVzLWNvbnRlbnR7XHJcblx0bWFyZ2luLWxlZnQ6IDI3NXB4O1xyXG5cdG1hcmdpbi10b3A6IDA7XHJcblx0cGFkZGluZy10b3A6IDA7XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bWFyZ2luLXRvcDogNTBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5wcmlvcml0aWVzLW5hdi1hcnJvd3tcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAxN3B4O1xyXG5cdHJpZ2h0OiAtNDBweDtcclxuXHR3aWR0aDogMDtcclxuXHRoZWlnaHQ6IDA7XHJcblx0Ym9yZGVyLXRvcDogMThweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRib3JkZXItYm90dG9tOiAxOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1yaWdodDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRib3JkZXItbGVmdDogMjBweCBzb2xpZCBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRvcGFjaXR5OiAxO1xyXG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xyXG5cdEBpbmNsdWRlIHRyYW5zaXRpb24odG9wIDAuM3MgMHMgZWFzZSk7XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIFByaW9yaXR5IENvbnRlbnRcclxuXHJcbi5wcmlvcml0eXtcclxuXHQmLXNlY3Rpb257XHJcblx0XHRtYXJnaW4tdG9wOiA1MHB4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0XHQmOmZpcnN0LWNoaWxke1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xyXG5cdFx0fVxyXG5cdFx0JjpsYXN0LWNoaWxke1xyXG5cdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdCYtcG9zdC10aXRsZXtcclxuXHRcdHBhZGRpbmctbGVmdDogNjVweDtcclxuXHRcdGNvbG9yOiAkYmxhY2s7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0dG9wOiAycHg7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jc2Nob29scy1zZWN0aW9uIC5wcmlvcml0eS1wb3N0LXRpdGxle1xyXG5cdHBhZGRpbmctbGVmdDogNzVweDtcclxuXHRAaW5jbHVkZSBzcHJpdGUoNTZweCwgNDFweCwgMCwgLTM5MHB4KTtcclxufVxyXG4jam9icy1zZWN0aW9uIC5wcmlvcml0eS1wb3N0LXRpdGxle1xyXG5cdEBpbmNsdWRlIHNwcml0ZSg0MHB4LCA0MnB4LCAtNjBweCwgLTM5MHB4KTtcclxufVxyXG4jZ292ZXJubWVudC1zZWN0aW9uIC5wcmlvcml0eS1wb3N0LXRpdGxle1xyXG5cdEBpbmNsdWRlIHNwcml0ZSg1M3B4LCA0NXB4LCAtMTIwcHgsIC0zOTBweCk7XHJcbn1cclxuXHJcbi5hbmNob3Ige1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLnByaW9yaXRpZXMtbWFpbi1uYXZfZmFkZS1vdXR7XHJcblx0b3BhY2l0eTogMC4wO1xyXG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1vdXQ7XHJcblx0LW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0LW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHQtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG59XHJcbiIsInNlbGVjdCB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG59IiwiLy8gU0lERUJBUi5zY3NzXHJcbi53aWRnZXR7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICBoNXtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHggMTNweCAyNXB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wOGVtO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuICAubWVudS1hYm91dC1jb250YWluZXIge1xyXG4gICAgdWwge1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgdWx7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgYm9yZGVyLXRvcDogMDtcclxuICAgIHVse1xyXG4gICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgbGl7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICAgIGF7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFlbTtcclxuICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgZWFzZSAuMnMpO1xyXG4gICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA1JSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZGl2e1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgIC8vIGJvcmRlci10b3A6IDA7XHJcbiAgICB1bHtcclxuICAgICAgYm9yZGVyOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAudGV4dHdpZGdldCB7XHJcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMDtcclxuICB9XHJcbn1cclxuXHJcbi8vIFRPRE8gQ29uc29saWRhdGUgYWxsIHdpZGdldCBzdHlsZXNcclxuLnBhbmVsIC53aWRnZXRfdGV4dCB7XHJcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gIC50ZXh0d2lkZ2V0IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIE5FV1NST09NIFNJREVCQVJcclxuXHJcbi53aWRnZXRfbmF2X21lbnUge1xyXG5cclxuICAjbmV3c3Jvb20tc2lkZWJhcntcclxuICAgIHVsI21lbnUtbmV3c3Jvb20ge1xyXG4gICAgICBsaS5jdXJyZW50LW1lbnUtaXRlbXtcclxuICAgICAgICBhe1xyXG4gICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEgI3skc21hbGwtb25seX17XHJcblxyXG4gICAgdWwjbWVudS1uZXdzcm9vbXtcclxuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICYubW9iaWxlLWRyb3Bkb3due1xyXG4gICAgICAgIGxpe1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICAgICAgICAmOmxhc3QtY2hpbGR7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEFSQ0hJVkUgV0lER0VUXHJcblxyXG4ud2lkZ2V0IHtcclxuICAmLWFyY2hpdmVsaXN0LXllYXIsXHJcbiAgI21lbnUtd2Vla2x5LXJlcG9ydHMge1xyXG4gICAgPiBhLCBcclxuICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS4xZW07XHJcbiAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICB9XHJcbiAgICB1bCB7XHJcbiAgICAgIGhlaWdodDogMHB4O1xyXG4gICAgICBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgbGl7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMzBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYuY3VycmVudC1hcmNoaXZlLXllYXIsIC5jdXJyZW50LXJlcG9ydHtcclxuICAgICAgPiBhLCAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGF7XHJcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtOTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdWx7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuY3VycmVudC1yZXBvcnR7XHJcbiAgICAgID4gYSwgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhe1xyXG4gICAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA1JSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50dXQtdHdlZXQge1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIGZvbnQtc2l6ZTogLjk1ZW07XHJcbiAgICAudHV0LXVzZXItbmFtZXtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIC50dXQtc2NyZWVuLW5hbWV7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBoZWFkZXJ7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB3aWR0aDogMjAlO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICB9XHJcbiAgICAudHV0LXByb2ZpbGUtaW1hZ2V7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICAgIGxpLCAudHV0LXRleHR7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG4gICAgLnR1dC10ZXh0e1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICB9XHJcbiAgICBhe1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgLy8gYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICBmb250LXNpemU6IC45NWVtO1xyXG4gICAgfVxyXG4gICAgJjo6YmVmb3JlLFxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnICc7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuICB9XHJcbiAgLnR1dC10d2VldHMgbGl7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gIH1cclxuICAudHV0LWZvbGxvdy1saW5re1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDJweDtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gIH1cclxuICAvLyAudHV0LWFjdGlvbnMgYTpmaXJzdC1jaGlsZCB7XHJcbiAgLy8gICAgIG1hcmdpbjowcHg7XHJcbiAgLy8gfVxyXG4gIC50dXQtYWN0aW9uc3tcclxuICAgIGZsb2F0OnJpZ2h0O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICBhe1xyXG4gICAgICBtYXJnaW4tbGVmdDo4cHg7XHJcbiAgICAgIHdpZHRoOjE2cHg7XHJcbiAgICAgIGhlaWdodDoxNnB4O1xyXG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvZXZlcnl0aGluZy1zcHJpdGUtbGlnaHQucG5nJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1dC1yZXBseTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50dXQtcmV0d2VldCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjotODJweCAwO1xyXG4gICAgfVxyXG4gICAgLnR1dC1yZXR3ZWV0OmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMDFweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50dXQtZmF2b3JpdGUge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246LTMycHggMDtcclxuICAgIH1cclxuICAgIC50dXQtZmF2b3JpdGU6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246LTQ4cHggMDtcclxuICAgIH1cclxuICB9XHJcbiAgLnR1dC10aW1le1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxufVxyXG4ud2lkZ2V0X25ld3NsZXR0ZXJfd2lkZ2V0e1xyXG4gIC5uZXdzbGV0dGVyX3dpZGdldF9jb250YWluZXJ7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XHJcbiAgICBkaXZ7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxuICAgIC5uaW5qYS1mb3Jtcy1jb250e1xyXG4gICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRnb2xkO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGgze1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICB9XHJcbiAgZm9ybXtcclxuICAgIGlucHV0e1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBib3JkZXI6IHNvbGlkIDRweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuICAgICAgJjpmb2N1c3tcclxuICAgICAgICBib3JkZXItY29sb3I6ICRuYXZ5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuYnV0dG9uLnNlY29uZGFyeXtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgJjpob3ZlcntcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG5hdnksIDUlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gU2NoZWR1bGUgRmlsdGVyIFdpZGdldFxyXG5cclxuLndpZGdldF9zY2hlZHVsZV9maWx0ZXJfd2lkZ2V0e1xyXG4gICN0cmliZS1ldmVudHMtYmFye1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIGg0e1xyXG4gICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuICAgIH1cclxuICAgIGRpdntcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG4gICAgbGFiZWx7XHJcbiAgICAgIGNvbG9yOiBkYXJrZW4oJHdoaXRlLCAzMCUpO1xyXG4gICAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIH1cclxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJde1xyXG4gICAgICBib3JkZXI6IHNvbGlkIDVweCBkYXJrZW4oJHdoaXRlLCA4JSk7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTVweDtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIH1cclxuICAgIC50cmliZS1iYXItc2VhcmNoLWNvbnRhaW5lcntcclxuICAgICAgaW5wdXR7XHJcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRlbigkYmxhY2ssIDUwJSk7XHJcbiAgICAgICAgQGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3JkZXItcmFkaXVzLCA1MHB4KTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XHJcbiAgICAgICAgY29sb3I6IGRhcmtlbigkd2hpdGUsIDMwJSk7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSBzcHJpdGUoMTVweCwgMTVweCwgLTE1MHB4LCAtMzBweCk7XHJcbiAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgIHRvcDogMTNweDtcclxuICAgICAgICBsZWZ0OiAxNnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuYnV0dG9uLnByaW1hcnl7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRnb2xkO1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHQjc2NoZWR1bGUtd2lkZ2V0e1xyXG5cdFx0cGFkZGluZzogMjBweDtcclxuXHRcdGg0e1xyXG5cdFx0XHRmb250LXNpemU6IDFlbTtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdH1cclxuXHRcdGRpdntcclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0fVxyXG5cdFx0bGFiZWx7XHJcblx0XHRcdGNvbG9yOiBkYXJrZW4oJHdoaXRlLCAzMCUpO1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHRcdH1cclxuXHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJde1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDVweCBkYXJrZW4oJHdoaXRlLCA4JSk7XHJcblx0XHQgIG91dGxpbmU6IG5vbmU7XHJcblx0XHQgIHBhZGRpbmc6IDAgMTVweDtcclxuXHRcdCAgZGlzcGxheTogYmxvY2s7XHJcblx0XHQgIGhlaWdodDogNTBweDtcclxuXHRcdCAgYm94LXNoYWRvdzogbm9uZTtcclxuXHRcdH1cclxuXHRcdC5zY2hlZHVsZV9zZWFyY2h7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDVweDtcclxuXHRcdFx0aW5wdXRbdHlwZT1cInNlYXJjaFwiXXtcclxuXHRcdFx0XHRib3JkZXI6IHNvbGlkIDFweCAkYmx1ZS1icmlnaHQ7XHJcblx0XHRcdFx0QGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3JkZXItcmFkaXVzLCA1MHB4KTtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcblx0XHRcdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zZWFyY2gtYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIHJpZ2h0OiAxNXB4O1xyXG4gICAgICB9XHJcblx0XHR9XHJcblx0XHQuYnV0dG9uLnByaW1hcnl7XHJcblx0XHRcdGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRwYWRkaW5nOiAxMnB4IDIwcHg7XHJcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4udWktZGF0ZXBpY2tlci1oZWFkZXJ7XHJcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYm9yZGVyOiBzb2xpZCAycHggcmdiKDIyMSwgMjIxLCAyMjEpO1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgLnVpLWRhdGVwaWNrZXItbmV4dHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICB9XHJcbiAgLnVpLWRhdGVwaWNrZXItcHJldntcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gIH1cclxuICAudWktZGF0ZXBpY2tlci10aXRsZXtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1vYmlsZSBTY2hlZHVsZSBzaWRlYmFyXHJcblxyXG4uc2NoZWR1bGUtcGFnZSB7XHJcbiAgQG1lZGlhICN7JG1lZGl1bS1kb3dufXtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLnNjaGVkdWxlLXBhZ2V7XHJcbiAgQG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG4jc2NoZWR1bGUtc2lkZWJhcntcclxuICBAbWVkaWEgI3skc21hbGwtb25seX17XHJcbiAgICAud2lkZ2V0X3NjaGVkdWxlX2ZpbHRlcl93aWRnZXQgI3NjaGVkdWxlLXdpZGdldHtcclxuICAgICAgLnNjaGVkdWxlX3NlYXJjaCB7XHJcbiAgICAgICAgaW5wdXRbdHlwZT1zZWFyY3NoXXtcclxuICAgICAgICAgIEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgMCk7XHJcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XHJcbiAgICAgIH1cclxuICAgICAgbGFiZWx7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAmOmZpcnN0LW9mLXR5cGV7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bGFzdC1vZi10eXBle1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLmJ1dHRvbi5wcmltYXJ5e1xyXG4gICAgICAgIHdpZHRoOiAyMzBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiN1aS1kYXRlcGlja2VyLWRpdntcclxuICB0YWJsZXtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59IiwiLy8gU0lURU1BUC5zY3NzXHJcblxyXG51bC5zaXRlLW1hcHtcclxuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblx0bWFyZ2luOiAwO1xyXG5cdGxpe1xyXG5cdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsKCk7XHJcblx0XHQmLm1lbnUtaXRlbS1kZXB0aC0we1xyXG5cdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRtYXJnaW4tdG9wOjE1cHg7XHJcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdFx0Zm9udC1zaXplOiAyNXB4O1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkKCk7XHJcblx0XHRcdD4gYXtcclxuXHRcdFx0XHRjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufSIsIiRyZXNwb25zaXZlLWNhcmQtdGFibGUtYm90dG9tLWdhcDogMS41cmVtO1xyXG4kcmVzcG9uc2l2ZS1jYXJkLXRhYmxlLXN0YWNrLXBvaW50OiA2My45Mzc1ZW07XHJcblxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtY2FyZC10YWJsZS1ib3R0b20tZ2FwO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRyZXNwb25zaXZlLWNhcmQtdGFibGUtc3RhY2stcG9pbnQpIHtcclxuICAgICAgICB0aGVhZCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIHRyIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogLTk5OTllbTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IC05OTk5ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBHZXQgdGFibGUgY2VsbHMgdG8gYWN0IGxpa2Ugcm93cyAqL1xyXG5cclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvLyB0ZXh0eSB0aGluZ3NcclxuLnRleHQtd2VpZ2h0LWJvbGQge1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG59XHJcblxyXG4udGV4dC13ZWlnaHQtbm9ybWFsIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbCgpO1xyXG59XHJcblxyXG4udGV4dC13ZWlnaHQtbGlnaHQge1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbGlnaHQoKTtcclxufVxyXG5cclxuLnRleHQtdXBwZXJjYXNlIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi50ZXh0LXVuZGVybGluZSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLnRvcC1uYXZpZ2F0aW9uLXRleHQge1xyXG4gICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnNpZGViYXItbmF2aWdhdGlvbi10ZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogMS43NWVtO1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiAkbmF2eTtcclxufVxyXG5cclxuLy8gc3R5bGUgZnJvbSBvbGQgdGhlbWVcclxuYmxvY2txdW90ZSB7XHJcblx0bWFyZ2luOiAzMHB4IDA7XHJcblx0cGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjU4NzVyZW07XHJcblx0cCB7XHJcblx0XHRmb250LXNpemU6IDEuNWVtO1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuXHRcdGNvbG9yOiAkYmxhY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdFx0JjpsYXN0LWNoaWxke1xyXG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vLyBtYXliZSB0aGlzIHNob3VsZCBnbyBpbnRvIGEgY29tcG9uZW50cyAvIHNlY3Rpb24gP1xyXG4laGVhZGluZy1kZWZhdWx0cyB7XHJcbiAgICBjb2xvcjogJG5hdnk7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtbW9udHNlcnJhdDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcbiAgICAmLml0YWxpYyB7XHJcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgfVxyXG4gICAgPiBhIHsgY29sb3I6IGluaGVyaXQ7fVxyXG59XHJcblxyXG4laGVhZGVyLXVuZGVybGluZSB7XHJcbiAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBmb250LXNpemU6IDIuNWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgJGJsdWUtYnJpZ2h0O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi10aXRsZSB7XHJcbiAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG5cclxuLmgxLFxyXG5oMSB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIC8vIGRvdWJsZSBjaGVjayB0aGVyZSBpcyBub3QgYXR0ZW1wdGVkIHN0eWxpbmdcclxuICAgICY6bm90KFtjbGFzc10pIHtcclxuICAgICAgICAuYXJ0aWNsZSAmLFxyXG4gICAgICAgICNjb250ZW50ICNtYWluIGFydGljbGUgJiB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWhlYWRlci11bmRlcmxpbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICAgICZfX3NlY3Rpb24ge1xyXG4gICAgICAgIEBleHRlbmQgJWhlYWRlci11bmRlcmxpbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oMixcclxuaDIge1xyXG4gICAgQGV4dGVuZCAlaGVhZGluZy1kZWZhdWx0cztcclxuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG5cclxuICAgIC5hcnRpY2xlICYge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuMjVyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oMyxcclxuaDMge1xyXG4gICAgQGV4dGVuZCAlaGVhZGluZy1kZWZhdWx0cztcclxuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICAgIC5hcnRpY2xlICYge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNjI1cmVtO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDEuMTg3NXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmg0LFxyXG5oNCB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07XHJcbiAgICAuYXJ0aWNsZSAmIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjYyNXJlbTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmg1LFxyXG5oNSB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmg2LFxyXG5oNiB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG59IiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAgICAgUEFJOiBnb3Zlcm5vci5QQS5nb3ZcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4lY29sdW1uLWRlZmF1bHQge1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcclxuICAgIH1cclxuICAgICVjb2x1bW4tZGVmYXVsdCB7XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmNvbHVtbiB7XHJcbiAgICBAZXh0ZW5kICVjb2x1bW4tZGVmYXVsdDtcclxufVxyXG5cclxuLmNvbHVtbnMge1xyXG4gICAgQGV4dGVuZCAlY29sdW1uLWRlZmF1bHQ7XHJcbn1cclxuXHJcbi5oZWFkZXIge1xyXG4gICAgJl9fcGhvdG8tY3JlZCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiA0MHB4O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZWFsO1xyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBpbnNlcnQgbWFwIG1hcmtlciBhZnRlciBsb2NhdGlvbiB0ZXh0XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMDQxXCI7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNzVyZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4yNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gVE9ETyBNaWdyYXRlIHRoaXMgdG8gd2hlcmUgaXRzIGFwcHJvcHJpYXRlXHJcbi8vIEFyY2hpdmUgd2lkZ2V0LCBoaWRlIG9uIG1vYmlsZVxyXG4ud2lkZ2V0X2FyY2hpdmVsaXN0X3dpZGdldCxcclxuLndpZGdldF9vcmRlcnNhcmNoaXZlbGlzdF93aWRnZXQge1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFRPRE8gTWlncmF0ZSB0aGlzIHRvIHdoZXJlIGl0cyBhcHByb3ByaWF0ZVxyXG4ud2lkZ2V0X25ld3NsZXR0ZXJfd2lkZ2V0IHtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcbi8vIFRPRE8gTWlncmF0ZSB0aGlzIHRvIHdoZXJlIGl0cyBhcHByb3ByaWF0ZVxyXG4jc2NoZWR1bGUtc2lkZWJhciAud2lkZ2V0X3NjaGVkdWxlX2ZpbHRlcl93aWRnZXQgI3NjaGVkdWxlLXdpZGdldCB7XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcclxuICAgIH1cclxufVxyXG4vL0dvb2dsZSBUcmFuc2xhdGVcclxuLmdvb2dsZS10cmFuc2xhdGUge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBoZWlnaHQ6IDQ2cHg7XHJcbiAgICA+IGRpdiB7XHJcbiAgICAgICAgdG9wOiAxNnB4O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgLmdvb2dsZS1hbHQge1xyXG4gICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgd2lkdGg6IDkwcHg7XHJcbiAgICAgICAgdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQge1xyXG4gICAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4uZ29vZy10ZS1iYW5uZXItZnJhbWUge1xyXG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XHJcbiAgICB0b3A6IDY0cHggIWltcG9ydGFudDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB6LWluZGV4OiAxMDA0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nb29nLXRlLWdhZGdldC1pY29uIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5nb29nbGUtYWx0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcmlnaHQ6IDEwcHg7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB6LWluZGV4OiAwICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogcmVkO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWdyaWQ7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgbGVmdDogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBsaW5lLWhlaWdodDogMi4wNTtcclxuXHJcbiAgICAgICAgZm9udC1zaXplOiAuNjVlbTtcclxuICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkYmx1ZTtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAuZmEge1xyXG4gICAgICAgICAgICBjb2xvcjokYmx1ZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZmEtY2FyZXQtZG93biB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZW1iZWQtcmVzcG9uc2l2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4vLyBbZGF0YS1hYmlkZV0ge1xyXG4vLyAgICAgLmVycm9yIHtcclxuLy8gICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuLy8gICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG4vLyBGb3IgSnF1ZXJ5IFZhbGlkYXRlXHJcbltkYXRhLWFiaWRlXSB7XHJcbiAgICAuZXJyb3Ige1xyXG4gICAgICAgIHNtYWxsLmVycm9yLCBzcGFuLmVycm9yIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcclxuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgcGFkZGluZzogLjM3NXJlbSAuNTYyNXJlbSAuNTYyNXJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjA0MTI0O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc21hbGwuZXJyb3IsIHNwYW4uZXJyb3Ige1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcclxuICAgICAgICBwYWRkaW5nOiAuMzc1cmVtIC41NjI1cmVtIC41NjI1cmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmMDQxMjQ7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIHNtYWxsLmVycm9yLCBzcGFuLmVycm9yIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5lcnJvciBzbWFsbC5lcnJvciwgc21hbGwuZXJyb3IsIHNwYW4uZXJyb3Ige1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAuNzVyZW07XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgcGFkZGluZzogLjM3NXJlbSAuNTYyNXJlbSAuNTYyNXJlbTtcclxuICAgIGJhY2tncm91bmQ6ICNmMDQxMjQ7XHJcbiAgICB9XHJcblxyXG4gICAgc21hbGwuZXJyb3IsIHNwYW4uZXJyb3Ige1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLmVycm9yIHtcclxuICAgIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgaW5wdXQge1xyXG4gICAgICAgICZbdHlwZT1jaGVja2JveF0sICZbdHlwZT1yYWRpb10ge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc21hbGwuZXJyb3Ige1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICB9XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgY29sb3I6ICNmMDQxMjQ7XHJcbiAgICAgICAgJi5lcnJvciB7XHJcbiAgICAgICAgY29sb3I6ICNmMDQxMjQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc21hbGwuZXJyb3Ige1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgICA+IGxhYmVsID4gc21hbGwge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IDAgMDtcclxuICAgICAgICBjb2xvcjogIzY3Njc2NztcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgZm9udC1zaXplOiA2MCU7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZXJyb3Igc3Bhbi5lcnJvci1tZXNzYWdlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5pbnB1dC5lcnJvciwgc2VsZWN0LmVycm9yLCB0ZXh0YXJlYS5lcnJvciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59IiwiLypcclxuXHJcbiAgICBDdXN0b20gUEEuR292IHN0eWxpbmcgZm9yIE5pbmphIEZvcm1zIGVsZW1lbnRzXHJcblxyXG4qL1xyXG5cclxuQGltcG9ydCAnaGVscGVycy9jb2xvcnMnO1xyXG5AaW1wb3J0ICdoZWxwZXJzL21peGlucyc7XHJcblxyXG4ubmYtZmllbGQtbGFiZWwge1xyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuMjVlbTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuLm5mLWZvcm0tZmllbGRzLXJlcXVpcmVkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QWFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUNBb0J5QztBQStEekMsQUFBQSxPQUFPLENBQVM7RUFBRSxVQUFVLEVBM0RoQixPQUFPO0NBMkRpQjs7QUFDcEMsQUFBQSxPQUFPLENBQVM7RUFBRSxVQUFVLEVBM0RoQixPQUFPO0NBMkRpQjs7QUFDcEMsQUFBQSxVQUFVLENBQU07RUFBRSxVQUFVLEVBM0RoQixPQUFPO0NBMkRvQjs7QUFDdkMsQUFBQSxVQUFVLENBQU07RUFBRSxVQUFVLEVBMURoQixPQUFPO0NBMERvQjs7QUFDdkMsQUFBQSxXQUFXLENBQUs7RUFBRSxVQUFVLEVBNURoQixJQUFJO0NBNER3Qjs7QUFFeEMsQUFBQSxPQUFPLENBQVM7RUFBRSxVQUFVLEVBM0RoQixPQUFPO0NBMkRpQjs7QUFDcEMsQUFBQSxRQUFRLENBQVE7RUFBRSxVQUFVLEVBNURoQixPQUFPO0NBNERvQjs7QUFDdkMsQUFBQSxXQUFXLENBQUs7RUFBRSxVQUFV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 */
