@charset "UTF-8";
/*Verisk colors*/
/**
 * Foundation for Sites
 * Version 6.8.1
 * https://get.foundation
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal.large, .reveal.small, .reveal.tiny, .reveal {
    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 {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible;
}

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

a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: 0;
  -webkit-text-decoration: underline dotted;
          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 {
  -webkit-box-sizing: border-box;
          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] {
  -webkit-box-sizing: border-box;
          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;
}

[data-whatintent=mouse] *, [data-whatintent=mouse] *:focus,
[data-whatintent=touch] *,
[data-whatintent=touch] *:focus,
[data-whatinput=mouse] *,
[data-whatinput=mouse] *:focus,
[data-whatinput=touch] *,
[data-whatinput=touch] *:focus {
  outline: none;
}

[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
}

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

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

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: Roboto, "Helvetica Neue", Helvetica, Roboto, Arial, 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: 5px;
}

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 5px;
}

.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;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 5px;
  background: transparent;
  line-height: 1;
  cursor: auto;
}
[data-whatinput=mouse] button {
  outline: 0;
}

pre {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

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;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 5px;
  background-color: #fefefe;
  -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
          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;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          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: #fefefe;
  -webkit-box-shadow: 0 0 5px #cacaca;
          box-shadow: 0 0 5px #cacaca;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
}

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] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 5px;
}

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

::-webkit-input-placeholder {
  color: #cacaca;
}

::-moz-placeholder {
  color: #cacaca;
}

:-ms-input-placeholder {
  color: #cacaca;
}

::-ms-input-placeholder {
  color: #cacaca;
}

::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;
  line-height: 1.5;
  padding: 0.5625rem 0;
}

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

.input-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.input-group > :first-child, .input-group > :first-child.input-group-button > * {
  border-radius: 5px 0 0 5px;
}
.input-group > :last-child, .input-group > :last-child.input-group-button > * {
  border-radius: 0 5px 5px 0;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label, .input-group-button, .input-group-field, .input-group-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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          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;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  min-width: 0;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  -ms-flex-item-align: stretch;
      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;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 5px;
  background-color: #fefefe;
  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;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
}
@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: #fefefe;
  -webkit-box-shadow: 0 0 5px #cacaca;
          box-shadow: 0 0 5px #cacaca;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
}
select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}
select:not([multiple]) {
  padding-top: 0;
  padding-bottom: 0;
}

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea;
}
.is-invalid-input:not(:focus)::-webkit-input-placeholder {
  color: #cc4b37;
}
.is-invalid-input:not(:focus)::-moz-placeholder {
  color: #cc4b37;
}
.is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #cc4b37;
}
.is-invalid-input:not(:focus)::-ms-input-placeholder {
  color: #cc4b37;
}
.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: Roboto, "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: #00358e;
  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: #8a8a8a;
}

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 2.25rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
  h2, .h2 {
    font-size: 1.75rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
  h3, .h3 {
    font-size: 1.5rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
  h4, .h4 {
    font-size: 1.3125rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
  h5, .h5 {
    font-size: 1.125rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
  h6, .h6 {
    font-size: 1rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
}
a {
  line-height: inherit;
  color: #00358e;
  text-decoration: none;
  cursor: pointer;
}
a:hover, a:focus {
  color: #002e7a;
  text-decoration: underline;
}
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: circle;
}

ol {
  margin-left: 1.25rem;
}

ul ul, ul ol, ol ul, 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;
}

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

figure {
  margin: 0;
}

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

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

.cite-block, cite {
  display: block;
  color: #8a8a8a;
  font-size: 0.8125rem;
}
.cite-block:before, cite:before {
  content: "— ";
}

.code-inline, code {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem;
}

.code-block {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem;
}

.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;
    color: black !important;
    -webkit-print-color-adjust: economy;
            print-color-adjust: economy;
    -webkit-box-shadow: none !important;
            box-shadow: none !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;
  }
}
.grid-container {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}
@media print, screen and (min-width: 40em) {
  .grid-container {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}
.grid-container.fluid {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media print, screen and (min-width: 40em) {
  .grid-container.fluid {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}
.grid-container.full {
  padding-right: 0;
  padding-left: 0;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.grid-x {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.cell {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  min-height: 0;
  min-width: 0;
  width: 100%;
}
.cell.auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
}
.cell.shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.grid-x > .auto {
  width: auto;
}
.grid-x > .shrink {
  width: auto;
}

.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
}

@media print, screen and (min-width: 40em) {
  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}
.grid-x > .small-12, .grid-x > .small-11, .grid-x > .small-10, .grid-x > .small-9, .grid-x > .small-8, .grid-x > .small-7, .grid-x > .small-6, .grid-x > .small-5, .grid-x > .small-4, .grid-x > .small-3, .grid-x > .small-2, .grid-x > .small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.grid-x > .small-1 {
  width: 8.3333333333%;
}

.grid-x > .small-2 {
  width: 16.6666666667%;
}

.grid-x > .small-3 {
  width: 25%;
}

.grid-x > .small-4 {
  width: 33.3333333333%;
}

.grid-x > .small-5 {
  width: 41.6666666667%;
}

.grid-x > .small-6 {
  width: 50%;
}

.grid-x > .small-7 {
  width: 58.3333333333%;
}

.grid-x > .small-8 {
  width: 66.6666666667%;
}

.grid-x > .small-9 {
  width: 75%;
}

.grid-x > .small-10 {
  width: 83.3333333333%;
}

.grid-x > .small-11 {
  width: 91.6666666667%;
}

.grid-x > .small-12 {
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .grid-x > .medium-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    width: auto;
  }
  .grid-x > .medium-12, .grid-x > .medium-11, .grid-x > .medium-10, .grid-x > .medium-9, .grid-x > .medium-8, .grid-x > .medium-7, .grid-x > .medium-6, .grid-x > .medium-5, .grid-x > .medium-4, .grid-x > .medium-3, .grid-x > .medium-2, .grid-x > .medium-1, .grid-x > .medium-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .grid-x > .medium-shrink {
    width: auto;
  }
  .grid-x > .medium-1 {
    width: 8.3333333333%;
  }
  .grid-x > .medium-2 {
    width: 16.6666666667%;
  }
  .grid-x > .medium-3 {
    width: 25%;
  }
  .grid-x > .medium-4 {
    width: 33.3333333333%;
  }
  .grid-x > .medium-5 {
    width: 41.6666666667%;
  }
  .grid-x > .medium-6 {
    width: 50%;
  }
  .grid-x > .medium-7 {
    width: 58.3333333333%;
  }
  .grid-x > .medium-8 {
    width: 66.6666666667%;
  }
  .grid-x > .medium-9 {
    width: 75%;
  }
  .grid-x > .medium-10 {
    width: 83.3333333333%;
  }
  .grid-x > .medium-11 {
    width: 91.6666666667%;
  }
  .grid-x > .medium-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-x > .large-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    width: auto;
  }
  .grid-x > .large-12, .grid-x > .large-11, .grid-x > .large-10, .grid-x > .large-9, .grid-x > .large-8, .grid-x > .large-7, .grid-x > .large-6, .grid-x > .large-5, .grid-x > .large-4, .grid-x > .large-3, .grid-x > .large-2, .grid-x > .large-1, .grid-x > .large-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .grid-x > .large-shrink {
    width: auto;
  }
  .grid-x > .large-1 {
    width: 8.3333333333%;
  }
  .grid-x > .large-2 {
    width: 16.6666666667%;
  }
  .grid-x > .large-3 {
    width: 25%;
  }
  .grid-x > .large-4 {
    width: 33.3333333333%;
  }
  .grid-x > .large-5 {
    width: 41.6666666667%;
  }
  .grid-x > .large-6 {
    width: 50%;
  }
  .grid-x > .large-7 {
    width: 58.3333333333%;
  }
  .grid-x > .large-8 {
    width: 66.6666666667%;
  }
  .grid-x > .large-9 {
    width: 75%;
  }
  .grid-x > .large-10 {
    width: 83.3333333333%;
  }
  .grid-x > .large-11 {
    width: 91.6666666667%;
  }
  .grid-x > .large-12 {
    width: 100%;
  }
}
.grid-margin-x:not(.grid-x) > .cell {
  width: auto;
}

.grid-margin-y:not(.grid-y) > .cell {
  height: auto;
}

.grid-margin-x {
  margin-left: -0.625rem;
  margin-right: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-margin-x {
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
  }
}
.grid-margin-x > .cell {
  width: calc(100% - 1.25rem);
  margin-left: 0.625rem;
  margin-right: 0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-margin-x > .cell {
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.grid-margin-x > .auto {
  width: auto;
}
.grid-margin-x > .shrink {
  width: auto;
}
.grid-margin-x > .small-1 {
  width: calc(8.3333333333% - 1.25rem);
}
.grid-margin-x > .small-2 {
  width: calc(16.6666666667% - 1.25rem);
}
.grid-margin-x > .small-3 {
  width: calc(25% - 1.25rem);
}
.grid-margin-x > .small-4 {
  width: calc(33.3333333333% - 1.25rem);
}
.grid-margin-x > .small-5 {
  width: calc(41.6666666667% - 1.25rem);
}
.grid-margin-x > .small-6 {
  width: calc(50% - 1.25rem);
}
.grid-margin-x > .small-7 {
  width: calc(58.3333333333% - 1.25rem);
}
.grid-margin-x > .small-8 {
  width: calc(66.6666666667% - 1.25rem);
}
.grid-margin-x > .small-9 {
  width: calc(75% - 1.25rem);
}
.grid-margin-x > .small-10 {
  width: calc(83.3333333333% - 1.25rem);
}
.grid-margin-x > .small-11 {
  width: calc(91.6666666667% - 1.25rem);
}
.grid-margin-x > .small-12 {
  width: calc(100% - 1.25rem);
}
@media print, screen and (min-width: 40em) {
  .grid-margin-x > .auto {
    width: auto;
  }
  .grid-margin-x > .shrink {
    width: auto;
  }
  .grid-margin-x > .small-1 {
    width: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-x > .small-2 {
    width: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-x > .small-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .small-4 {
    width: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-x > .small-5 {
    width: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-x > .small-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .small-7 {
    width: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-x > .small-8 {
    width: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-x > .small-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .small-10 {
    width: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-x > .small-11 {
    width: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-x > .small-12 {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x > .medium-auto {
    width: auto;
  }
  .grid-margin-x > .medium-shrink {
    width: auto;
  }
  .grid-margin-x > .medium-1 {
    width: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-x > .medium-2 {
    width: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-x > .medium-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .medium-4 {
    width: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-x > .medium-5 {
    width: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-x > .medium-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .medium-7 {
    width: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-x > .medium-8 {
    width: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-x > .medium-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .medium-10 {
    width: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-x > .medium-11 {
    width: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-x > .medium-12 {
    width: calc(100% - 1.875rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-x > .large-auto {
    width: auto;
  }
  .grid-margin-x > .large-shrink {
    width: auto;
  }
  .grid-margin-x > .large-1 {
    width: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-x > .large-2 {
    width: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-x > .large-3 {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x > .large-4 {
    width: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-x > .large-5 {
    width: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-x > .large-6 {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x > .large-7 {
    width: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-x > .large-8 {
    width: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-x > .large-9 {
    width: calc(75% - 1.875rem);
  }
  .grid-margin-x > .large-10 {
    width: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-x > .large-11 {
    width: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-x > .large-12 {
    width: calc(100% - 1.875rem);
  }
}

.grid-padding-x .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-padding-x .grid-padding-x {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}
.grid-container:not(.full) > .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-container:not(.full) > .grid-padding-x {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}
.grid-padding-x > .cell {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-padding-x > .cell {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.small-up-1 > .cell {
  width: 100%;
}

.small-up-2 > .cell {
  width: 50%;
}

.small-up-3 > .cell {
  width: 33.3333333333%;
}

.small-up-4 > .cell {
  width: 25%;
}

.small-up-5 > .cell {
  width: 20%;
}

.small-up-6 > .cell {
  width: 16.6666666667%;
}

.small-up-7 > .cell {
  width: 14.2857142857%;
}

.small-up-8 > .cell {
  width: 12.5%;
}

@media print, screen and (min-width: 40em) {
  .medium-up-1 > .cell {
    width: 100%;
  }
  .medium-up-2 > .cell {
    width: 50%;
  }
  .medium-up-3 > .cell {
    width: 33.3333333333%;
  }
  .medium-up-4 > .cell {
    width: 25%;
  }
  .medium-up-5 > .cell {
    width: 20%;
  }
  .medium-up-6 > .cell {
    width: 16.6666666667%;
  }
  .medium-up-7 > .cell {
    width: 14.2857142857%;
  }
  .medium-up-8 > .cell {
    width: 12.5%;
  }
}
@media print, screen and (min-width: 64em) {
  .large-up-1 > .cell {
    width: 100%;
  }
  .large-up-2 > .cell {
    width: 50%;
  }
  .large-up-3 > .cell {
    width: 33.3333333333%;
  }
  .large-up-4 > .cell {
    width: 25%;
  }
  .large-up-5 > .cell {
    width: 20%;
  }
  .large-up-6 > .cell {
    width: 16.6666666667%;
  }
  .large-up-7 > .cell {
    width: 14.2857142857%;
  }
  .large-up-8 > .cell {
    width: 12.5%;
  }
}
.grid-margin-x.small-up-1 > .cell {
  width: calc(100% - 1.25rem);
}

.grid-margin-x.small-up-2 > .cell {
  width: calc(50% - 1.25rem);
}

.grid-margin-x.small-up-3 > .cell {
  width: calc(33.3333333333% - 1.25rem);
}

.grid-margin-x.small-up-4 > .cell {
  width: calc(25% - 1.25rem);
}

.grid-margin-x.small-up-5 > .cell {
  width: calc(20% - 1.25rem);
}

.grid-margin-x.small-up-6 > .cell {
  width: calc(16.6666666667% - 1.25rem);
}

.grid-margin-x.small-up-7 > .cell {
  width: calc(14.2857142857% - 1.25rem);
}

.grid-margin-x.small-up-8 > .cell {
  width: calc(12.5% - 1.25rem);
}

@media print, screen and (min-width: 40em) {
  .grid-margin-x.small-up-1 > .cell {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.small-up-2 > .cell {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.small-up-3 > .cell {
    width: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-x.small-up-4 > .cell {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.small-up-5 > .cell {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.small-up-6 > .cell {
    width: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-x.small-up-7 > .cell {
    width: calc(14.2857142857% - 1.875rem);
  }
  .grid-margin-x.small-up-8 > .cell {
    width: calc(12.5% - 1.875rem);
  }
  .grid-margin-x.medium-up-1 > .cell {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.medium-up-2 > .cell {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.medium-up-3 > .cell {
    width: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-x.medium-up-4 > .cell {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.medium-up-5 > .cell {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.medium-up-6 > .cell {
    width: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-x.medium-up-7 > .cell {
    width: calc(14.2857142857% - 1.875rem);
  }
  .grid-margin-x.medium-up-8 > .cell {
    width: calc(12.5% - 1.875rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-x.large-up-1 > .cell {
    width: calc(100% - 1.875rem);
  }
  .grid-margin-x.large-up-2 > .cell {
    width: calc(50% - 1.875rem);
  }
  .grid-margin-x.large-up-3 > .cell {
    width: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-x.large-up-4 > .cell {
    width: calc(25% - 1.875rem);
  }
  .grid-margin-x.large-up-5 > .cell {
    width: calc(20% - 1.875rem);
  }
  .grid-margin-x.large-up-6 > .cell {
    width: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-x.large-up-7 > .cell {
    width: calc(14.2857142857% - 1.875rem);
  }
  .grid-margin-x.large-up-8 > .cell {
    width: calc(12.5% - 1.875rem);
  }
}
.small-margin-collapse {
  margin-right: 0;
  margin-left: 0;
}
.small-margin-collapse > .cell {
  margin-right: 0;
  margin-left: 0;
}
.small-margin-collapse > .small-1 {
  width: 8.3333333333%;
}
.small-margin-collapse > .small-2 {
  width: 16.6666666667%;
}
.small-margin-collapse > .small-3 {
  width: 25%;
}
.small-margin-collapse > .small-4 {
  width: 33.3333333333%;
}
.small-margin-collapse > .small-5 {
  width: 41.6666666667%;
}
.small-margin-collapse > .small-6 {
  width: 50%;
}
.small-margin-collapse > .small-7 {
  width: 58.3333333333%;
}
.small-margin-collapse > .small-8 {
  width: 66.6666666667%;
}
.small-margin-collapse > .small-9 {
  width: 75%;
}
.small-margin-collapse > .small-10 {
  width: 83.3333333333%;
}
.small-margin-collapse > .small-11 {
  width: 91.6666666667%;
}
.small-margin-collapse > .small-12 {
  width: 100%;
}
@media print, screen and (min-width: 40em) {
  .small-margin-collapse > .medium-1 {
    width: 8.3333333333%;
  }
  .small-margin-collapse > .medium-2 {
    width: 16.6666666667%;
  }
  .small-margin-collapse > .medium-3 {
    width: 25%;
  }
  .small-margin-collapse > .medium-4 {
    width: 33.3333333333%;
  }
  .small-margin-collapse > .medium-5 {
    width: 41.6666666667%;
  }
  .small-margin-collapse > .medium-6 {
    width: 50%;
  }
  .small-margin-collapse > .medium-7 {
    width: 58.3333333333%;
  }
  .small-margin-collapse > .medium-8 {
    width: 66.6666666667%;
  }
  .small-margin-collapse > .medium-9 {
    width: 75%;
  }
  .small-margin-collapse > .medium-10 {
    width: 83.3333333333%;
  }
  .small-margin-collapse > .medium-11 {
    width: 91.6666666667%;
  }
  .small-margin-collapse > .medium-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .small-margin-collapse > .large-1 {
    width: 8.3333333333%;
  }
  .small-margin-collapse > .large-2 {
    width: 16.6666666667%;
  }
  .small-margin-collapse > .large-3 {
    width: 25%;
  }
  .small-margin-collapse > .large-4 {
    width: 33.3333333333%;
  }
  .small-margin-collapse > .large-5 {
    width: 41.6666666667%;
  }
  .small-margin-collapse > .large-6 {
    width: 50%;
  }
  .small-margin-collapse > .large-7 {
    width: 58.3333333333%;
  }
  .small-margin-collapse > .large-8 {
    width: 66.6666666667%;
  }
  .small-margin-collapse > .large-9 {
    width: 75%;
  }
  .small-margin-collapse > .large-10 {
    width: 83.3333333333%;
  }
  .small-margin-collapse > .large-11 {
    width: 91.6666666667%;
  }
  .small-margin-collapse > .large-12 {
    width: 100%;
  }
}

.small-padding-collapse {
  margin-right: 0;
  margin-left: 0;
}
.small-padding-collapse > .cell {
  padding-right: 0;
  padding-left: 0;
}

@media print, screen and (min-width: 40em) {
  .medium-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .medium-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-margin-collapse > .small-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .small-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .small-3 {
    width: 25%;
  }
  .medium-margin-collapse > .small-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .small-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .small-6 {
    width: 50%;
  }
  .medium-margin-collapse > .small-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .small-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .small-9 {
    width: 75%;
  }
  .medium-margin-collapse > .small-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .small-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .small-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-margin-collapse > .medium-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .medium-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .medium-3 {
    width: 25%;
  }
  .medium-margin-collapse > .medium-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .medium-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .medium-6 {
    width: 50%;
  }
  .medium-margin-collapse > .medium-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .medium-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .medium-9 {
    width: 75%;
  }
  .medium-margin-collapse > .medium-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .medium-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .medium-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .medium-margin-collapse > .large-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .large-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .large-3 {
    width: 25%;
  }
  .medium-margin-collapse > .large-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .large-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .large-6 {
    width: 50%;
  }
  .medium-margin-collapse > .large-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .large-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .large-9 {
    width: 75%;
  }
  .medium-margin-collapse > .large-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .large-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .medium-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .large-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .large-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0;
  }
}
@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .small-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .small-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .small-3 {
    width: 25%;
  }
  .large-margin-collapse > .small-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .small-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .small-6 {
    width: 50%;
  }
  .large-margin-collapse > .small-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .small-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .small-9 {
    width: 75%;
  }
  .large-margin-collapse > .small-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .small-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .small-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .medium-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .medium-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .medium-3 {
    width: 25%;
  }
  .large-margin-collapse > .medium-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .medium-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .medium-6 {
    width: 50%;
  }
  .large-margin-collapse > .medium-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .medium-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .medium-9 {
    width: 75%;
  }
  .large-margin-collapse > .medium-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .medium-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .medium-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .large-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .large-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .large-3 {
    width: 25%;
  }
  .large-margin-collapse > .large-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .large-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .large-6 {
    width: 50%;
  }
  .large-margin-collapse > .large-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .large-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .large-9 {
    width: 75%;
  }
  .large-margin-collapse > .large-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .large-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .large-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 64em) {
  .large-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .large-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

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

.grid-margin-x > .small-offset-0 {
  margin-left: calc(0% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-1 {
  margin-left: calc(8.3333333333% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-2 {
  margin-left: calc(16.6666666667% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-3 {
  margin-left: calc(25% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-4 {
  margin-left: calc(33.3333333333% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-5 {
  margin-left: calc(41.6666666667% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-6 {
  margin-left: calc(50% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-7 {
  margin-left: calc(58.3333333333% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-8 {
  margin-left: calc(66.6666666667% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-9 {
  margin-left: calc(75% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-10 {
  margin-left: calc(83.3333333333% + 1.25rem / 2);
}

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

.grid-margin-x > .small-offset-11 {
  margin-left: calc(91.6666666667% + 1.25rem / 2);
}

@media print, screen and (min-width: 40em) {
  .medium-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .medium-offset-0 {
    margin-left: calc(0% + 1.875rem / 2);
  }
  .medium-offset-1 {
    margin-left: 8.3333333333%;
  }
  .grid-margin-x > .medium-offset-1 {
    margin-left: calc(8.3333333333% + 1.875rem / 2);
  }
  .medium-offset-2 {
    margin-left: 16.6666666667%;
  }
  .grid-margin-x > .medium-offset-2 {
    margin-left: calc(16.6666666667% + 1.875rem / 2);
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .medium-offset-3 {
    margin-left: calc(25% + 1.875rem / 2);
  }
  .medium-offset-4 {
    margin-left: 33.3333333333%;
  }
  .grid-margin-x > .medium-offset-4 {
    margin-left: calc(33.3333333333% + 1.875rem / 2);
  }
  .medium-offset-5 {
    margin-left: 41.6666666667%;
  }
  .grid-margin-x > .medium-offset-5 {
    margin-left: calc(41.6666666667% + 1.875rem / 2);
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .medium-offset-6 {
    margin-left: calc(50% + 1.875rem / 2);
  }
  .medium-offset-7 {
    margin-left: 58.3333333333%;
  }
  .grid-margin-x > .medium-offset-7 {
    margin-left: calc(58.3333333333% + 1.875rem / 2);
  }
  .medium-offset-8 {
    margin-left: 66.6666666667%;
  }
  .grid-margin-x > .medium-offset-8 {
    margin-left: calc(66.6666666667% + 1.875rem / 2);
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .medium-offset-9 {
    margin-left: calc(75% + 1.875rem / 2);
  }
  .medium-offset-10 {
    margin-left: 83.3333333333%;
  }
  .grid-margin-x > .medium-offset-10 {
    margin-left: calc(83.3333333333% + 1.875rem / 2);
  }
  .medium-offset-11 {
    margin-left: 91.6666666667%;
  }
  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.6666666667% + 1.875rem / 2);
  }
}
@media print, screen and (min-width: 64em) {
  .large-offset-0 {
    margin-left: 0%;
  }
  .grid-margin-x > .large-offset-0 {
    margin-left: calc(0% + 1.875rem / 2);
  }
  .large-offset-1 {
    margin-left: 8.3333333333%;
  }
  .grid-margin-x > .large-offset-1 {
    margin-left: calc(8.3333333333% + 1.875rem / 2);
  }
  .large-offset-2 {
    margin-left: 16.6666666667%;
  }
  .grid-margin-x > .large-offset-2 {
    margin-left: calc(16.6666666667% + 1.875rem / 2);
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .grid-margin-x > .large-offset-3 {
    margin-left: calc(25% + 1.875rem / 2);
  }
  .large-offset-4 {
    margin-left: 33.3333333333%;
  }
  .grid-margin-x > .large-offset-4 {
    margin-left: calc(33.3333333333% + 1.875rem / 2);
  }
  .large-offset-5 {
    margin-left: 41.6666666667%;
  }
  .grid-margin-x > .large-offset-5 {
    margin-left: calc(41.6666666667% + 1.875rem / 2);
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .grid-margin-x > .large-offset-6 {
    margin-left: calc(50% + 1.875rem / 2);
  }
  .large-offset-7 {
    margin-left: 58.3333333333%;
  }
  .grid-margin-x > .large-offset-7 {
    margin-left: calc(58.3333333333% + 1.875rem / 2);
  }
  .large-offset-8 {
    margin-left: 66.6666666667%;
  }
  .grid-margin-x > .large-offset-8 {
    margin-left: calc(66.6666666667% + 1.875rem / 2);
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .grid-margin-x > .large-offset-9 {
    margin-left: calc(75% + 1.875rem / 2);
  }
  .large-offset-10 {
    margin-left: 83.3333333333%;
  }
  .grid-margin-x > .large-offset-10 {
    margin-left: calc(83.3333333333% + 1.875rem / 2);
  }
  .large-offset-11 {
    margin-left: 91.6666666667%;
  }
  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.6666666667% + 1.875rem / 2);
  }
}
.grid-y {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}
.grid-y > .cell {
  height: auto;
  max-height: none;
}
.grid-y > .auto {
  height: auto;
}
.grid-y > .shrink {
  height: auto;
}
.grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
}
@media print, screen and (min-width: 40em) {
  .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
}
.grid-y > .small-12, .grid-y > .small-11, .grid-y > .small-10, .grid-y > .small-9, .grid-y > .small-8, .grid-y > .small-7, .grid-y > .small-6, .grid-y > .small-5, .grid-y > .small-4, .grid-y > .small-3, .grid-y > .small-2, .grid-y > .small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.grid-y > .small-1 {
  height: 8.3333333333%;
}
.grid-y > .small-2 {
  height: 16.6666666667%;
}
.grid-y > .small-3 {
  height: 25%;
}
.grid-y > .small-4 {
  height: 33.3333333333%;
}
.grid-y > .small-5 {
  height: 41.6666666667%;
}
.grid-y > .small-6 {
  height: 50%;
}
.grid-y > .small-7 {
  height: 58.3333333333%;
}
.grid-y > .small-8 {
  height: 66.6666666667%;
}
.grid-y > .small-9 {
  height: 75%;
}
.grid-y > .small-10 {
  height: 83.3333333333%;
}
.grid-y > .small-11 {
  height: 91.6666666667%;
}
.grid-y > .small-12 {
  height: 100%;
}
@media print, screen and (min-width: 40em) {
  .grid-y > .medium-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    height: auto;
  }
  .grid-y > .medium-12, .grid-y > .medium-11, .grid-y > .medium-10, .grid-y > .medium-9, .grid-y > .medium-8, .grid-y > .medium-7, .grid-y > .medium-6, .grid-y > .medium-5, .grid-y > .medium-4, .grid-y > .medium-3, .grid-y > .medium-2, .grid-y > .medium-1, .grid-y > .medium-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .grid-y > .medium-shrink {
    height: auto;
  }
  .grid-y > .medium-1 {
    height: 8.3333333333%;
  }
  .grid-y > .medium-2 {
    height: 16.6666666667%;
  }
  .grid-y > .medium-3 {
    height: 25%;
  }
  .grid-y > .medium-4 {
    height: 33.3333333333%;
  }
  .grid-y > .medium-5 {
    height: 41.6666666667%;
  }
  .grid-y > .medium-6 {
    height: 50%;
  }
  .grid-y > .medium-7 {
    height: 58.3333333333%;
  }
  .grid-y > .medium-8 {
    height: 66.6666666667%;
  }
  .grid-y > .medium-9 {
    height: 75%;
  }
  .grid-y > .medium-10 {
    height: 83.3333333333%;
  }
  .grid-y > .medium-11 {
    height: 91.6666666667%;
  }
  .grid-y > .medium-12 {
    height: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-y > .large-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    height: auto;
  }
  .grid-y > .large-12, .grid-y > .large-11, .grid-y > .large-10, .grid-y > .large-9, .grid-y > .large-8, .grid-y > .large-7, .grid-y > .large-6, .grid-y > .large-5, .grid-y > .large-4, .grid-y > .large-3, .grid-y > .large-2, .grid-y > .large-1, .grid-y > .large-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .grid-y > .large-shrink {
    height: auto;
  }
  .grid-y > .large-1 {
    height: 8.3333333333%;
  }
  .grid-y > .large-2 {
    height: 16.6666666667%;
  }
  .grid-y > .large-3 {
    height: 25%;
  }
  .grid-y > .large-4 {
    height: 33.3333333333%;
  }
  .grid-y > .large-5 {
    height: 41.6666666667%;
  }
  .grid-y > .large-6 {
    height: 50%;
  }
  .grid-y > .large-7 {
    height: 58.3333333333%;
  }
  .grid-y > .large-8 {
    height: 66.6666666667%;
  }
  .grid-y > .large-9 {
    height: 75%;
  }
  .grid-y > .large-10 {
    height: 83.3333333333%;
  }
  .grid-y > .large-11 {
    height: 91.6666666667%;
  }
  .grid-y > .large-12 {
    height: 100%;
  }
}

.grid-padding-y .grid-padding-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-padding-y .grid-padding-y {
    margin-top: -0.9375rem;
    margin-bottom: -0.9375rem;
  }
}
.grid-padding-y > .cell {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-padding-y > .cell {
    padding-top: 0.9375rem;
    padding-bottom: 0.9375rem;
  }
}

.grid-margin-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y {
    margin-top: -0.9375rem;
    margin-bottom: -0.9375rem;
  }
}
.grid-margin-y > .cell {
  height: calc(100% - 1.25rem);
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y > .cell {
    height: calc(100% - 1.875rem);
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}
.grid-margin-y > .auto {
  height: auto;
}
.grid-margin-y > .shrink {
  height: auto;
}
.grid-margin-y > .small-1 {
  height: calc(8.3333333333% - 1.25rem);
}
.grid-margin-y > .small-2 {
  height: calc(16.6666666667% - 1.25rem);
}
.grid-margin-y > .small-3 {
  height: calc(25% - 1.25rem);
}
.grid-margin-y > .small-4 {
  height: calc(33.3333333333% - 1.25rem);
}
.grid-margin-y > .small-5 {
  height: calc(41.6666666667% - 1.25rem);
}
.grid-margin-y > .small-6 {
  height: calc(50% - 1.25rem);
}
.grid-margin-y > .small-7 {
  height: calc(58.3333333333% - 1.25rem);
}
.grid-margin-y > .small-8 {
  height: calc(66.6666666667% - 1.25rem);
}
.grid-margin-y > .small-9 {
  height: calc(75% - 1.25rem);
}
.grid-margin-y > .small-10 {
  height: calc(83.3333333333% - 1.25rem);
}
.grid-margin-y > .small-11 {
  height: calc(91.6666666667% - 1.25rem);
}
.grid-margin-y > .small-12 {
  height: calc(100% - 1.25rem);
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y > .auto {
    height: auto;
  }
  .grid-margin-y > .shrink {
    height: auto;
  }
  .grid-margin-y > .small-1 {
    height: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-2 {
    height: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .small-4 {
    height: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-5 {
    height: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .small-7 {
    height: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-8 {
    height: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .small-10 {
    height: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-11 {
    height: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.875rem);
  }
  .grid-margin-y > .medium-auto {
    height: auto;
  }
  .grid-margin-y > .medium-shrink {
    height: auto;
  }
  .grid-margin-y > .medium-1 {
    height: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-2 {
    height: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .medium-4 {
    height: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-5 {
    height: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .medium-7 {
    height: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-8 {
    height: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .medium-10 {
    height: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-11 {
    height: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-12 {
    height: calc(100% - 1.875rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-y > .large-auto {
    height: auto;
  }
  .grid-margin-y > .large-shrink {
    height: auto;
  }
  .grid-margin-y > .large-1 {
    height: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-2 {
    height: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .large-4 {
    height: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-5 {
    height: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .large-7 {
    height: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-8 {
    height: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .large-10 {
    height: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-11 {
    height: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-12 {
    height: calc(100% - 1.875rem);
  }
}

.grid-frame {
  overflow: hidden;
  position: relative;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: 100vw;
}

.cell .grid-frame {
  width: 100%;
}

.cell-block {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.cell-block-y {
  overflow-y: auto;
  max-height: 100%;
  min-height: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.cell-block-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  max-height: 100%;
}
.cell-block-container > .grid-x {
  max-height: 100%;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

@media print, screen and (min-width: 40em) {
  .medium-grid-frame {
    overflow: hidden;
    position: relative;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    width: 100vw;
  }
  .cell .medium-grid-frame {
    width: 100%;
  }
  .medium-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .medium-cell-block-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 100%;
  }
  .medium-cell-block-container > .grid-x {
    max-height: 100%;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .medium-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}
@media print, screen and (min-width: 64em) {
  .large-grid-frame {
    overflow: hidden;
    position: relative;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    width: 100vw;
  }
  .cell .large-grid-frame {
    width: 100%;
  }
  .large-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
  .large-cell-block-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 100%;
  }
  .large-cell-block-container > .grid-x {
    max-height: 100%;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .large-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}
.grid-y.grid-frame {
  overflow: hidden;
  position: relative;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  height: 100vh;
  width: auto;
}
@media print, screen and (min-width: 40em) {
  .grid-y.medium-grid-frame {
    overflow: hidden;
    position: relative;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh;
    width: auto;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-y.large-grid-frame {
    overflow: hidden;
    position: relative;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh;
    width: auto;
  }
}

.cell .grid-y.grid-frame {
  height: 100%;
}
@media print, screen and (min-width: 40em) {
  .cell .grid-y.medium-grid-frame {
    height: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .cell .grid-y.large-grid-frame {
    height: 100%;
  }
}

.grid-margin-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y {
    margin-top: -0.9375rem;
    margin-bottom: -0.9375rem;
  }
}
.grid-margin-y > .cell {
  height: calc(100% - 1.25rem);
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y > .cell {
    height: calc(100% - 1.875rem);
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}
.grid-margin-y > .auto {
  height: auto;
}
.grid-margin-y > .shrink {
  height: auto;
}
.grid-margin-y > .small-1 {
  height: calc(8.3333333333% - 1.25rem);
}
.grid-margin-y > .small-2 {
  height: calc(16.6666666667% - 1.25rem);
}
.grid-margin-y > .small-3 {
  height: calc(25% - 1.25rem);
}
.grid-margin-y > .small-4 {
  height: calc(33.3333333333% - 1.25rem);
}
.grid-margin-y > .small-5 {
  height: calc(41.6666666667% - 1.25rem);
}
.grid-margin-y > .small-6 {
  height: calc(50% - 1.25rem);
}
.grid-margin-y > .small-7 {
  height: calc(58.3333333333% - 1.25rem);
}
.grid-margin-y > .small-8 {
  height: calc(66.6666666667% - 1.25rem);
}
.grid-margin-y > .small-9 {
  height: calc(75% - 1.25rem);
}
.grid-margin-y > .small-10 {
  height: calc(83.3333333333% - 1.25rem);
}
.grid-margin-y > .small-11 {
  height: calc(91.6666666667% - 1.25rem);
}
.grid-margin-y > .small-12 {
  height: calc(100% - 1.25rem);
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y > .auto {
    height: auto;
  }
  .grid-margin-y > .shrink {
    height: auto;
  }
  .grid-margin-y > .small-1 {
    height: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-2 {
    height: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .small-4 {
    height: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-5 {
    height: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .small-7 {
    height: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-8 {
    height: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .small-10 {
    height: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-y > .small-11 {
    height: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.875rem);
  }
  .grid-margin-y > .medium-auto {
    height: auto;
  }
  .grid-margin-y > .medium-shrink {
    height: auto;
  }
  .grid-margin-y > .medium-1 {
    height: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-2 {
    height: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .medium-4 {
    height: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-5 {
    height: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .medium-7 {
    height: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-8 {
    height: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .medium-10 {
    height: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-y > .medium-11 {
    height: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-y > .medium-12 {
    height: calc(100% - 1.875rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-y > .large-auto {
    height: auto;
  }
  .grid-margin-y > .large-shrink {
    height: auto;
  }
  .grid-margin-y > .large-1 {
    height: calc(8.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-2 {
    height: calc(16.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-3 {
    height: calc(25% - 1.875rem);
  }
  .grid-margin-y > .large-4 {
    height: calc(33.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-5 {
    height: calc(41.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-6 {
    height: calc(50% - 1.875rem);
  }
  .grid-margin-y > .large-7 {
    height: calc(58.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-8 {
    height: calc(66.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-9 {
    height: calc(75% - 1.875rem);
  }
  .grid-margin-y > .large-10 {
    height: calc(83.3333333333% - 1.875rem);
  }
  .grid-margin-y > .large-11 {
    height: calc(91.6666666667% - 1.875rem);
  }
  .grid-margin-y > .large-12 {
    height: calc(100% - 1.875rem);
  }
}

.grid-frame.grid-margin-y {
  height: calc(100vh + 1.25rem);
}
@media print, screen and (min-width: 40em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-frame.grid-margin-y {
    height: calc(100vh + 1.875rem);
  }
}

@media print, screen and (min-width: 40em) {
  .grid-margin-y.medium-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-y.large-grid-frame {
    height: calc(100vh + 1.875rem);
  }
}
.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 5px;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  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;
}
[data-whatinput=mouse] .button {
  outline: 0;
}
.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, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button:hover, .button:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button.primary:hover, .button.primary:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button.secondary:hover, .button.secondary:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
  background-color: #004eaa;
  color: #0a0a0a;
}
.button.success:hover, .button.success:focus {
  background-color: #00358e;
  color: #0a0a0a;
}
.button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
  background-color: #004eaa;
  color: #0a0a0a;
}
.button.warning:hover, .button.warning:focus {
  background-color: #00358e;
  color: #0a0a0a;
}
.button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button.alert:hover, .button.alert:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button.hollow, .button.hollow:hover, .button.hollow:focus, .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, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {
  border: 1px solid #761b2b;
  color: #761b2b;
}
.button.hollow:hover, .button.hollow:focus {
  border-color: #3b0e16;
  color: #3b0e16;
}
.button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {
  border: 1px solid #761b2b;
  color: #761b2b;
}
.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #3b0e16;
  color: #3b0e16;
}
.button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {
  border: 1px solid #767676;
  color: #767676;
}
.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #3b3b3b;
  color: #3b3b3b;
}
.button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}
.button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}
.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #67251a;
  color: #67251a;
}
.button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
  border-color: transparent;
  background-color: transparent;
}
.button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
  color: #00358e;
}
.button.clear:hover, .button.clear:focus {
  color: #00358e;
  text-decoration: underline;
}
.button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {
  color: #00358e;
}
.button.clear.primary:hover, .button.clear.primary:focus {
  color: #00358e;
  text-decoration: underline;
}
.button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {
  color: #00358e;
}
.button.clear.secondary:hover, .button.clear.secondary:focus {
  color: #00358e;
  text-decoration: underline;
}
.button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {
  color: #00358e;
}
.button.clear.success:hover, .button.clear.success:focus {
  color: #00358e;
  text-decoration: underline;
}
.button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {
  color: #00358e;
}
.button.clear.warning:hover, .button.clear.warning:focus {
  color: #00358e;
  text-decoration: underline;
}
.button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {
  color: #00358e;
}
.button.clear.alert:hover, .button.clear.alert:focus {
  color: #00358e;
  text-decoration: underline;
}
.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.4em;
  content: "";
  border-bottom-width: 0;
  border-color: #fefefe 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: #761b2b;
}
.button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
  border-top-color: #761b2b;
}
.button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
  border-top-color: #767676;
}
.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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.button-group::before, .button-group::after {
  display: table;
  content: " ";
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.button-group::after {
  clear: both;
}
.button-group::before, .button-group::after {
  display: none;
}
.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          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 {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}
.button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {
  background-color: #004eaa;
  color: #0a0a0a;
}
.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #00358e;
  color: #0a0a0a;
}
.button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {
  background-color: #004eaa;
  color: #0a0a0a;
}
.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #00358e;
  color: #0a0a0a;
}
.button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {
  background-color: #004eaa;
  color: #fefefe;
}
.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #00358e;
  color: #fefefe;
}
.button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {
  background-color: transparent;
}
.button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {
  border: 1px solid #761b2b;
  color: #761b2b;
}
.button-group.hollow .button:hover, .button-group.hollow .button:focus {
  border-color: #3b0e16;
  color: #3b0e16;
}
.button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {
  border: 1px solid #761b2b;
  color: #761b2b;
}
.button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {
  border-color: #3b0e16;
  color: #3b0e16;
}
.button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {
  border: 1px solid #767676;
  color: #767676;
}
.button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {
  border-color: #3b3b3b;
  color: #3b3b3b;
}
.button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {
  border-color: #157539;
  color: #157539;
}
.button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {
  border: 1px solid #cc4b37;
  color: #cc4b37;
}
.button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {
  border-color: #67251a;
  color: #67251a;
}
.button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {
  border-color: transparent;
  background-color: transparent;
}
.button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {
  color: #00358e;
}
.button-group.clear .button:hover, .button-group.clear .button:focus {
  color: #00358e;
  text-decoration: underline;
}
.button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {
  color: #00358e;
}
.button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {
  color: #00358e;
  text-decoration: underline;
}
.button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {
  color: #00358e;
}
.button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {
  color: #00358e;
  text-decoration: underline;
}
.button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {
  color: #00358e;
}
.button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {
  color: #00358e;
  text-decoration: underline;
}
.button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {
  color: #00358e;
}
.button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {
  color: #00358e;
  text-decoration: underline;
}
.button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {
  color: #00358e;
}
.button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {
  color: #00358e;
  text-decoration: underline;
}
.button-group.no-gaps .button {
  margin-right: -0.0625rem;
}
.button-group.no-gaps .button + .button {
  border-left-color: transparent;
}
.button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          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 {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}
@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    margin-bottom: 0;
  }
}
@media print, 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 print, 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;
  z-index: 10;
  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.medium, .close-button {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 5px;
}
thead,
tbody,
tfoot {
  border: 1px solid #f1f1f1;
  background-color: #fefefe;
}

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

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

tfoot {
  background: #f1f1f1;
  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: #f1f1f1;
}

table.unstriped tbody {
  background-color: #fefefe;
}
table.unstriped tbody tr {
  border-bottom: 1px solid #f1f1f1;
  background-color: #fefefe;
}

@media print, 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: #f3f3f3;
}
table.hover tfoot tr:hover {
  background-color: #ececec;
}
table.hover tbody tr:hover {
  background-color: #f9f9f9;
}
table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec;
}

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

.breadcrumbs {
  margin: 1rem 0 1rem 1rem;
  list-style: none;
}
.breadcrumbs::before, .breadcrumbs::after {
  display: table;
  content: " ";
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.breadcrumbs::after {
  clear: both;
}
.breadcrumbs li {
  float: left;
  font-size: 0.875rem;
  color: #0a0a0a;
  cursor: default;
  /*  @if $breadcrumbs-item-uppercase {
      text-transform: uppercase;
    }
      */
}
.breadcrumbs li:not(:last-child)::after {
  position: relative;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}
.breadcrumbs a {
  color: #00358e;
}
.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: 5px;
  background-color: white;
  color: #0a0a0a;
}
.callout > :first-child {
  margin-top: 0;
}
.callout > :last-child {
  margin-bottom: 0;
}
.callout.primary {
  background-color: #f5d2d8;
  color: #0a0a0a;
}
.callout.secondary {
  background-color: #eaeaea;
  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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 5px;
  background: #fefefe;
  -webkit-box-shadow: none;
          box-shadow: none;
  overflow: hidden;
  color: #0a0a0a;
}
.card > :last-child {
  margin-bottom: 0;
}

.card-divider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  padding: 1rem;
  background: #e6e6e6;
}
.card-divider > :last-child {
  margin-bottom: 0;
}

.card-section {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          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: 400px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 5px;
  background-color: #fefefe;
  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: " ";
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.pagination::after {
  clear: both;
}
.pagination li {
  margin-right: 0.0625rem;
  border-radius: 5px;
  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: 5px;
  color: #0a0a0a;
}
.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}
.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #761b2b;
  color: #fefefe;
  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: "…";
  color: #0a0a0a;
}

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: "«";
}

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: "»";
}

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none;
}
.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

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

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.875rem;
  line-height: 1;
  color: #00358e;
}
:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 5px 5px;
}
.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: "–";
}

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

.media-object {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}
.media-object img {
  max-width: none;
}
@media print, screen and (max-width: 39.99875em) {
  .media-object.stack-for-small {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}

.media-object-section {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          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 print, screen and (max-width: 39.99875em) {
  .stack-for-small .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    max-width: 100%;
  }
  .stack-for-small .media-object-section img {
    width: 100%;
  }
}
.media-object-section.main-section {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          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: #fefefe;
}

.orbit-next, .orbit-previous {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe;
}
[data-whatinput=mouse] .orbit-next, [data-whatinput=mouse] .orbit-previous {
  outline: 0;
}
.orbit-next:hover, .orbit-previous:hover, .orbit-next:active, .orbit-previous:active, .orbit-next:focus, .orbit-previous: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: -3rem;
  margin-bottom: 0.8rem;
  text-align: center;
}
[data-whatinput=mouse] .orbit-bullets {
  outline: 0;
}
.orbit-bullets button {
  width: 1rem;
  height: 1rem;
  margin: 0.1rem;
  border-radius: 50%;
  background-color: #e6e6e6;
}
.orbit-bullets button:hover {
  background-color: #fefefe;
}
.orbit-bullets button.is-active {
  background-color: #fefefe;
}

.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: #fefefe;
  list-style-type: none;
}
.tabs::before, .tabs::after {
  display: table;
  content: " ";
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          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: #761b2b;
}
.tabs.primary > li > a {
  color: #fefefe;
}
.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #851e30;
}

.tabs-title {
  float: left;
}
.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  font-size: 0.75rem;
  line-height: 1;
  color: #761b2b;
}
[data-whatinput=mouse] .tabs-title > a {
  outline: 0;
}
.tabs-title > a:hover {
  background: #fefefe;
  color: #651725;
}
.tabs-title > a:focus, .tabs-title > a[aria-selected=true] {
  background: #e6e6e6;
  color: #761b2b;
}

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fefefe;
  color: #0a0a0a;
  -webkit-transition: all 0.5s ease;
  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 #fefefe;
  border-radius: 5px;
  -webkit-box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
          box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0;
}

a.thumbnail {
  -webkit-transition: -webkit-box-shadow 200ms ease-out;
  transition: -webkit-box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out, -webkit-box-shadow 200ms ease-out;
}
a.thumbnail:hover, a.thumbnail:focus {
  -webkit-box-shadow: 0 0 6px 1px rgba(118, 27, 43, 0.5);
          box-shadow: 0 0 6px 1px rgba(118, 27, 43, 0.5);
}
a.thumbnail image {
  -webkit-box-shadow: none;
          box-shadow: none;
}

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      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 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}
.menu.vertical {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.menu.vertical.icon-top li a img,
.menu.vertical.icon-top li a i,
.menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,
.menu.vertical.icon-bottom li a i,
.menu.vertical.icon-bottom li a svg {
  text-align: left;
}
.menu.expanded li {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}
.menu.expanded.icon-top li a img,
.menu.expanded.icon-top li a i,
.menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,
.menu.expanded.icon-bottom li a i,
.menu.expanded.icon-bottom li a svg {
  text-align: left;
}
.menu.simple {
  -webkit-box-align: center;
      -ms-flex-align: center;
          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 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .menu.medium-vertical {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .menu.medium-expanded li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.medium-simple li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}
@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .menu.large-vertical {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .menu.large-expanded li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.large-simple li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}
.menu.nested {
  margin-right: 0;
  margin-left: 1rem;
}
.menu.icons a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.menu.icon-left li a, .menu.nested.icon-left li a {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
}
.menu.icon-left li a img,
.menu.icon-left li a i,
.menu.icon-left li a svg, .menu.nested.icon-left li a img,
.menu.nested.icon-left li a i,
.menu.nested.icon-left li a svg {
  margin-right: 0.25rem;
}
.menu.icon-right li a, .menu.nested.icon-right li a {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
}
.menu.icon-right li a img,
.menu.icon-right li a i,
.menu.icon-right li a svg, .menu.nested.icon-right li a img,
.menu.nested.icon-right li a i,
.menu.nested.icon-right li a svg {
  margin-left: 0.25rem;
}
.menu.icon-top li a, .menu.nested.icon-top li a {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}
.menu.icon-top li a img,
.menu.icon-top li a i,
.menu.icon-top li a svg, .menu.nested.icon-top li a img,
.menu.nested.icon-top li a i,
.menu.nested.icon-top li a svg {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}
.menu.icon-bottom li a, .menu.nested.icon-bottom li a {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}
.menu.icon-bottom li a img,
.menu.icon-bottom li a i,
.menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,
.menu.nested.icon-bottom li a i,
.menu.nested.icon-bottom li a svg {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}
.menu .is-active > a {
  background: #761b2b;
  color: #fefefe;
}
.menu .active > a {
  background: #761b2b;
  color: #fefefe;
}
.menu.align-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.menu.align-right li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.menu.align-right li .submenu li {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          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.icon-top li a img,
.menu.align-right.icon-top li a i,
.menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,
.menu.align-right.icon-bottom li a i,
.menu.align-right.icon-bottom li a svg {
  text-align: right;
}
.menu.align-right .nested {
  margin-right: 1rem;
  margin-left: 0;
}
.menu.align-center li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.menu.align-center li .submenu li {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.menu .menu-text {
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered > .menu {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.menu-centered > .menu li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.menu-centered > .menu li .submenu li {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          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: #fefefe;
  -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
          box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
  content: "";
}
.menu-icon:hover::after {
  background: #cacaca;
  -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #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;
  -webkit-box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
          box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
  content: "";
}
.menu-icon.dark:hover::after {
  background: #8a8a8a;
  -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #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-style: solid;
  border-width: 6px;
  content: "";
  border-bottom-width: 0;
  border-color: #761b2b 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 {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
          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-style: solid;
  border-width: 6px;
  content: "";
  border-bottom-width: 0;
  border-color: #761b2b transparent transparent;
  top: 0;
  bottom: 0;
  margin: auto;
}

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

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

.is-drilldown {
  position: relative;
  overflow: hidden;
}
.is-drilldown li {
  display: block;
}
.is-drilldown.animate-height {
  -webkit-transition: height 0.5s;
  transition: height 0.5s;
}

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe;
}
.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.15s linear;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear;
}
.drilldown .is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.drilldown .is-drilldown-submenu.is-closing {
  -webkit-transform: translateX(100%);
          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-style: solid;
  border-width: 6px;
  content: "";
  border-right-width: 0;
  border-color: transparent transparent transparent #761b2b;
  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-style: solid;
  border-width: 6px;
  content: "";
  border-right-width: 0;
  border-color: transparent transparent transparent #00358e;
  right: 1rem;
  left: auto;
}
.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: "";
  border-left-width: 0;
  border-color: transparent #00358e transparent transparent;
  right: auto;
  left: 1rem;
}
.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: "";
  border-left-width: 0;
  border-color: transparent #761b2b transparent transparent;
  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-style: solid;
  border-width: 6px;
  content: "";
  border-bottom-width: 0;
  border-color: #00358e transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px;
}
[data-whatinput=mouse] .dropdown.menu a {
  outline: 0;
}
.dropdown.menu > li > a {
  background: transparent;
  padding: 0.7rem 1rem;
}
.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #00358e;
}
.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-style: solid;
  border-width: 6px;
  content: "";
  border-left-width: 0;
  border-color: transparent #00358e transparent transparent;
  right: auto;
  left: 5px;
}
.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: "";
  border-right-width: 0;
  border-color: transparent transparent transparent #00358e;
}
@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-style: solid;
    border-width: 6px;
    content: "";
    border-bottom-width: 0;
    border-color: #00358e 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-style: solid;
    border-width: 6px;
    content: "";
    border-left-width: 0;
    border-color: transparent #00358e transparent transparent;
    right: auto;
    left: 5px;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: "";
    border-right-width: 0;
    border-color: transparent transparent transparent #00358e;
  }
}
@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-style: solid;
    border-width: 6px;
    content: "";
    border-bottom-width: 0;
    border-color: #00358e 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-style: solid;
    border-width: 6px;
    content: "";
    border-left-width: 0;
    border-color: transparent #00358e transparent transparent;
    right: auto;
    left: 5px;
  }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: "";
    border-right-width: 0;
    border-color: transparent transparent transparent #00358e;
  }
}
.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: 300px;
  border: 1px solid #cacaca;
  background: #fefefe;
}
.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-style: solid;
  border-width: 6px;
  content: "";
  border-left-width: 0;
  border-color: transparent #00358e transparent transparent;
  right: auto;
  left: 5px;
}
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: "";
  border-right-width: 0;
  border-color: transparent transparent transparent #00358e;
}
.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}
.is-dropdown-submenu > li {
  width: 100%;
}
.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

html.is-reveal-open {
  position: fixed;
  width: 100%;
  overflow-y: hidden;
}
html.is-reveal-open.zf-has-scroll {
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
}
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;
  -webkit-overflow-scrolling: touch;
}

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 5px;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
[data-whatinput=mouse] .reveal {
  outline: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}
.reveal .column {
  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 print, 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;
  -webkit-transform: translate3d(0, 0, 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: #3f3f42;
  color: #fefefe;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.title-bar-left,
.title-bar-right {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.top-bar,
.top-bar ul {
  background-color: #fefefe;
}
.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 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}
@media print, screen and (min-width: 40em) {
  .top-bar {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .top-bar .top-bar-left {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    margin-right: auto;
  }
  .top-bar .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    margin-left: auto;
  }
}
@media print, screen and (max-width: 63.99875em) {
  .top-bar.stacked-for-medium {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
}
@media print, screen and (max-width: 74.99875em) {
  .top-bar.stacked-for-large {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
}

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

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

.align-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.align-left.vertical.menu > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center.vertical.menu > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.align-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.align-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.align-self-middle {
  -ms-flex-item-align: center;
      align-self: center;
}

.align-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.align-center-middle {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center;
}

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}
@media print, screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}
.flex-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.flex-child-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.flex-child-grow {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

.flex-child-shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

@media print, screen and (min-width: 40em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .medium-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .medium-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .large-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .large-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .large-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

.visible {
  visibility: visible;
}

@media print, 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 print, 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 print, 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 !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

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

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

.show-for-dark-mode {
  display: none;
}

.hide-for-dark-mode {
  display: block;
}

@media screen and (prefers-color-scheme: dark) {
  .show-for-dark-mode {
    display: block !important;
  }
  .hide-for-dark-mode {
    display: none !important;
  }
}
.show-for-ie {
  display: none;
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .show-for-ie {
    display: block !important;
  }
  .hide-for-ie {
    display: none !important;
  }
}
.show-for-sticky {
  display: none;
}

.is-stuck .show-for-sticky {
  display: block;
}

.is-stuck .hide-for-sticky {
  display: none;
}

.slide-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.slide-in-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.slide-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.slide-in-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.slide-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}

.slide-out-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.slide-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}

.slide-out-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.fade-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 0;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}

.fade-in.mui-enter.mui-enter-active {
  opacity: 1;
}

.fade-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 1;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}

.fade-out.mui-leave.mui-leave-active {
  opacity: 0;
}

.hinge-in-from-top.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-bottom.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-middle-x.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-middle-y.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-out-from-top.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0;
}

.hinge-out-from-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0;
}

.hinge-out-from-bottom.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0;
}

.hinge-out-from-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0;
}

.hinge-out-from-middle-x.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0;
}

.hinge-out-from-middle-y.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0;
}

.scale-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(0.5);
          transform: scale(0.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
          transform: scale(1);
  opacity: 1;
}

.scale-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
          transform: scale(1);
  opacity: 1;
}

.scale-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0;
}

.scale-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0;
}

.spin-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
          transform: rotate(0);
  opacity: 1;
}

.spin-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0;
}

.spin-in-ccw.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
          transform: rotate(0);
  opacity: 1;
}

.spin-out-ccw.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0;
}

.slow {
  -webkit-transition-duration: 750ms !important;
          transition-duration: 750ms !important;
}

.fast {
  -webkit-transition-duration: 250ms !important;
          transition-duration: 250ms !important;
}

.linear {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important;
}

.ease {
  -webkit-transition-timing-function: ease !important;
          transition-timing-function: ease !important;
}

.ease-in {
  -webkit-transition-timing-function: ease-in !important;
          transition-timing-function: ease-in !important;
}

.ease-out {
  -webkit-transition-timing-function: ease-out !important;
          transition-timing-function: ease-out !important;
}

.ease-in-out {
  -webkit-transition-timing-function: ease-in-out !important;
          transition-timing-function: ease-in-out !important;
}

.bounce-in {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
}

.bounce-out {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
}

.bounce-in-out {
  -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
}

.short-delay {
  -webkit-transition-delay: 300ms !important;
          transition-delay: 300ms !important;
}

.long-delay {
  -webkit-transition-delay: 700ms !important;
          transition-delay: 700ms !important;
}

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7;
}
@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%);
  }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%);
  }
}
@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%);
  }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%);
  }
}

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn;
}
@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}
@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

.spin-ccw {
  -webkit-animation-name: spin-ccw-1turn;
          animation-name: spin-ccw-1turn;
}
@-webkit-keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn);
  }
}
@keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn);
  }
}

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg;
}
@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg);
  }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg);
  }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}
@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg);
  }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg);
  }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms;
}

.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

.slow {
  -webkit-animation-duration: 750ms !important;
          animation-duration: 750ms !important;
}

.fast {
  -webkit-animation-duration: 250ms !important;
          animation-duration: 250ms !important;
}

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important;
}

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important;
}

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
          animation-timing-function: ease-in !important;
}

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
          animation-timing-function: ease-out !important;
}

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
          animation-timing-function: ease-in-out !important;
}

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
}

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
}

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
}

.short-delay {
  -webkit-animation-delay: 300ms !important;
          animation-delay: 300ms !important;
}

.long-delay {
  -webkit-animation-delay: 700ms !important;
          animation-delay: 700ms !important;
}

@media print, screen and (max-width: 39.99875em) {
  .no-js .top-bar {
    display: none;
  }
}
@media print, screen and (min-width: 40em) {
  .no-js .title-bar {
    display: none;
  }
}

#logo h1 {
  margin: 0;
  padding: 0;
  font-size: 0;
}

#fus-logo {
  width: 100%;
  height: auto;
  max-width: 250px;
}

.title-bar {
  height: 50px;
}
.title-bar svg {
  height: 40px;
  margin-left: 0.5rem;
}

.page-title {
  background-color: #00358e;
  color: #fff;
}

.page-title h1 {
  margin-bottom: 0rem;
  color: #fefefe;
}

.orbit-caption h2 {
  color: #fefefe;
  margin-bottom: 0.5rem;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 500;
}

h2 {
  font-size: 2rem;
}

h3 {
  color: #000000;
}

dt {
  font-weight: bold;
}

dd {
  margin: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid #cacaca;
}
dd:last-child {
  border-bottom: 0;
}
dd + dt {
  margin-top: 1rem;
}

p, li {
  max-width: 80ch;
}

main {
  padding-bottom: 1rem;
}

/*Accordion float issue fix*/
.accordion-item {
  clear: both;
}

table td a {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}

[data-magellan] .is-active {
  background: #761b2b;
  color: #FFFFFF;
}

.top-bar-right {
  z-index: 200;
}
.top-bar-right .grid-y {
  height: auto;
}

.svgimg {
  width: 5rem;
  height: 5rem;
}
@media print, screen and (min-width: 64em) {
  .svgimg {
    margin-top: 4rem;
  }
}

.button {
  border-radius: 6.25rem;
  font-size: 1.125rem;
  line-height: 1;
  -webkit-transition: all ease 0.3s;
  transition: all ease 0.3s;
  margin: 0.75rem 0;
  display: inline-block;
  font-weight: 500;
  background: #004eaa;
}
.button::after {
  content: " ";
  color: #fefefe;
  border: solid #fefefe;
  border-width: 0 3px 3px 0;
  display: inline-block;
  padding: 3px;
  margin: 0 0 3px 8px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  position: relative;
  top: 2px;
}
.button.small {
  font-size: 1.125rem;
}

.primary-nav li a {
  color: #00358e;
  font-weight: 700;
}
.primary-nav li a:active, .primary-nav li a:hover {
  color: #00358e;
}
.primary-nav li ul li a {
  font-weight: 400;
}
.primary-nav li ul li a:hover {
  background-color: #EAEFF3;
}

.secondary-nav {
  font-weight: bold;
  font-size: 0.9rem;
}
.secondary-nav a {
  color: #3F3F3F;
}
.secondary-nav a:hover {
  color: dimgray;
}

/*Pages with right sidebar nav*/
.page-navigation {
  margin-left: 2rem;
}

.homepage .grid-container .grid-container {
  padding: 3rem 0;
}

.news-item {
  border-bottom: 1px solid #767676;
  margin-bottom: 1rem;
}
.news-item:last-child {
  border-bottom: none;
}

@media print, screen and (max-width: 39.99875em) {
  #logo {
    display: none;
  }
  header {
    border-top: none;
  }
  footer .drilldown a {
    background: transparent;
  }
  .toll-free {
    top: 0.75rem;
  }
  #fus-logo-title-bar {
    width: 130px;
    position: relative;
    top: 0.4rem;
  }
  #fus-logo-title-bar .fus-red {
    fill: #FFFFFF;
  }
  #fus-logo-title-bar .fus-grey {
    fill: #FFFFFF;
  }
  #fus-logo-title-bar .fus-black {
    fill: #636569;
  }
  .toll-free::after {
    color: #fefefe;
    content: "" attr(data-line) "";
  }
}
@media print, screen and (max-width: 63.99875em) {
  .top-bar input {
    margin-left: 1rem;
  }
}
@media print, screen and (min-width: 40em) {
  #mainNavigation {
    border-top: 5px solid #ededed;
  }
  .secondary-nav {
    margin-left: auto;
    width: auto;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent.active > a::after {
    border-color: #00358e transparent;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    border-color: #00358e transparent;
  }
  dt {
    clear: both;
    float: left;
    margin: 1rem 0 0 0;
    padding-right: 2rem;
    text-align: right;
    width: 35%;
  }
  dd {
    float: right;
    margin: 1rem 0 0 0;
    width: 65%;
  }
  .contact dt {
    width: 40%;
    text-align: left;
  }
  .contact dd {
    width: 60%;
  }
  .two-columns {
    -webkit-columns: 2;
       -moz-columns: 2;
            columns: 2;
  }
}
@media print, screen and (min-width: 64em) {
  .contact dt {
    width: 60%;
    text-align: left;
  }
  .contact dd {
    width: 40%;
  }
}
@media screen and (min-width: 90em) and (min-width: 100em) {
  #responsiveMenu {
    width: 62.5%;
    margin-left: auto;
    margin-right: auto;
  }
}
section.grid-container.page-title {
  padding: 0.75rem 0;
}

.bkg-grey {
  background-color: #F2F2F2;
}

#British_Columbia path, #Alberta path, #Saskatchewan path, #Manitoba path, #Yukon path, #Northwest_Territories path, #Nunavut path {
  fill: #2a7de1;
}

#Ontario path {
  fill: #00358e;
}

#Quebec path {
  fill: #ffc600;
}

#New_Brunswick path, #Prince_Edward_Island path, #Nova_Scotia path, #Newfoundland_and_Labrador path {
  fill: #2ecddc;
}

.h5 {
  border-bottom: 2px solid #444;
}

#twitter-widget-0 {
  position: relative !important;
  top: 5px;
}

footer {
  padding: 0;
}
footer a {
  color: #00358e;
  font-weight: 700;
  font-size: 0.9rem;
}
footer small a {
  font-size: 0.75rem;
}
footer .opta-footer {
  padding: 3rem 0;
}
footer .opta-footer img {
  margin-bottom: 0.75rem;
  width: 7.75rem;
}
footer .opta-footer ul {
  top: -0.25rem;
}
footer .verisk-footer {
  background: #0a0a0a;
  padding: 0.5rem 0 1rem 0;
  font-size: 0.75rem;
  color: #fefefe;
}
footer .verisk-footer img {
  padding: 1rem 0 0.5rem 0;
  width: 150px;
}
footer .verisk-footer p {
  line-height: 0.5rem;
  font-size: 1rem;
  margin-left: 0.5rem;
}
footer .verisk-footer .verisk-branding {
  color: #FFFFFF;
  font-size: 0.75rem;
  float: right;
}
footer .verisk-footer .verisk-branding img {
  width: 125px;
  padding: 1.5rem 0 0.5rem 0;
}

.opta-link {
  position: relative;
  width: 250px;
}

@media print {
  p, li {
    max-width: 100%;
  }
  .grid-container {
    display: block;
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
  }
  .grid-x {
    display: block;
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
  }
  .cell {
    display: block;
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
  }
  .grid-x > .large-8 {
    width: 100%;
  }
}
figcaption {
  font-style: italic;
  font-size: 0.8rem;
}

.timeline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  position: relative;
}

.timeline::before {
  background: #e6e6e6;
  content: "";
  height: 100%;
  left: 3%;
  position: absolute;
  top: 0;
  width: 3px;
}

.timeline-item {
  width: 90%;
  margin: 5% 1% 5% 9%;
  background: #fefefe;
  border-radius: 5px;
  -webkit-box-shadow: 0 1px 6px #231f20;
          box-shadow: 0 1px 6px #231f20;
  border-color: #231f20;
  position: relative;
}

.timeline-icon {
  position: absolute;
  left: -9%;
  top: 5%;
}

.timeline-item::after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  top: 4.75%;
  border-right-width: 15px;
  border-right-style: solid;
  right: 100%;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
}

.timeline-content {
  padding: 1rem;
}

.timeline-icon svg {
  width: 12px;
}

@media print, screen and (min-width: 40em) {
  .timeline {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    position: relative;
  }
  .timeline::before {
    background: #e6e6e6;
    content: "";
    height: 100%;
    left: 50%;
    position: absolute;
    top: 0;
    width: 3px;
  }
  .timeline-item {
    width: 46%;
    position: relative;
    background: #fefefe;
    border-radius: 5px;
    -webkit-box-shadow: 0 1px 6px #231f20;
            box-shadow: 0 1px 6px #231f20;
    margin: 2%;
  }
  .timeline-item:nth-child(1n) .timeline-icon {
    left: auto;
  }
  .timeline-item:nth-child(odd) .timeline-icon {
    position: absolute;
    right: -32px;
    top: 10.25%;
  }
  .timeline-item:nth-child(even) .timeline-icon {
    position: absolute;
    left: -28px;
    top: 20.25%;
  }
  .timeline-item:nth-child(1) {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .timeline-item:nth-child(2) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .timeline-item:nth-child(3) {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .timeline-item:nth-child(4) {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .timeline-item:nth-child(5) {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .timeline-item:nth-child(6) {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
  .timeline-item:nth-child(7) {
    -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
            order: 7;
  }
  .timeline-item:nth-child(8) {
    -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
            order: 8;
  }
  .timeline-item:nth-child(9) {
    -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
            order: 9;
  }
  .timeline-item:nth-child(10) {
    -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
            order: 10;
  }
  .timeline-item:nth-child(11) {
    -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
            order: 11;
  }
  .timeline-item:nth-child(odd)::after {
    border-color: #231f20;
  }
  .timeline-item:nth-child(odd)::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    top: 10%;
    border-left-width: 15px;
    border-left-style: solid;
    left: 100%;
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
  }
  .timeline-item:nth-child(even)::after {
    border-color: #231f20;
  }
  .timeline-item:nth-child(even)::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    top: 20%;
    border-right-width: 15px;
    border-right-style: solid;
    right: 100%;
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
  }
  .timeline-item::before {
    border-right-width: 0px;
  }
  .timeline-item::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    top: 4.75%;
    border-right-width: 0px;
    border-right-style: solid;
    right: 100%;
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
  }
}
.fullscreen-image-slider li {
  max-width: 100%;
}
.fullscreen-image-slider .orbit-image {
  width: 100%;
  height: 50vh;
}
.fullscreen-image-slider .orbit-caption {
  max-width: 75rem;
  /*margin: 0 auto;*/
  background: rgba(0, 0, 0, 0.65);
  bottom: 0%;
  left: 0;
  text-align: left;
  color: #fefefe;
  width: 100%;
  -ms-flex-item-align: center;
      align-self: center;
  min-height: 12vw;
}
.fullscreen-image-slider .orbit-caption p {
  max-width: 100%;
}
.fullscreen-image-slider .orbit-figure {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

@media print, screen and (max-width: 39.99875em) {
  .fullscreen-image-slider .orbit-bullets {
    display: none;
  }
}
@media print, screen and (min-width: 40em) {
  .fullscreen-image-slider .orbit-image {
    width: 100%;
    height: 50vh;
  }
  .fullscreen-image-slider .orbit-caption {
    max-width: 75rem;
    margin: 0 auto;
    bottom: 15%;
    left: 42%;
    width: 55%;
  }
}
@media print, screen and (min-width: 64em) {
  .fullscreen-image-slider .orbit-caption {
    bottom: 5%;
    top: 5%;
    margin: 0 auto;
    font-size: 1rem;
    /*left: 43%;*/
    width: 60%;
  }
  .fullscreen-image-slider .orbit-caption .button {
    margin: 0;
  }
}
@media screen and (min-width: 75em) {
  .fullscreen-image-slider .orbit-caption {
    margin: 0 auto;
    left: 44.25%;
    width: 50%;
  }
}
@media screen and (min-width: 90em) {
  .fullscreen-image-slider .orbit-caption {
    margin: 0 auto;
    left: 45.5%;
    width: 33.5%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2VsbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY29sbGFwc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZnJhbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGh1bWJuYWlsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX2tleWZyYW1lLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc2xpZGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19mYWRlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19jdXN0b20uc2NzcyIsImNvbXBvbmVudHMvX3RpbWVsaW5lLnNjc3MiLCJjb21wb25lbnRzL19jdXN0b21vcmJpdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ3NHaEIsZ0JBQUE7QUN0R0E7Ozs7O0VBQUE7QUNtTFE7RUN0SU47SUFDRSxXQUFBO0lBQ0EsVUFBQTtJQUNBLGNBQUE7RUpuQ0Y7QUFDRjtBS1hFLDJFQUFBO0FBUUE7RUFDRSxpQkFBQTtFQUNBLDhC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RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUxTO0VBTVQsZ0JBQUE7RUFDQSxlUDBYYztFT3hYZCx5QlBzWGE7RU9yWGIsa0JQSGM7RU9JZCx5QlBmTTtFT2dCTix5RFBzWGE7VU90WGIsaURQc1hhO0VPcFhiLG9CUDBXa0I7RU96V2xCLGVQMFdnQjtFT3pXaEIsbUJQWHFCO0VPWXJCLGdCUGpDa0I7RU9rQ2xCLGNQdkJNO0VPMEJKLDJFUGdYZTtFT2hYZixtRVBnWGU7RU9oWGYsMkRQZ1hlO0VPaFhmLG9GUGdYZTtFTzNWZix3QkFBQTtLQUFBLHFCQUFBO1VBQUEsZ0JBQUE7QVI0TEo7QVE3TUU7O0VBQ0UsYUFBQTtFQUNBLHlCUHFXaUI7RU9wV2pCLHlCUGhDSTtFT2lDSixtQ1BzV2lCO1VPdFdqQiwyQlBzV2lCO0VPbldmLDJFUHFXYTtFT3JXYixtRVBxV2E7RU9yV2IsMkRQcVdhO0VPcldiLG9GUHFXYTtBRHZKbkI7O0FRaE1FO0VBQ0UsZUFBQTtBUm1NSjtBUWpNSTtFQUNFLFlBQUE7QVJtTU47O0FRNUxJOzs7RUFFRSx5QlBuRU87RU9vRVAsbUJQd1VrQjtBRHhJeEI7O0FRM0xFOztFQUVFLHdCQUFBO0tBQUEscUJBQUE7VUFBQSxnQkFBQTtFQUNBLGtCUDdEWTtBRDJQaEI7O0FRMUxFO0VBQ0UsOEJBQUE7VUFBQSxzQkFBQTtBUjZMSjs7QVE1S0U7RUFDRSxjUGxHVTtBRGlSZDs7QVFoTEU7RUFDRSxjUGxHVTtBRGlSZDs7QVFoTEU7RUFDRSxjUGxHVTtBRGlSZDs7QVFoTEU7RUFDRSxjUGxHVTtBRGlSZDs7QVFoTEU7RUFDRSxjUGxHVTtBRGlSZDs7QVN0VkU7OztFQUdFLGdCQUFBO0FUeVZKOztBU3JWRTs7RUFFRSxxQkFBQTtFQUNBLHdCQUFBO0VBRUEsbUJBQUE7RUFDQSxrQlJzYVc7RVFyYVgsZ0JBQUE7QVR1Vko7QVNyVkk7O0VBQ0UsZUFBQTtBVHdWTjs7QVNuVkU7O0VBRUUsb0JBQUE7QVRzVko7O0FTbFZFO0VBQ0UsV0FBQTtBVHFWSjs7QVVoVkU7RUFsQkEsY0FBQTtFQUNBLFNBQUE7RUFFQSxtQlR5YXFCO0VTeGFyQixtQlQ2RHFCO0VTNURyQixnQlR5YXVCO0VTeGF2QixjVGlETTtBRG9UUjtBVXRWSTtFQVRGLGdCQUFBO0VBQ0EsZ0JUK0JrQjtFUzlCbEIsb0JBQUE7QVZrV0Y7O0FXcFhFO0VBR0UsbUJBRmE7RUFHYixvQlZxYWlCO0VVcGFqQixrQlZxYWtCO0VVcGFsQixjVnFESTtBRGdVUjs7QVl0WEU7RUFDRSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLFdBQUE7RUFDQSxtQlgrWlc7RVc1WlQsMEJBQUE7TUFBQSx1QkFBQTtVQUFBLG9CQUFBO0FadVhOO0FZblhNO0VBQ0UsMEJBQUE7QVpxWFI7QVloWE07RUFDRSwwQkFBQTtBWmtYUjs7QVk3V0U7Ozs7RUFDRSxTQUFBO0VBQ0EsbUJBQUE7QVptWEo7O0FZM1dFO0VBRUUsZUFBQTtFQUNBLHlCWHFZa0I7RVdwWWxCLG1CWGVTO0VXYlQsY1hnQkk7RVdmSixrQkFBQTtFQUNBLG1CQUFBO0VBR0Usb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGtCQUFBO1VBQUEsY0FBQTtFQUNBLHlCQUFBO01BQUEsc0JBQUE7VUFBQSxtQkFBQTtBWjBXTjtBWWxXTTtFQUNFLGVBQUE7QVpvV1I7QVlqV007RUFDRSxjQUFBO0FabVdSOztBWTlWRTtFQUVFLGdCQUFBO0VBR0UsbUJBQUE7TUFBQSxpQkFBQTtVQUFBLGFBQUE7RUFDQSxZQUFBO0FaOFZOOztBWTFWRTtFQUVFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBR0Usb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGtCQUFBO1VBQUEsY0FBQTtBWjBWTjtBWW5WSTs7OztFQU9JLDRCQUFBO01BQUEsbUJBQUE7RUFDQSxZQUFBO0VBS0YsY0FBQTtFQUNBLGlCQUFBO0VBQ0EsZVg2VVk7QURDbEI7O0FhemFFO0VBQ0UsU0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0FiNGFKOztBYXphRTtFQUNFLGVBQUE7RUFDQSxxQkFBQTtBYjRhSjs7QWF6YUU7RUF4QkEsa0JaaWFnQjtFWWhhaEIsZ0JaK1ppQjtFWTlaakIseUJaNlpnQjtBRHdDbEI7QWFuY0U7RUFFRSxTQUFBO0VBQ0EsdUJBQUE7RUFDQSxvQlowWmE7QUQwQ2pCOztBYy9ZRTtFQS9EQSxpQkFGUztFQUdULGdCQUFBO0VBQ0EsZWI2YmM7RWEzYmQsd0JBQUE7S0FBQSxxQkFBQTtVQUFBLGdCQUFBO0VBQ0EseUJid2JhO0VhdmJiLGtCYitEYztFYTlEZCx5QmJtRE07RWFqRE4sb0JiNmFrQjtFYTVhbEIsZWI2YWdCO0VhNWFoQixtQmJ3RHFCO0VhdkRyQixnQmJrQ2tCO0VhakNsQixjYjRDTTtFTXNFTix3T0FBQTtFTzlHRSw4QkFBQTtFQUNBLHVDQUFBO0VBQ0EsNEJBQUE7RUFDQSx3QkFBQTtFQUVBLHFCQUFBO0VBSUEsMkVieWFlO0VhemFmLG1FYnlhZTtFYXphZiwyRGJ5YWU7RWF6YWYsb0ZieWFlO0FEaUNuQjtBT25XRTtFT2xFQTtJUHFFSSx1V0FBQTtFUG9XSjtBQUNGO0FjM2NFO0VBQ0UsYUFBQTtFQUNBLHlCYjhaaUI7RWE3WmpCLHlCYnlCSTtFYXhCSixtQ2IrWmlCO1VhL1pqQiwyQmIrWmlCO0VhNVpmLDJFYjhaYTtFYTlaYixtRWI4WmE7RWE5WmIsMkRiOFphO0VhOVpiLG9GYjhaYTtBRDZDbkI7QWN0Y0U7RUFDRSx5QmJXUztFYVZULG1CYnNab0I7QURrRHhCO0FjcGNFO0VBQ0UsYUFBQTtBZHNjSjtBY25jRTtFQUNFLFlBQUE7RUFDQSxzQkFBQTtBZHFjSjtBY25jRTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtBZHFjSjs7QWUxZUU7RUFDRSxxQmQ2THVCO0VjNUx2Qix5QkFBQTtBZjZlSjtBZTNlSTtFQUNFLGNkeUxxQjtBRG9UM0I7QWU5ZUk7RUFDRSxjZHlMcUI7QURvVDNCO0FlOWVJO0VBQ0UsY2R5THFCO0FEb1QzQjtBZTllSTtFQUNFLGNkeUxxQjtBRG9UM0I7QWU5ZUk7RUFDRSxjZHlMcUI7QURvVDNC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T1c7RWV3T1gsY2Z4VUE7QUR5ckJaOztBZ0JyV0k7RUFDSSxpQ2Z4TlM7RWV5TlQsWUFBQTtFQUNBLHFCQUFBO0FoQndXUjs7QWdCcldJO0VBQ0ksU0FBQTtBaEJ3V1I7O0FnQi9WSTtFQUNJLFNBQUE7RUFDQSwyQmYzT1k7RWU0T1oseUJmeldLO0VlMFdMLDREZmpTZ0I7RWVrU2hCLGNmeFdBO0VlMldJLGtCZi9WSTtBRCtyQmhCOztBaUJ0cEJFO0VBQ0Usa0JoQmdGbUI7RWdCL0VuQixxQmhCZ0ZzQjtFZ0I5RXRCLG1CaEIvQ21CO0VnQmdEbkIsZ0JoQnlFbUI7RWdCeEVuQixjaEI1RFE7QURvdEJaOztBaUJwcEJFO0VBQ0UsZWhCaUVhO0VnQmhFYixnQmhCaUVjO0FEc2xCbEI7O0FpQm5wQkU7RUFDRSxpQmhCa0VhO0VnQmpFYixjQUFBO0FqQnNwQko7QWlCcHBCSTtFQUNFLGlCQUFBO0FqQnNwQk47O0FpQmhwQkk7RUFDRSxjQUFBO0VBQ0EsZ0JBQUE7QWpCbXBCTjs7QWlCL29CRTtFQWpGQSxjQUFBO0VBQ0EsY2hCUFU7RWdCUVYsb0JoQm1JZTtBRGltQmpCO0FpQmx1QkU7RUFDRSxhaEJpSWtCO0FEbW1CdEI7O0FpQmhwQkU7RUE3RUEseUJoQitIWTtFZ0I5SFoseUJoQnJCVztFZ0J1QlgsNERoQmtEc0I7RWdCakR0QixtQmhCWHFCO0VnQllyQixjaEJ0Qk07RWdCNEJOLGVBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7RUFFQSxxQ2hCaUhhO0FEeW1CZjs7QWlCbnBCRTtFQXRGQSx5QmhCK0hZO0VnQjlIWix5QmhCckJXO0VnQnVCWCw0RGhCa0RzQjtFZ0JqRHRCLG1CaEJYcUI7RWdCWXJCLGNoQnRCTTtFZ0JzQ04sY0FBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUVBLGFoQndHbUI7RWdCdkduQixxQmhCd0d5QjtBRG9uQjNCOztBa0J6MEJVO0VBQ0UsZ0JBUlU7QWxCbzFCdEI7O0FrQjcwQlU7RUFDRSxpQkFSVTtBbEJ3MUJ0Qjs7QWtCajFCVTtFQUNFLGtCQVJVO0FsQjQxQnRCOztBa0JyMUJVO0VBQ0UsbUJBUlU7QWxCZzJCdEI7O0FHcHJCUTtFZTFLRTtJQUNFLGdCQUhVO0VsQnEyQnBCO0VrQm4yQlE7SUFDRSxpQkFIVTtFbEJ3MkJwQjtFa0J0MkJRO0lBQ0Usa0JBSFU7RWxCMjJCcEI7RWtCejJCUTtJQUNFLG1CQUhVO0VsQjgyQnBCO0FBQ0Y7QUduc0JRO0VlMUtFO0lBQ0UsZ0JBSFU7RWxCbTNCcEI7RWtCajNCUTtJQUNFLGlCQUhVO0VsQnMzQnBCO0VrQnAzQlE7SUFDRSxrQkFIVTtFbEJ5M0JwQjtFa0J2M0JRO0lBQ0UsbUJBSFU7RWxCNDNCcEI7QUFDRjtBbUJuM0JFO0VBQWtCLHdCQUFBO0FuQnMzQnBCOztBbUJwM0JFO0VBQ0U7SUFJSSxrQ0FBQTtJQUNBLHVCQUFBO0lBQ0EsbUNBQUE7WUFBQSwyQkFBQTtJQU9GLG1DQUFBO1lBQUEsMkJBQUE7SUFDQSw0QkFBQTtFbkI4MkJKO0VtQjMyQkU7SUFBa0IseUJBQUE7RW5CODJCcEI7RW1CNzJCRTtJQUFrQix3QkFBQTtFbkJnM0JwQjtFbUI5MkJFO0lBQXVCLHlCQUFBO0VuQmkzQnpCO0VtQmgzQkU7SUFBdUIsc0NBQUE7RW5CbTNCekI7RW1CbDNCRTtJQUF1QixtQ0FBQTtFbkJxM0J6QjtFbUJwM0JFO0lBQW9CLDZCQUFBO0VuQnUzQnRCO0VtQnQzQkU7SUFBb0IsOEJBQUE7RW5CeTNCdEI7RW1CeDNCRTtJQUFvQiw4QkFBQTtFbkIyM0J0QjtFbUJ4M0JFOztJQUNZLDBCQUFBO0VuQjIzQmQ7RW1CejNCSTtJQUFnQiw0QkFBQTtFbkI0M0JwQjtFbUJ4M0JFOzs7SUFFcUIsV0FBQTtFbkIyM0J2QjtFbUJ4M0JFO0lBQW9CLDZCQUFBO0VuQjIzQnRCO0VtQngzQkU7O0lBRUUseUJBQUE7SUFDQSx3QkFBQTtFbkIwM0JKO0VtQnQzQkU7SUFBUSwyQkFBQTtFbkJ5M0JWO0VtQnYzQkU7O0lBQ00sd0JBQUE7RW5CMDNCUjtFbUJ4M0JFO0lBQU0sMEJBQUE7RW5CMjNCUjtFbUJ6M0JFO0lBQVEsYUFBQTtFbkI0M0JWO0VtQjEzQkU7OztJQUdFLFVBQUE7SUFDQSxTQUFBO0VuQjQzQko7RW1CeDNCRTs7SUFDSyx1QkFBQTtFbkIyM0JQO0VtQngzQkU7SUFDRSx1QkFBQTtFbkIwM0JKO0FBQ0Y7QW9CMzhCRTtFQ29CTSx1QkFBQTtFQUFBLHNCQUFBO0VDZE4sZ0JyQmtEYTtFcUJqRGIsaUJBQUE7RUFDQSxrQkFBQTtBdEIwOEJGO0FHM3lCUTtFaUJ2S047SUNvQk0sd0JBQUE7SUFBQSx1QkFBQTtFckJtOEJOO0FBQ0Y7QW9CcjlCSTtFQ2lCSSx1QkFBQTtFQUFBLHNCQUFBO0VDZE4sZUZGK0I7RUVHL0IsaUJBQUE7RUFDQSxrQkFBQTtBdEJ1OUJGO0FHeHpCUTtFaUJwS0o7SUNpQkksd0JBQUE7SUFBQSx1QkFBQTtFckJnOUJOO0FBQ0Y7QW9COTlCSTtFQ3NCRSxnQkFBQTtFQUFBLGVBQUE7RUN2QkosZUZFK0I7RUVEL0IsaUJBQUE7RUFDQSxrQkFBQTtBdEJvK0JGOztBb0IvOUJFO0VFU0Esb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO01BQUEsdUJBQUE7VUFBQSxtQkFBQTtBdEIwOUJGOztBb0JoK0JFO0VHcUdBLG1CQUFBO01BQUEsa0JBQUE7VUFBQSxjQUFBO0VBSUUsYUFBQTtFQUNBLFlBQUE7RUFzQ0EsV0FUTTtBdkJnMkJWO0FvQnArQkk7RUdrR0YsbUJBQUE7TUFBQSxpQkFBQTtVQUFBLFdBQUE7QXZCcTRCRjtBb0JuK0JJO0VHOEZGLG1CQUFBO01BQUEsa0JBQUE7VUFBQSxjQUFBO0F2Qnc0QkY7O0FvQmgrQkk7RUdtSUEsV0FUTTtBdkIwMkJWO0FvQmgrQkk7RUcrSEEsV0FUTTtBdkI2MkJWOztBb0JuOUJNO0VBQ0UsNkJBQUE7TUFBQSxnQkFBQTtBcEJzOUJSOztBR2wyQlE7RWlCckhGO0lBQ0UsNkJBQUE7UUFBQSxnQkFBQTtFcEIyOUJOO0FBQ0Y7QUd4MkJRO0VpQnJIRjtJQUNFLDZCQUFBO1FBQUEsZ0JBQUE7RXBCZytCTjtBQUNGO0FvQnA5Qkk7RUdzREYsbUJBQUE7TUFBQSxrQkFBQTtVQUFBLGNBQUE7QXZCaTZCRjs7QW9CeDhCTTtFR2tGRixvQkFUTTtBdkJtNEJWOztBb0I1OEJNO0VHa0ZGLHFCQVRNO0F2QnU0QlY7O0FvQmg5Qk07RUdrRkYsVUFUTTtBdkIyNEJWOztBb0JwOUJNO0VHa0ZGLHFCQVRNO0F2Qis0QlY7O0FvQng5Qk07RUdrRkYscUJBVE07QXZCbTVCVjs7QW9CNTlCTTtFR2tGRixVQVRNO0F2QnU1QlY7O0FvQmgrQk07RUdrRkYscUJBVE07QXZCMjVCVjs7QW9CcCtCTTtFR2tGRixxQkFUTTtBdkIrNUJWOztBb0J4K0JNO0VHa0ZGLFVBVE07QXZCbTZCVjs7QW9CNStCTTtFR2tGRixxQkFUTTtBdkJ1NkJWOztBb0JoL0JNO0VHa0ZGLHFCQVRNO0F2QjI2QlY7O0FvQnAvQk07RUdrRkYsV0FUTTtBdkIrNkJWOztBR2g2QlE7RWlCNUdGO0lHMkRKLG1CQUFBO1FBQUEsaUJBQUE7WUFBQSxXQUFBO0lBMkNFLFdBVE07RXZCcTdCUjtFb0I3Z0NFO0lHc0RGLG1CQUFBO1FBQUEsa0JBQUE7WUFBQSxjQUFBO0V2QjA5QkE7RW9CMWdDSTtJRzJGRixXQVRNO0V2QjI3QlI7RW9CcGdDSTtJR2tGRixvQkFUTTtFdkI4N0JSO0VvQnZnQ0k7SUdrRkYscUJBVE07RXZCaThCUjtFb0IxZ0NJO0lHa0ZGLFVBVE07RXZCbzhCUjtFb0I3Z0NJO0lHa0ZGLHFCQVRNO0V2QnU4QlI7RW9CaGhDSTtJR2tGRixxQkFUTTtFdkIwOEJSO0VvQm5oQ0k7SUdrRkYsVUFUTTtFdkI2OEJSO0VvQnRoQ0k7SUdrRkYscUJBVE07RXZCZzlCUjtFb0J6aENJO0lHa0ZGLHFCQVRNO0V2Qm05QlI7RW9CNWhDSTtJR2tGRixVQVRNO0V2QnM5QlI7RW9CL2hDSTtJR2tGRixxQkFUTTtFdkJ5OUJSO0VvQmxpQ0k7SUdrRkYscUJBVE07RXZCNDlCUjtFb0JyaUNJO0lHa0ZGLFdBVE07RXZCKzlCUjtBQUNGO0FHajlCUTtFaUI1R0Y7SUcyREosbUJBQUE7UUFBQSxpQkFBQTtZQUFBLFdBQUE7SUEyQ0UsV0FUTTtFdkJxK0JSO0VvQjdqQ0U7SUdzREYsbUJBQUE7UUFBQSxrQkFBQTtZQUFBLGNBQUE7RXZCMGdDQTtFb0IxakNJO0lHMkZGLFdBVE07RXZCMitCUjtFb0JwakNJO0lHa0ZGLG9CQVRNO0V2QjgrQlI7RW9CdmpDSTtJR2tGRixxQkFUTTtFdkJpL0JSO0VvQjFqQ0k7SUdrRkYsVUFUTTtFdkJvL0JSO0VvQjdqQ0k7SUdrRkYscUJBVE07RXZCdS9CUjtFb0Joa0NJO0lHa0ZGLHFCQVRNO0V2QjAvQlI7RW9CbmtDSTtJR2tGRixVQVRNO0V2QjYvQlI7RW9CdGtDSTtJR2tGRixxQkFUTTtFdkJnZ0NSO0VvQnprQ0k7SUdrRkYscUJBVE07RXZCbWdDUjtFb0I1a0NJO0lHa0ZGLFVBVE07RXZCc2dDUjtFb0Iva0NJO0lHa0ZGLHFCQVRNO0V2QnlnQ1I7RW9CbGxDSTtJR2tGRixxQkFUTTtFdkI0Z0NSO0VvQnJsQ0k7SUdrRkYsV0FUTTtFdkIrZ0NSO0FBQ0Y7QW9CamxDRTtFQUNFLFdBQUE7QXBCbWxDSjs7QW9CL2tDRTtFQUNFLFlBQUE7QXBCa2xDSjs7QW9CcGpDRTtFQ3ZHTSxzQkFBQTtFQUFBLHVCQUFBO0FyQmdxQ1I7QUc3Z0NRO0VpQjVDTjtJQ3ZHTSx1QkFBQTtJQUFBLHdCQUFBO0VyQnFxQ047QUFDRjtBb0IzakNJO0VHa0NBLDJCQVRNO0VGM0hKLHFCQUFBO0VBQUEsc0JBQUE7QXJCa3FDTjtBR3hoQ1E7RWlCakNBO0lHMkJKLDRCQVRNO0lGM0hKLHNCQUFBO0lBQUEsdUJBQUE7RXJCd3FDSjtBQUNGO0FvQm5tQ0U7RUc4REUsV0FUTTtBdkJpakNWO0FvQmxtQ0U7RUcwREUsV0FUTTtBdkJvakNWO0FvQjdsQ0k7RUdrREEsb0NBVE07QXZCdWpDVjtBb0JobUNJO0VHa0RBLHFDQVRNO0F2QjBqQ1Y7QW9Cbm1DSTtFR2tEQSwwQkFUTTtBdkI2akNWO0FvQnRtQ0k7RUdrREEscUNBVE07QXZCZ2tDVjtBb0J6bUNJO0VHa0RBLHFDQVRNO0F2Qm1rQ1Y7QW9CNW1DSTtFR2tEQSwwQkFUTTtBdkJza0NWO0FvQi9tQ0k7RUdrREEscUNBVE07QXZCeWtDVjtBb0JsbkNJO0VHa0RBLHFDQVRNO0F2QjRrQ1Y7QW9Ccm5DSTtFR2tEQSwwQkFUTTtBdkIra0NWO0FvQnhuQ0k7RUdrREEscUNBVE07QXZCa2xDVjtBb0IzbkNJO0VHa0RBLHFDQVRNO0F2QnFsQ1Y7QW9COW5DSTtFR2tEQSwyQkFUTTtBdkJ3bENWO0FHemtDUTtFaUJwRU47SUc4REUsV0FUTTtFdkI0bENSO0VvQjdvQ0E7SUcwREUsV0FUTTtFdkIrbENSO0VvQnhvQ0U7SUdrREEscUNBVE07RXZCa21DUjtFb0Izb0NFO0lHa0RBLHNDQVRNO0V2QnFtQ1I7RW9COW9DRTtJR2tEQSwyQkFUTTtFdkJ3bUNSO0VvQmpwQ0U7SUdrREEsc0NBVE07RXZCMm1DUjtFb0JwcENFO0lHa0RBLHNDQVRNO0V2QjhtQ1I7RW9CdnBDRTtJR2tEQSwyQkFUTTtFdkJpbkNSO0VvQjFwQ0U7SUdrREEsc0NBVE07RXZCb25DUjtFb0I3cENFO0lHa0RBLHNDQVRNO0V2QnVuQ1I7RW9CaHFDRTtJR2tEQSwyQkFUTTtFdkIwbkNSO0VvQm5xQ0U7SUdrREEsc0NBVE07RXZCNm5DUjtFb0J0cUNFO0lHa0RBLHNDQVRNO0V2QmdvQ1I7RW9CenFDRTtJR2tEQSw0QkFUTTtFdkJtb0NSO0VvQnhyQ0E7SUc4REUsV0FUTTtFdkJzb0NSO0VvQnZyQ0E7SUcwREUsV0FUTTtFdkJ5b0NSO0VvQmxyQ0U7SUdrREEscUNBVE07RXZCNG9DUjtFb0JyckNFO0lHa0RBLHNDQVRNO0V2QitvQ1I7RW9CeHJDRTtJR2tEQSwyQkFUTTtFdkJrcENSO0VvQjNyQ0U7SUdrREEsc0NBVE07RXZCcXBDUjtFb0I5ckNFO0lHa0RBLHNDQVRNO0V2QndwQ1I7RW9CanNDRTtJR2tEQSwyQkFUTTtFdkIycENSO0VvQnBzQ0U7SUdrREEsc0NBVE07RXZCOHBDUjtFb0J2c0NFO0lHa0RBLHNDQVRNO0V2QmlxQ1I7RW9CMXNDRTtJR2tEQSwyQkFUTTtFdkJvcUNSO0VvQjdzQ0U7SUdrREEsc0NBVE07RXZCdXFDUjtFb0JodENFO0lHa0RBLHNDQVRNO0V2QjBxQ1I7RW9CbnRDRTtJR2tEQSw0QkFUTTtFdkI2cUNSO0FBQ0Y7QUcvcENRO0VpQnBFTjtJRzhERSxXQVRNO0V2QmtyQ1I7RW9CbnVDQTtJRzBERSxXQVRNO0V2QnFyQ1I7RW9COXRDRTtJR2tEQSxxQ0FUTTtFdkJ3ckNSO0VvQmp1Q0U7SUdrREEsc0NBVE07RXZCMnJDUjtFb0JwdUNFO0lHa0RBLDJCQVRNO0V2QjhyQ1I7RW9CdnVDRTtJR2tEQSxzQ0FUTTtFdkJpc0NSO0VvQjF1Q0U7SUdrREEsc0NBVE07RXZCb3NDUjtFb0I3dUNFO0lHa0RBLDJCQVRNO0V2QnVzQ1I7RW9CaHZDRTtJR2tEQSxzQ0FUTTtFdkIwc0NSO0VvQm52Q0U7SUdrREEsc0NBVE07RXZCNnNDUjtFb0J0dkNFO0lHa0RBLDJCQVRNO0V2Qmd0Q1I7RW9CenZDRTtJR2tEQSxzQ0FUTTtFdkJtdENSO0VvQjV2Q0U7SUdrREEsc0NBVE07RXZCc3RDUjtFb0IvdkNFO0lHa0RBLDRCQVRNO0V2Qnl0Q1I7QUFDRjs7QW9CaHRDSTtFQzlJSSx1QkFBQTtFQUFBLHNCQUFBO0FyQm0yQ1I7QUdodENRO0VpQkxKO0lDOUlJLHdCQUFBO0lBQUEsdUJBQUE7RXJCdzJDTjtBQUNGO0FvQnJ0Q0k7RUNwSkksdUJBQUE7RUFBQSxzQkFBQTtBckI2MkNSO0FHMXRDUTtFaUJDSjtJQ3BKSSx3QkFBQTtJQUFBLHVCQUFBO0VyQmszQ047QUFDRjtBb0IxdENJO0VDekpJLHVCQUFBO0VBQUEsc0JBQUE7QXJCdTNDUjtBR3B1Q1E7RWlCTUo7SUN6Skksd0JBQUE7SUFBQSx1QkFBQTtFckI0M0NOO0FBQ0Y7O0F3QjczQ0U7RUQ2SUUsV0FUTTtBdkI2dkNWOztBd0JqNENFO0VENklFLFVBVE07QXZCaXdDVjs7QXdCcjRDRTtFRDZJRSxxQkFUTTtBdkJxd0NWOztBd0J6NENFO0VENklFLFVBVE07QXZCeXdDVjs7QXdCNzRDRTtFRDZJRSxVQVRNO0F2QjZ3Q1Y7O0F3Qmo1Q0U7RUQ2SUUscUJBVE07QXZCaXhDVjs7QXdCcjVDRTtFRDZJRSxxQkFUTTtBdkJxeENWOztBd0J6NUNFO0VENklFLFlBVE07QXZCeXhDVjs7QUcxd0NRO0VxQm5KTjtJRDZJRSxXQVRNO0V2Qjh4Q1I7RXdCbDZDQTtJRDZJRSxVQVRNO0V2Qml5Q1I7RXdCcjZDQTtJRDZJRSxxQkFUTTtFdkJveUNSO0V3Qng2Q0E7SUQ2SUUsVUFUTTtFdkJ1eUNSO0V3QjM2Q0E7SUQ2SUUsVUFUTTtFdkIweUNSO0V3Qjk2Q0E7SUQ2SUUscUJBVE07RXZCNnlDUjtFd0JqN0NBO0lENklFLHFCQVRNO0V2Qmd6Q1I7RXdCcDdDQTtJRDZJRSxZQVRNO0V2Qm16Q1I7QUFDRjtBR3J5Q1E7RXFCbkpOO0lENklFLFdBVE07RXZCd3pDUjtFd0I1N0NBO0lENklFLFVBVE07RXZCMnpDUjtFd0IvN0NBO0lENklFLHFCQVRNO0V2Qjh6Q1I7RXdCbDhDQTtJRDZJRSxVQVRNO0V2QmkwQ1I7RXdCcjhDQTtJRDZJRSxVQVRNO0V2Qm8wQ1I7RXdCeDhDQTtJRDZJRSxxQkFUTTtFdkJ1MENSO0V3QjM4Q0E7SUQ2SUUscUJBVE07RXZCMDBDUjtFd0I5OENBO0lENklFLFlBVE07RXZCNjBDUjtBQUNGO0F3Qmw5Q0U7RUQ2SUUsMkJBVE07QXZCaTFDVjs7QXdCcjlDRTtFRDZJRSwwQkFUTTtBdkJxMUNWOztBd0J6OUNFO0VENklFLHFDQVRNO0F2QnkxQ1Y7O0F3Qjc5Q0U7RUQ2SUUsMEJBVE07QXZCNjFDVjs7QXdCaitDRTtFRDZJRSwwQkFUTTtBdkJpMkNWOztBd0JyK0NFO0VENklFLHFDQVRNO0F2QnEyQ1Y7O0F3QnorQ0U7RUQ2SUUscUNBVE07QXZCeTJDVjs7QXdCNytDRTtFRDZJRSw0QkFUTTtBdkI2MkNWOztBRzkxQ1E7RXFCbkpOO0lENklFLDRCQVRNO0V2QmszQ1I7RXdCdC9DQTtJRDZJRSwyQkFUTTtFdkJxM0NSO0V3QnovQ0E7SUQ2SUUsc0NBVE07RXZCdzNDUjtFd0I1L0NBO0lENklFLDJCQVRNO0V2QjIzQ1I7RXdCLy9DQTtJRDZJRSwyQkFUTTtFdkI4M0NSO0V3QmxnREE7SUQ2SUUsc0NBVE07RXZCaTRDUjtFd0JyZ0RBO0lENklFLHNDQVRNO0V2Qm80Q1I7RXdCeGdEQTtJRDZJRSw2QkFUTTtFdkJ1NENSO0V3QjNnREE7SUQ2SUUsNEJBVE07RXZCMDRDUjtFd0I5Z0RBO0lENklFLDJCQVRNO0V2QjY0Q1I7RXdCamhEQTtJRDZJRSxzQ0FUTTtFdkJnNUNSO0V3QnBoREE7SUQ2SUUsMkJBVE07RXZCbTVDUjtFd0J2aERBO0lENklFLDJCQVRNO0V2QnM1Q1I7RXdCMWhEQTtJRDZJRSxzQ0FUTTtFdkJ5NUNSO0V3QjdoREE7SUQ2SUUsc0NBVE07RXZCNDVDUjtFd0JoaURBO0lENklFLDZCQVRNO0V2Qis1Q1I7QUFDRjtBR2o1Q1E7RXFCbkpOO0lENklFLDRCQVRNO0V2Qm82Q1I7RXdCeGlEQTtJRDZJRSwyQkFUTTtFdkJ1NkNSO0V3QjNpREE7SUQ2SUUsc0NBVE07RXZCMDZDUjtFd0I5aURBO0lENklFLDJCQVRNO0V2QjY2Q1I7RXdCampEQTtJRDZJRSwyQkFUTTtFdkJnN0NSO0V3QnBqREE7SUQ2SUUsc0NBVE07RXZCbTdDUjtFd0J2akRBO0lENklFLHNDQVRNO0V2QnM3Q1I7RXdCMWpEQTtJRDZJRSw2QkFUTTtFdkJ5N0NSO0FBQ0Y7QW9CdjNDTTtFSzlNRSxlQUFBO0VBQUEsY0FBQTtBekJ5a0RSO0F5QnRrRE07RUFFSSxlQUFBO0VBQUEsY0FBQTtBekJ3a0RWO0F5QmxqRFk7RUZ5SFIsb0JBVE07QXZCcThDVjtBeUJyakRZO0VGeUhSLHFCQVRNO0F2Qnc4Q1Y7QXlCeGpEWTtFRnlIUixVQVRNO0F2QjI4Q1Y7QXlCM2pEWTtFRnlIUixxQkFUTTtBdkI4OENWO0F5QjlqRFk7RUZ5SFIscUJBVE07QXZCaTlDVjtBeUJqa0RZO0VGeUhSLFVBVE07QXZCbzlDVjtBeUJwa0RZO0VGeUhSLHFCQVRNO0F2QnU5Q1Y7QXlCdmtEWTtFRnlIUixxQkFUTTtBdkIwOUNWO0F5QjFrRFk7RUZ5SFIsVUFUTTtBdkI2OUNWO0F5QjdrRFk7RUZ5SFIscUJBVE07QXZCZytDVjtBeUJobERZO0VGeUhSLHFCQVRNO0F2Qm0rQ1Y7QXlCbmxEWTtFRnlIUixXQVRNO0F2QnMrQ1Y7QUd2OUNRO0VzQi9ISTtJRnlIUixvQkFUTTtFdkIwK0NSO0V5QjFsRFU7SUZ5SFIscUJBVE07RXZCNitDUjtFeUI3bERVO0lGeUhSLFVBVE07RXZCZy9DUjtFeUJobURVO0lGeUhSLHFCQVRNO0V2Qm0vQ1I7RXlCbm1EVTtJRnlIUixxQkFUTTtFdkJzL0NSO0V5QnRtRFU7SUZ5SFIsVUFUTTtFdkJ5L0NSO0V5QnptRFU7SUZ5SFIscUJBVE07RXZCNC9DUjtFeUI1bURVO0lGeUhSLHFCQVRNO0V2QisvQ1I7RXlCL21EVTtJRnlIUixVQVRNO0V2QmtnRFI7RXlCbG5EVTtJRnlIUixxQkFUTTtFdkJxZ0RSO0V5QnJuRFU7SUZ5SFIscUJBVE07RXZCd2dEUjtFeUJ4bkRVO0lGeUhSLFdBVE07RXZCMmdEUjtBQUNGO0FHNy9DUTtFc0IvSEk7SUZ5SFIsb0JBVE07RXZCZ2hEUjtFeUJob0RVO0lGeUhSLHFCQVRNO0V2Qm1oRFI7RXlCbm9EVTtJRnlIUixVQVRNO0V2QnNoRFI7RXlCdG9EVTtJRnlIUixxQkFUTTtFdkJ5aERSO0V5QnpvRFU7SUZ5SFIscUJBVE07RXZCNGhEUjtFeUI1b0RVO0lGeUhSLFVBVE07RXZCK2hEUjtFeUIvb0RVO0lGeUhSLHFCQVRNO0V2QmtpRFI7RXlCbHBEVTtJRnlIUixxQkFUTTtFdkJxaURSO0V5QnJwRFU7SUZ5SFIsVUFUTTtFdkJ3aURSO0V5QnhwRFU7SUZ5SFIscUJBVE07RXZCMmlEUjtFeUIzcERVO0lGeUhSLHFCQVRNO0V2QjhpRFI7RXlCOXBEVTtJRnlIUixXQVRNO0V2QmlqRFI7QUFDRjs7QW9CeitDTTtFSzdLRSxlQUFBO0VBQUEsY0FBQTtBekIycERSO0F5QnhwRE07RUFFSSxnQkFBQTtFQUFBLGVBQUE7QXpCMHBEVjs7QUc1aURRO0VpQm9ERjtJSzlNRSxlQUFBO0lBQUEsY0FBQTtFekI0c0ROO0V5QnpzREk7SUFFSSxlQUFBO0lBQUEsY0FBQTtFekIyc0RSO0FBQ0Y7QUd2akRRO0VzQnhJSTtJRmtJUixvQkFUTTtFdkIwa0RSO0V5Qm5zRFU7SUZrSVIscUJBVE07RXZCNmtEUjtFeUJ0c0RVO0lGa0lSLFVBVE07RXZCZ2xEUjtFeUJ6c0RVO0lGa0lSLHFCQVRNO0V2Qm1sRFI7RXlCNXNEVTtJRmtJUixxQkFUTTtFdkJzbERSO0V5Qi9zRFU7SUZrSVIsVUFUTTtFdkJ5bERSO0V5Qmx0RFU7SUZrSVIscUJBVE07RXZCNGxEUjtFeUJydERVO0lGa0lSLHFCQVRNO0V2QitsRFI7RXlCeHREVTtJRmtJUixVQVRNO0V2QmttRFI7RXlCM3REVTtJRmtJUixxQkFUTTtFdkJxbURSO0V5Qjl0RFU7SUZrSVIscUJBVE07RXZCd21EUjtFeUJqdURVO0lGa0lSLFdBVE07RXZCMm1EUjtBQUNGO0FHN2xEUTtFc0IvSEk7SUZ5SFIsb0JBVE07RXZCZ25EUjtFeUJodURVO0lGeUhSLHFCQVRNO0V2Qm1uRFI7RXlCbnVEVTtJRnlIUixVQVRNO0V2QnNuRFI7RXlCdHVEVTtJRnlIUixxQkFUTTtFdkJ5bkRSO0V5Qnp1RFU7SUZ5SFIscUJBVE07RXZCNG5EUjtFeUI1dURVO0lGeUhSLFVBVE07RXZCK25EUjtFeUIvdURVO0lGeUhSLHFCQVRNO0V2QmtvRFI7RXlCbHZEVTtJRnlIUixxQkFUTTtFdkJxb0RSO0V5QnJ2RFU7SUZ5SFIsVUFUTTtFdkJ3b0RSO0V5Qnh2RFU7SUZ5SFIscUJBVE07RXZCMm9EUjtFeUIzdkRVO0lGeUhSLHFCQVRNO0V2QjhvRFI7RXlCOXZEVTtJRnlIUixXQVRNO0V2QmlwRFI7QUFDRjtBR25vRFE7RXNCL0hJO0lGeUhSLG9CQVRNO0V2QnNwRFI7RXlCdHdEVTtJRnlIUixxQkFUTTtFdkJ5cERSO0V5Qnp3RFU7SUZ5SFIsVUFUTTtFdkI0cERSO0V5QjV3RFU7SUZ5SFIscUJBVE07RXZCK3BEUjtFeUIvd0RVO0lGeUhSLHFCQVRNO0V2QmtxRFI7RXlCbHhEVTtJRnlIUixVQVRNO0V2QnFxRFI7RXlCcnhEVTtJRnlIUixxQkFUTTtFdkJ3cURSO0V5Qnh4RFU7SUZ5SFIscUJBVE07RXZCMnFEUjtFeUIzeERVO0lGeUhSLFVBVE07RXZCOHFEUjtFeUI5eERVO0lGeUhSLHFCQVRNO0V2QmlyRFI7RXlCanlEVTtJRnlIUixxQkFUTTtFdkJvckRSO0V5QnB5RFU7SUZ5SFIsV0FUTTtFdkJ1ckRSO0FBQ0Y7O0FHenFEUTtFaUIwREY7SUs3S0UsZUFBQTtJQUFBLGNBQUE7RXpCa3lETjtFeUIveERJO0lBRUksZ0JBQUE7SUFBQSxlQUFBO0V6Qml5RFI7QUFDRjs7QUdwckRRO0VpQm9ERjtJSzlNRSxlQUFBO0lBQUEsY0FBQTtFekJvMUROO0V5QmoxREk7SUFFSSxlQUFBO0lBQUEsY0FBQTtFekJtMURSO0FBQ0Y7QUcvckRRO0VzQnhJSTtJRmtJUixvQkFUTTtFdkJrdERSO0V5QjMwRFU7SUZrSVIscUJBVE07RXZCcXREUjtFeUI5MERVO0lGa0lSLFVBVE07RXZCd3REUjtFeUJqMURVO0lGa0lSLHFCQVRNO0V2QjJ0RFI7RXlCcDFEVTtJRmtJUixxQkFUTTtFdkI4dERSO0V5QnYxRFU7SUZrSVIsVUFUTTtFdkJpdURSO0V5QjExRFU7SUZrSVIscUJBVE07RXZCb3VEUjtFeUI3MURVO0lGa0lSLHFCQVRNO0V2QnV1RFI7RXlCaDJEVTtJRmtJUixVQVRNO0V2QjB1RFI7RXlCbjJEVTtJRmtJUixxQkFUTTtFdkI2dURSO0V5QnQyRFU7SUZrSVIscUJBVE07RXZCZ3ZEUjtFeUJ6MkRVO0lGa0lSLFdBVE07RXZCbXZEUjtBQUNGO0FHcnVEUTtFc0J4SUk7SUZrSVIsb0JBVE07RXZCd3ZEUjtFeUJqM0RVO0lGa0lSLHFCQVRNO0V2QjJ2RFI7RXlCcDNEVTtJRmtJUixVQVRNO0V2Qjh2RFI7RXlCdjNEVTtJRmtJUixxQkFUTTtFdkJpd0RSO0V5QjEzRFU7SUZrSVIscUJBVE07RXZCb3dEUjtFeUI3M0RVO0lGa0lSLFVBVE07RXZCdXdEUjtFeUJoNERVO0lGa0lSLHFCQVRNO0V2QjB3RFI7RXlCbjREVTtJRmtJUixxQkFUTTtFdkI2d0RSO0V5QnQ0RFU7SUZrSVIsVUFUTTtFdkJneERSO0V5Qno0RFU7SUZrSVIscUJBVE07RXZCbXhEUjtFeUI1NERVO0lGa0lSLHFCQVRNO0V2QnN4RFI7RXlCLzREVTtJRmtJUixXQVRNO0V2Qnl4RFI7QUFDRjtBRzN3RFE7RXNCL0hJO0lGeUhSLG9CQVRNO0V2Qjh4RFI7RXlCOTREVTtJRnlIUixxQkFUTTtFdkJpeURSO0V5Qmo1RFU7SUZ5SFIsVUFUTTtFdkJveURSO0V5QnA1RFU7SUZ5SFIscUJBVE07RXZCdXlEUjtFeUJ2NURVO0lGeUhSLHFCQVRNO0V2QjB5RFI7RXlCMTVEVTtJRnlIUixVQVRNO0V2QjZ5RFI7RXlCNzVEVTtJRnlIUixxQkFUTTtFdkJnekRSO0V5Qmg2RFU7SUZ5SFIscUJBVE07RXZCbXpEUjtFeUJuNkRVO0lGeUhSLFVBVE07RXZCc3pEUjtFeUJ0NkRVO0lGeUhSLHFCQVRNO0V2Qnl6RFI7RXlCejZEVTtJRnlIUixxQkFUTTtFdkI0ekRSO0V5QjU2RFU7SUZ5SFIsV0FUTTtFdkIrekRSO0FBQ0Y7O0FHanpEUTtFaUIwREY7SUs3S0UsZUFBQTtJQUFBLGNBQUE7RXpCMDZETjtFeUJ2NkRJO0lBRUksZ0JBQUE7SUFBQSxlQUFBO0V6Qnk2RFI7QUFDRjs7QW9CcHZETTtFTW5NRixlQUFBO0ExQjI3REo7O0FvQnB2RE07RU12TUYsbUNBQUE7QTFCKzdESjs7QW9CNXZETTtFTW5NRiwwQkFBQTtBMUJtOERKOztBb0I1dkRNO0VNdk1GLDhDQUFBO0ExQnU4REo7O0FvQnB3RE07RU1uTUYsMkJBQUE7QTFCMjhESjs7QW9CcHdETTtFTXZNRiwrQ0FBQTtBMUIrOERKOztBb0I1d0RNO0VNbk1GLGdCQUFBO0ExQm05REo7O0FvQjV3RE07RU12TUYsb0NBQUE7QTFCdTlESjs7QW9CcHhETTtFTW5NRiwyQkFBQTtBMUIyOURKOztBb0JweERNO0VNdk1GLCtDQUFBO0ExQis5REo7O0FvQjV4RE07RU1uTUYsMkJBQUE7QTFCbStESjs7QW9CNXhETTtFTXZNRiwrQ0FBQTtBMUJ1K0RKOztBb0JweURNO0VNbk1GLGdCQUFBO0ExQjIrREo7O0FvQnB5RE07RU12TUYsb0NBQUE7QTFCKytESjs7QW9CNXlETTtFTW5NRiwyQkFBQTtBMUJtL0RKOztBb0I1eURNO0VNdk1GLCtDQUFBO0ExQnUvREo7O0FvQnB6RE07RU1uTUYsMkJBQUE7QTFCMi9ESjs7QW9CcHpETTtFTXZNRiwrQ0FBQTtBMUIrL0RKOztBb0I1ekRNO0VNbk1GLGdCQUFBO0ExQm1nRUo7O0FvQjV6RE07RU12TUYsb0NBQUE7QTFCdWdFSjs7QW9CcDBETTtFTW5NRiwyQkFBQTtBMUIyZ0VKOztBb0JwMERNO0VNdk1GLCtDQUFBO0ExQitnRUo7O0FvQjUwRE07RU1uTUYsMkJBQUE7QTFCbWhFSjs7QW9CNTBETTtFTXZNRiwrQ0FBQTtBMUJ1aEVKOztBRzU1RFE7RWlCd0VGO0lNbk1GLGVBQUE7RTFCNGhFRjtFb0JyMURJO0lNdk1GLG9DQUFBO0UxQitoRUY7RW9CNTFESTtJTW5NRiwwQkFBQTtFMUJraUVGO0VvQjMxREk7SU12TUYsK0NBQUE7RTFCcWlFRjtFb0JsMkRJO0lNbk1GLDJCQUFBO0UxQndpRUY7RW9CajJESTtJTXZNRixnREFBQTtFMUIyaUVGO0VvQngyREk7SU1uTUYsZ0JBQUE7RTFCOGlFRjtFb0J2MkRJO0lNdk1GLHFDQUFBO0UxQmlqRUY7RW9COTJESTtJTW5NRiwyQkFBQTtFMUJvakVGO0VvQjcyREk7SU12TUYsZ0RBQUE7RTFCdWpFRjtFb0JwM0RJO0lNbk1GLDJCQUFBO0UxQjBqRUY7RW9CbjNESTtJTXZNRixnREFBQTtFMUI2akVGO0VvQjEzREk7SU1uTUYsZ0JBQUE7RTFCZ2tFRjtFb0J6M0RJO0lNdk1GLHFDQUFBO0UxQm1rRUY7RW9CaDRESTtJTW5NRiwyQkFBQTtFMUJza0VGO0VvQi8zREk7SU12TUYsZ0RBQUE7RTFCeWtFRjtFb0J0NERJO0lNbk1GLDJCQUFBO0UxQjRrRUY7RW9CcjRESTtJTXZNRixnREFBQTtFMUIra0VGO0VvQjU0REk7SU1uTUYsZ0JBQUE7RTFCa2xFRjtFb0IzNERJO0lNdk1GLHFDQUFBO0UxQnFsRUY7RW9CbDVESTtJTW5NRiwyQkFBQTtFMUJ3bEVGO0VvQmo1REk7SU12TUYsZ0RBQUE7RTFCMmxFRjtFb0J4NURJO0lNbk1GLDJCQUFBO0UxQjhsRUY7RW9CdjVESTtJTXZNRixnREFBQTtFMUJpbUVGO0FBQ0Y7QUd2K0RRO0VpQndFRjtJTW5NRixlQUFBO0UxQnNtRUY7RW9CLzVESTtJTXZNRixvQ0FBQTtFMUJ5bUVGO0VvQnQ2REk7SU1uTUYsMEJBQUE7RTFCNG1FRjtFb0JyNkRJO0lNdk1GLCtDQUFBO0UxQittRUY7RW9CNTZESTtJTW5NRiwyQkFBQTtFMUJrbkVGO0VvQjM2REk7SU12TUYsZ0RBQUE7RTFCcW5FRjtFb0JsN0RJO0lNbk1GLGdCQUFBO0UxQnduRUY7RW9CajdESTtJTXZNRixxQ0FBQTtFMUIybkVGO0VvQng3REk7SU1uTUYsMkJBQUE7RTFCOG5FRjtFb0J2N0RJO0lNdk1GLGdEQUFBO0UxQmlvRUY7RW9COTdESTtJTW5NRiwyQkFBQTtFMUJvb0VGO0VvQjc3REk7SU12TUYsZ0RBQUE7RTFCdW9FRjtFb0JwOERJO0lNbk1GLGdCQUFBO0UxQjBvRUY7RW9CbjhESTtJTXZNRixxQ0FBQTtFMUI2b0VGO0VvQjE4REk7SU1uTUYsMkJBQUE7RTFCZ3BFRjtFb0J6OERJO0lNdk1GLGdEQUFBO0UxQm1wRUY7RW9CaDlESTtJTW5NRiwyQkFBQTtFMUJzcEVGO0VvQi84REk7SU12TUYsZ0RBQUE7RTFCeXBFRjtFb0J0OURJO0lNbk1GLGdCQUFBO0UxQjRwRUY7RW9CcjlESTtJTXZNRixxQ0FBQTtFMUIrcEVGO0VvQjU5REk7SU1uTUYsMkJBQUE7RTFCa3FFRjtFb0IzOURJO0lNdk1GLGdEQUFBO0UxQnFxRUY7RW9CbCtESTtJTW5NRiwyQkFBQTtFMUJ3cUVGO0VvQmorREk7SU12TUYsZ0RBQUE7RTFCMnFFRjtBQUNGO0FvQm45REU7RUUvT0Esb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw0QkFBQTtFQUFBLDZCQUFBO01BQUEsNEJBQUE7VUFBQSx3QkFBQTtBdEJxc0VGO0FvQm45REk7RUdySUYsWUFBQTtFQUNBLGdCQUFBO0F2QjJsRUY7QW9CbjlESTtFRzVHQSxZQVRNO0F2QjJrRVY7QW9CbDlESTtFR2hIQSxZQVRNO0F2QjhrRVY7QW9CdjhETTtFQUNFLDZCQUFBO01BQUEsZ0JBQUE7QXBCeThEUjtBR2xrRVE7RWlCd0hGO0lBQ0UsNkJBQUE7UUFBQSxnQkFBQTtFcEI2OEROO0FBQ0Y7QUd2a0VRO0VpQndIRjtJQUNFLDZCQUFBO1FBQUEsZ0JBQUE7RXBCazlETjtBQUNGO0FvQnY4RE07RUd0TEosbUJBQUE7TUFBQSxrQkFBQTtVQUFBLGNBQUE7QXZCZ29FRjtBb0IzN0RRO0VHMUpKLHFCQVRNO0F2QmltRVY7QW9COTdEUTtFRzFKSixzQkFUTTtBdkJvbUVWO0FvQmo4RFE7RUcxSkosV0FUTTtBdkJ1bUVWO0FvQnA4RFE7RUcxSkosc0JBVE07QXZCMG1FVjtBb0J2OERRO0VHMUpKLHNCQVRNO0F2QjZtRVY7QW9CMThEUTtFRzFKSixXQVRNO0F2QmduRVY7QW9CNzhEUTtFRzFKSixzQkFUTTtBdkJtbkVWO0FvQmg5RFE7RUcxSkosc0JBVE07QXZCc25FVjtBb0JuOURRO0VHMUpKLFdBVE07QXZCeW5FVjtBb0J0OURRO0VHMUpKLHNCQVRNO0F2QjRuRVY7QW9CejlEUTtFRzFKSixzQkFUTTtBdkIrbkVWO0FvQjU5RFE7RUcxSkosWUFUTTtBdkJrb0VWO0FHbm5FUTtFaUJnSUE7SUdqTE4sbUJBQUE7UUFBQSxpQkFBQTtZQUFBLFdBQUE7SUEyQ0UsWUFUTTtFdkJ1b0VSO0VvQm4vREk7SUd0TEosbUJBQUE7UUFBQSxrQkFBQTtZQUFBLGNBQUE7RXZCNHFFQTtFb0JoL0RNO0lHakpKLFlBVE07RXZCNm9FUjtFb0IxK0RNO0lHMUpKLHFCQVRNO0V2QmdwRVI7RW9CNytETTtJRzFKSixzQkFUTTtFdkJtcEVSO0VvQmgvRE07SUcxSkosV0FUTTtFdkJzcEVSO0VvQm4vRE07SUcxSkosc0JBVE07RXZCeXBFUjtFb0J0L0RNO0lHMUpKLHNCQVRNO0V2QjRwRVI7RW9Cei9ETTtJRzFKSixXQVRNO0V2QitwRVI7RW9CNS9ETTtJRzFKSixzQkFUTTtFdkJrcUVSO0VvQi8vRE07SUcxSkosc0JBVE07RXZCcXFFUjtFb0JsZ0VNO0lHMUpKLFdBVE07RXZCd3FFUjtFb0JyZ0VNO0lHMUpKLHNCQVRNO0V2QjJxRVI7RW9CeGdFTTtJRzFKSixzQkFUTTtFdkI4cUVSO0VvQjNnRU07SUcxSkosWUFUTTtFdkJpckVSO0FBQ0Y7QUducUVRO0VpQmdJQTtJR2pMTixtQkFBQTtRQUFBLGlCQUFBO1lBQUEsV0FBQTtJQTJDRSxZQVRNO0V2QnVyRVI7RW9CbmlFSTtJR3RMSixtQkFBQTtRQUFBLGtCQUFBO1lBQUEsY0FBQTtFdkI0dEVBO0VvQmhpRU07SUdqSkosWUFUTTtFdkI2ckVSO0VvQjFoRU07SUcxSkoscUJBVE07RXZCZ3NFUjtFb0I3aEVNO0lHMUpKLHNCQVRNO0V2Qm1zRVI7RW9CaGlFTTtJRzFKSixXQVRNO0V2QnNzRVI7RW9CbmlFTTtJRzFKSixzQkFUTTtFdkJ5c0VSO0VvQnRpRU07SUcxSkosc0JBVE07RXZCNHNFUjtFb0J6aUVNO0lHMUpKLFdBVE07RXZCK3NFUjtFb0I1aUVNO0lHMUpKLHNCQVRNO0V2Qmt0RVI7RW9CL2lFTTtJRzFKSixzQkFUTTtFdkJxdEVSO0VvQmxqRU07SUcxSkosV0FUTTtFdkJ3dEVSO0VvQnJqRU07SUcxSkosc0JBVE07RXZCMnRFUjtFb0J4akVNO0lHMUpKLHNCQVRNO0V2Qjh0RVI7RW9CM2pFTTtJRzFKSixZQVRNO0V2Qml1RVI7QUFDRjs7QW9CbmpFTTtFQ25URSxxQkFBQTtFQUFBLHdCQUFBO0FyQjIyRVI7QUd4dEVRO0VpQmdLRjtJQ25URSxzQkFBQTtJQUFBLHlCQUFBO0VyQmczRU47QUFDRjtBb0J6akVNO0VDeFRFLHFCQUFBO0VBQUEsd0JBQUE7QXJCcTNFUjtBR2x1RVE7RWlCcUtGO0lDeFRFLHNCQUFBO0lBQUEseUJBQUE7RXJCMDNFTjtBQUNGOztBb0JweEVFO0VDdkdNLHFCQUFBO0VBQUEsd0JBQUE7QXJCZzRFUjtBRzd1RVE7RWlCNUNOO0lDdkdNLHNCQUFBO0lBQUEseUJBQUE7RXJCcTRFTjtBQUNGO0FvQjN4RUk7RUdrQ0EsNEJBVE07RUYzSEosb0JBQUE7RUFBQSx1QkFBQTtBckJrNEVOO0FHeHZFUTtFaUJqQ0E7SUcyQkosNkJBVE07SUYzSEoscUJBQUE7SUFBQSx3QkFBQTtFckJ3NEVKO0FBQ0Y7QW9CbjBFRTtFRzhERSxZQVRNO0F2Qml4RVY7QW9CbDBFRTtFRzBERSxZQVRNO0F2Qm94RVY7QW9CN3pFSTtFR2tEQSxxQ0FUTTtBdkJ1eEVWO0FvQmgwRUk7RUdrREEsc0NBVE07QXZCMHhFVjtBb0JuMEVJO0VHa0RBLDJCQVRNO0F2QjZ4RVY7QW9CdDBFSTtFR2tEQSxzQ0FUTTtBdkJneUVWO0FvQnowRUk7RUdrREEsc0NBVE07QXZCbXlFVjtBb0I1MEVJO0VHa0RBLDJCQVRNO0F2QnN5RVY7QW9CLzBFSTtFR2tEQSxzQ0FUTTtBdkJ5eUVWO0FvQmwxRUk7RUdrREEsc0NBVE07QXZCNHlFVjtBb0JyMUVJO0VHa0RBLDJCQVRNO0F2Qit5RVY7QW9CeDFFSTtFR2tEQSxzQ0FUTTtBdkJrekVWO0FvQjMxRUk7RUdrREEsc0NBVE07QXZCcXpFVjtBb0I5MUVJO0VHa0RBLDRCQVRNO0F2Qnd6RVY7QUd6eUVRO0VpQnBFTjtJRzhERSxZQVRNO0V2QjR6RVI7RW9CNzJFQTtJRzBERSxZQVRNO0V2Qit6RVI7RW9CeDJFRTtJR2tEQSxzQ0FUTTtFdkJrMEVSO0VvQjMyRUU7SUdrREEsdUNBVE07RXZCcTBFUjtFb0I5MkVFO0lHa0RBLDRCQVRNO0V2QncwRVI7RW9CajNFRTtJR2tEQSx1Q0FUTTtFdkIyMEVSO0VvQnAzRUU7SUdrREEsdUNBVE07RXZCODBFUjtFb0J2M0VFO0lHa0RBLDRCQVRNO0V2QmkxRVI7RW9CMTNFRTtJR2tEQSx1Q0FUTTtFdkJvMUVSO0VvQjczRUU7SUdrREEsdUNBVE07RXZCdTFFUjtFb0JoNEVFO0lHa0RBLDRCQVRNO0V2QjAxRVI7RW9CbjRFRTtJR2tEQSx1Q0FUTTtFdkI2MUVSO0VvQnQ0RUU7SUdrREEsdUNBVE07RXZCZzJFUjtFb0J6NEVFO0lHa0RBLDZCQVRNO0V2Qm0yRVI7RW9CeDVFQTtJRzhERSxZQVRNO0V2QnMyRVI7RW9CdjVFQTtJRzBERSxZQVRNO0V2QnkyRVI7RW9CbDVFRTtJR2tEQSxzQ0FUTTtFdkI0MkVSO0VvQnI1RUU7SUdrREEsdUNBVE07RXZCKzJFUjtFb0J4NUVFO0lHa0RBLDRCQVRNO0V2QmszRVI7RW9CMzVFRTtJR2tEQSx1Q0FUTTtFdkJxM0VSO0VvQjk1RUU7SUdrREEsdUNBVE07RXZCdzNFUjtFb0JqNkVFO0lHa0RBLDRCQVRNO0V2QjIzRVI7RW9CcDZFRTtJR2tEQSx1Q0FUTTtFdkI4M0VSO0VvQnY2RUU7SUdrREEsdUNBVE07RXZCaTRFUjtFb0IxNkVFO0lHa0RBLDRCQVRNO0V2Qm80RVI7RW9CNzZFRTtJR2tEQSx1Q0FUTTtFdkJ1NEVSO0VvQmg3RUU7SUdrREEsdUNBVE07RXZCMDRFUjtFb0JuN0VFO0lHa0RBLDZCQVRNO0V2QjY0RVI7QUFDRjtBRy8zRVE7RWlCcEVOO0lHOERFLFlBVE07RXZCazVFUjtFb0JuOEVBO0lHMERFLFlBVE07RXZCcTVFUjtFb0I5N0VFO0lHa0RBLHNDQVRNO0V2Qnc1RVI7RW9CajhFRTtJR2tEQSx1Q0FUTTtFdkIyNUVSO0VvQnA4RUU7SUdrREEsNEJBVE07RXZCODVFUjtFb0J2OEVFO0lHa0RBLHVDQVRNO0V2Qmk2RVI7RW9CMThFRTtJR2tEQSx1Q0FUTTtFdkJvNkVSO0VvQjc4RUU7SUdrREEsNEJBVE07RXZCdTZFUjtFb0JoOUVFO0lHa0RBLHVDQVRNO0V2QjA2RVI7RW9CbjlFRTtJR2tEQSx1Q0FUTTtFdkI2NkVSO0VvQnQ5RUU7SUdrREEsNEJBVE07RXZCZzdFUjtFb0J6OUVFO0lHa0RBLHVDQVRNO0V2Qm03RVI7RW9CNTlFRTtJR2tEQSx1Q0FUTTtFdkJzN0VSO0VvQi85RUU7SUdrREEsNkJBVE07RXZCeTdFUjtBQUNGOztBb0J4dkVFO0VPcFZFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtNQUFBLGlCQUFBO0VBQ0EsMEJBQUE7TUFBQSx1QkFBQTtVQUFBLG9CQUFBO0VBbUNJLFlBQUE7QTNCOGlG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MkJKLDZCQVRNO0lGM0hKLHFCQUFBO0lBQUEsd0JBQUE7RXJCK3RGSjtBQUNGO0FvQjFwRkU7RUc4REUsWUFUTTtBdkJ3bUZWO0FvQnpwRkU7RUcwREUsWUFUTTtBdkIybUZWO0FvQnBwRkk7RUdrREEscUNBVE07QXZCOG1GVjtBb0J2cEZJO0VHa0RBLHNDQVRNO0F2QmluRlY7QW9CMXBGSTtFR2tEQSwyQkFUTTtBdkJvbkZWO0FvQjdwRkk7RUdrREEsc0NBVE07QXZCdW5GVjtBb0JocUZJO0VHa0RBLHNDQVRNO0F2QjBuRlY7QW9CbnFGSTtFR2tEQSwyQkFUTTtBdkI2bkZWO0FvQnRxRkk7RUdrREEsc0NBVE07QXZCZ29GVjtBb0J6cUZJO0VHa0RBLHNDQVRNO0F2Qm1vRlY7QW9CNXFGSTtFR2tEQSwyQkFUTTtBdkJzb0ZWO0FvQi9xRkk7RUdrREEsc0NBVE07QXZCeW9GVjtBb0JsckZJO0VHa0RBLHNDQVRNO0F2QjRvRlY7QW9CcnJGSTtFR2tEQSw0QkFUTTtBdkIrb0ZWO0FHaG9GUTtFaUJwRU47SUc4REUsWUFUTTtFdkJtcEZSO0VvQnBzRkE7SUcwREUsWUFUTTtFdkJzcEZSO0VvQi9yRkU7SUdrREEsc0NBVE07RXZCeXBGUjtFb0Jsc0ZFO0lHa0RBLHVDQVRNO0V2QjRwRlI7RW9CcnNGRTtJR2tEQSw0QkFUTTtFdkIrcEZSO0VvQnhzRkU7SUdrREEsdUNBVE07RXZCa3FGUjtFb0Izc0ZFO0lHa0RBLHVDQVRNO0V2QnFxRlI7RW9COXNGRTtJR2tEQSw0QkFUTTtFdkJ3cUZSO0VvQmp0RkU7SUdrREEsdUNBVE07RXZCMnFGUjtFb0JwdEZFO0lHa0RBLHVDQVRNO0V2QjhxRlI7RW9CdnRGRTtJR2tEQSw0QkFUTTtFdkJpckZSO0VvQjF0RkU7SUdrREEsdUNBVE07RXZCb3JGUjtFb0I3dEZFO0lHa0RBLHVDQVRNO0V2QnVyRlI7RW9CaHVGRTtJR2tEQSw2QkFUTTtFdkIwckZSO0VvQi91RkE7SUc4REUsWUFUTTtFdkI2ckZSO0VvQjl1RkE7SUcwREUsWUFUTTtFdkJnc0ZSO0VvQnp1RkU7SUdrREEsc0NBVE07RXZCbXNGUjtFb0I1dUZFO0lHa0RBLHVDQVRNO0V2QnNzRlI7RW9CL3VGRTtJR2tEQSw0QkFUTTtFdkJ5c0ZSO0VvQmx2RkU7SUdrREEsdUNBVE07RXZCNHNGUjtFb0JydkZFO0lHa0RBLHVDQVRNO0V2QitzRlI7RW9CeHZGRTtJR2tEQSw0QkFUTTtFdkJrdEZSO0VvQjN2RkU7SUdrREEsdUNBVE07RXZCcXRGUjtFb0I5dkZFO0lHa0RBLHVDQVRNO0V2Qnd0RlI7RW9CandGRTtJR2tEQSw0QkFUTTtFdkIydEZSO0VvQnB3RkU7SUdrREEsdUNBVE07RXZCOHRGUjtFb0J2d0ZFO0lHa0RBLHVDQVRNO0V2Qml1RlI7RW9CMXdGRTtJR2tEQSw2QkFUTTtFdkJvdUZSO0FBQ0Y7QUd0dEZRO0VpQnBFTjtJRzhERSxZQVRNO0V2Qnl1RlI7RW9CMXhGQTtJRzBERSxZQVRNO0V2QjR1RlI7RW9CcnhGRTtJR2tEQSxzQ0FUTTtFdkIrdUZSO0VvQnh4RkU7SUdrREEsdUNBVE07RXZCa3ZGUjtFb0IzeEZFO0lHa0RBLDRCQVRNO0V2QnF2RlI7RW9COXhGRTtJR2tEQSx1Q0FUTTtFdkJ3dkZSO0VvQmp5RkU7SUdrREEsdUNBVE07RXZCMnZGUjtFb0JweUZFO0lHa0RBLDRCQVRNO0V2Qjh2RlI7RW9CdnlGRTtJR2tEQSx1Q0FUTTtFdkJpd0ZSO0VvQjF5RkU7SUdrREEsdUNBVE07RXZCb3dGUjtFb0I3eUZFO0lHa0RBLDRCQVRNO0V2QnV3RlI7RW9CaHpGRTtJR2tEQSx1Q0FUTTtFdkIwd0ZSO0VvQm56RkU7SUdrREEsdUNBVE07RXZCNndGUjtFb0J0ekZFO0lHa0RBLDZCQVRNO0V2Qmd4RlI7QUFDRjs7QW9CdGdGSTtFT3RZSSw2QkFBQTtBM0JnNUZSO0FHdHdGUTtFaUI0UEo7SU90WUksOEJBQUE7RTNCbzVGTjtBQUNGO0FHM3dGUTtFaUI0UEo7SU90WUksOEJBQUE7RTNCeTVGTjtBQUNGOztBR2h4RlE7RWlCZ1FGO0lPMVlFLDhCQUFBO0UzQis1Rk47QUFDRjtBR3R4RlE7RWlCZ1FGO0lPMVlFLDhCQUFBO0UzQm82Rk47QUFDRjtBNEJ2b0ZFO0VBck9BLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQjNCNE1jO0UyQmxNWixtQjNCaU1hO0UyQjlMZiw2QjNCc01jO0UyQnJNZCxrQjNCdEJjO0UyQnVCZCx5RTNCZ05rQjtFMkJoTmxCLGlFM0JnTmtCO0UyQi9NbEIsb0IzQnlMbUI7RTJCeExuQixpQkFBQTtFQUVBLHdCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBNUJtMkZGO0FPcHhGRTtFQUNFLFVBQUE7QVBzeEZKO0E0QnBwRk07RUFDRSxpQkFGbUI7QTVCd3BGM0I7QTRCdnBGTTtFQUNFLGtCQUZtQjtBNUIycEYzQjtBNEIxcEZNO0VBQ0Usa0JBRm1CO0E1QjhwRjNCO0E0QnhwRkk7RUFoTkEsY0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBNUIyMkZKO0E0Qmh6Rkk7RUFJSSx5QjNCeEZNO0UyQnlGTixjM0JuSEE7QURrNkZSO0E0QjV5Rkk7RUFDSSx5QjNCaEdLO0UyQmlHTCxjM0J4SEE7QURzNkZSO0E0Qnh6Rkk7RUFJSSx5QjNCeEZNO0UyQnlGTixjQVpRO0E1Qm0wRmhCO0E0QnB6Rkk7RUFDSSx5QjNCaEdLO0UyQmlHTCxjQWpCUTtBNUJ1MEZoQjtBNEJoMEZJO0VBSUkseUIzQnhGTTtFMkJ5Rk4sY0FaUTtBNUIyMEZoQjtBNEI1ekZJO0VBQ0kseUIzQmhHSztFMkJpR0wsY0FqQlE7QTVCKzBGaEI7QTRCeDBGSTtFQUlJLHlCM0J4Rk07RTJCeUZOLGNBWlE7QTVCbTFGaEI7QTRCcDBGSTtFQUNJLHlCM0JoR0s7RTJCaUdMLGNBakJRO0E1QnUxRmhCO0E0QmgxRkk7RUFJSSx5QjNCeEZNO0UyQnlGTixjQVpRO0E1QjIxRmhCO0E0QjUwRkk7RUFDSSx5QjNCaEdLO0UyQmlHTCxjQWpCUTtBNUIrMUZoQjtBNEJ4MUZJO0VBSUkseUIzQnhGTTtFMkJ5Rk4sY0FaUTtBNUJtMkZoQjtBNEJwMUZJO0VBQ0kseUIzQmhHSztFMkJpR0wsY0FqQlE7QTVCdTJGaEI7QTRCOTBGSTtFQUNFLDZCQUFBO0E1QmcxRk47QTRCL3pGRTtFQUlFLHlCQUFBO0VBQ0EsY0MvR2dCO0E3QjY2RnBCO0E0QjN6RkU7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCMDBGaEI7QTRCdjBGRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRHcrRnJCO0E0Qm4wRkU7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCazFGaEI7QTRCLzBGRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRGcvRnJCO0E0QjMwRkU7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCMDFGaEI7QTRCdjFGRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRHcvRnJCO0E0Qm4xRkU7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCazJGaEI7QTRCLzFGRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRGdnR3JCO0E0QjMxRkU7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCMDJGaEI7QTRCdjJGRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRHdnR3JCO0E0Qm4yRkU7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCazNGaEI7QTRCNzFGSTtFQUNFLHlCQUFBO0VBQ0EsNkJBQUE7QTVCKzFGTjtBNEJoMUZFO0VBSUUsYzNCbEtTO0FEaS9GYjtBNEI1MEZFO0VBQ0UsYzNCdEtTO0UyQnVLVCwwQkFBQTtBNUI4MEZKO0E0QnYxRkU7RUFJRSxjM0JsS1M7QUR3L0ZiO0E0Qm4xRkU7RUFDRSxjM0J0S1M7RTJCdUtULDBCQUFBO0E1QnExRko7QTRCOTFGRTtFQUlFLGMzQmxLUztBRCsvRmI7QTRCMTFGRTtFQUNFLGMzQnRLUztFMkJ1S1QsMEJBQUE7QTVCNDFGSjtBNEJyMkZFO0VBSUUsYzNCbEtTO0FEc2dHYjtBNEJqMkZFO0VBQ0UsYzNCdEtTO0UyQnVLVCwwQkFBQTtBNUJtMkZKO0E0QjUyRkU7RUFJRSxjM0JsS1M7QUQ2Z0diO0E0QngyRkU7RUFDRSxjM0J0S1M7RTJCdUtULDBCQUFBO0E1QjAyRko7QTRCbjNGRTtFQUlFLGMzQmxLUztBRG9oR2I7QTRCLzJGRTtFQUNFLGMzQnRLUztFMkJ1S1QsMEJBQUE7QTVCaTNGSjtBNEJyd0ZJO0VBbkdGLGEzQndDd0I7RTJCdkN4QixtQkFBQTtBNUIyMkZGO0E0Qi8xRkU7RXJCeFBBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUVBLG1CQUFBO0VBQ0EsbUJxQitPTztFckI3T1AsV0FBQTtFQUdFLHNCQUFBO0VBQ0EsNkNBQUE7RXFCK09BLGtCQUFBO0VBQ0EsVUFBQTtFQUVBLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQVRPO0E1QmczRlg7QTRCendGUTtFQUNFLHlCQ2xSVTtBN0I2aEdwQjtBNEJ0d0ZZO0VBQ0UseUIzQjNVTztBRG1sR3JCO0E0Qnp3Rlk7RUFDRSx5QjNCM1VPO0FEc2xHckI7QTRCNXdGWTtFQUNFLHlCM0IzVU87QUR5bEdyQjtBNEIvd0ZZO0VBQ0UseUIzQjNVTztBRDRsR3JCO0E0Qmx4Rlk7RUFDRSx5QjNCM1VPO0FEK2xHckI7QTRCNXdGSTtFQUNFLFdBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtBNUI4d0ZOOztBNEJ6d0ZJO0VBRUUscUJBQUE7QTVCMndGTjs7QThCeDlGRTtFQWxMQSxtQjdCcVNtQjtFNkJsU2pCLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0EsMEJBQUE7TUFBQSx1QkFBQTtVQUFBLG9CQUFBO0VBQ0EsbUJBQUE7TUFBQSxvQkFBQTtVQUFBLFlBQUE7QTlCNG9HSjtBTzdnR0U7RUFFRSxjQUFBO0VBQ0EsWUFBQTtFQUdFLDBCQUFBO01BQUEsYUFBQTtFQUNBLDRCQUFBO01BQUEsaUJBQUE7VUFBQSxRQUFBO0FQNGdHTjtBT3hnR0U7RUFDRSxXQUFBO0FQMGdHSjtBOEJucEdJO0VBRUUsYUFBQTtBOUJvcEdOO0E4QjdvR0U7RUFDRSxTQUFBO0VBQ0EsaUI3Qm1Sa0I7RTZCbFJsQixrQjdCa1JrQjtFNkJqUmxCLGlCQUFBO0VBR0UsbUJBQUE7TUFBQSxrQkFBQTtVQUFBLGNBQUE7QTlCNm9HTjtBOEIxb0dJO0VBQ0UsZUFBQTtBOUI0b0dOO0E4QmovRk07RUFDRSxpQkFGbUI7QTlCcS9GM0I7QThCcC9GTTtFQUNFLGtCQUZtQjtBOUJ3L0YzQjtBOEJ2L0ZNO0VBQ0Usa0JBRm1CO0E5QjIvRjNCO0E4QmxtR0U7RUFFSSxtQkFBQTtNQUFBLGlCQUFBO1VBQUEsYUFBQTtBOUJtbUdOO0E0QnpoR0k7RUFJSSx5QjNCeEZNO0UyQnlGTixjQVpRO0E1Qm9pR2hCO0E0QnJoR0k7RUFDSSx5QjNCaEdLO0UyQmlHTCxjQWpCUTtBNUJ3aUdoQjtBNEJqaUdJO0VBSUkseUIzQnhGTTtFMkJ5Rk4sY0FaUTtBNUI0aUdoQjtBNEI3aEdJO0VBQ0kseUIzQmhHSztFMkJpR0wsY0FqQlE7QTVCZ2pHaEI7QTRCemlHSTtFQUlJLHlCM0J4Rk07RTJCeUZOLGNBWlE7QTVCb2pHaEI7QTRCcmlHSTtFQUNJLHlCM0JoR0s7RTJCaUdMLGNBakJRO0E1QndqR2hCO0E0QmpqR0k7RUFJSSx5QjNCeEZNO0UyQnlGTixjQVpRO0E1QjRqR2hCO0E0QjdpR0k7RUFDSSx5QjNCaEdLO0UyQmlHTCxjQWpCUTtBNUJna0doQjtBNEJ6akdJO0VBSUkseUIzQnhGTTtFMkJ5Rk4sY0FaUTtBNUJva0doQjtBNEJyakdJO0VBQ0kseUIzQmhHSztFMkJpR0wsY0FqQlE7QTVCd2tHaEI7QTRCL2lHSTtFQUNFLDZCQUFBO0E1QmlqR047QTRCaGlHRTtFQUlFLHlCQUFBO0VBQ0EsY0MvR2dCO0E3QjhvR3BCO0E0QjVoR0U7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCMmlHaEI7QTRCeGlHRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRHlzR3JCO0E0QnBpR0U7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCbWpHaEI7QTRCaGpHRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRGl0R3JCO0E0QjVpR0U7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCMmpHaEI7QTRCeGpHRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRHl0R3JCO0E0QnBqR0U7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCbWtHaEI7QTRCaGtHRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRGl1R3JCO0E0QjVqR0U7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCMmtHaEI7QTRCeGtHRTtFQUlFLHlCQUFBO0VBQ0EsYzNCbEtpQjtBRHl1R3JCO0E0QnBrR0U7RUFDRSxxQkFaWTtFQWFaLGNBYlk7QTVCbWxHaEI7QTRCOWpHSTtFQUNFLHlCQUFBO0VBQ0EsNkJBQUE7QTVCZ2tHTjtBNEJqakdFO0VBSUUsYzNCbEtTO0FEa3RHYjtBNEI3aUdFO0VBQ0UsYzNCdEtTO0UyQnVLVCwwQkFBQTtBNUIraUdKO0E0QnhqR0U7RUFJRSxjM0JsS1M7QUR5dEdiO0E0QnBqR0U7RUFDRSxjM0J0S1M7RTJCdUtULDBCQUFBO0E1QnNqR0o7QTRCL2pHRTtFQUlFLGMzQmxLUztBRGd1R2I7QTRCM2pHRTtFQUNFLGMzQnRLUztFMkJ1S1QsMEJBQUE7QTVCNmpHSjtBNEJ0a0dFO0VBSUUsYzNCbEtTO0FEdXVHYjtBNEJsa0dFO0VBQ0UsYzNCdEtTO0UyQnVLVCwwQkFBQTtBNUJva0dKO0E0QjdrR0U7RUFJRSxjM0JsS1M7QUQ4dUdiO0E0QnprR0U7RUFDRSxjM0J0S1M7RTJCdUtULDBCQUFBO0E1QjJrR0o7QTRCcGxHRTtFQUlFLGMzQmxLUztBRHF2R2I7QTRCaGxHRTtFQUNFLGMzQnRLUztFMkJ1S1QsMEJBQUE7QTVCa2xHSjtBOEJ4d0dFO0VBQ0Usd0JBQUE7QTlCMHdHSjtBOEJ4d0dJO0VBQ0UsOEJBQUE7QTlCMHdHTjtBOEJobUdJO0VBaEhBLG1CQUFBO01BQUEsZUFBQTtBOUJtdEdKO0E4Qmh0R0U7RUFFSSxtQkFBQTtNQUFBLGtCQUFBO1VBQUEsY0FBQTtBOUJpdEdOO0E4QjNzR0k7RUFDRSxnQkFBQTtBOUI2c0dOO0E4Qjd2R0U7RUFFSSxtQkFBQTtNQUFBLGlCQUFBO1VBQUEsYUFBQTtBOUI4dkdOO0FHaHNHUTtFMkJRTjtJQUVJLG1CQUFBO1FBQUEsa0JBQUE7WUFBQSxjQUFBO0lBS0YsZ0JBQUE7RTlCc3JHRjtBQUNGO0FHdHNHUTtFMkJRTjtJQUVJLG1CQUFBO1FBQUEsa0JBQUE7WUFBQSxjQUFBO0lBS0YsZ0JBQUE7RTlCNHJHRjtBQUNGO0FHNXNHUTtFMkIwR0o7SUFFSSxjQUFBO0U5Qm9tR047RThCbG1HTTtJQUNFLGNBQUE7SUFDQSxlQUFBO0U5Qm9tR1I7QUFDRjtBR3J0R1E7RTJCcUhKO0lBRUksY0FBQTtFOUJrbUdOO0U4QmhtR007SUFDRSxjQUFBO0lBQ0EsZUFBQTtFOUJrbUdSO0FBQ0Y7O0ErQnR5R0U7RUFaQSxrQkFBQTtFQUNBLFc5QmdSb0I7RThCL1FwQixjOUJsQlU7RThCbUJWLGVBQUE7QS9Cc3pHRjtBTy9zR0U7RUFDRSxVQUFBO0FQaXRHSjtBK0J2ekdFO0VBRUUsYzlCdEJJO0FEODBHUjtBK0IxeUdRO0VBakNOLGNBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0EvQjgwR0Y7O0ErQmh6R1E7RUFqQ04sV0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtBL0JxMUdGOztBZ0MzbkdFO0VBOUdBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CL0I3R2M7RStCOEdkLGtCL0J6R2M7QURzMUdoQjtBZ0NyMEdFOzs7RUFHRSx5Qi9CdXJCVztFK0J0ckJYLHlCL0JoQ0k7QUR1MkdSOztBZ0NuMEdFO0VBQ0UsaUMvQmtyQlk7RStCanJCWixpQi9CNUJpQjtBRGsyR3JCOztBZ0NsMEdFO0VBQ0UsbUIvQm1yQm9CO0UrQmxyQnBCLGMvQjdDSTtBRGszR1I7O0FnQ2owR0U7RUFDRSxtQi9CK3FCb0I7RStCOXFCcEIsYy9CbkRJO0FEdTNHUjs7QWdDN3pHSTs7RUFDRSx1QkFBQTtBaENpMEdOO0FnQzd6R0k7Ozs7RUFFRSxpQy9CdXBCVTtFK0J0cEJWLGlCL0J2RGU7RStCd0RmLGdCQUFBO0FoQ2kwR047O0FnQzN6R0k7O0VBRUUsaUMvQjZvQlU7QURpckZoQjs7QWdDbjRHTTtFQUNFLGdCQUFBO0VBQ0EseUIvQnF0Qm1CO0FEaXJGM0I7O0FnQ3h6R007RUFFRSx5Qi9CdkZBO0FEaTVHUjtBZ0M1M0dFO0VBQ0UsZ0MvQmdzQlc7RStCL3JCWCx5Qi9CdkJJO0FEcTVHUjs7QUduekdRO0U2QndHSjtJQUNFLGFBQUE7RWhDK3NHSjtFZ0Mzc0dBO0lBQ0UsYUFBQTtFaEM2c0dGO0VnQzFzR0E7OztJQUdFLGNBQUE7RWhDNHNHRjtFZ0N6c0dBO0lBQ0UsYUFBQTtFaEMyc0dGO0FBQ0Y7O0FnQzdyR0U7RUF2R0EsY0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtBaEN3eUdGOztBZ0NqeUdJO0VBQ0UseUIvQm1sQmlCO0FEaXRGdkI7QWdDOXhHSTtFQUNFLHlCL0I4a0JpQjtBRGt0RnZCO0FnQzF4R0k7RUFDRSx5Qi9CK2pCWTtBRDZ0RmxCO0FnQ3J4R007RUFDRSx5Qi9Cd2pCaUI7QUQrdEZ6Qjs7QWdDeHNHRTtFQUNFLGdCQUFBO0FoQzJzR0o7O0FpQy81R0U7RUE5Q0Esd0JoQzZObUI7RWdDNU5uQixnQkFBQTtBakNpOUdGO0FPMTJHRTtFQUVFLGNBQUE7RUFDQSxZQUFBO0VBR0UsMEJBQUE7TUFBQSxhQUFBO0VBQ0EsNEJBQUE7TUFBQSxpQkFBQTtVQUFBLFFBQUE7QVB5MkdOO0FPcjJHRTtFQUNFLFdBQUE7QVB1MkdKO0FpQ3Y5R0U7RUFDRSxXQUFBO0VBRUEsbUJoQ3VOeUI7RWdDdE56QixjaENPSTtFZ0NOSixlQUFBO0VBRUY7OztPQUFBO0FqQzA5R0Y7QWlDaDlHUTtFQUNFLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFQUTtFQVFSLGNoQ2JJO0FEKzlHZDtBaUN4OEdFO0VBQ0UsY2hDRVM7QUR3OEdiO0FpQ3g4R0k7RUFDRSwwQkFBQTtBakMwOEdOO0FpQ2o4R0k7RUFDRSxjaENyQ1E7RWdDc0NSLG1CQUFBO0FqQ204R047O0FrQzM5R0U7RUExQ0Esa0JBQUE7RUFDQSxrQmpDa1NlO0VpQ2pTZixhQUFBO0VBRUEsd0NqQzhSZTtFaUM3UmYsa0JqQ3FDYztFaUNwQmQsdUJBRmE7RUFHYixjQUFBO0FsQ3cvR0Y7QWtDdmdIRTtFQUNFLGFBQUE7QWxDeWdISjtBa0N0Z0hFO0VBQ0UsZ0JBQUE7QWxDd2dISjtBa0N2K0dNO0VBeEJKLHlCQUZhO0VBR2IsY0FBQTtBbENrZ0hGO0FrQzMrR007RUF4QkoseUJBRmE7RUFHYixjQUFBO0FsQ3NnSEY7QWtDLytHTTtFQXhCSix5QkFGYTtFQUdiLGNBQUE7QWxDMGdIRjtBa0NuL0dNO0VBeEJKLHlCQUZhO0VBR2IsY0FBQTtBbEM4Z0hGO0FrQ3YvR007RUF4QkoseUJBRmE7RUFHYixjQUFBO0FsQ2toSEY7QWtDci9HTTtFQXpCSixtQkF3QjJCO0VBdkIzQixxQkF1QjJCO0VBdEIzQixzQkFzQjJCO0VBckIzQixvQkFxQjJCO0FsQzQvRzdCO0FrQzMvR007RUF6QkosaUJBd0IyQjtFQXZCM0IsbUJBdUIyQjtFQXRCM0Isb0JBc0IyQjtFQXJCM0Isa0JBcUIyQjtBbENrZ0g3Qjs7QW1DeC9HRTtFQXZERSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDRCQUFBO0VBQUEsNkJBQUE7TUFBQSwwQkFBQTtVQUFBLHNCQUFBO0VBQ0EsbUJBQUE7TUFBQSxvQkFBQTtVQUFBLFlBQUE7RUFHRixtQmxDMEJjO0VrQ3hCZCx5QmxDdVNZO0VrQ3RTWixrQmxDNEJjO0VrQzFCZCxtQmxDZU07RWtDZE4sd0JsQ29TWTtVa0NwU1osZ0JsQ29TWTtFa0NsU1osZ0JBQUE7RUFDQSxjbENVTTtBRG9pSFI7QW1DNWlIRTtFQUNFLGdCQUFBO0FuQzhpSEo7O0FtQ3BnSEU7RUFoQ0Usb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGtCQUFBO1VBQUEsY0FBQTtFQUdGLGFsQ0NlO0VrQ0FmLG1CbENYVztBRGlqSGI7QW1DcGlIRTtFQUNFLGdCQUFBO0FuQ3NpSEo7O0FtQzFnSEU7RUFuQkUsbUJBQUE7TUFBQSxrQkFBQTtVQUFBLGNBQUE7RUFHRixhbENmZTtBRDhpSGpCO0FtQzdoSEU7RUFDRSxnQkFBQTtBbkMraEhKOztBbUM1Z0hFO0VBQ0UsZUFBQTtBbkMrZ0hKOztBb0N2a0hFO0VBNUJBLGtCQUFBO0VBQ0EsV0FBQTtFQUVBLGFBQUE7RUFFQSxZbkN1V2U7RW1DdFdmLGFuQ2tXaUI7RW1DaFdqQixrQkFBQTtFQUNBLHlCbkNpV2dCO0VtQ2hXaEIsa0JuQ3dDYztFbUN2Q2QseUJuQzRCTTtFbUMxQk4sZW5DOFZtQjtBRHF3R3JCO0FvQy9sSEU7RUFDRSxjQUFBO0FwQ2ltSEo7QW9DOWxIRTtFQUNFLGNBQUE7RUFDQSxtQkFBQTtBcENnbUhKOztBb0NybEhNO0VBQ0UsWW5DMlVTO0FENndHakI7O0FvQ3psSE07RUFDRSxZbkMyVVM7QURpeEdqQjs7QW9DN2xITTtFQUNFLFluQzJVUztBRHF4R2pCOztBcUNwZ0hFO0VBbkZBLGNBQUE7RUFDQSxtQkFBQTtBckMybEhGO0FPemdIRTtFQUVFLGNBQUE7RUFDQSxZQUFBO0VBR0UsMEJBQUE7TUFBQSxhQUFBO0VBQ0EsNEJBQUE7TUFBQSxpQkFBQTtVQUFBLFFBQUE7QVB3Z0hOO0FPcGdIRTtFQUNFLFdBQUE7QVBzZ0hKO0FxQ2ptSEU7RUFDRSx1QnBDNGRzQjtFb0MzZHRCLGtCQUFBO0VBQ0EsbUJwQ3NkbUI7RW9DaGRqQixhQUFBO0FyQzhsSE47QXFDNWxITTtFQUVFLHFCQUFBO0FyQzZsSFI7QUdqaEhRO0VrQ3pGTjtJQXVCTSxxQkFBQTtFckN1bEhOO0FBQ0Y7QXFDbGxIRTs7RUFFRSxjQUFBO0VBQ0EsMkJwQzRic0I7RW9DM2J0QixrQnBDL0JZO0VvQ2dDWixjcEM1Q0k7QURnb0hSO0FxQ2xsSEk7O0VBQ0UsbUJwQ2xETztBRHVvSGI7QXFDeGlISTtFQWxDRiwyQnBDNGF3QjtFb0MzYXhCLG1CUmxCa0I7RVFtQmxCLGNwQzNETTtFb0M0RE4sZUFBQTtBckM2a0hGO0FxQzFpSEk7RUEzQkYsMkJwQ2lhd0I7RW9DaGF4QixjcEN4RVk7RW9DeUVaLG1CQUFBO0FyQ3drSEY7QXFDdGtIRTtFQUNFLHVCQUFBO0FyQ3drSEo7QXFDOWlISTtFQWpCRiwyQnBDbVp3QjtFb0NsWnhCLFlBQUE7RUFDQSxjcENyRk07QUR1cEhSOztBcUM3aUhJOztFQUVFLHFCQUFBO0VBQ0Esb0JBQUE7RUFDQSxZ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UTtNQVFSLHVCQVJRO1VBUVIsb0JBUlE7QXJENGhLVjs7QW9ENStKSTtFQ3hCRiw0QkFQUTtNQU9SLG1CQVBRO0FyRCtnS1Y7O0FvRDErSkU7RUMvQ0Esd0JBaEJRO01BZ0JSLHFCQWhCUTtVQWdCUix1QkFoQlE7RUFpQlIseUJBUlE7TUFRUixzQkFSUTtVQVFSLG1CQVJRO0VEd0ROLDBCQUFBO01BQUEscUJBQUE7QXBEOCtKSjs7QW9EeCtKTTtFQ2hDSiw0QkQrQmU7TUMvQmYsaUJEK0JlO1VDL0JmLFFEK0JlO0FwRDYrSmpCOztBb0Q1K0pNO0VDaENKLDRCRCtCZTtNQy9CZixpQkQrQmU7VUMvQmYsUUQrQmU7QXBEaS9KakI7O0FvRGgvSk07RUNoQ0osNEJEK0JlO01DL0JmLGlCRCtCZTtVQy9CZixRRCtCZTtBcERxL0pqQjs7QW9EcC9KTTtFQ2hDSiw0QkQrQmU7TUMvQmYsaUJEK0JlO1VDL0JmLFFEK0JlO0FwRHkvSmpCOztBb0R4L0pNO0VDaENKLDRCRCtCZTtNQy9CZixpQkQrQmU7VUMvQmYsUUQrQmU7QXBENi9KakI7O0FvRDUvSk07RUNoQ0osNEJEK0JlO01DL0JmLGlCRCtCZTtVQy9CZixRRCtCZTtBcERpZ0tqQjs7QUczN0pRO0VpRHJFRjtJQ2hDSiw0QkQrQmU7UUMvQmYsaUJEK0JlO1lDL0JmLFFEK0JlO0VwRHNnS2Y7RW9EcmdLSTtJQ2hDSiw0QkQrQmU7UUMvQmYsaUJEK0JlO1lDL0JmLFFEK0JlO0VwRHlnS2Y7RW9EeGdLSTtJQ2hDSiw0QkQrQmU7UUMvQmYsaUJEK0JlO1lDL0JmLFFEK0JlO0VwRDRnS2Y7RW9EM2dLSTtJQ2hDSiw0QkQrQmU7UUMvQmYsaUJEK0JlO1lDL0JmLFFEK0JlO0VwRCtnS2Y7RW9EOWdLSTtJQ2hDSiw0QkQrQmU7UUMvQmYsaUJEK0JlO1lDL0JmLFFEK0JlO0VwRGtoS2Y7RW9EamhLSTtJQ2hDSiw0QkQrQmU7UUMvQmYsaUJEK0JlO1lDL0JmLFFEK0JlO0VwRHFoS2Y7QUFDRjtBR2g5SlE7RWlEckVGO0lDaENKLDRCRCtCZTtRQy9CZixpQkQrQmU7WUMvQmYsUUQrQmU7RXBEMGhLZjtFb0R6aEtJO0lDaENKLDRCRCtCZTtRQy9CZixpQkQrQmU7WUMvQmYsUUQrQmU7RXBENmhLZjtFb0Q1aEtJO0lDaENKLDRCRCtCZTtRQy9CZixpQkQrQmU7WUMvQmYsUUQrQmU7RXBEZ2lLZjtFb0QvaEtJO0lDaENKLDRCRCtCZTtRQy9CZixpQkQrQmU7WUMvQmYsUUQrQmU7RXBEbWlLZjtFb0RsaUtJO0lDaENKLDRCRCtCZTtRQy9CZixpQkQrQmU7WUMvQmYsUUQrQmU7RXBEc2lLZjtFb0RyaUtJO0lDaENKLDRCRCtCZTtRQy9CZixpQkQrQmU7WUMvQmYsUUQrQmU7RXBEeWlLZjtBQUNGO0FvRHRvS0U7RUNZQSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsYUFBQTtBckQ2bktGOztBb0Ryb0tFO0VBQ0UsbUJBQUE7TUFBQSxrQkFBQTtVQUFBLGNBQUE7QXBEd29LSjs7QW9Ecm9LRTtFQUNFLG1CQUFBO01BQUEsa0JBQUE7VUFBQSxjQUFBO0FwRHdvS0o7O0FvRHJvS0U7RUFDRSxtQkFBQTtNQUFBLGtCQUFBO1VBQUEsY0FBQTtBcER3b0tKOztBb0Rwb0tJO0VDc0RGLDhCQXBFbUI7RUFvRW5CLDZCQXBFbUI7TUFvRW5CLHVCQXBFbUI7VUFvRW5CLG1CQXBFbUI7QXJEc3BLckI7O0FvRHhvS0k7RUNzREYsOEJBcEVtQjtFQW9FbkIsOEJBcEVtQjtNQW9FbkIsK0JBcEVtQjtVQW9FbkIsMkJBcEVtQjtBckQwcEtyQjs7QW9ENW9LSTtFQ3NERiw0QkFwRW1CO0VBb0VuQiw2QkFwRW1CO01Bb0VuQiwwQkFwRW1CO1VBb0VuQixzQkFwRW1CO0FyRDhwS3JCOztBb0RocEtJO0VDc0RGLDRCQXBFbUI7RUFvRW5CLDhCQXBFbUI7TUFvRW5CLGtDQXBFbUI7VUFvRW5CLDhCQXBFbUI7QXJEa3FLckI7O0FHbmdLUTtFaUR2SUU7SUNmUixvQkFBQTtJQUFBLG9CQUFBO0lBQUEsYUFBQTtFckQ4cEtBO0VvRDNvS1E7SUFDRSxtQkFBQTtRQUFBLGtCQUFBO1lBQUEsY0FBQTtFcEQ2b0tWO0Vv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LFVBQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjakUrREE7RWlFOURBLFdBQUE7RUFDQSwyQkFBQTtNQUFBLGtCQUFBO0VBQ0EsZ0JBQUE7QWxFNjlNUjtBa0UzOU1RO0VBQ0ksZUFBQTtBbEU2OU1aO0FrRXo5TUk7RUFDSSxvQkFBQTtFQUFBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDRCQUFBO0VBQUEsNkJBQUE7TUFBQSwwQkFBQTtVQUFBLHNCQUFBO0FsRTI5TVI7O0FHdDBNUTtFK0QvSUE7SUFDQSxhQUFBO0VsRXk5TU47QUFDRjtBRzUwTVE7RStEcklKO0lBQ0ksV0FBQTtJQUNBLFlBQUE7RWxFbzlNTjtFa0VsOU1FO0lBQ1EsZ0JBQUE7SUFDQSxjQUFBO0lBQ0EsV0FBQTtJQUNBLFNBQUE7SUFDQSxVQUFBO0VsRW85TVY7QUFDRjtBR3oxTVE7RStEcEhBO0lBQ0ksVUFBQTtJQUNBLE9BQUE7SUFDQSxjQUFBO0lBQ0EsZUFBQTtJQUNBLGFBQUE7SUFDQSxVQUFBO0VsRWc5TVY7RWtFNzhNTTtJQUNJLFNBQUE7RWxFKzhNVjtBQUNGO0FHajJNUTtFK0R4R0E7SUFDSSxjQUFBO0lBQ0EsWUFBQTtJQUNBLFVBQUE7RWxFNDhNVjtBQUNGO0FHeDJNUTtFK0Q5RkE7SUFDSSxjQUFBO0lBQ0EsV0FBQTtJQUNBLFlBQUE7RWxFeThNVjtBQUNGIiwiZmlsZSI6ImFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKlZlcmlzayBjb2xvcnMqL1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjguMVxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwubGFyZ2UsIC5yZXZlYWwuc21hbGwsIC5yZXZlYWwudGlueSwgLnJldmVhbCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1zdWJtaXRdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2RhdGEtd2hhdGludGVudD1tb3VzZV0gKiwgW2RhdGEtd2hhdGludGVudD1tb3VzZV0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnRlbnQ9dG91Y2hdICosXG5bZGF0YS13aGF0aW50ZW50PXRvdWNoXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAqLFxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGlucHV0PXRvdWNoXSAqLFxuW2RhdGEtd2hhdGlucHV0PXRvdWNoXSAqOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuW2RyYWdnYWJsZT1mYWxzZV0ge1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtJnh4eGxhcmdlPTEwMGVtXCI7XG59XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG59XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBhdXRvO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSBidXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5bdHlwZT10ZXh0XSwgW3R5cGU9cGFzc3dvcmRdLCBbdHlwZT1kYXRlXSwgW3R5cGU9ZGF0ZXRpbWVdLCBbdHlwZT1kYXRldGltZS1sb2NhbF0sIFt0eXBlPW1vbnRoXSwgW3R5cGU9d2Vla10sIFt0eXBlPWVtYWlsXSwgW3R5cGU9bnVtYmVyXSwgW3R5cGU9c2VhcmNoXSwgW3R5cGU9dGVsXSwgW3R5cGU9dGltZV0sIFt0eXBlPXVybF0sIFt0eXBlPWNvbG9yXSxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblt0eXBlPXRleHRdOmZvY3VzLCBbdHlwZT1wYXNzd29yZF06Zm9jdXMsIFt0eXBlPWRhdGVdOmZvY3VzLCBbdHlwZT1kYXRldGltZV06Zm9jdXMsIFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpmb2N1cywgW3R5cGU9bW9udGhdOmZvY3VzLCBbdHlwZT13ZWVrXTpmb2N1cywgW3R5cGU9ZW1haWxdOmZvY3VzLCBbdHlwZT1udW1iZXJdOmZvY3VzLCBbdHlwZT1zZWFyY2hdOmZvY3VzLCBbdHlwZT10ZWxdOmZvY3VzLCBbdHlwZT10aW1lXTpmb2N1cywgW3R5cGU9dXJsXTpmb2N1cywgW3R5cGU9Y29sb3JdOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xufVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbnRleHRhcmVhW3Jvd3NdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5bdHlwZT1zdWJtaXRdLFxuW3R5cGU9YnV0dG9uXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhO1xufVxuXG5bdHlwZT1maWxlXSxcblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cblt0eXBlPWNoZWNrYm94XSArIGxhYmVsLFxuW3R5cGU9cmFkaW9dICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuW3R5cGU9Y2hlY2tib3hdICsgbGFiZWxbZm9yXSxcblt0eXBlPXJhZGlvXSArIGxhYmVsW2Zvcl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmxhYmVsID4gW3R5cGU9Y2hlY2tib3hdLFxubGFiZWwgPiBbdHlwZT1yYWRpb10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cblxuW3R5cGU9ZmlsZV0ge1xuICB3aWR0aDogMTAwJTtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbmxhYmVsLm1pZGRsZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAwO1xufVxuXG4uaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cbi5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCwgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDtcbn1cbi5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkLCAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7XG59XG5cbi5pbnB1dC1ncm91cC1idXR0b24gYSxcbi5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbi5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwsIC5pbnB1dC1ncm91cC1idXR0b24sIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZmxleDogMSAxIDBweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZmllbGRzZXQge1xuICBtYXJnaW46IDEuMTI1cmVtIDA7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG59XG4uZmllbGRzZXQgbGVnZW5kIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgcGFkZGluZzogMCAwLjE4NzVyZW07XG59XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogcmdiJTI4MTM4LCAxMzgsIDEzOCUyOVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDAgKSB7XG4gIHNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTtcbiAgfVxufVxuc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbn1cbnNlbGVjdDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5zZWxlY3Q6Oi1tcy1leHBhbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuc2VsZWN0W211bHRpcGxlXSB7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbnNlbGVjdDpub3QoW211bHRpcGxlXSkge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5pcy1pbnZhbGlkLWlucHV0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjllY2VhO1xufVxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjYzRiMzc7XG59XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7XG59XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNjYzRiMzc7XG59XG4uZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMsXG5oNCwgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzAwMzU4ZTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cbmgxIHNtYWxsLCAuaDEgc21hbGwsXG5oMiBzbWFsbCwgLmgyIHNtYWxsLFxuaDMgc21hbGwsIC5oMyBzbWFsbCxcbmg0IHNtYWxsLCAuaDQgc21hbGwsXG5oNSBzbWFsbCwgLmg1IHNtYWxsLFxuaDYgc21hbGwsIC5oNiBzbWFsbCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBjb2xvcjogIzhhOGE4YTtcbn1cblxuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuaDMsIC5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cbiAgaDQsIC5oNCB7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cbiAgaDYsIC5oNiB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cbn1cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDM1OGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuYTpob3ZlciwgYTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAyZTdhO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmEgaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItbGVmdDogMDtcbn1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbnVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xufVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuXG51bCB1bCwgdWwgb2wsIG9sIHVsLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5kbCBkdCB7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2FjYWNhO1xufVxuYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICM4YThhOGE7XG59XG5cbmFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMGEwYTBhO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7XG59XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbnAgKyAuc3RhdCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xufVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY2l0ZS1ibG9jaywgY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG59XG4uY2l0ZS1ibG9jazpiZWZvcmUsIGNpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJQgXCI7XG59XG5cbi5jb2RlLWlubGluZSwgY29kZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbn1cblxuLmNvZGUtYmxvY2sge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAubWVkaXVtLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBwcmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRoZWFkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDtcbiAgfVxuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRkLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICB9XG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCIjXCJdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtO1xuICB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7XG4gIH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgfVxufVxuLmdyaWQtY29udGFpbmVyIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1jb250YWluZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuLmdyaWQtY29udGFpbmVyLmZsdWlkIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLWNvbnRhaW5lci5mbHVpZCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG4uZ3JpZC1jb250YWluZXIuZnVsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZ3JpZC14IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cblxuLmNlbGwge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jZWxsLmF1dG8ge1xuICBmbGV4OiAxIDEgMDtcbn1cbi5jZWxsLnNocmluayB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uZ3JpZC14ID4gLmF1dG8ge1xuICB3aWR0aDogYXV0bztcbn1cbi5ncmlkLXggPiAuc2hyaW5rIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5ncmlkLXggPiAuc21hbGwtc2hyaW5rLCAuZ3JpZC14ID4gLnNtYWxsLWZ1bGwsIC5ncmlkLXggPiAuc21hbGwtMSwgLmdyaWQteCA+IC5zbWFsbC0yLCAuZ3JpZC14ID4gLnNtYWxsLTMsIC5ncmlkLXggPiAuc21hbGwtNCwgLmdyaWQteCA+IC5zbWFsbC01LCAuZ3JpZC14ID4gLnNtYWxsLTYsIC5ncmlkLXggPiAuc21hbGwtNywgLmdyaWQteCA+IC5zbWFsbC04LCAuZ3JpZC14ID4gLnNtYWxsLTksIC5ncmlkLXggPiAuc21hbGwtMTAsIC5ncmlkLXggPiAuc21hbGwtMTEsIC5ncmlkLXggPiAuc21hbGwtMTIge1xuICBmbGV4LWJhc2lzOiBhdXRvO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC14ID4gLm1lZGl1bS1zaHJpbmssIC5ncmlkLXggPiAubWVkaXVtLWZ1bGwsIC5ncmlkLXggPiAubWVkaXVtLTEsIC5ncmlkLXggPiAubWVkaXVtLTIsIC5ncmlkLXggPiAubWVkaXVtLTMsIC5ncmlkLXggPiAubWVkaXVtLTQsIC5ncmlkLXggPiAubWVkaXVtLTUsIC5ncmlkLXggPiAubWVkaXVtLTYsIC5ncmlkLXggPiAubWVkaXVtLTcsIC5ncmlkLXggPiAubWVkaXVtLTgsIC5ncmlkLXggPiAubWVkaXVtLTksIC5ncmlkLXggPiAubWVkaXVtLTEwLCAuZ3JpZC14ID4gLm1lZGl1bS0xMSwgLmdyaWQteCA+IC5tZWRpdW0tMTIge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXggPiAubGFyZ2Utc2hyaW5rLCAuZ3JpZC14ID4gLmxhcmdlLWZ1bGwsIC5ncmlkLXggPiAubGFyZ2UtMSwgLmdyaWQteCA+IC5sYXJnZS0yLCAuZ3JpZC14ID4gLmxhcmdlLTMsIC5ncmlkLXggPiAubGFyZ2UtNCwgLmdyaWQteCA+IC5sYXJnZS01LCAuZ3JpZC14ID4gLmxhcmdlLTYsIC5ncmlkLXggPiAubGFyZ2UtNywgLmdyaWQteCA+IC5sYXJnZS04LCAuZ3JpZC14ID4gLmxhcmdlLTksIC5ncmlkLXggPiAubGFyZ2UtMTAsIC5ncmlkLXggPiAubGFyZ2UtMTEsIC5ncmlkLXggPiAubGFyZ2UtMTIge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gIH1cbn1cbi5ncmlkLXggPiAuc21hbGwtMTIsIC5ncmlkLXggPiAuc21hbGwtMTEsIC5ncmlkLXggPiAuc21hbGwtMTAsIC5ncmlkLXggPiAuc21hbGwtOSwgLmdyaWQteCA+IC5zbWFsbC04LCAuZ3JpZC14ID4gLnNtYWxsLTcsIC5ncmlkLXggPiAuc21hbGwtNiwgLmdyaWQteCA+IC5zbWFsbC01LCAuZ3JpZC14ID4gLnNtYWxsLTQsIC5ncmlkLXggPiAuc21hbGwtMywgLmdyaWQteCA+IC5zbWFsbC0yLCAuZ3JpZC14ID4gLnNtYWxsLTEge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmdyaWQteCA+IC5zbWFsbC0xIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG59XG5cbi5ncmlkLXggPiAuc21hbGwtMiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbn1cblxuLmdyaWQteCA+IC5zbWFsbC0zIHtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLmdyaWQteCA+IC5zbWFsbC00IHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4uZ3JpZC14ID4gLnNtYWxsLTUge1xuICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5ncmlkLXggPiAuc21hbGwtNiB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5ncmlkLXggPiAuc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLmdyaWQteCA+IC5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4uZ3JpZC14ID4gLnNtYWxsLTkge1xuICB3aWR0aDogNzUlO1xufVxuXG4uZ3JpZC14ID4gLnNtYWxsLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xufVxuXG4uZ3JpZC14ID4gLnNtYWxsLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xufVxuXG4uZ3JpZC14ID4gLnNtYWxsLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXggPiAubWVkaXVtLWF1dG8ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTEyLCAuZ3JpZC14ID4gLm1lZGl1bS0xMSwgLmdyaWQteCA+IC5tZWRpdW0tMTAsIC5ncmlkLXggPiAubWVkaXVtLTksIC5ncmlkLXggPiAubWVkaXVtLTgsIC5ncmlkLXggPiAubWVkaXVtLTcsIC5ncmlkLXggPiAubWVkaXVtLTYsIC5ncmlkLXggPiAubWVkaXVtLTUsIC5ncmlkLXggPiAubWVkaXVtLTQsIC5ncmlkLXggPiAubWVkaXVtLTMsIC5ncmlkLXggPiAubWVkaXVtLTIsIC5ncmlkLXggPiAubWVkaXVtLTEsIC5ncmlkLXggPiAubWVkaXVtLXNocmluayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXggPiAubGFyZ2UtYXV0byB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmdyaWQteCA+IC5sYXJnZS0xMiwgLmdyaWQteCA+IC5sYXJnZS0xMSwgLmdyaWQteCA+IC5sYXJnZS0xMCwgLmdyaWQteCA+IC5sYXJnZS05LCAuZ3JpZC14ID4gLmxhcmdlLTgsIC5ncmlkLXggPiAubGFyZ2UtNywgLmdyaWQteCA+IC5sYXJnZS02LCAuZ3JpZC14ID4gLmxhcmdlLTUsIC5ncmlkLXggPiAubGFyZ2UtNCwgLmdyaWQteCA+IC5sYXJnZS0zLCAuZ3JpZC14ID4gLmxhcmdlLTIsIC5ncmlkLXggPiAubGFyZ2UtMSwgLmdyaWQteCA+IC5sYXJnZS1zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIC5ncmlkLXggPiAubGFyZ2Utc2hyaW5rIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmdyaWQteCA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQteCA+IC5sYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteCA+IC5sYXJnZS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteCA+IC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5ncmlkLW1hcmdpbi14Om5vdCguZ3JpZC14KSA+IC5jZWxsIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5ncmlkLW1hcmdpbi15Om5vdCguZ3JpZC15KSA+IC5jZWxsIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZ3JpZC1tYXJnaW4teCB7XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXgge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgfVxufVxuLmdyaWQtbWFyZ2luLXggPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG4uZ3JpZC1tYXJnaW4teCA+IC5hdXRvIHtcbiAgd2lkdGg6IGF1dG87XG59XG4uZ3JpZC1tYXJnaW4teCA+IC5zaHJpbmsge1xuICB3aWR0aDogYXV0bztcbn1cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEge1xuICB3aWR0aDogY2FsYyg4LjMzMzMzMzMzMzMlIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0yIHtcbiAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTMge1xuICB3aWR0aDogY2FsYygyNSUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTQge1xuICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNSB7XG4gIHdpZHRoOiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC02IHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC03IHtcbiAgd2lkdGg6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTgge1xuICB3aWR0aDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtOSB7XG4gIHdpZHRoOiBjYWxjKDc1JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTAge1xuICB3aWR0aDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTEge1xuICB3aWR0aDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1tYXJnaW4teCA+IC5hdXRvIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zaHJpbmsge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTYge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC03IHtcbiAgICB3aWR0aDogY2FsYyg1OC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC04IHtcbiAgICB3aWR0aDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC05IHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tYXV0byB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLXNocmluayB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTEge1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS03IHtcbiAgICB3aWR0aDogY2FsYyg1OC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IGNhbGMoNjYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTkge1xuICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1hdXRvIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1zaHJpbmsge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTUge1xuICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogY2FsYyg1OC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS04IHtcbiAgICB3aWR0aDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS05IHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTExIHtcbiAgICB3aWR0aDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgfVxufVxuXG4uZ3JpZC1wYWRkaW5nLXggLmdyaWQtcGFkZGluZy14IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1wYWRkaW5nLXggLmdyaWQtcGFkZGluZy14IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07XG4gIH1cbn1cbi5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gLmdyaWQtcGFkZGluZy14IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+IC5ncmlkLXBhZGRpbmcteCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtO1xuICB9XG59XG4uZ3JpZC1wYWRkaW5nLXggPiAuY2VsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQtcGFkZGluZy14ID4gLmNlbGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4uc21hbGwtdXAtMSA+IC5jZWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zbWFsbC11cC0yID4gLmNlbGwge1xuICB3aWR0aDogNTAlO1xufVxuXG4uc21hbGwtdXAtMyA+IC5jZWxsIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4uc21hbGwtdXAtNCA+IC5jZWxsIHtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLnNtYWxsLXVwLTUgPiAuY2VsbCB7XG4gIHdpZHRoOiAyMCU7XG59XG5cbi5zbWFsbC11cC02ID4gLmNlbGwge1xuICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5zbWFsbC11cC03ID4gLmNlbGwge1xuICB3aWR0aDogMTQuMjg1NzE0Mjg1NyU7XG59XG5cbi5zbWFsbC11cC04ID4gLmNlbGwge1xuICB3aWR0aDogMTIuNSU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubWVkaXVtLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAubWVkaXVtLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5tZWRpdW0tdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyODU3JTtcbiAgfVxuICAubWVkaXVtLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IDEyLjUlO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGFyZ2UtdXAtMiA+IC5jZWxsIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5sYXJnZS11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5sYXJnZS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cbiAgLmxhcmdlLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyODU3JTtcbiAgfVxuICAubGFyZ2UtdXAtOCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTIuNSU7XG4gIH1cbn1cbi5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTEgPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcbn1cblxuLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtMiA+IC5jZWxsIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7XG59XG5cbi5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTMgPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMS4yNXJlbSk7XG59XG5cbi5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTQgPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDI1JSAtIDEuMjVyZW0pO1xufVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC01ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyMCUgLSAxLjI1cmVtKTtcbn1cblxuLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNiA+IC5jZWxsIHtcbiAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjI1cmVtKTtcbn1cblxuLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNyA+IC5jZWxsIHtcbiAgd2lkdGg6IGNhbGMoMTQuMjg1NzE0Mjg1NyUgLSAxLjI1cmVtKTtcbn1cblxuLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtOCA+IC5jZWxsIHtcbiAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjI1cmVtKTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE0LjI4NTcxNDI4NTclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtMiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTQgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNC4yODU3MTQyODU3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtOCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMi41JSAtIDEuODc1cmVtKTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teC5sYXJnZS11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE0LjI4NTcxNDI4NTclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjg3NXJlbSk7XG4gIH1cbn1cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xufVxuLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xufVxuLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0zIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbn1cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNSB7XG4gIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbn1cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNiB7XG4gIHdpZHRoOiA1MCU7XG59XG4uc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTcge1xuICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG59XG4uc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTgge1xuICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG59XG4uc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTkge1xuICB3aWR0aDogNzUlO1xufVxuLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbn1cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG59XG4uc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uc21hbGwtcGFkZGluZy1jb2xsYXBzZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uc21hbGwtcGFkZGluZy1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmNlbGwge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXBhZGRpbmctY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAubWVkaXVtLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLmxhcmdlLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAlICsgMS4yNXJlbSAvIDIpO1xufVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbn1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzMzMzMzMlICsgMS4yNXJlbSAvIDIpO1xufVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMTYuNjY2NjY2NjY2NyUgKyAxLjI1cmVtIC8gMik7XG59XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMS4yNXJlbSAvIDIpO1xufVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG59XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMzMzMzMyUgKyAxLjI1cmVtIC8gMik7XG59XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbn1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogY2FsYyg0MS42NjY2NjY2NjY3JSArIDEuMjVyZW0gLyAyKTtcbn1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogY2FsYyg1MCUgKyAxLjI1cmVtIC8gMik7XG59XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMzMzMzMzJSArIDEuMjVyZW0gLyAyKTtcbn1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDY2LjY2NjY2NjY2NjclICsgMS4yNXJlbSAvIDIpO1xufVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDc1JSArIDEuMjVyZW0gLyAyKTtcbn1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoODMuMzMzMzMzMzMzMyUgKyAxLjI1cmVtIC8gMik7XG59XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY2NjY2NjclICsgMS4yNXJlbSAvIDIpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygwJSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzMzMzMzMlICsgMS44NzVyZW0gLyAyKTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxNi42NjY2NjY2NjY3JSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMzMzMzMyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDQxLjY2NjY2NjY2NjclICsgMS44NzVyZW0gLyAyKTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMS44NzVyZW0gLyAyKTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMzMzMzMzJSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NjY2NjY2NyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg3NSUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoODMuMzMzMzMzMzMzMyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOTEuNjY2NjY2NjY2NyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMzMzMzMyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxNi42NjY2NjY2NjY3JSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygyNSUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygzMy4zMzMzMzMzMzMzJSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDQxLjY2NjY2NjY2NjclICsgMS44NzVyZW0gLyAyKTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDU4LjMzMzMzMzMzMzMlICsgMS44NzVyZW0gLyAyKTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NjY2NjY2NyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMS44NzVyZW0gLyAyKTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4My4zMzMzMzMzMzMzJSArIDEuODc1cmVtIC8gMik7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOTEuNjY2NjY2NjY2NyUgKyAxLjg3NXJlbSAvIDIpO1xuICB9XG59XG4uZ3JpZC15IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xufVxuLmdyaWQteSA+IC5jZWxsIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiBub25lO1xufVxuLmdyaWQteSA+IC5hdXRvIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmdyaWQteSA+IC5zaHJpbmsge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZ3JpZC15ID4gLnNtYWxsLXNocmluaywgLmdyaWQteSA+IC5zbWFsbC1mdWxsLCAuZ3JpZC15ID4gLnNtYWxsLTEsIC5ncmlkLXkgPiAuc21hbGwtMiwgLmdyaWQteSA+IC5zbWFsbC0zLCAuZ3JpZC15ID4gLnNtYWxsLTQsIC5ncmlkLXkgPiAuc21hbGwtNSwgLmdyaWQteSA+IC5zbWFsbC02LCAuZ3JpZC15ID4gLnNtYWxsLTcsIC5ncmlkLXkgPiAuc21hbGwtOCwgLmdyaWQteSA+IC5zbWFsbC05LCAuZ3JpZC15ID4gLnNtYWxsLTEwLCAuZ3JpZC15ID4gLnNtYWxsLTExLCAuZ3JpZC15ID4gLnNtYWxsLTEyIHtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXkgPiAubWVkaXVtLXNocmluaywgLmdyaWQteSA+IC5tZWRpdW0tZnVsbCwgLmdyaWQteSA+IC5tZWRpdW0tMSwgLmdyaWQteSA+IC5tZWRpdW0tMiwgLmdyaWQteSA+IC5tZWRpdW0tMywgLmdyaWQteSA+IC5tZWRpdW0tNCwgLmdyaWQteSA+IC5tZWRpdW0tNSwgLmdyaWQteSA+IC5tZWRpdW0tNiwgLmdyaWQteSA+IC5tZWRpdW0tNywgLmdyaWQteSA+IC5tZWRpdW0tOCwgLmdyaWQteSA+IC5tZWRpdW0tOSwgLmdyaWQteSA+IC5tZWRpdW0tMTAsIC5ncmlkLXkgPiAubWVkaXVtLTExLCAuZ3JpZC15ID4gLm1lZGl1bS0xMiB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQteSA+IC5sYXJnZS1zaHJpbmssIC5ncmlkLXkgPiAubGFyZ2UtZnVsbCwgLmdyaWQteSA+IC5sYXJnZS0xLCAuZ3JpZC15ID4gLmxhcmdlLTIsIC5ncmlkLXkgPiAubGFyZ2UtMywgLmdyaWQteSA+IC5sYXJnZS00LCAuZ3JpZC15ID4gLmxhcmdlLTUsIC5ncmlkLXkgPiAubGFyZ2UtNiwgLmdyaWQteSA+IC5sYXJnZS03LCAuZ3JpZC15ID4gLmxhcmdlLTgsIC5ncmlkLXkgPiAubGFyZ2UtOSwgLmdyaWQteSA+IC5sYXJnZS0xMCwgLmdyaWQteSA+IC5sYXJnZS0xMSwgLmdyaWQteSA+IC5sYXJnZS0xMiB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxufVxuLmdyaWQteSA+IC5zbWFsbC0xMiwgLmdyaWQteSA+IC5zbWFsbC0xMSwgLmdyaWQteSA+IC5zbWFsbC0xMCwgLmdyaWQteSA+IC5zbWFsbC05LCAuZ3JpZC15ID4gLnNtYWxsLTgsIC5ncmlkLXkgPiAuc21hbGwtNywgLmdyaWQteSA+IC5zbWFsbC02LCAuZ3JpZC15ID4gLnNtYWxsLTUsIC5ncmlkLXkgPiAuc21hbGwtNCwgLmdyaWQteSA+IC5zbWFsbC0zLCAuZ3JpZC15ID4gLnNtYWxsLTIsIC5ncmlkLXkgPiAuc21hbGwtMSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLmdyaWQteSA+IC5zbWFsbC0xIHtcbiAgaGVpZ2h0OiA4LjMzMzMzMzMzMzMlO1xufVxuLmdyaWQteSA+IC5zbWFsbC0yIHtcbiAgaGVpZ2h0OiAxNi42NjY2NjY2NjY3JTtcbn1cbi5ncmlkLXkgPiAuc21hbGwtMyB7XG4gIGhlaWdodDogMjUlO1xufVxuLmdyaWQteSA+IC5zbWFsbC00IHtcbiAgaGVpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcbn1cbi5ncmlkLXkgPiAuc21hbGwtNSB7XG4gIGhlaWdodDogNDEuNjY2NjY2NjY2NyU7XG59XG4uZ3JpZC15ID4gLnNtYWxsLTYge1xuICBoZWlnaHQ6IDUwJTtcbn1cbi5ncmlkLXkgPiAuc21hbGwtNyB7XG4gIGhlaWdodDogNTguMzMzMzMzMzMzMyU7XG59XG4uZ3JpZC15ID4gLnNtYWxsLTgge1xuICBoZWlnaHQ6IDY2LjY2NjY2NjY2NjclO1xufVxuLmdyaWQteSA+IC5zbWFsbC05IHtcbiAgaGVpZ2h0OiA3NSU7XG59XG4uZ3JpZC15ID4gLnNtYWxsLTEwIHtcbiAgaGVpZ2h0OiA4My4zMzMzMzMzMzMzJTtcbn1cbi5ncmlkLXkgPiAuc21hbGwtMTEge1xuICBoZWlnaHQ6IDkxLjY2NjY2NjY2NjclO1xufVxuLmdyaWQteSA+IC5zbWFsbC0xMiB7XG4gIGhlaWdodDogMTAwJTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXkgPiAubWVkaXVtLWF1dG8ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC15ID4gLm1lZGl1bS0xMiwgLmdyaWQteSA+IC5tZWRpdW0tMTEsIC5ncmlkLXkgPiAubWVkaXVtLTEwLCAuZ3JpZC15ID4gLm1lZGl1bS05LCAuZ3JpZC15ID4gLm1lZGl1bS04LCAuZ3JpZC15ID4gLm1lZGl1bS03LCAuZ3JpZC15ID4gLm1lZGl1bS02LCAuZ3JpZC15ID4gLm1lZGl1bS01LCAuZ3JpZC15ID4gLm1lZGl1bS00LCAuZ3JpZC15ID4gLm1lZGl1bS0zLCAuZ3JpZC15ID4gLm1lZGl1bS0yLCAuZ3JpZC15ID4gLm1lZGl1bS0xLCAuZ3JpZC15ID4gLm1lZGl1bS1zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIC5ncmlkLXkgPiAubWVkaXVtLXNocmluayB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5ncmlkLXkgPiAubWVkaXVtLTEge1xuICAgIGhlaWdodDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZC15ID4gLm1lZGl1bS0yIHtcbiAgICBoZWlnaHQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLXkgPiAubWVkaXVtLTMge1xuICAgIGhlaWdodDogMjUlO1xuICB9XG4gIC5ncmlkLXkgPiAubWVkaXVtLTQge1xuICAgIGhlaWdodDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQteSA+IC5tZWRpdW0tNSB7XG4gICAgaGVpZ2h0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC15ID4gLm1lZGl1bS02IHtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgfVxuICAuZ3JpZC15ID4gLm1lZGl1bS03IHtcbiAgICBoZWlnaHQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLXkgPiAubWVkaXVtLTgge1xuICAgIGhlaWdodDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteSA+IC5tZWRpdW0tOSB7XG4gICAgaGVpZ2h0OiA3NSU7XG4gIH1cbiAgLmdyaWQteSA+IC5tZWRpdW0tMTAge1xuICAgIGhlaWdodDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQteSA+IC5tZWRpdW0tMTEge1xuICAgIGhlaWdodDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteSA+IC5tZWRpdW0tMTIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQteSA+IC5sYXJnZS1hdXRvIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQteSA+IC5sYXJnZS0xMiwgLmdyaWQteSA+IC5sYXJnZS0xMSwgLmdyaWQteSA+IC5sYXJnZS0xMCwgLmdyaWQteSA+IC5sYXJnZS05LCAuZ3JpZC15ID4gLmxhcmdlLTgsIC5ncmlkLXkgPiAubGFyZ2UtNywgLmdyaWQteSA+IC5sYXJnZS02LCAuZ3JpZC15ID4gLmxhcmdlLTUsIC5ncmlkLXkgPiAubGFyZ2UtNCwgLmdyaWQteSA+IC5sYXJnZS0zLCAuZ3JpZC15ID4gLmxhcmdlLTIsIC5ncmlkLXkgPiAubGFyZ2UtMSwgLmdyaWQteSA+IC5sYXJnZS1zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIC5ncmlkLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQteSA+IC5sYXJnZS0xIHtcbiAgICBoZWlnaHQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmdyaWQteSA+IC5sYXJnZS0yIHtcbiAgICBoZWlnaHQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5ncmlkLXkgPiAubGFyZ2UtMyB7XG4gICAgaGVpZ2h0OiAyNSU7XG4gIH1cbiAgLmdyaWQteSA+IC5sYXJnZS00IHtcbiAgICBoZWlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLXkgPiAubGFyZ2UtNSB7XG4gICAgaGVpZ2h0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZC15ID4gLmxhcmdlLTYge1xuICAgIGhlaWdodDogNTAlO1xuICB9XG4gIC5ncmlkLXkgPiAubGFyZ2UtNyB7XG4gICAgaGVpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZC15ID4gLmxhcmdlLTgge1xuICAgIGhlaWdodDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteSA+IC5sYXJnZS05IHtcbiAgICBoZWlnaHQ6IDc1JTtcbiAgfVxuICAuZ3JpZC15ID4gLmxhcmdlLTEwIHtcbiAgICBoZWlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkLXkgPiAubGFyZ2UtMTEge1xuICAgIGhlaWdodDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQteSA+IC5sYXJnZS0xMiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi5ncmlkLXBhZGRpbmcteSAuZ3JpZC1wYWRkaW5nLXkge1xuICBtYXJnaW4tdG9wOiAtMC42MjVyZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjYyNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXBhZGRpbmcteSAuZ3JpZC1wYWRkaW5nLXkge1xuICAgIG1hcmdpbi10b3A6IC0wLjkzNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLTAuOTM3NXJlbTtcbiAgfVxufVxuLmdyaWQtcGFkZGluZy15ID4gLmNlbGwge1xuICBwYWRkaW5nLXRvcDogMC42MjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXBhZGRpbmcteSA+IC5jZWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLmdyaWQtbWFyZ2luLXkge1xuICBtYXJnaW4tdG9wOiAtMC42MjVyZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjYyNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15IHtcbiAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IC0wLjkzNzVyZW07XG4gIH1cbn1cbi5ncmlkLW1hcmdpbi15ID4gLmNlbGwge1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tdG9wOiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xuICB9XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5hdXRvIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc2hyaW5rIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMSB7XG4gIGhlaWdodDogY2FsYyg4LjMzMzMzMzMzMzMlIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY2NjY2NjclIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNCB7XG4gIGhlaWdodDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNSB7XG4gIGhlaWdodDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNiB7XG4gIGhlaWdodDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTcge1xuICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjY2NjY2NyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTkge1xuICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMCB7XG4gIGhlaWdodDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15ID4gLmF1dG8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xIHtcbiAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMyB7XG4gICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC00IHtcbiAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNSB7XG4gICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTYge1xuICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNyB7XG4gICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEwIHtcbiAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgIGhlaWdodDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLWF1dG8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTEge1xuICAgIGhlaWdodDogY2FsYyg4LjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0yIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTMge1xuICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTQge1xuICAgIGhlaWdodDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNSB7XG4gICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS03IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOSB7XG4gICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTAge1xuICAgIGhlaWdodDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTEge1xuICAgIGhlaWdodDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTIge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS1hdXRvIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMSB7XG4gICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTMge1xuICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNCB7XG4gICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTUge1xuICAgIGhlaWdodDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTcge1xuICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS04IHtcbiAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOSB7XG4gICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMCB7XG4gICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTExIHtcbiAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTIge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG59XG5cbi5ncmlkLWZyYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDB2dztcbn1cblxuLmNlbGwgLmdyaWQtZnJhbWUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNlbGwtYmxvY2sge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi5jZWxsLWJsb2NrLXkge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xufVxuXG4uY2VsbC1ibG9jay1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuLmNlbGwtYmxvY2stY29udGFpbmVyID4gLmdyaWQteCB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxuICAuY2VsbCAubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jayB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay1jb250YWluZXIgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay15IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbiAgLmNlbGwgLmxhcmdlLWdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5sYXJnZS1jZWxsLWJsb2NrIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gIH1cbiAgLmxhcmdlLWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuICAubGFyZ2UtY2VsbC1ibG9jay1jb250YWluZXIgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5sYXJnZS1jZWxsLWJsb2NrLXkge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgfVxufVxuLmdyaWQteS5ncmlkLWZyYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQteS5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQteS5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi5jZWxsIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gIGhlaWdodDogMTAwJTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jZWxsIC5ncmlkLXkubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNlbGwgLmdyaWQteS5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLmdyaWQtbWFyZ2luLXkge1xuICBtYXJnaW4tdG9wOiAtMC42MjVyZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjYyNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15IHtcbiAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IC0wLjkzNzVyZW07XG4gIH1cbn1cbi5ncmlkLW1hcmdpbi15ID4gLmNlbGwge1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tdG9wOiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xuICB9XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5hdXRvIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc2hyaW5rIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMSB7XG4gIGhlaWdodDogY2FsYyg4LjMzMzMzMzMzMzMlIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY2NjY2NjclIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNCB7XG4gIGhlaWdodDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNSB7XG4gIGhlaWdodDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNiB7XG4gIGhlaWdodDogY2FsYyg1MCUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTcge1xuICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjY2NjY2NyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTkge1xuICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS4yNXJlbSk7XG59XG4uZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMCB7XG4gIGhlaWdodDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDEuMjVyZW0pO1xufVxuLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxLjI1cmVtKTtcbn1cbi5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15ID4gLmF1dG8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xIHtcbiAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMyB7XG4gICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC00IHtcbiAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNSB7XG4gICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTYge1xuICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNyB7XG4gICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEwIHtcbiAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgIGhlaWdodDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLWF1dG8ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTEge1xuICAgIGhlaWdodDogY2FsYyg4LjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0yIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTMge1xuICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTQge1xuICAgIGhlaWdodDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNSB7XG4gICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS03IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOSB7XG4gICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTAge1xuICAgIGhlaWdodDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTEge1xuICAgIGhlaWdodDogY2FsYyg5MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTIge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS1hdXRvIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMSB7XG4gICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTMge1xuICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNCB7XG4gICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTUge1xuICAgIGhlaWdodDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTcge1xuICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS04IHtcbiAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOSB7XG4gICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMCB7XG4gICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzMzMzMzMlIC0gMS44NzVyZW0pO1xuICB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTExIHtcbiAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxLjg3NXJlbSk7XG4gIH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTIge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICB9XG59XG5cbi5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjI1cmVtKTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCArIDEuODc1cmVtKTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMS44NzVyZW0pO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15Lm1lZGl1bS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15LmxhcmdlLWdyaWQtZnJhbWUge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCArIDEuODc1cmVtKTtcbiAgfVxufVxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbltkYXRhLXdoYXRpbnB1dD1tb3VzZV0gLmJ1dHRvbiB7XG4gIG91dGxpbmU6IDA7XG59XG4uYnV0dG9uLnRpbnkge1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cbi5idXR0b24uc21hbGwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG4uYnV0dG9uLmxhcmdlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuLmJ1dHRvbi5leHBhbmRlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5idXR0b24sIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZWFhO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzNThlO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRlYWE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzNThlO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b24uc2Vjb25kYXJ5LCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGVhYTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG4uYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzNThlO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b24uc3VjY2VzcywgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRlYWE7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzNThlO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbi5idXR0b24ud2FybmluZywgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRlYWE7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzNThlO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbi5idXR0b24uYWxlcnQsIC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZWFhO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzNThlO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMsIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzc2MWIyYjtcbiAgY29sb3I6ICM3NjFiMmI7XG59XG4uYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMzYjBlMTY7XG4gIGNvbG9yOiAjM2IwZTE2O1xufVxuLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NjFiMmI7XG4gIGNvbG9yOiAjNzYxYjJiO1xufVxuLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzNiMGUxNjtcbiAgY29sb3I6ICMzYjBlMTY7XG59XG4uYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnksIC5idXR0b24uaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzY3Njc2O1xuICBjb2xvcjogIzc2NzY3Njtcbn1cbi5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjM2IzYjNiO1xuICBjb2xvcjogIzNiM2IzYjtcbn1cbi5idXR0b24uaG9sbG93LnN1Y2Nlc3MsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICBjb2xvcjogIzNhZGI3Njtcbn1cbi5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gIGNvbG9yOiAjMTU3NTM5O1xufVxuLmJ1dHRvbi5ob2xsb3cud2FybmluZywgLmJ1dHRvbi5ob2xsb3cud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93Lndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gIGNvbG9yOiAjZmZhZTAwO1xufVxuLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgY29sb3I6ICM4MDU3MDA7XG59XG4uYnV0dG9uLmhvbGxvdy5hbGVydCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gIGNvbG9yOiAjY2M0YjM3O1xufVxuLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICBjb2xvcjogIzY3MjUxYTtcbn1cbi5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbn1cbi5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnV0dG9uLmNsZWFyLnByaW1hcnksIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXIucHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbn1cbi5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnksIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbn1cbi5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5idXR0b24uY2xlYXIuc3VjY2VzcywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xufVxuLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnV0dG9uLmNsZWFyLndhcm5pbmcsIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF06Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbn1cbi5idXR0b24uY2xlYXIud2FybmluZzpob3ZlciwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJ1dHRvbi5jbGVhci5hbGVydCwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xufVxuLmJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC40ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDAuNGVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi5idXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhcjo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjNzYxYjJiO1xufVxuLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIucHJpbWFyeTo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjNzYxYjJiO1xufVxuLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5zZWNvbmRhcnk6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzc2NzY3Njtcbn1cbi5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLnN1Y2Nlc3M6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzNhZGI3Njtcbn1cbi5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLndhcm5pbmc6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDtcbn1cbi5idXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5hbGVydDo6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjY2M0YjM3O1xufVxuLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gIHRvcDogLTAuMWVtO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbmEuYnV0dG9uOmhvdmVyLCBhLmJ1dHRvbjpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCIgXCI7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZmxleDogMCAwIGF1dG87XG59XG4uYnV0dG9uLWdyb3VwIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG4uYnV0dG9uLWdyb3VwLnNtYWxsIC5idXR0b24ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG4uYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24ge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG4uYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b24ge1xuICBmbGV4OiAxIDEgMHB4O1xufVxuLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZWFhO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDM1OGU7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRlYWE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDM1OGU7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZWFhO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbi5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDM1OGU7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZWFhO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbi5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDM1OGU7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGVhYTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG4uYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDM1OGU7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NjFiMmI7XG4gIGNvbG9yOiAjNzYxYjJiO1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbjpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzNiMGUxNjtcbiAgY29sb3I6ICMzYjBlMTY7XG59XG4uYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3NjFiMmI7XG4gIGNvbG9yOiAjNzYxYjJiO1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjM2IwZTE2O1xuICBjb2xvcjogIzNiMGUxNjtcbn1cbi5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gIGNvbG9yOiAjNzY3Njc2O1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMzYjNiM2I7XG4gIGNvbG9yOiAjM2IzYjNiO1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3MsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICBjb2xvcjogIzNhZGI3Njtcbn1cbi5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgY29sb3I6ICMxNTc1Mzk7XG59XG4uYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gIGNvbG9yOiAjZmZhZTAwO1xufVxuLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICBjb2xvcjogIzgwNTcwMDtcbn1cbi5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICBjb2xvcjogI2NjNGIzNztcbn1cbi5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gIGNvbG9yOiAjNjcyNTFhO1xufVxuLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG59XG4uYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xufVxuLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5LCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG59XG4uYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG59XG4uYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xufVxuLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzAwMzU4ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydCwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAzNThlO1xufVxuLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgY29sb3I6ICMwMDM1OGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJ1dHRvbi1ncm91cC5uby1nYXBzIC5idXR0b24ge1xuICBtYXJnaW4tcmlnaHQ6IC0wLjA2MjVyZW07XG59XG4uYnV0dG9uLWdyb3VwLm5vLWdhcHMgLmJ1dHRvbiArIC5idXR0b24ge1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYnV0dG9uLWdyb3VwLnN0YWNrZWQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xufVxuLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYnV0dG9uLWdyb3VwLnN0YWNrZWQuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCAuYnV0dG9uIHtcbiAgZmxleDogMSAxIDBweDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG4gIGNvbG9yOiAjOGE4YThhO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5bZGF0YS13aGF0aW5wdXQ9bW91c2VdIC5jbG9zZS1idXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuLmNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmNsb3NlLWJ1dHRvbi5zbWFsbCB7XG4gIHJpZ2h0OiAwLjY2cmVtO1xuICB0b3A6IDAuMzNlbTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5jbG9zZS1idXR0b24ubWVkaXVtLCAuY2xvc2UtYnV0dG9uIHtcbiAgcmlnaHQ6IDFyZW07XG4gIHRvcDogMC41cmVtO1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbnRoZWFkLFxudGJvZHksXG50Zm9vdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMWYxZjE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG50aGVhZCB7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG50Zm9vdCB7XG4gIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG50aGVhZCB0cixcbnRmb290IHRyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG50aGVhZCB0aCxcbnRoZWFkIHRkLFxudGZvb3QgdGgsXG50Zm9vdCB0ZCB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbnRib2R5IHRoLFxudGJvZHkgdGQge1xuICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG59XG5cbnRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG59XG5cbnRhYmxlLnVuc3RyaXBlZCB0Ym9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG59XG50YWJsZS51bnN0cmlwZWQgdGJvZHkgdHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjFmMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxudGFibGUuc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG50YWJsZS5ob3ZlciB0aGVhZCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7XG59XG50YWJsZS5ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG50YWJsZS5ob3Zlcjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjO1xufVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAxcmVtIDAgMXJlbSAxcmVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCIgXCI7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLmJyZWFkY3J1bWJzIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIC8qICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgICAgKi9cbn1cbi5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAuNzVyZW07XG4gIG9wYWNpdHk6IDE7XG4gIGNvbnRlbnQ6IFwiL1wiO1xuICBjb2xvcjogI2NhY2FjYTtcbn1cbi5icmVhZGNydW1icyBhIHtcbiAgY29sb3I6ICMwMDM1OGU7XG59XG4uYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjY2FjYWNhO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2FsbG91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbi5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmNhbGxvdXQucHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWQyZDg7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG4uY2FsbG91dC5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxZmFlYTtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG4uY2FsbG91dC53YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG4uY2FsbG91dC5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2U0ZTE7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmNhbGxvdXQuc21hbGwge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xufVxuLmNhbGxvdXQubGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcbn1cblxuLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG4uY2FyZCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtZGl2aWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xufVxuLmNhcmQtZGl2aWRlciA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtc2VjdGlvbiB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLmNhcmQtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtaW1hZ2Uge1xuICBtaW4taGVpZ2h0OiAxcHg7XG59XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDQwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLmRyb3Bkb3duLXBhbmUuaXMtb3BlbmluZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmRyb3Bkb3duLXBhbmUuaXMtb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZHJvcGRvd24tcGFuZS50aW55IHtcbiAgd2lkdGg6IDEwMHB4O1xufVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7XG59XG5cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ucGFnaW5hdGlvbjo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCIgXCI7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxO1xufVxuLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4ucGFnaW5hdGlvbiBsaSB7XG4gIG1hcmdpbi1yaWdodDogMC4wNjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbi5wYWdpbmF0aW9uIGEsXG4ucGFnaW5hdGlvbiBidXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLnBhZ2luYXRpb24gYTpob3Zlcixcbi5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG59XG4ucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgYmFja2dyb3VuZDogIzc2MWIyYjtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgY29sb3I6ICNjYWNhY2E7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIge1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gIGNvbnRlbnQ6IFwi4oCmXCI7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4ucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4ucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgY29udGVudDogXCLCq1wiO1xufVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbnRlbnQ6IFwiwrtcIjtcbn1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uYWNjb3JkaW9uW2Rpc2FibGVkXSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XG59XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzAwMzU4ZTtcbn1cbjpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+IC5hY2NvcmRpb24tdGl0bGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDVweCA1cHg7XG59XG4uYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbn1cbi5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBjb250ZW50OiBcIitcIjtcbn1cbi5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAk1wiO1xufVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbjpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjtcbn1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuLm1lZGlhLW9iamVjdCBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG59XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xufVxuLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbi5tYWluLXNlY3Rpb24ge1xuICBmbGV4OiAxIDEgMHB4O1xufVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ub3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLm9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLm9yYml0LW5leHQsIC5vcmJpdC1wcmV2aW91cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAub3JiaXQtbmV4dCwgW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAub3JiaXQtcHJldmlvdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLm9yYml0LW5leHQ6aG92ZXIsIC5vcmJpdC1wcmV2aW91czpob3ZlciwgLm9yYml0LW5leHQ6YWN0aXZlLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDpmb2N1cywgLm9yYml0LXByZXZpb3VzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpO1xufVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwO1xufVxuXG4ub3JiaXQtbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogLTNyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAub3JiaXQtYnVsbGV0cyB7XG4gIG91dGxpbmU6IDA7XG59XG4ub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDAuMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xufVxuLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbn1cbi5vcmJpdC1idWxsZXRzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xufVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUsXG4ucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4ucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbi5yZXNwb25zaXZlLWVtYmVkIHZpZGVvLFxuLmZsZXgtdmlkZW8gaWZyYW1lLFxuLmZsZXgtdmlkZW8gb2JqZWN0LFxuLmZsZXgtdmlkZW8gZW1iZWQsXG4uZmxleC12aWRlbyB2aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnJlc3BvbnNpdmUtZW1iZWQud2lkZXNjcmVlbixcbi5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTtcbn1cbi50YWJzOjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4udGFicy52ZXJ0aWNhbCA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogYXV0bztcbn1cblxuLnRhYnMuc2ltcGxlID4gbGkgPiBhIHtcbiAgcGFkZGluZzogMDtcbn1cbi50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzc2MWIyYjtcbn1cbi50YWJzLnByaW1hcnkgPiBsaSA+IGEge1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjODUxZTMwO1xufVxuXG4udGFicy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnRhYnMtdGl0bGUgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzc2MWIyYjtcbn1cbltkYXRhLXdoYXRpbnB1dD1tb3VzZV0gLnRhYnMtdGl0bGUgPiBhIHtcbiAgb3V0bGluZTogMDtcbn1cbi50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGNvbG9yOiAjNjUxNzI1O1xufVxuLnRhYnMtdGl0bGUgPiBhOmZvY3VzLCAudGFicy10aXRsZSA+IGFbYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjNzYxYjJiO1xufVxuXG4udGFicy1jb250ZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG59XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMDtcbn1cblxuLnRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiA0cHggc29saWQgI2ZlZmVmZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgxMCwgMTAsIDEwLCAwLjIpO1xuICBsaW5lLWhlaWdodDogMDtcbn1cblxuYS50aHVtYm5haWwge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xufVxuYS50aHVtYm5haWw6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYSgxMTgsIDI3LCA0MywgMC41KTtcbn1cbmEudGh1bWJuYWlsIGltYWdlIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1lbnUge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAubWVudSBsaSB7XG4gIG91dGxpbmU6IDA7XG59XG4ubWVudSBhLFxuLm1lbnUgLmJ1dHRvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbn1cbi5tZW51IGlucHV0LFxuLm1lbnUgc2VsZWN0LFxuLm1lbnUgYSxcbi5tZW51IGJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubWVudSBpbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLm1lbnUudmVydGljYWwge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5tZW51LnZlcnRpY2FsLmljb24tdG9wIGxpIGEgaW1nLFxuLm1lbnUudmVydGljYWwuaWNvbi10b3AgbGkgYSBpLFxuLm1lbnUudmVydGljYWwuaWNvbi10b3AgbGkgYSBzdmcsIC5tZW51LnZlcnRpY2FsLmljb24tYm90dG9tIGxpIGEgaW1nLFxuLm1lbnUudmVydGljYWwuaWNvbi1ib3R0b20gbGkgYSBpLFxuLm1lbnUudmVydGljYWwuaWNvbi1ib3R0b20gbGkgYSBzdmcge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm1lbnUuZXhwYW5kZWQgbGkge1xuICBmbGV4OiAxIDEgMHB4O1xufVxuLm1lbnUuZXhwYW5kZWQuaWNvbi10b3AgbGkgYSBpbWcsXG4ubWVudS5leHBhbmRlZC5pY29uLXRvcCBsaSBhIGksXG4ubWVudS5leHBhbmRlZC5pY29uLXRvcCBsaSBhIHN2ZywgLm1lbnUuZXhwYW5kZWQuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4ubWVudS5leHBhbmRlZC5pY29uLWJvdHRvbSBsaSBhIGksXG4ubWVudS5leHBhbmRlZC5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubWVudS5zaW1wbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm1lbnUuc2ltcGxlIGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cbi5tZW51LnNpbXBsZSBhIHtcbiAgcGFkZGluZzogMDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubWVudS5tZWRpdW0tdmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1lbnUubWVkaXVtLWV4cGFuZGVkIGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5tZW51LmxhcmdlLWhvcml6b250YWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5tZW51LmxhcmdlLXZlcnRpY2FsIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5tZW51LmxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuLm1lbnUubmVzdGVkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cbi5tZW51Lmljb25zIGEge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLm1lbnUuaWNvbi10b3AgYSwgLm1lbnUuaWNvbi1yaWdodCBhLCAubWVudS5pY29uLWJvdHRvbSBhLCAubWVudS5pY29uLWxlZnQgYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubWVudS5pY29uLWxlZnQgbGkgYSwgLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIHtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xufVxuLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaW1nLFxuLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbi5tZW51Lmljb24tbGVmdCBsaSBhIHN2ZywgLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIGltZyxcbi5tZW51Lm5lc3RlZC5pY29uLWxlZnQgbGkgYSBpLFxuLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cbi5tZW51Lmljb24tcmlnaHQgbGkgYSwgLm1lbnUubmVzdGVkLmljb24tcmlnaHQgbGkgYSB7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbn1cbi5tZW51Lmljb24tcmlnaHQgbGkgYSBpbWcsXG4ubWVudS5pY29uLXJpZ2h0IGxpIGEgaSxcbi5tZW51Lmljb24tcmlnaHQgbGkgYSBzdmcsIC5tZW51Lm5lc3RlZC5pY29uLXJpZ2h0IGxpIGEgaW1nLFxuLm1lbnUubmVzdGVkLmljb24tcmlnaHQgbGkgYSBpLFxuLm1lbnUubmVzdGVkLmljb24tcmlnaHQgbGkgYSBzdmcge1xuICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbn1cbi5tZW51Lmljb24tdG9wIGxpIGEsIC5tZW51Lm5lc3RlZC5pY29uLXRvcCBsaSBhIHtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xufVxuLm1lbnUuaWNvbi10b3AgbGkgYSBpbWcsXG4ubWVudS5pY29uLXRvcCBsaSBhIGksXG4ubWVudS5pY29uLXRvcCBsaSBhIHN2ZywgLm1lbnUubmVzdGVkLmljb24tdG9wIGxpIGEgaW1nLFxuLm1lbnUubmVzdGVkLmljb24tdG9wIGxpIGEgaSxcbi5tZW51Lm5lc3RlZC5pY29uLXRvcCBsaSBhIHN2ZyB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5tZW51Lmljb24tYm90dG9tIGxpIGEsIC5tZW51Lm5lc3RlZC5pY29uLWJvdHRvbSBsaSBhIHtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xufVxuLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4ubWVudS5pY29uLWJvdHRvbSBsaSBhIGksXG4ubWVudS5pY29uLWJvdHRvbSBsaSBhIHN2ZywgLm1lbnUubmVzdGVkLmljb24tYm90dG9tIGxpIGEgaW1nLFxuLm1lbnUubmVzdGVkLmljb24tYm90dG9tIGxpIGEgaSxcbi5tZW51Lm5lc3RlZC5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogIzc2MWIyYjtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG4ubWVudSAuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6ICM3NjFiMmI7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLm1lbnUuYWxpZ24tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5tZW51LmFsaWduLXJpZ2h0IGxpIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5tZW51LmFsaWduLXJpZ2h0IGxpIC5zdWJtZW51IGxpIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ubWVudS5hbGlnbi1yaWdodC52ZXJ0aWNhbCBsaSAuc3VibWVudSBsaSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm1lbnUuYWxpZ24tcmlnaHQuaWNvbi10b3AgbGkgYSBpbWcsXG4ubWVudS5hbGlnbi1yaWdodC5pY29uLXRvcCBsaSBhIGksXG4ubWVudS5hbGlnbi1yaWdodC5pY29uLXRvcCBsaSBhIHN2ZywgLm1lbnUuYWxpZ24tcmlnaHQuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4ubWVudS5hbGlnbi1yaWdodC5pY29uLWJvdHRvbSBsaSBhIGksXG4ubWVudS5hbGlnbi1yaWdodC5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ubWVudS5hbGlnbi1jZW50ZXIgbGkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5tZW51LmFsaWduLWNlbnRlciBsaSAuc3VibWVudSBsaSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5tZW51IC5tZW51LXRleHQge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSAuc3VibWVudSBsaSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVudS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5tZW51LWljb246OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZlZmVmZSwgMCAxNHB4IDAgI2ZlZmVmZTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjY2FjYWNhLCAwIDE0cHggMCAjY2FjYWNhO1xufVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4ubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjOGE4YThhLCAwIDE0cHggMCAjOGE4YThhO1xufVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hY2NvcmRpb24tbWVudSBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG59XG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbn1cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiAjNzYxYjJiIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICByaWdodDogMXJlbTtcbn1cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxcmVtO1xuICBsZWZ0OiBhdXRvO1xufVxuLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtO1xufVxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD10cnVlXSA+IGE6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbn1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG59XG5cbi5zdWJtZW51LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN1Ym1lbnUtdG9nZ2xlOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiAjNzYxYjJiIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD10cnVlXTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG59XG5cbi5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5pcy1kcmlsbGRvd24gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5pcy1kcmlsbGRvd24uYW5pbWF0ZS1oZWlnaHQge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbn1cblxuLmRyaWxsZG93biBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG59XG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG59XG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1hY3RpdmUge1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG59XG4uZHJpbGxkb3duIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmRyaWxsZG93biAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc2MWIyYjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgcmlnaHQ6IDFyZW07XG59XG4uZHJpbGxkb3duLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMzU4ZTtcbiAgcmlnaHQ6IDFyZW07XG4gIGxlZnQ6IGF1dG87XG59XG4uZHJpbGxkb3duLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAwMzU4ZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFyZW07XG59XG4uZHJpbGxkb3duIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzc2MWIyYiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG59XG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xufVxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6ICMwMDM1OGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiA1cHg7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0zcHg7XG59XG5bZGF0YS13aGF0aW5wdXQ9bW91c2VdIC5kcm9wZG93bi5tZW51IGEge1xuICBvdXRsaW5lOiAwO1xufVxuLmRyb3Bkb3duLm1lbnUgPiBsaSA+IGEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG59XG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMwMDM1OGU7XG59XG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmRyb3Bkb3duLm1lbnUgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7XG59XG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTtcbn1cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4O1xufVxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDM1OGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG59XG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAzNThlO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAzNThlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDM1OGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMzU4ZTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICMwMDM1OGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDM1OGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAzNThlO1xuICB9XG59XG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDtcbn1cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsLmFsaWduLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogNXB4O1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtNnB4O1xufVxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlO1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDMwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xufVxuLmRyb3Bkb3duIC5pcy1kcm9wZG93bi1zdWJtZW51IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbn1cbi5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7XG59XG4uaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAzNThlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xufVxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAzNThlO1xufVxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgPiBsaSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmh0bWwuaXMtcmV2ZWFsLW9wZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5odG1sLmlzLXJldmVhbC1vcGVuLnpmLWhhcy1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC40NSk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnJldmVhbCB7XG4gIHotaW5kZXg6IDEwMDY7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbltkYXRhLXdoYXRpbnB1dD1tb3VzZV0gLnJldmVhbCB7XG4gIG91dGxpbmU6IDA7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG59XG4ucmV2ZWFsIC5jb2x1bW4ge1xuICBtaW4td2lkdGg6IDA7XG59XG4ucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gIH1cbn1cbi5yZXZlYWwuY29sbGFwc2Uge1xuICBwYWRkaW5nOiAwO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbC50aW55IHtcbiAgICB3aWR0aDogMzAlO1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwuc21hbGwge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbC5sYXJnZSB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICB9XG59XG4ucmV2ZWFsLmZ1bGwge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5yZXZlYWwge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5yZXZlYWwud2l0aG91dC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnN0aWNreS5pcy1zdHVjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gIHRvcDogMDtcbn1cbi5zdGlja3kuaXMtc3R1Y2suaXMtYXQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xufVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogYXV0bztcbn1cbi5zdGlja3kuaXMtYW5jaG9yZWQuaXMtYXQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xufVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjM2YzZjQyO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnRpdGxlLWJhciAubWVudS1pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cblxuLnRpdGxlLWJhci1sZWZ0LFxuLnRpdGxlLWJhci1yaWdodCB7XG4gIGZsZXg6IDEgMSAwcHg7XG59XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnRpdGxlLWJhci10aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50b3AtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udG9wLWJhcixcbi50b3AtYmFyIHVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbn1cbi50b3AtYmFyIGlucHV0IHtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi50b3AtYmFyIGlucHV0LmJ1dHRvbiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbi50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50b3AtYmFyIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICAudG9wLWJhciAudG9wLWJhci1sZWZ0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItcmlnaHQge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4udG9wLWJhci10aXRsZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xufVxuXG4udG9wLWJhci1sZWZ0LFxuLnRvcC1iYXItcmlnaHQge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmFsaWduLWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5hbGlnbi1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmFsaWduLWp1c3RpZnkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5hbGlnbi1zcGFjZWQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLmFsaWduLWxlZnQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmFsaWduLXJpZ2h0LnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tY2VudGVyLnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uYWxpZ24tc2VsZi10b3Age1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4uYWxpZ24tYm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuLmFsaWduLW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hbGlnbi1zZWxmLW1pZGRsZSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLmFsaWduLXNlbGYtc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTtcbn1cblxuLnNtYWxsLW9yZGVyLTIge1xuICBvcmRlcjogMjtcbn1cblxuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMztcbn1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDtcbn1cblxuLnNtYWxsLW9yZGVyLTUge1xuICBvcmRlcjogNTtcbn1cblxuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAubGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC5sYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAubGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG59XG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZmxleC1jaGlsZC1hdXRvIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi5mbGV4LWNoaWxkLWdyb3cge1xuICBmbGV4OiAxIDAgYXV0bztcbn1cblxuLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgZmxleDogMCAxIGF1dG87XG59XG5cbi5mbGV4LWRpci1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uZmxleC1kaXItcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5mbGV4LWRpci1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICAubGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbn1cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zaG93LWZvci1kYXJrLW1vZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAuc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnNob3ctZm9yLWllIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnNob3ctZm9yLWllIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLWZvci1pZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4uc2hvdy1mb3Itc3RpY2t5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmlzLXN0dWNrIC5zaG93LWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmlzLXN0dWNrIC5oaWRlLWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xufVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbn1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLmZhZGUtaW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG59XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7XG59XG5cbi5mYXN0IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDtcbn1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbn1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7XG59XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbn1cblxuLmJvdW5jZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbn1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50O1xufVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbn1cblxuLnNob3J0LWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDtcbn1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50O1xufVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNztcbn1cbkBrZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpO1xuICB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTtcbiAgfVxufVxuXG4uc3Bpbi1jdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuO1xufVxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIH1cbn1cblxuLnNwaW4tY2N3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY2N3LTF0dXJuO1xufVxuQGtleWZyYW1lcyBzcGluLWNjdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pO1xuICB9XG59XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7XG59XG5Aa2V5ZnJhbWVzIHdpZ2dsZS03ZGVnIHtcbiAgNDAlLCA1MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7XG4gIH1cbiAgMzUlLCA0NSUsIDU1JSwgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7XG4gIH1cbiAgMCUsIDMwJSwgNzAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgfVxufVxuXG4uc2hha2UsXG4uc3Bpbi1jdyxcbi5zcGluLWNjdyxcbi53aWdnbGUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xufVxuXG4uaW5maW5pdGUge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuLnNsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7XG59XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50O1xufVxuXG4ubGluZWFyIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7XG59XG5cbi5lYXNlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDtcbn1cblxuLmVhc2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDtcbn1cblxuLmVhc2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbn1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50O1xufVxuXG4uYm91bmNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDtcbn1cblxuLmJvdW5jZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbn1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50O1xufVxuXG4ubG9uZy1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLm5vLWpzIC50b3AtYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubm8tanMgLnRpdGxlLWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4jbG9nbyBoMSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAwO1xufVxuXG4jZnVzLWxvZ28ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuXG4udGl0bGUtYmFyIHtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLnRpdGxlLWJhciBzdmcge1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5cbi5wYWdlLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzU4ZTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYWdlLXRpdGxlIGgxIHtcbiAgbWFyZ2luLWJvdHRvbTogMHJlbTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5vcmJpdC1jYXB0aW9uIGgyIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG5oMyB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5kZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xufVxuZGQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5kZCArIGR0IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxucCwgbGkge1xuICBtYXgtd2lkdGg6IDgwY2g7XG59XG5cbm1haW4ge1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuLypBY2NvcmRpb24gZmxvYXQgaXNzdWUgZml4Ki9cbi5hY2NvcmRpb24taXRlbSB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG50YWJsZSB0ZCBhIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG5bZGF0YS1tYWdlbGxhbl0gLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM3NjFiMmI7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuXG4udG9wLWJhci1yaWdodCB7XG4gIHotaW5kZXg6IDIwMDtcbn1cbi50b3AtYmFyLXJpZ2h0IC5ncmlkLXkge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5zdmdpbWcge1xuICB3aWR0aDogNXJlbTtcbiAgaGVpZ2h0OiA1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnN2Z2ltZyB7XG4gICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgfVxufVxuXG4uYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNi4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIGVhc2UgMC4zcztcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgMC4zcztcbiAgbWFyZ2luOiAwLjc1cmVtIDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYmFja2dyb3VuZDogIzAwNGVhYTtcbn1cbi5idXR0b246OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXI6IHNvbGlkICNmZWZlZmU7XG4gIGJvcmRlci13aWR0aDogMCAzcHggM3B4IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogM3B4O1xuICBtYXJnaW46IDAgMCAzcHggOHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAycHg7XG59XG4uYnV0dG9uLnNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbn1cblxuLnByaW1hcnktbmF2IGxpIGEge1xuICBjb2xvcjogIzAwMzU4ZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5wcmltYXJ5LW5hdiBsaSBhOmFjdGl2ZSwgLnByaW1hcnktbmF2IGxpIGE6aG92ZXIge1xuICBjb2xvcjogIzAwMzU4ZTtcbn1cbi5wcmltYXJ5LW5hdiBsaSB1bCBsaSBhIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5wcmltYXJ5LW5hdiBsaSB1bCBsaSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VBRUZGMztcbn1cblxuLnNlY29uZGFyeS1uYXYge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4uc2Vjb25kYXJ5LW5hdiBhIHtcbiAgY29sb3I6ICMzRjNGM0Y7XG59XG4uc2Vjb25kYXJ5LW5hdiBhOmhvdmVyIHtcbiAgY29sb3I6IGRpbWdyYXk7XG59XG5cbi8qUGFnZXMgd2l0aCByaWdodCBzaWRlYmFyIG5hdiovXG4ucGFnZS1uYXZpZ2F0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDJyZW07XG59XG5cbi5ob21lcGFnZSAuZ3JpZC1jb250YWluZXIgLmdyaWQtY29udGFpbmVyIHtcbiAgcGFkZGluZzogM3JlbSAwO1xufVxuXG4ubmV3cy1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM3Njc2NzY7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ubmV3cy1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAjbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBoZWFkZXIge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gIH1cbiAgZm9vdGVyIC5kcmlsbGRvd24gYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLnRvbGwtZnJlZSB7XG4gICAgdG9wOiAwLjc1cmVtO1xuICB9XG4gICNmdXMtbG9nby10aXRsZS1iYXIge1xuICAgIHdpZHRoOiAxMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRyZW07XG4gIH1cbiAgI2Z1cy1sb2dvLXRpdGxlLWJhciAuZnVzLXJlZCB7XG4gICAgZmlsbDogI0ZGRkZGRjtcbiAgfVxuICAjZnVzLWxvZ28tdGl0bGUtYmFyIC5mdXMtZ3JleSB7XG4gICAgZmlsbDogI0ZGRkZGRjtcbiAgfVxuICAjZnVzLWxvZ28tdGl0bGUtYmFyIC5mdXMtYmxhY2sge1xuICAgIGZpbGw6ICM2MzY1Njk7XG4gIH1cbiAgLnRvbGwtZnJlZTo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGNvbnRlbnQ6IFwiXCIgYXR0cihkYXRhLWxpbmUpIFwiXCI7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC50b3AtYmFyIGlucHV0IHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgI21haW5OYXZpZ2F0aW9uIHtcbiAgICBib3JkZXItdG9wOiA1cHggc29saWQgI2VkZWRlZDtcbiAgfVxuICAuc2Vjb25kYXJ5LW5hdiB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5hY3RpdmUgPiBhOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAzNThlIHRyYW5zcGFyZW50O1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAzNThlIHRyYW5zcGFyZW50O1xuICB9XG4gIGR0IHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDFyZW0gMCAwIDA7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB3aWR0aDogMzUlO1xuICB9XG4gIGRkIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAxcmVtIDAgMCAwO1xuICAgIHdpZHRoOiA2NSU7XG4gIH1cbiAgLmNvbnRhY3QgZHQge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAuY29udGFjdCBkZCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxuICAudHdvLWNvbHVtbnMge1xuICAgIGNvbHVtbnM6IDI7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jb250YWN0IGR0IHtcbiAgICB3aWR0aDogNjAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmNvbnRhY3QgZGQge1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIGFuZCAobWluLXdpZHRoOiAxMDBlbSkge1xuICAjcmVzcG9uc2l2ZU1lbnUge1xuICAgIHdpZHRoOiA2Mi41JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cbnNlY3Rpb24uZ3JpZC1jb250YWluZXIucGFnZS10aXRsZSB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMDtcbn1cblxuLmJrZy1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cblxuI0JyaXRpc2hfQ29sdW1iaWEgcGF0aCwgI0FsYmVydGEgcGF0aCwgI1Nhc2thdGNoZXdhbiBwYXRoLCAjTWFuaXRvYmEgcGF0aCwgI1l1a29uIHBhdGgsICNOb3J0aHdlc3RfVGVycml0b3JpZXMgcGF0aCwgI051bmF2dXQgcGF0aCB7XG4gIGZpbGw6ICMyYTdkZTE7XG59XG5cbiNPbnRhcmlvIHBhdGgge1xuICBmaWxsOiAjMDAzNThlO1xufVxuXG4jUXVlYmVjIHBhdGgge1xuICBmaWxsOiAjZmZjNjAwO1xufVxuXG4jTmV3X0JydW5zd2ljayBwYXRoLCAjUHJpbmNlX0Vkd2FyZF9Jc2xhbmQgcGF0aCwgI05vdmFfU2NvdGlhIHBhdGgsICNOZXdmb3VuZGxhbmRfYW5kX0xhYnJhZG9yIHBhdGgge1xuICBmaWxsOiAjMmVjZGRjO1xufVxuXG4uaDUge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzQ0NDtcbn1cblxuI3R3aXR0ZXItd2lkZ2V0LTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgdG9wOiA1cHg7XG59XG5cbmZvb3RlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5mb290ZXIgYSB7XG4gIGNvbG9yOiAjMDAzNThlO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbmZvb3RlciBzbWFsbCBhIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuZm9vdGVyIC5vcHRhLWZvb3RlciB7XG4gIHBhZGRpbmc6IDNyZW0gMDtcbn1cbmZvb3RlciAub3B0YS1mb290ZXIgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgd2lkdGg6IDcuNzVyZW07XG59XG5mb290ZXIgLm9wdGEtZm9vdGVyIHVsIHtcbiAgdG9wOiAtMC4yNXJlbTtcbn1cbmZvb3RlciAudmVyaXNrLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gIHBhZGRpbmc6IDAuNXJlbSAwIDFyZW0gMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbmZvb3RlciAudmVyaXNrLWZvb3RlciBpbWcge1xuICBwYWRkaW5nOiAxcmVtIDAgMC41cmVtIDA7XG4gIHdpZHRoOiAxNTBweDtcbn1cbmZvb3RlciAudmVyaXNrLWZvb3RlciBwIHtcbiAgbGluZS1oZWlnaHQ6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuZm9vdGVyIC52ZXJpc2stZm9vdGVyIC52ZXJpc2stYnJhbmRpbmcge1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmbG9hdDogcmlnaHQ7XG59XG5mb290ZXIgLnZlcmlzay1mb290ZXIgLnZlcmlzay1icmFuZGluZyBpbWcge1xuICB3aWR0aDogMTI1cHg7XG4gIHBhZGRpbmc6IDEuNXJlbSAwIDAuNXJlbSAwO1xufVxuXG4ub3B0YS1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjUwcHg7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIHAsIGxpIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmdyaWQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiBub25lO1xuICB9XG4gIC5ncmlkLXgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IG5vbmU7XG4gIH1cbiAgLmNlbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IG5vbmU7XG4gIH1cbiAgLmdyaWQteCA+IC5sYXJnZS04IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuZmlnY2FwdGlvbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi50aW1lbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udGltZWxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMyU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogM3B4O1xufVxuXG4udGltZWxpbmUtaXRlbSB7XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogNSUgMSUgNSUgOSU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4ICMyMzFmMjA7XG4gIGJvcmRlci1jb2xvcjogIzIzMWYyMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udGltZWxpbmUtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTklO1xuICB0b3A6IDUlO1xufVxuXG4udGltZWxpbmUtaXRlbTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIHRvcDogNC43NSU7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMTVweDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi50aW1lbGluZS1jb250ZW50IHtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLnRpbWVsaW5lLWljb24gc3ZnIHtcbiAgd2lkdGg6IDEycHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50aW1lbGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC50aW1lbGluZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAzcHg7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW0ge1xuICAgIHdpZHRoOiA0NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDZweCAjMjMxZjIwO1xuICAgIG1hcmdpbjogMiU7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKDFuKSAudGltZWxpbmUtaWNvbiB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQob2RkKSAudGltZWxpbmUtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMzJweDtcbiAgICB0b3A6IDEwLjI1JTtcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMjhweDtcbiAgICB0b3A6IDIwLjI1JTtcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQoMSkge1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC50aW1lbGluZS1pdGVtOm50aC1jaGlsZCgyKSB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKDMpIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQoNCkge1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC50aW1lbGluZS1pdGVtOm50aC1jaGlsZCg1KSB7XG4gICAgb3JkZXI6IDU7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKDYpIHtcbiAgICBvcmRlcjogNjtcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQoNykge1xuICAgIG9yZGVyOiA3O1xuICB9XG4gIC50aW1lbGluZS1pdGVtOm50aC1jaGlsZCg4KSB7XG4gICAgb3JkZXI6IDg7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKDkpIHtcbiAgICBvcmRlcjogOTtcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQoMTApIHtcbiAgICBvcmRlcjogMTA7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKDExKSB7XG4gICAgb3JkZXI6IDExO1xuICB9XG4gIC50aW1lbGluZS1pdGVtOm50aC1jaGlsZChvZGQpOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjMxZjIwO1xuICB9XG4gIC50aW1lbGluZS1pdGVtOm50aC1jaGlsZChvZGQpOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogMTAlO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxNXB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuICAudGltZWxpbmUtaXRlbTpudGgtY2hpbGQoZXZlbik6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6ICMyMzFmMjA7XG4gIH1cbiAgLnRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKGV2ZW4pOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogMjAlO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMTVweDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuICAudGltZWxpbmUtaXRlbTo6YmVmb3JlIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDBweDtcbiAgfVxuICAudGltZWxpbmUtaXRlbTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICB0b3A6IDQuNzUlO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMHB4O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG59XG4uZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIgbGkge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIgLm9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTB2aDtcbn1cbi5mdWxsc2NyZWVuLWltYWdlLXNsaWRlciAub3JiaXQtY2FwdGlvbiB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIC8qbWFyZ2luOiAwIGF1dG87Ki9cbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgYm90dG9tOiAwJTtcbiAgbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEydnc7XG59XG4uZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIgLm9yYml0LWNhcHRpb24gcCB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5mdWxsc2NyZWVuLWltYWdlLXNsaWRlciAub3JiaXQtZmlndXJlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmZ1bGxzY3JlZW4taW1hZ2Utc2xpZGVyIC5vcmJpdC1idWxsZXRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIgLm9yYml0LWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwdmg7XG4gIH1cbiAgLmZ1bGxzY3JlZW4taW1hZ2Utc2xpZGVyIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJvdHRvbTogMTUlO1xuICAgIGxlZnQ6IDQyJTtcbiAgICB3aWR0aDogNTUlO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIgLm9yYml0LWNhcHRpb24ge1xuICAgIGJvdHRvbTogNSU7XG4gICAgdG9wOiA1JTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgLypsZWZ0OiA0MyU7Ki9cbiAgICB3aWR0aDogNjAlO1xuICB9XG4gIC5mdWxsc2NyZWVuLWltYWdlLXNsaWRlciAub3JiaXQtY2FwdGlvbiAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmZ1bGxzY3JlZW4taW1hZ2Utc2xpZGVyIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBsZWZ0OiA0NC4yNSU7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIgLm9yYml0LWNhcHRpb24ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGxlZnQ6IDQ1LjUlO1xuICAgIHdpZHRoOiAzMy41JTtcbiAgfVxufSIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9cclxuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxyXG4vL1xyXG4vLyAgIDEuIEdsb2JhbFxyXG4vLyAgIDIuIEJyZWFrcG9pbnRzXHJcbi8vICAgMy4gVGhlIEdyaWRcclxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcclxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcclxuLy8gICA2LiBBYmlkZVxyXG4vLyAgIDcuIEFjY29yZGlvblxyXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XHJcbi8vICAgOS4gQmFkZ2VcclxuLy8gIDEwLiBCcmVhZGNydW1ic1xyXG4vLyAgMTEuIEJ1dHRvblxyXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxyXG4vLyAgMTMuIENhbGxvdXRcclxuLy8gIDE0LiBDYXJkXHJcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXHJcbi8vICAxNi4gRHJpbGxkb3duXHJcbi8vICAxNy4gRHJvcGRvd25cclxuLy8gIDE4LiBEcm9wZG93biBNZW51XHJcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcclxuLy8gIDIwLiBGb3Jtc1xyXG4vLyAgMjEuIExhYmVsXHJcbi8vICAyMi4gTWVkaWEgT2JqZWN0XHJcbi8vICAyMy4gTWVudVxyXG4vLyAgMjQuIE1ldGVyXHJcbi8vICAyNS4gT2ZmLWNhbnZhc1xyXG4vLyAgMjYuIE9yYml0XHJcbi8vICAyNy4gUGFnaW5hdGlvblxyXG4vLyAgMjguIFByb2dyZXNzIEJhclxyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xyXG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XHJcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXHJcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXHJcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcclxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXHJcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxyXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xyXG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxyXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXHJcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxyXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcclxuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXHJcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcclxuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXHJcbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cclxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcclxuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXHJcbi8vICA0Ny4gUmV2ZWFsXHJcbi8vICA0OC4gU2xpZGVyXHJcbi8vICA0OS4gU3dpdGNoXHJcbi8vICA1MC4gVGFibGVcclxuLy8gIDUxLiBUYWJzXHJcbi8vICA1Mi4gVGh1bWJuYWlsXHJcbi8vICA1My4gVGl0bGUgQmFyXHJcbi8vICA1NC4gVG9vbHRpcFxyXG4vLyAgNTUuIFRvcCBCYXJcclxuLy8gIDU2LiBYeSBHcmlkXHJcblxyXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xyXG5cclxuLy8gMS4gR2xvYmFsXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XHJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApO1xyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICM3NjFiMmIsXHJcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxyXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXHJcbiAgd2FybmluZzogI2ZmYWUwMCxcclxuICBhbGVydDogI2NjNGIzNyxcclxuKTtcclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTY7XHJcbiRtZWRpdW0tZ3JheTogI2NhY2FjYTtcclxuJGRhcmstZ3JheTogIzhhOGE4YTtcclxuJGJsYWNrOiAjMGEwYTBhO1xyXG4kd2hpdGU6ICNmZWZlZmU7XHJcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xyXG4kYm9keS1mb250LWZhbWlseTogUm9ib3RvLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiRib2R5LXNhZmUtcGFkZGluZzogZmFsc2U7XHJcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcclxuJGdsb2JhbC1yYWRpdXM6IDVweDtcclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xyXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcclxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xyXG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XHJcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZTtcclxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xyXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XHJcbiRwcmludC1ocmVmczogdHJ1ZTtcclxuLypWZXJpc2sgY29sb3JzKi9cclxuJGV4dC1ibHVlLTE6ICMwMDJENjE7XHJcbiRnbG9iZS1ibHVlOiAjMDAzNThlO1xyXG4kcmFkaWNhbC1ibHVlOiAjMmE3ZGUxO1xyXG4keWVsbG93OiAjZmZjNjAwO1xyXG4kbWVkaXVtLWJsdWU6ICMwMDRlYWE7IFxyXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XHJcblxyXG4vLyAyLiBCcmVha3BvaW50c1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgc21hbGw6IDAsXHJcbiAgbWVkaXVtOiA2NDBweCxcclxuICBsYXJnZTogMTAyNHB4LFxyXG4gIHhsYXJnZTogMTIwMHB4LFxyXG4gIHh4bGFyZ2U6IDE0NDBweCxcclxuICB4eHhsYXJnZTogMTYwMHB4LFxyXG4pO1xyXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcclxuICBoaWRwaS0xOiAxLFxyXG4gIGhpZHBpLTEtNTogMS41LFxyXG4gIGhpZHBpLTI6IDIsXHJcbiAgcmV0aW5hOiAyLFxyXG4gIGhpZHBpLTM6IDNcclxuKTtcclxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xyXG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcclxuXHJcbi8vIDMuIFRoZSBHcmlkXHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XHJcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcclxuICBzbWFsbDogMjBweCxcclxuICBtZWRpdW06IDMwcHgsXHJcbik7XHJcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xyXG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJztcclxuJGJsb2NrLWdyaWQtbWF4OiA4O1xyXG5cclxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XHJcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlO1xyXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiRoZWFkZXItc3R5bGVzOiAoXHJcbiAgc21hbGw6IChcclxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQsICdsaW5lLWhlaWdodCc6ICRoZWFkZXItbGluZWhlaWdodCwgJ21hcmdpbi10b3AnOiAwLCAnbWFyZ2luLWJvdHRvbSc6ICRoZWFkZXItbWFyZ2luLWJvdHRvbSksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwLCAnbGluZS1oZWlnaHQnOiAkaGVhZGVyLWxpbmVoZWlnaHQsICdtYXJnaW4tdG9wJzogMCwgJ21hcmdpbi1ib3R0b20nOiAkaGVhZGVyLW1hcmdpbi1ib3R0b20pLFxyXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSwgJ2xpbmUtaGVpZ2h0JzogJGhlYWRlci1saW5laGVpZ2h0LCAnbWFyZ2luLXRvcCc6IDAsICdtYXJnaW4tYm90dG9tJzogJGhlYWRlci1tYXJnaW4tYm90dG9tKSxcclxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgsICdsaW5lLWhlaWdodCc6ICRoZWFkZXItbGluZWhlaWdodCwgJ21hcmdpbi10b3AnOiAwLCAnbWFyZ2luLWJvdHRvbSc6ICRoZWFkZXItbWFyZ2luLWJvdHRvbSksXHJcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3LCAnbGluZS1oZWlnaHQnOiAkaGVhZGVyLWxpbmVoZWlnaHQsICdtYXJnaW4tdG9wJzogMCwgJ21hcmdpbi1ib3R0b20nOiAkaGVhZGVyLW1hcmdpbi1ib3R0b20pLFxyXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiwgJ2xpbmUtaGVpZ2h0JzogJGhlYWRlci1saW5laGVpZ2h0LCAnbWFyZ2luLXRvcCc6IDAsICdtYXJnaW4tYm90dG9tJzogJGhlYWRlci1tYXJnaW4tYm90dG9tKVxyXG4gICksXHJcbiAgbWVkaXVtOiAoXHJcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDM2LCAnbGluZS1oZWlnaHQnOiAkaGVhZGVyLWxpbmVoZWlnaHQsICdtYXJnaW4tdG9wJzogMCwgJ21hcmdpbi1ib3R0b20nOiAkaGVhZGVyLW1hcmdpbi1ib3R0b20pLFxyXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyOCwgJ2xpbmUtaGVpZ2h0JzogJGhlYWRlci1saW5laGVpZ2h0LCAnbWFyZ2luLXRvcCc6IDAsICdtYXJnaW4tYm90dG9tJzogJGhlYWRlci1tYXJnaW4tYm90dG9tKSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjQsICdsaW5lLWhlaWdodCc6ICRoZWFkZXItbGluZWhlaWdodCwgJ21hcmdpbi10b3AnOiAwLCAnbWFyZ2luLWJvdHRvbSc6ICRoZWFkZXItbWFyZ2luLWJvdHRvbSksXHJcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDIxLCAnbGluZS1oZWlnaHQnOiAkaGVhZGVyLWxpbmVoZWlnaHQsICdtYXJnaW4tdG9wJzogMCwgJ21hcmdpbi1ib3R0b20nOiAkaGVhZGVyLW1hcmdpbi1ib3R0b20pLFxyXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxOCwgJ2xpbmUtaGVpZ2h0JzogJGhlYWRlci1saW5laGVpZ2h0LCAnbWFyZ2luLXRvcCc6IDAsICdtYXJnaW4tYm90dG9tJzogJGhlYWRlci1tYXJnaW4tYm90dG9tKSxcclxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYsICdsaW5lLWhlaWdodCc6ICRoZWFkZXItbGluZWhlaWdodCwgJ21hcmdpbi10b3AnOiAwLCAnbWFyZ2luLWJvdHRvbSc6ICRoZWFkZXItbWFyZ2luLWJvdHRvbSlcclxuICApLFxyXG4pO1xyXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiRlbmFibGUtY29kZS1pbmxpbmU6IHRydWU7XHJcbiRhbmNob3ItY29sb3I6ICRnbG9iZS1ibHVlO1xyXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiB1bmRlcmxpbmU7XHJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcclxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XHJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG4kbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XHJcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XHJcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xyXG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZTtcclxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xyXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XHJcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xyXG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XHJcblxyXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcclxuJGxlYWQtbGluZWhlaWdodDogMS42O1xyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcclxuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xyXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XHJcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XHJcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xyXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XHJcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW07XHJcbiRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuXHJcbi8vIDYuIEFiaWRlXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xyXG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xyXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xyXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCk7XHJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcclxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG5cclxuLy8gNy4gQWNjb3JkaW9uXHJcbi8vIC0tLS0tLS0tLS0tLVxyXG5cclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xyXG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQic7XHJcbiRhY2NvcmRpb24tbWludXMtY29udGVudDogJ1xcMjAxMyc7XHJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XHJcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcclxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xyXG5cclxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xyXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XHJcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsO1xyXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XHJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XHJcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XHJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xyXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHg7XHJcblxyXG4vLyA5LiBCYWRnZVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcclxuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XHJcblxyXG4vLyAxMC4gQnJlYWRjcnVtYnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRnbG9iZS1ibHVlO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XHJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWU7XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XHJcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuXHJcbi8vIDExLiBCdXR0b25cclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcclxuJGJ1dHRvbi1mb250LXdlaWdodDogbnVsbDtcclxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtO1xyXG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XHJcbiRidXR0b24tZmlsbDogc29saWQ7XHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xyXG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRidXR0b24tYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xyXG4kYnV0dG9uLXNpemVzOiAoXHJcbiAgdGlueTogMC42cmVtLFxyXG4gIHNtYWxsOiAwLjc1cmVtLFxyXG4gIGRlZmF1bHQ6IDAuOXJlbSxcclxuICBsYXJnZTogMS4yNXJlbSxcclxuKTtcclxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xyXG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XHJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcclxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcclxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZTtcclxuXHJcbi8vIDEyLiBCdXR0b24gR3JvdXBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcclxuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XHJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xyXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XHJcblxyXG4vLyAxMy4gQ2FsbG91dFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcclxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XHJcbiRjYWxsb3V0LXNpemVzOiAoXHJcbiAgc21hbGw6IDAuNXJlbSxcclxuICBkZWZhdWx0OiAxcmVtLFxyXG4gIGxhcmdlOiAzcmVtLFxyXG4pO1xyXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XHJcblxyXG4vLyAxNC4gQ2FyZFxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuJGNhcmQtc2hhZG93OiBub25lO1xyXG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbi8vIDE1LiBDbG9zZSBCdXR0b25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XHJcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMDtcclxuJGNsb3NlYnV0dG9uLWRlZmF1bHQtc2l6ZTogbWVkaXVtO1xyXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcclxuICBzbWFsbDogMC42NnJlbSxcclxuICBtZWRpdW06IDFyZW0sXHJcbik7XHJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcclxuICBzbWFsbDogMC4zM2VtLFxyXG4gIG1lZGl1bTogMC41cmVtLFxyXG4pO1xyXG4kY2xvc2VidXR0b24tc2l6ZTogKFxyXG4gIHNtYWxsOiAxLjVlbSxcclxuICBtZWRpdW06IDJlbSxcclxuKTtcclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XHJcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XHJcblxyXG4vLyAxNi4gRHJpbGxkb3duXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuXHJcbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcclxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XHJcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XHJcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XHJcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweDtcclxuXHJcbi8vIDE3LiBEcm9wZG93blxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xyXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcclxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcclxuJGRyb3Bkb3duLXdpZHRoOiA0MDBweDtcclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRkcm9wZG93bi1zaXplczogKFxyXG4gIHRpbnk6IDEwMHB4LFxyXG4gIHNtYWxsOiAyMDBweCxcclxuICBsYXJnZTogNDAwcHgsXHJcbik7XHJcblxyXG4vLyAxOC4gRHJvcGRvd24gTWVudVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xyXG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbTtcclxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDMwMHB4O1xyXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XHJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XHJcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xyXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudDtcclxuXHJcbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcclxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZTtcclxuXHJcbi8vIDIwLiBGb3Jtc1xyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XHJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XHJcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XHJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcclxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xyXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xyXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGlucHV0LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xyXG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xyXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xyXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAqIDAuNTtcclxuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xyXG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XHJcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcclxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjEuIExhYmVsXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XHJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjIuIE1lZGlhIE9iamVjdFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XHJcblxyXG4vLyAyMy4gTWVudVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJG1lbnUtbWFyZ2luOiAwO1xyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XHJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW07XHJcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XHJcbiRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZTogJGJsYWNrO1xyXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XHJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcclxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XHJcbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlO1xyXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcclxuXHJcbi8vIDI0LiBNZXRlclxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRtZXRlci1oZWlnaHQ6IDFyZW07XHJcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcclxuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XHJcblxyXG4vLyAyNS4gT2ZmLWNhbnZhc1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJG9mZmNhbnZhcy1zaXplczogKFxyXG4gIHNtYWxsOiAyNTBweCxcclxuKTtcclxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxyXG4gIHNtYWxsOiAyNTBweCxcclxuKTtcclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4O1xyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpO1xyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XHJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzO1xyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xyXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcclxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcclxuXHJcbi8vIDI2LiBPcmJpdFxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICR3aGl0ZTtcclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMXJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAtM3JlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XHJcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xyXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcclxuXHJcbi8vIDI3LiBQYWdpbmF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xyXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xyXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xyXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcclxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xyXG4kcGFnaW5hdGlvbi1hcnJvdy1wcmV2aW91czogJ1xcMDBBQic7XHJcbiRwYWdpbmF0aW9uLWFycm93LW5leHQ6ICdcXDAwQkInO1xyXG5cclxuLy8gMjguIFByb2dyZXNzIEJhclxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xyXG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxyXG4gIGRvd24sXHJcbiAgdXAsXHJcbiAgcmlnaHQsXHJcbiAgbGVmdFxyXG4pO1xyXG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcclxuJHByb3RvdHlwZS1hcnJvdy1jb2xvcjogJGJsYWNrO1xyXG5cclxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuXHJcbi8vIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcblxyXG4vLyAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSk7XHJcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xyXG4kcHJvdG90eXBlLWJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xyXG5cclxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1kaXNwbGF5OiAoXHJcbiAgaW5saW5lLFxyXG4gIGlubGluZS1ibG9jayxcclxuICBibG9jayxcclxuICB0YWJsZSxcclxuICB0YWJsZS1jZWxsXHJcbik7XHJcblxyXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KTtcclxuJHByb3RvdHlwZS1mb250LW5vcm1hbDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuXHJcbi8vIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXHJcbiAgZGlzYyxcclxuICBjaXJjbGUsXHJcbiAgc3F1YXJlXHJcbik7XHJcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXHJcbiAgZGVjaW1hbCxcclxuICBsb3dlci1hbHBoYSxcclxuICBsb3dlci1sYXRpbixcclxuICBsb3dlci1yb21hbixcclxuICB1cHBlci1hbHBoYSxcclxuICB1cHBlci1sYXRpbixcclxuICB1cHBlci1yb21hblxyXG4pO1xyXG5cclxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxyXG4gIHZpc2libGUsXHJcbiAgaGlkZGVuLFxyXG4gIHNjcm9sbFxyXG4pO1xyXG5cclxuLy8gMzcuIFByb3RvdHlwZSBQb3NpdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxyXG4gIHN0YXRpYyxcclxuICByZWxhdGl2ZSxcclxuICBhYnNvbHV0ZSxcclxuICBmaXhlZFxyXG4pO1xyXG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NTtcclxuXHJcbi8vIDM4LiBQcm90b3R5cGUgUm91bmRlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMyk7XHJcblxyXG4vLyAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyO1xyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xyXG4kcHJvdG90eXBlLXNlcGFyYXRvci13aWR0aDogM3JlbTtcclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xyXG5cclxuLy8gNDAuIFByb3RvdHlwZSBTaGFkb3dcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuXHJcbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtc2l6aW5nOiAoXHJcbiAgd2lkdGgsXHJcbiAgaGVpZ2h0XHJcbik7XHJcbiRwcm90b3R5cGUtc2l6ZXM6IChcclxuICAyNTogMjUlLFxyXG4gIDUwOiA1MCUsXHJcbiAgNzU6IDc1JSxcclxuICAxMDA6IDEwMCVcclxuKTtcclxuXHJcbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XHJcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcclxuXHJcbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xyXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxyXG4gIG92ZXJsaW5lLFxyXG4gIHVuZGVybGluZSxcclxuICBsaW5lLXRocm91Z2gsXHJcbik7XHJcblxyXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXHJcbiAgbG93ZXJjYXNlLFxyXG4gIHVwcGVyY2FzZSxcclxuICBjYXBpdGFsaXplXHJcbik7XHJcblxyXG4vLyA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcclxuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuXHJcbi8vIDQ2LiBSZXNwb25zaXZlIEVtYmVkXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XHJcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxyXG4gIGRlZmF1bHQ6IDQgYnkgMyxcclxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxyXG4pO1xyXG5cclxuLy8gNDcuIFJldmVhbFxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHJldmVhbC13aWR0aDogNjAwcHg7XHJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHJldmVhbC16aW5kZXg6IDEwMDU7XHJcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XHJcblxyXG4vLyA0OC4gU2xpZGVyXHJcbi8vIC0tLS0tLS0tLS1cclxuXHJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcclxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcclxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XHJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XHJcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XHJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDQ5LiBTd2l0Y2hcclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xyXG4kc3dpdGNoLWhlaWdodDogMnJlbTtcclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XHJcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XHJcbiRzd2l0Y2gtb3BhY2l0eS1kaXNhYmxlZDogMC41O1xyXG4kc3dpdGNoLWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XHJcblxyXG4vLyA1MC4gVGFibGVcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xyXG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XHJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcclxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XHJcbiR0YWJsZS1zdHJpcGU6IGV2ZW47XHJcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKiAwLjUpO1xyXG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcclxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcclxuXHJcbi8vIDUxLiBUYWJzXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kdGFiLW1hcmdpbjogMDtcclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XHJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XHJcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XHJcblxyXG4vLyA1Mi4gVGh1bWJuYWlsXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuXHJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlO1xyXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xyXG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcclxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA1My4gVGl0bGUgQmFyXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuXHJcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiBkYXJrZW4oIzY0NjU2OSwgMTUlKTsgLy8kYmxhY2tcclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XHJcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XHJcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xyXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xyXG5cclxuLy8gNTQuIFRvb2x0aXBcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xyXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XHJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XHJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyA1NS4gVG9wIEJhclxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XHJcbiR0b3BiYXItYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcclxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcclxuXHJcbi8vIDU2LiBYeSBHcmlkXHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4keHktZ3JpZDogdHJ1ZTtcclxuJGdyaWQtY29udGFpbmVyOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW5zOiAxMjtcclxuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcclxuICBzbWFsbDogMjBweCxcclxuICBtZWRpdW06IDMwcHhcclxuKTtcclxuJGdyaWQtcGFkZGluZy1ndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycztcclxuJGdyaWQtY29udGFpbmVyLXBhZGRpbmc6ICRncmlkLXBhZGRpbmctZ3V0dGVycztcclxuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcclxuJHh5LWJsb2NrLWdyaWQtbWF4OiA4O1xyXG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuOC4xXG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyAtLS0gRGVwZW5kZW5jaWVzIC0tLVxuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gLS0tIFNldHRpbmdzIC0tLVxuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcbi8vIEdsb2JhbCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG4vLyBHcmlkc1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG4vLyBHZW5lcmljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG4vLyBCYXNpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2UsXG4gICR4eS1ncmlkOiAkeHktZ3JpZFxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaWYgJHh5LWdyaWQge1xuICAgICR4eS1ncmlkOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kLXpmLXNpemU6IG51bGw7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgXCJzbWFsbFwiOiAwLFxuICBcIm1lZGl1bVwiOiA2NDBweCxcbiAgXCJsYXJnZVwiOiAxMDI0cHgsXG4gIFwieGxhcmdlXCI6IDEyMDBweCxcbiAgXCJ4eGxhcmdlXCI6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIFwiaGlkcGktMVwiOiAxLFxuICBcImhpZHBpLTEtNVwiOiAxLjUsXG4gIFwiaGlkcGktMlwiOiAyLFxuICBcInJldGluYVwiOiAyLFxuICBcImhpZHBpLTNcIjogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSBkaXZpZGUoMSwgJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHQtbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0LW51bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHQtbnVtYmVyKSB7XG4gICAgICAkbmV4dC1udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHQtbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kLWtleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZC1rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kLWtleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cblxuLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4vLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG4vLyBUaGlzIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBicmVha3BvaW50IHRoZW4gYEBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGhgXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIC8vIEV4dGVuZHMgbXVzdCBiZSBtYWRlIG91dHNpZGUgb2YgYnJlYWtwb2ludHMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBuZXdlciBTYXNzIHZlcnNpb25zIChsaWJzYXNzIHYzLjUpXG4gIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXZlYWwge1xuXG4gIC8vLyBEaXNhYmxlcyB0aGUgc2Nyb2xsIHdoZW4gUmV2ZWFsIGlzIHNob3duIHRvIHByZXZlbnQgdGhlIGJhY2tncm91bmQgZnJvbSBzaGlmdGluZ1xuICBodG1sLmlzLXJldmVhbC1vcGVuIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgJi56Zi1oYXMtc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICB9XG5cbiAgICBib2R5IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhlc1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ub3JtYWxpemUoKSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvLyBEb2N1bWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG5cbiAgaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgfVxuXG4gIC8vIFNlY3Rpb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgLy8gYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8vIEdyb3VwaW5nIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAvLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgICBoZWlnaHQ6IDA7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgLy8gMVxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBEaXNhYmxlIG91dGxpbmUgd2hlbiBpbnRlbnQgaXMgY2xlYXJseSBtb3VzZSBhbmQgdG91Y2hcbiAgW2RhdGEtd2hhdGludGVudD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW50ZW50PVwidG91Y2hcIl0sXG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSB7XG4gICAgKiwgKjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGUgaU9TIGNhbGxvdXRzIHdoZW4gZHJhZ2dhYmxlIGlzIGZhbHNlXG4gIFtkcmFnZ2FibGU9ZmFsc2VdIHtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgXCJwcmltYXJ5XCI6ICMxNzc5YmEsXG4gIFwic2Vjb25kYXJ5XCI6ICM3Njc2NzYsXG4gIFwic3VjY2Vzc1wiOiAjM2FkYjc2LFxuICBcIndhcm5pbmdcIjogI2ZmYWUwMCxcbiAgXCJhbGVydFwiOiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgc2FmZSBwYWRkaW5nIG9uIHRoZSBib2R5IGZvciBub24tcmVjdGFuZ3VsYXIgZGV2aWNlcyAoaS5lLiBwaG9uZXMgd2l0aCBub3RjaGVzKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LXNhZmUtcGFkZGluZzogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlIHRoYXQgY29udGFpbnMgdGhlIGZsZXgganVzdGlmeWluZyBvcHRpb25zXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGlmICgkYm9keS1zYWZlLXBhZGRpbmcpIHtcbiAgICAgIC8vIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhY2NvdW50IGZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMgZS5nLiBwaG9uZXMgd2l0aCBub3RjaGVzXG4gICAgICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xuICAgICAgcGFkZGluZy1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgICAgcGFkZGluZy1sZWZ0OiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kLXpmLWJwLXZhbHVlOiBudWxsO1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogZGl2aWRlKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSwgJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiAjeyRyZ2J9XCI+PC9wb2x5Z29uPjwvc3ZnPicpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoMSwgJGkpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogaGlkZGVuICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAjeyRpbXBvcnRhbnR9O1xuICBib3JkZXI6IDAgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZihcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogc3RhdGljICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiBhdXRvICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogdmlzaWJsZSAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiBhdXRvICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludChcbiAgJHNtYWxsOiB0cnVlLFxuICAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWVcbikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKGF1dG8sIC16Zi1ib29sKCRzbWFsbCksIC16Zi1ib29sKCRhdXRvLWluc2VydC1icmVha3BvaW50cykpIHtcbiAgICBAY29udGVudFxuICB9O1xufVxuXG4vLy8gSXRlcmF0ZXMgd2l0aCBgQGNvbnRlbnRgIHRocm91Z2ggdGhlIGdpdmVuIGxpc3Qgb2YgYnJlYWtwb2ludHMgYCRicmVha3BvaW50c2AuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYnJlYWtwb2ludHMgW2F1dG9dIC0gQnJlYWtwb2ludHMgdG8gaXRlcmF0ZXMgb24uIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58TnVsbH0gJHplcm8tYnJlYWtwb2ludCBbbnVsbF0gLSBXaGV0aGVyIHRoZSB6ZXJvLWJyZWFrcG9pbnQgKG9mdGVuIGBzbWFsbGApIG11c3QgYmUgaW5jbHVkZWQuIElmIGB0cnVlYCwgaXQgd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGxpc3QgaWYgbm90IGFscmVhZHkgdGhlcmUuIElmIGBmYWxzZWAsIGl0IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQuIERvZXMgbm90aGluZyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxLZXl3b3JkfSAkbWVkaWEtcXVlcmllcyBbdHJ1ZV0gLSBXaGV0aGVyIG1lZGlhLXF1ZXJpZXMgbXVzdCBiZSBnZW5lcmF0ZWQuIElmIGBmb3ItbGlzdHNgLCBvbmx5IGdlbmVyYXRlIG1lZGlhLXF1ZXJpZXMgd2hlbiBgJGJyZWFrcG9pbnRzYCBpcyBhIGxpc3QuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludC1pbihcbiAgJGJyZWFrcG9pbnRzOiBhdXRvLFxuICAkemVyby1icmVha3BvaW50OiBudWxsLFxuICAkbWVkaWEtcXVlcmllczogdHJ1ZVxuKSB7XG4gICQtbGlzdDogKCk7XG4gICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiB0cnVlO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnQocykgdG8gaXRlcmF0ZSBvbi5cbiAgQGlmICRicmVha3BvaW50cyA9PSBhdXRvIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdsaXN0JyB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludHM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdzdHJpbmcnIHtcbiAgICAkLWxpc3Q6ICgkYnJlYWtwb2ludHMpO1xuICAgICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiBmYWxzZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiJGJyZWFrcG9pbnRzXCIgaW4gXCItemYtZWFjaC1icmVha3BvaW50LWluKClcIi4gR290IFwiI3skYnJlYWtwb2ludHN9XCIgKCN7dHlwZS1vZigkYnJlYWtwb2ludHMpfSkuIEV4cGVjdGVkIGEgYnJlYWtwb2ludCBuYW1lLCBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgXCJhdXRvXCInO1xuICB9XG5cbiAgLy8gQWRkIG9yIHJlbW92ZSB0aGUgemVybyBicmVha3BvaW50IGFjY29yZGluZyB0byBgJHplcm8tYnJlYWtwb2ludGBcbiAgQGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gdHJ1ZSB7XG4gICAgJC1saXN0OiBqb2luKCgkLXpmLXplcm8tYnJlYWtwb2ludCksIHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KSk7XG4gIH1cbiAgQGVsc2UgaWYgJHplcm8tYnJlYWtwb2ludCA9PSBmYWxzZSB7XG4gICAgJC1saXN0OiBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBJdGVyYXRlIG9uIGJyZWFrcG9pbnQocylcbiAgQGVhY2ggJGJwIGluICQtbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkYnAgIWdsb2JhbDtcblxuICAgIEBpZiAoJG1lZGlhLXF1ZXJpZXMgPT0gdHJ1ZSBvciAoJG1lZGlhLXF1ZXJpZXMgPT0gJ2Zvci1saXN0cycgYW5kICQtYnJlYWtwb2ludHMtaXMtYS1saXN0KSkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJGJwLXZhbHVlOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgICBAaWYgJGJwLXZhbHVlICE9IG51bGwge1xuICAgICAgICAkbmFtZTogJGJwLXZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nICogMC41ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gIDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgKiAwLjUgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICY6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6ICggc21hbGw6ICggJ2gxJzogKCdmb250LXNpemUnOiAyNCksICdoMic6ICgnZm9udC1zaXplJzogMjApLCAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSwgJ2g0JzogKCdmb250LXNpemUnOiAxOCksICdoNSc6ICgnZm9udC1zaXplJzogMTcpLCAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSwgKSwgbWVkaXVtOiAoICdoMSc6ICgnZm9udC1zaXplJzogNDgpLCAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSwgJ2gzJzogKCdmb250LXNpemUnOiAzMSksICdoNCc6ICgnZm9udC1zaXplJzogMjUpLCAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSwgJ2g2JzogKCdmb250LXNpemUnOiAxNiksICksICkgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gICAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgICAkaGVhZGVyLXN0eWxlczogKCk7XG5cbiAgICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgICAgICRoZWFkZXItbWFwOiAoKTtcblxuICAgICAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgICAgIH1cblxuICAgICAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAgIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gICAgZGl2LFxuICAgIGRsLFxuICAgIGR0LFxuICAgIGRkLFxuICAgIHVsLFxuICAgIG9sLFxuICAgIGxpLFxuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2LFxuICAgIHByZSxcbiAgICBmb3JtLFxuICAgIHAsXG4gICAgYmxvY2txdW90ZSxcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLy8gUGFyYWdyYXBoc1xuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gICAgfVxuICAgIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICAgIGVtLFxuICAgIGkge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgICAvLyBTdHJvbmcgdGV4dFxuICAgIHN0cm9uZyxcbiAgICBiIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgICAvLyBTbWFsbCB0ZXh0XG4gICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgICAvLyBIZWFkaW5nc1xuICAgIGgxLCAuaDEsXG4gICAgaDIsIC5oMixcbiAgICBoMywgLmgzLFxuICAgIGg0LCAuaDQsXG4gICAgaDUsIC5oNSxcbiAgICBoNiwgLmg2IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAjMDAzNThlO1xuICAgICAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGVhZGluZyBzdHlsZXNcbiAgICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcblxuICAgICAgICAgICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTGlua3NcbiAgICBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgICBociB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBtYXJnaW46ICRoci1tYXJnaW47XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICAgIC8vIExpc3RzXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gICAgfVxuICAgIC8vIExpc3QgaXRlbXNcbiAgICBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB9XG4gICAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gICAgdWwge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICAgIH1cbiAgICAvLyBPcmRlcmVkIGxpc3RzXG4gICAgb2wge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICB9XG4gICAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gICAgdWwsIG9sIHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICAgIGRsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICAgICAgZHQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmxvY2txdW90ZXNcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgICAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAgICAgJiwgcCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElubGluZSBDaXRhdGlvbnNcbiAgICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgICAgIGNpdGUge1xuICAgICAgICAgICAgLy8gRXh0ZW5kaW5nIGEgY2xhc3MgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgICAgICAgICAgLy8gVE9ETzogQnJlYWsgdGhlIHR5cG9ncmFwaHktYmFzZS90eXBvZ3JhcGh5LWhlbHBlcnMgc2VwYXJhdGlvblxuICAgICAgICAgICAgQGV4dGVuZCAuY2l0ZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBYmJyZXZpYXRpb25zXG4gICAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgICAgIGN1cnNvcjogaGVscDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgICAvLyBGaWd1cmVzXG4gICAgZmlndXJlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAvLyBDb2RlXG4gICAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5jb2RlLWlubGluZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBLZXlzdHJva2VzXG4gICAga2JkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICAgICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICAgICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiB1bmRlciB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY29kZS1ibG9jay1tYXJnaW4tYm90dG9tOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBjaXRlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY2l0ZS1jb2xvcjtcbiAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICB9XG59XG5cbi8vLyBBZGQgYmFzaWMgc3R5bGVzIGZvciBhIGNvZGUgaGVscGVyLlxuLy8vIFNlZSBgY29kZS1pbmxpbmVgIGFuZCBgY29kZS1ibG9ja2AgbWl4aW5zLlxuQG1peGluIGNvZGUtc3R5bGUge1xuICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgY29sb3I6ICRjb2RlLWNvbG9yO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gaW5saW5lLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWlubGluZWBcbkBtaXhpbiBjb2RlLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGEgYmxvY2suXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtYmxvY2tgXG5AbWl4aW4gY29kZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcblxuICBwYWRkaW5nOiAkY29kZS1ibG9jay1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkY29kZS1ibG9jay1tYXJnaW4tYm90dG9tO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAlY2l0ZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY2l0ZS1ibG9jaztcbiAgfVxuXG4gIC5jaXRlLWJsb2NrIHtcbiAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICB9XG5cbiAgJWNvZGUtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtaW5saW5lIHtcbiAgICBAZXh0ZW5kICVjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtYmxvY2s7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXlzIG5leHQgdG8gYWxsIGxpbmtzIHRoZWlyIFwiaHJlZlwiIHdoZW4gcHJpbnRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIC8vIEVuc3VyZSBhIFwiYmxhY2stb24td2hpdGVcIiBwcmludCBieSByZW1vdmluZyBiYWNrZ3JvdW5kcyxcbiAgICAgIC8vIHVzaW5nIGJsYWNrIHRleHQgZXZlcnl3aGVyZSBhbmQgZm9yY2luZyB0aGUgYnJvd3NlciB0byBlY29ub21pemUgaW5rLlxuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSwgcHJldmVudCBhbnkgZWNvbm9teSBieSB0aGUgYnJvd3Nlci5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJhc2UtZ3JpZC1jbGFzc2VzIHtcblxuICAvLyBHcmlkIENvbnRhaW5lclxuICAuZ3JpZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyO1xuXG4gICAgJi5mbHVpZCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlKTtcbiAgICB9XG5cbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICAuZ3JpZC14IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICB9XG5cbiAgLmNlbGwge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoZnVsbCwgJGd1dHRlci10eXBlOiBub25lKTtcblxuICAgICYuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgfVxuXG4gICAgJi5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gIH1cbiAgLmdyaWQteCB7XG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIHdpZHRoXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyAmIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAuZ3JpZC14IHtcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCI7XG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIC8vIFJlc3BvbnNpdmUgXCJhdXRvXCIgbW9kaWZpZXJcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCB3aWR0aCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teGAgbm90IG9uIGAuZ3JpZC14YFxuICAuZ3JpZC1tYXJnaW4teDpub3QoLmdyaWQteCkgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXlgIG5vdCBvbiBgLmdyaWQteWBcbiAgLmdyaWQtbWFyZ2luLXk6bm90KC5ncmlkLXkpID4gLmNlbGwge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRjbGFzcy1icmVha3BvaW50LCAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbCkge1xuICAkcHJlZml4OiBpZigkY2xhc3MtYnJlYWtwb2ludCA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCwgJycsICcjeyRjbGFzcy1icmVha3BvaW50fS0nKTtcbiAgPiAuI3skcHJlZml4fWF1dG8ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICA+IC4jeyRwcmVmaXh9c2hyaW5rIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAkY2xhc3NuYW1lOiBpZigkdmVydGljYWwsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9Jyk7XG5cbiAgICA+ICN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBsZWZ0IHJpZ2h0LFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkd3JhcHBpbmctc2VsZWN0b3I6ICcuZ3JpZC1tYXJnaW4teCdcbil7XG4gICN7JHdyYXBwaW5nLXNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246ICRndXR0ZXItcG9zaXRpb24pO1xuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbCgkdmVydGljYWw6ICR2ZXJ0aWNhbCwgJG91dHB1dDogKHNpemUgZ3V0dGVycykpO1xuICAgIH1cblxuICAgIC8vIGJhc2Ugc3R5bGVzIG5lZWQgdG8gYWxsIGJlIGJlZm9yZSB0aGUgYXV0byBhbmQgc2hyaW5rIHN0eWxlc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpIGFuZCAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuY2VsbCB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgkdmVydGljYWw6ICR2ZXJ0aWNhbCwgJG91dHB1dDogKHNpemUgZ3V0dGVycykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcblxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgIC8vIGZvciBhbGwgcHJpb3IgYnJlYWtwb2ludHMuXG4gICAgICAvLyBBcyB0aGVpciBndXR0ZXIgaXMgZGVmaW5lZCB3aXRoIHRoZWlyIHdpZHRoL2hlaWdodCwgZXZlbiBicmVha3BvaW50IHdpdGhvdXQgYSBuZXcgbWFyZ2luIG11c3QgYmVcbiAgICAgIC8vIGdlbmVyYXRlZCB0byBub3QgaGF2aW5nIHRoZWlyIHdpZHRoL2hlaWdodCBvdmVycmlkZWQgYnkgcmUtYWRqdXN0ZWQgc21hbGxlciBicmVha3BvaW50cy5cbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRicCwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkLXpmLXNpemUsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFkZGluZyBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcyB7XG4gIC5ncmlkLXBhZGRpbmcteCB7XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgIC5ncmlkLXBhZGRpbmcteCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBncmlkcyB3aXRoaW4gYGdyaWQtY29udGFpbmVyL2dyaWQtY29udGFpbmVyLmZsdWlkYFxuICAgIC8vIFRoaXMgYWxsb3dzIG1hcmdpbiBhbmQgcGFkZGluZyBncmlkcyB0byBsaW5lIHVwIHdpdGggZWFjaG90aGVyXG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAmIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEJsb2NrIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkb3V0cHV0OiAoc2l6ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyRicH0tdXAtI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDb2xsYXBzZSBjbGFzc2VzXG5AbWl4aW4geHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgICAuI3skYnB9LW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBtYXJnaW4sICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgICAuI3skYnB9LXBhZGRpbmctY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogcGFkZGluZywgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBPZmZzZXQgY2xhc3Nlc1xuQG1peGluIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtbWFyZ2luLXggPiAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVmVydGljYWwgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWVcbikge1xuXG4gIC8vIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gIC8vICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAuZ3JpZC15IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkKHZlcnRpY2FsLCBmYWxzZSk7XG5cblxuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1yZXNldCgpO1xuICAgIH1cblxuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgYW5kIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCI7XG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZSBndXR0ZXJzIGZvciBhIGNlbGwvY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBlaXRoZXIgbWFyZ2luIG9yIHBhZGRpbmcuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZWdhdGl2ZSBbZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgZ3V0dGVyIGFzIGEgbmVnYXRpdmUgdmFsdWUuIENvbW1vbmx5IHVzZWQgZm9yIG5lc3RlZCBncmlkcy5cbkBtaXhpbiB4eS1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbmVnYXRpdmU6IGZhbHNlXG4pIHtcbiAgJG9wZXJhdG9yOiBpZigkbmVnYXRpdmUsICctJywgJycpO1xuXG4gIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgbmVnYXRpdmUgZ3V0dGVycywgZm9yY2UgdHlwZSB0byBgbWFyZ2luLlxuICAkZ3V0dGVyLXR5cGU6IGlmKCRuZWdhdGl2ZSwgJ21hcmdpbicsICRndXR0ZXItdHlwZSk7XG5cbiAgLy8gT3V0cHV0IG91ciBtYXJnaW4gZ3V0dGVycy5cbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRndXR0ZXJzKSB7XG4gICAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAqIDAuNTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgKiAwLjU7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIGZsZXggdmFsdWUgZm9yIGEgY2VsbCBiYXNlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gVGhlIGNlbGwgZmxleCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuIDEgMSAwO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnZ3JvdycpIHtcbiAgICBAcmV0dXJuIDEgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJyBvciAkc2l6ZSA9PSAnZnVsbCcgb3IgemYtaXMtZnJhY3Rpb24oJHNpemUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogdHJ1ZSkpIHtcbiAgICBAcmV0dXJuIDAgMCBhdXRvO1xuICB9XG4gIEByZXR1cm4gbnVsbDtcbn1cblxuLy8vIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBhIGNlbGwgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwIGAkZ3V0dGVyc2AuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8TWFwfSBUaGUgY2VsbCBndXR0ZXIgc2l6ZSBvciB0aGUgcmVzcG9uc2l2ZSBndXR0ZXJzIG1hcC5cbkBmdW5jdGlvbiB4eS1jZWxsLWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAvLyBGb3IgYGF1dG9gLCByZXR1cm5zIHRoZSByZXNwb25zaXZlIG1hcCBgJGd1dHRlcnNgLlxuICBAaWYgKCRicmVha3BvaW50ID09ICdhdXRvJykge1xuICAgIEByZXR1cm4gJGd1dHRlcnM7XG4gIH1cblxuICAvLyBVc2UgdGhlIGNvbnRleHR1YWwgYnJlYWtwb2ludCBieSBkZWZhdWx0LlxuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCk7XG5cbiAgQGlmICgkYnJlYWtwb2ludCkge1xuICAgIEByZXR1cm4gLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi16ZXJvLWJyZWFrcG9pbnQpIG9yIDA7XG4gIH1cbn1cblxuLy8vIFJldHVybnMgdGhlIHBlcmNlbnRhZ2Ugc2l6ZSBvZiBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkc2l6ZSBbJGdyaWQtY29sdW1uc10gLSBTaXplIHRvIG1ha2UgdGhlIGNlbGwuIFlvdSBjYW4gcGFzcyBhIHZhbHVlIGluIG11bHRpcGxlIGZvcm1hdHMsIHN1Y2ggYXMgYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvM2AuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBTaXplIG9mIHRoZSBjZWxsIChpbiBwZXJjZW50KS5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgQHJldHVybiBmcmFjdGlvbi10by1wZXJjZW50YWdlKCRzaXplLCAkZGVub21pbmF0b3I6ICRncmlkLWNvbHVtbnMpO1xufVxuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIGZvciBhIGNlbGwgc2l6ZS5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCBvciBhbnkgZnJhY3Rpb24gbGlrZSBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgcmV0dXJucyBhIG1hcCBvZiBzaXplcyBhZGFwdGVkIHRvIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxTdHJpbmd8TWFwfSBUaGUgY2VsbCBzaXppbmcgcHJvcGVydHkgdmFsdWUsIG9yIGEgcmVzcG9uc2l2ZSBtYXAgb2YgdGhlbS5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUtY3NzKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkbWFyZ2luLWd1dHRlcjogMDtcblxuICBAaWYgKCRzaXplID09ICdhdXRvJyBvciAkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgIEByZXR1cm4gYXV0bztcbiAgfVxuXG4gIC8vIEZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzLCB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAkbWFyZ2luLWd1dHRlcjogeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICAgQGlmICgkbWFyZ2luLWd1dHRlciA9PSBudWxsKSB7XG4gICAgICBAZXJyb3IgJ3h5LWNlbGwtc2l6ZTogbm8gZ3V0dGVycyB3ZXJlIGZvdW5kIGluIGAkZ3V0dGVyc2AgZm9yIFwiJGJyZWFrcG9pbnQ6ICN7JGJyZWFrcG9pbnR9XCInO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBzaXplIChudW1iZXIpXG4gICRzaXplLXJhdzogaWYoJHNpemUgPT0gJ2Z1bGwnLCAxMDAlLCB4eS1jZWxsLXNpemUoJHNpemUpKTtcblxuICAvLyBDYWxjdWxhdGUgdGhlIGNlbGwgQ1NTIHNpemUgaW5jbHVkaW5nIGd1dHRlcnMgKHN0cmluZylcbiAgLy8gSWYgdGhlIGNlbGwgaGFzIHJlc3BvbnNpdmUgbWFyZ2luIGd1dHRlcnMsIHJldHVybiBhIHJlc3BvbnNpdmUgbWFwIG9mIHNpemVzLlxuICBAaWYgdHlwZS1vZigkbWFyZ2luLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICRyZXNwb25zaXZlLWNzcy1zaXplczogKCk7XG5cbiAgICBAZWFjaCAkYnAsICRtZyBpbiAkbWFyZ2luLWd1dHRlciB7XG4gICAgICAkbWdjOiByZW0tY2FsYygkbWcpO1xuICAgICAgQGlmICRtZ2MgPT0gMCB7XG4gICAgICAgICRtZ2M6IDByZW07XG4gICAgICB9XG4gICAgICAkc2l6ZS1jc3M6IGlmKCRtZyA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3skbWd9KSk7XG4gICAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6IG1hcC1tZXJnZSgkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXMsICgkYnA6ICRzaXplLWNzcykpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3BvbnNpdmUtY3NzLXNpemVzO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIGEgc2luZ2xlIENTUyBzaXplLlxuICBAZWxzZSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoYXQgMCBpcyB0cmFuc2xhdGVkIGluIDByZW0gZm9yIGNhbGMoKVxuICAgICRtZ2M6IHJlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKTtcbiAgICBAaWYgJG1nYyA9PSAwIHtcbiAgICAgICRtZ2M6IDByZW07XG4gICAgfVxuICAgICRjc3Mtc2l6ZTogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgJHNpemUtcmF3LCBjYWxjKCN7JHNpemUtcmF3fSAtICN7JG1nY30pKTtcbiAgICBAcmV0dXJuICRjc3Mtc2l6ZTtcbiAgfVxufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgJGJhc2U6IHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgZmxleDogI3skYmFzZX07XG5cbiAgLy8gU2V0IGJhc2Ugc3R5bGVzIGZvciBcImZ1bGxcIiBvbmx5XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIG1heC0jeyRkaXJlY3Rpb259OiBub25lO1xufVxuXG4vLy8gU2V0cyBzaXppbmcgcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBHdXR0ZXJzLXJlbGF0ZWQgYXJndW1lbnRzIGFyZSByZXF1aXJlZCBmb3IgY2VsbHMgd2l0aCBtYXJnaW4gZ3V0dGVycyAoYnkgZGVmYXVsdCkgYXMgdGhlIGd1dHRlciBpcyBpbmNsdWRlZCBpbiB0aGUgd2lkdGguXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyBzaXplcyBhZGFwdGVkIGZvciByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1zaXplKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkc2l6ZXM6IHh5LWNlbGwtc2l6ZS1jc3MoJHNpemUsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRicmVha3BvaW50KTtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuXG4gIEBpZiAodHlwZS1vZigkc2l6ZXMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJHNpemVzKSB7XG4gICAgICAjeyRkaXJlY3Rpb259OiAkLXpmLWJwLXZhbHVlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgI3skZGlyZWN0aW9ufTogJHNpemVzO1xuICB9XG59XG5cbi8vLyBTZXRzIGd1dHRlcnMgcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBEaXJlY3Rpb24gb2YgdGhlIGd1dHRlcnMgdG8gb3V0cHV0LiBTZWUgYCRndXR0ZXItcG9zaXRpb25gLlxuQG1peGluIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAvLyBHZXQgdGhlIGRlZmF1bHQgZ3V0dGVyIHBvc2l0aW9uIGFjY29yZGluZyB0byBjZWxsIGRpcmVjdGlvblxuICBAaWYoJGd1dHRlci1wb3NpdGlvbiA9PSBudWxsKSB7XG4gICAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBndXR0ZXIgd2lkdGggZm9yIHRoaXMgYnJlYWtwb2ludFxuICAkZ3V0dGVyLXdpZHRoOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgQGlmICgkZ3V0dGVyLXdpZHRoID09IG51bGwpIHtcbiAgICBAZXJyb3IgJ3h5LWNlbGwtZ3V0dGVyczogbm8gZ3V0dGVycyB3ZXJlIGZvdW5kIGluIGAkZ3V0dGVyc2AgZm9yIFwiJGJyZWFrcG9pbnQ6ICN7JGJyZWFrcG9pbnR9XCInO1xuICB9XG5cbiAgQGlmICgkZ3V0dGVyLXR5cGUgYW5kICRndXR0ZXItdHlwZSAhPSBub25lKSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLXdpZHRoLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgY2VsbCBmb3IgeW91ciBncmlkLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgICgxMDAlIHdpZHRoKSwgYGF1dG9gICh1c2UgYWxsIGF2YWlsYWJsZSBzcGFjZSksIGBzaHJpbmtgICh1c2Ugb25seSB0aGUgcmVxdWlyZWQgc3BhY2UpIG9yIGFueSBmcmFjdGlvbiAoYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuLi4pLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW251bGxdIC0gW0RFUFJFQ0FURURdIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJG91dHB1dCBbKGJhc2Ugc2l6ZSBndXR0ZXJzKV0gLSBDZWxsIHBhcnRzIHRvIG91dHB1dC4gWW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSBvdGhlcnMgcGFydHMgb2YgdGhlIGNlbGwgc2VwZXJhdGVseSwgaXQgbWF5IG5vdCB3b3JrIHByb3Blcmx5IG90aGVyd2lzZS5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IG51bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkb3V0cHV0OiAoYmFzZSBzaXplIGd1dHRlcnMpXG4pIHtcbiAgLy8gRGVmYXVsdCBmb3IgJGd1dHRlci1vdXRwdXRcbiAgQGlmICgkZ3V0dGVyLW91dHB1dCAhPSBudWxsKSB7XG4gICAgQHdhcm4gJ3h5LWNlbGw6ICRndXR0ZXItb3V0cHV0IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcbiAgICBAaWYgKCRndXR0ZXItb3V0cHV0ID09IGZhbHNlKSB7XG4gICAgICAkb3V0cHV0OiBzbC1yZW1vdmUoJG91dHB1dCwgZ3V0dGVycyk7XG4gICAgfVxuICB9XG5cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBiYXNlKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG4gIH1cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBzaXplKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGlmIChpbmRleCgkb3V0cHV0LCBndXR0ZXJzKSkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIGB4eS1jZWxsLXN0YXRpYygpYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuXG4vLy8gVXNlIGB4eS1jZWxsKClgIGluc3RlYWQgd2l0aCBgJG91dHB1dDogKHNpemUgZ3V0dGVycylgIHRvIG5vdCBnZW5lcmF0ZSB0aGUgY2VsbCBiYXNlLlxuLy8vIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMFxuLy8vXG4vLy8gQGRlcHJlY2F0ZWQgdjYuNi4wXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy4gQWx3YXlzIGB0cnVlYCBmb3IgbWFyZ2luIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICBAd2FybiAneHktY2VsbC1zdGF0aWMoKSBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSBcInh5LWNlbGwoKVwiIGluc3RlYWQuIFNlZSBtaWdyYXRpb24gbm90ZXMgYXQgaHR0cHM6Ly9naXQuaW8vZm91bmRhdGlvbi02LTYtMCc7XG5cbiAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuXG4gICQtZ3V0dGVyLW91dHB1dDogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCB0cnVlLCAkZ3V0dGVyLW91dHB1dCk7XG4gICQtZ3V0dGVyLW1hcmdpbjogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCAkZ3V0dGVyLCAwKTtcblxuICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkLWd1dHRlci1tYXJnaW4sICR2ZXJ0aWNhbCk7XG4gIEBpZiAoJC1ndXR0ZXItb3V0cHV0KSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY2VsbCddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFtudWxsXSAtIFtERVBSRUNBVEVEXSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbbnVsbF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uIEJ5IGRlZmF1bHQgYHJpZ2h0IGxlZnRgIGZvciBob3Jpem9udGFsIGNlbGxzIGFuZCBgdG9wIGJvdHRvbWAgZm9yIHZlcnRpY2FsIGNlbGxzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgYnJlYWtwb2ludCB0byB1c2UgZm9yIHRoZSBjZWxsIGdlbmVyYXRpb24uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgY29ycmVjdGx5IG90aGVyd2lzZS5cbkBtaXhpbiB4eS1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci1vdXRwdXQ6IG51bGwsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkb3V0cHV0OiAoYmFzZSBzaXplIGd1dHRlcnMpXG4pIHtcbiAgJHNpemU6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRuKSk7XG5cbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbCgkc2l6ZSwgJGd1dHRlci1vdXRwdXQsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwsICRvdXRwdXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ29sbGFwc2VzIHRoZSBncmlkIGEgY2VsbHMgd2l0aGluIGl0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbLmNlbGxdIC0gVGhlIGNoaWxkIGVsZW1lbnQgdG8gcmVtb3ZlIHRoZSBndXR0ZXIgZnJvbS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFRoZSB0eXBlIG9mIGd1dHRlciB0byByZW1vdmUuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbnMgdG8gcmVtb3ZlIGd1dHRlcnMgZnJvbS4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbWluLWJyZWFrcG9pbnQgWyQtemYtemVyby1icmVha3BvaW50XSAtIE1pbmltdW0gYnJlYWtwb2ludCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgZm9yIHdoaWNoIHRvIGNvbGxhcHNlIHRoZSBndXR0ZXIuXG5AbWl4aW4geHktZ3JpZC1jb2xsYXBzZShcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG1pbi1icmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludFxuKSB7XG4gIC8vIEZpcnN0LCBsZXRzIG5lZ2F0ZSBhbnkgbWFyZ2lucyBvbiB0aGUgdG9wIGxldmVsXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGV4Y2x1ZGVkLWJwczogLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkbWluLWJyZWFrcG9pbnQpO1xuXG4gICAgLy8gT3V0cHV0IG5ldyB3aWR0aHMgdG8gbm90IGluY2x1ZGUgZ3V0dGVyc1xuICAgIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZihzbC1jb250YWluKCRleGNsdWRlZC1icHMsICRicCkpIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICAgICAgPiAuI3skYnB9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgcGFkZGluZy0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgdmFsdWUgdG8gb2Zmc2V0IGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB4eS1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSBNYXAgb2YgZ3V0dGVycyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIGZvciByZXNwb25zaXZlIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHVzZS4gQ2FuIGJlIGBtYXJnaW5gIG9yIGBwYWRkaW5nYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8U3RyaW5nfSBUaGUgY2VsbCBvZmZzZXQgcHJvcGVydHkgdmFsdWUuXG5AZnVuY3Rpb24geHktY2VsbC1vZmZzZXQoXG4gICRuLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkc2l6ZTogeHktY2VsbC1zaXplKCRuKTtcblxuICAkb2Zmc2V0OiAkc2l6ZTtcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAvLyBNYWtlIHN1cmUgdGhhdCAwIGlzIHRyYW5zbGF0ZWQgaW4gMHJlbSBmb3IgY2FsYygpXG4gICAgJGd1dHRlcjogcmVtLWNhbGMoeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCkpO1xuICAgIEBpZiAkZ3V0dGVyID09IDAge1xuICAgICAgJGd1dHRlcjogMHJlbTtcbiAgICB9XG4gICAgJG9mZnNldDogaWYoJGd1dHRlciA9PSAwLCAkc2l6ZSwgY2FsYygjeyRzaXplfSArICN7JGd1dHRlcn0gLyAyKSk7XG4gIH1cbiAgQHJldHVybiAkb2Zmc2V0O1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQvYm90dG9tIGJ5IGAkbmAgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB4eS1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSBNYXAgb2YgZ3V0dGVycyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIGZvciByZXNwb25zaXZlIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHVzZS4gQ2FuIGJlIGBtYXJnaW5gIG9yIGBwYWRkaW5nYFxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRicmVha3BvaW50IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGZvciBgJGd1dHRlcnNgLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuIElmIGEgbGlzdCBpcyBnaXZlbiwgbWVkaWEtcXVlcmllcyB3aWxsIGJlIGdlbmVyYXRlZC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBvZmZzZXQuIElmIHNldCB0byB0cnVlIHdpbGwgYXBwbHkgbWFyZ2luLXRvcCBpbnN0ZWFkLlxuQG1peGluIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsLCAndG9wJywgJGdsb2JhbC1sZWZ0KTtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKCRicmVha3BvaW50LCAkbWVkaWEtcXVlcmllczogJ2Zvci1saXN0cycpIHtcbiAgICAkb2Zmc2V0OiB4eS1jZWxsLW9mZnNldCgkbiwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSk7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06ICN7JG9mZnNldH07XG4gIH1cbn1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhlc1xuXG4vLy8gTW9kaWZpZXMgYSBncmlkIHRvIGdpdmUgaXQgXCJmcmFtZVwiIGJlaGF2aW9yIChubyBvdmVyZmxvdywgbm8gd3JhcCwgc3RyZXRjaCBiZWhhdmlvcilcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3RlZCBbZmFsc2VdIC0gSXMgZ3JpZCBuZXN0ZWQgb3Igbm90LiBJZiBuZXN0ZWQgaXMgdHJ1ZSB0aGlzIHNldHMgdGhlIGZyYW1lIHRvIDEwMCUgaGVpZ2h0LCBvdGhlcndpc2Ugd2lsbCBiZSAxMDB2aC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFtudWxsXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbmNsdWRlLWJhc2UgW3RydWVdIC0gSW5jbHVkZSB0aGUgYmFzZSBzdHlsZXMgdGhhdCBkb24ndCB2YXJ5IHBlciBicmVha3BvaW50LlxuQG1peGluIHh5LWdyaWQtZnJhbWUoXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRuZXN0ZWQ6IGZhbHNlLFxuICAkZ3V0dGVyczogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICRpbmNsdWRlLWJhc2U6IHRydWVcbikge1xuXG4gIEBpZiAkaW5jbHVkZS1iYXNlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUoJHZlcnRpY2FsLCAkbmVzdGVkLCAkZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBHZXQgb3VyIGd1dHRlcnMgaWYgYXBwbGljYWJsZVxuICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgZ3V0dGVyLCBhZGQgaXQgdG8gdGhlIHdpZHRoL2hlaWdodFxuICAgIEBpZiAkZ3V0dGVyIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IDAgaXMgdHJhbnNsYXRlZCBpbiAwcmVtIGZvciBjYWxjKClcbiAgICAgICAgQGlmICRndXR0ZXIgPT0gMCB7XG4gICAgICAgICAgJGd1dHRlcjogMHJlbTtcbiAgICAgICAgfVxuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCAwIGlzIHRyYW5zbGF0ZWQgaW4gMHJlbSBmb3IgY2FsYygpXG4gICAgICAgIEBpZiAkZ3V0dGVyID09IDAge1xuICAgICAgICAgICRndXR0ZXI6IDByZW07XG4gICAgICAgIH1cbiAgICAgICAgd2lkdGg6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgaGVpZ2h0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB3aWR0aDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNb2RpZmllcyBhIGNlbGwgdG8gZ2l2ZSBpdCBcImJsb2NrXCIgYmVoYXZpb3IgKG92ZXJmbG93IGF1dG8sIGluZXJ0aWFsIHNjcm9sbGluZylcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuQG1peGluIHh5LWNlbGwtYmxvY2soXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkcHJvcGVydHk6IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCAnb3ZlcmZsb3cteScsICdvdmVyZmxvdy14Jyk7XG5cbiAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgfSBAZWxzZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xufVxuXG4vLy8gQ29udGFpbmVyIGZvciBpbnNpZGUgYSBncmlkIGZyYW1lIGNvbnRhaW5pbmcgbXVsdGlwbGUgYmxvY2tzLiBUeXBpY2FsbHkgdXNlZFxuLy8vIGFzIGEgbW9kaWZpZXIgZm9yIGEgYC5jZWxsYCB0byBhbGxvdyB0aGUgY2VsbCB0byBwYXNzIGFsb25nIGZsZXggc2l6aW5nXG4vLy8gY29uc3RyYWludHMgLyBmcm9tIHBhcmVudHMgdG8gY2hpbGRyZW4uXG5AbWl4aW4geHktY2VsbC1ibG9jay1jb250YWluZXIoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIElnbm9yZWQgaWYgbnVsbCAoZGVmYXVsdClcbi8vLyBAdHlwZSBGb250LVdlaWdodFxuJGJ1dHRvbi1mb250LXdlaWdodDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBidXR0b25zLCB0cmFuc3BhcmVudCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciAuZXhwYW5kZWRcbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIGJvcmRlcjogJGJ1dHRvbi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBvciBjbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1maWxsLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC4gYHNvbGlkYCBoYXMgbm8gZWZmZWN0cy5cbkBtaXhpbiBidXR0b24tZmlsbChcbiAgJGZpbGw6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlcyBvZiBhIHNvbGlkL2hvbGxvdy9jbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW5zIGBidXR0b24tc3R5bGVgLCBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgYW5kIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciBlZmZlY3RzIG9mIHZpc3VhbCBzdHlsaW5nIHBhcmFtZXRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSAtXG5AbWl4aW4gYnV0dG9uLWZpbGwtc3R5bGUoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGwsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkZmlsbCA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXItc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZSggJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLCAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MgKSB7XG4gICAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAgICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgICB9XG5cbiAgICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgICB9XG4gICAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICAgJixcbiAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tYmx1ZTtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdsb2JlLWJsdWU7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgYW5kIGJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJvcmRlci13aWR0aCBbJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXSAtIEJvcmRlciB3aWR0aCBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWNsZWFyIHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuQG1peGluIGJ1dHRvbi1jbGVhci1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50IGFuZCByZXNldGluZyB0aGUgY3Vyc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3BhY2l0eSBbJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXSAtIE9wYWNpdHkgb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRcbikge1xuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJHN0eWxlKTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJHN0eWxlLCAkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCRzdHlsZTogbm9uZSk7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIEBpZiAkYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQge1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gb25seSkge1xuICAgICAgICAgICYuI3skc2l6ZX0tb25seS1leHBhbmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gZG93bikge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1kb3duLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9KSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJHNlbGVjdG9yOiBpZigkYnV0dG9uLWZpbGwgPT0gJGZpbGxpbmcsIG51bGwsICcuI3skZmlsbGluZ30nKTtcblxuICAgICAgJiN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRmaWxsaW5nKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdywgJi5jbGVhciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cblxuICBhLmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kcHJpbWFyeS1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6IGRpdmlkZSgkcmdiLCAyNTUpO1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsIGRpdmlkZSgkcmdiLCAxMi45MiksIHBvdyhkaXZpZGUoJHJnYiArIDAuMDU1LCAxLjA1NSksIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86IGRpdmlkZSgkbHVtaW5hbmNlMSwgJGx1bWluYW5jZTIpO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IGRpdmlkZSgxLCAkcmF0aW8pO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgKiAwLjE7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuICdDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fSc7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLiAoT25seSBuZWVkZWQgd2hlbiAkZ2xvYmFsLWZsZXhib3g6IGZhbHNlOylcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIERpc2FibGUgY2xlYXJmaXhcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gTWFrZSBidXR0b25zIGJvbmRlZCB3aXRob3V0IGdhcCBiZXR3ZWVuIHRoZW0uIEJvcmRlcnMgYmV0d2VlbiBidXR0b25zIGFyZSBtZXJnZWRcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtbm8tZ2FwcyhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IHJlbS1jYWxjKC0kYm9yZGVyLXdpZHRoKTtcblxuICAgICsgI3skc2VsZWN0b3J9IHtcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtd2lkdGggYnV0dG9uIGdyb3VwLCBtYWtpbmcgZWFjaCBidXR0b24gZXF1YWwgd2lkdGguXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nLFxuICAkY291bnQ6IG51bGxcbikge1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IC0kc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBEaXNhYmxlIGNsZWFyZml4XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUd28gb3IgbW9yZSBjaGlsZHJlZW5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXgge1xuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKGRpdmlkZSgxLCAkaSkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNvbGlkLCBob2xsb3cgJiBjbGVhciBzdHlsZXNcbiAgICBAZWFjaCAkZmlsbGluZyBpbiAoc29saWQgaG9sbG93IGNsZWFyKSB7XG4gICAgICAkYmFzZS1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnLiN7JGZpbGxpbmd9Jyk7XG5cbiAgICAgICYjeyRiYXNlLXNlbGVjdG9yfSB7XG4gICAgICAgIC8vIERvIG5vdCBnZW5lcmF0ZSBidXR0b24gYmFzZSBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGZpbGxpbmdcbiAgICAgICAgQGlmKCRidXR0b24tZmlsbCAhPSAkZmlsbGluZykge1xuICAgICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbCgkZmlsbGluZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgIEBpZigkYnV0dG9uLWZpbGwgIT0gJGZpbGxpbmcpIHtcbiAgICAgICAgICAgICRpbmRpdmlkdWFsLXNlbGVjdG9yOiAnICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfS4jeyRuYW1lfSc7XG4gICAgICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSwgJiN7JGluZGl2aWR1YWwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLm5vLWdhcHMge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLW5vLWdhcHM7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuXG4gICAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLXotaW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIHNpemUgdG8gdXNlIGFzIGRlZmF1bHRcbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAc2VlICRjbG9zZWJ1dHRvbi1zaXplXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWxcbi8vLyBAc2VlICRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWxcbiRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemU6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gU2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLiBVc2VkIHRvIGdlbmVyYXRlIHNpemluZyBtb2RpZmllcnMuXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogJGNsb3NlYnV0dG9uLXotaW5kZXg7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIC8vIFVzZSBieSBkZWZhdWx0IHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgZGVmYXVsdCBzaXplXG4gICAgQGV4dGVuZCAlemYtY2xvc2UtYnV0dG9uLS0jeyRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemV9O1xuXG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgLy8gR2VuZXJhdGUgYSBwbGFjZWhvbGRlciBhbmQgYSBjbGFzcyBmb3IgZWFjaCBzaXplXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRjbG9zZWJ1dHRvbi1zaXplIHtcbiAgICAgIEBhdC1yb290IHtcbiAgICAgICAgJXpmLWNsb3NlLWJ1dHRvbi0tI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKCRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGV4dGVuZCAlemYtY2xvc2UtYnV0dG9uLS0jeyRuYW1lfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKiAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZXN0IFtmYWxzZV0gLSBOZWVkZWQgaWYgeW91IG9ubHkgd2FudCB0byBhcHBseSB0aGlzIHRvIGEgc3BlY2lmaWMgdGFibGUuXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFkY3J1bWJzXG4vLy8vXG5cbi8vLyBNYXJnaW4gYXJvdW5kIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGFjdGl2ZSBicmVhZGNydW1iIGxpbmsuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBtYWtlcyBicmVhZGNydW1iIGxpbmtzIHVwcGVyY2FzZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzZXBlcmF0b3IgYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDtcbn1cblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJyAhZGVmYXVsdDtcblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IgaW4gcnRsIG1vZGUuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCcgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IgaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcikge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAvKiAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICAgICovXG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzZXBhcmF0b3I6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGwpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBjb250ZW50OiAkc2VwYXJhdG9yO1xuICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgQ2FsbG91dCBwYWRkaW5ncy5cbi8vLyBAdHlwZSBNYXBcbiRjYWxsb3V0LXNpemVzOiAoXG4gIHNtYWxsOiAwLjVyZW0sXG4gIGRlZmF1bHQ6IDFyZW0sXG4gIGxhcmdlOiAzcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiBtYXAtZ2V0KCRjYWxsb3V0LXNpemVzLCBkZWZhdWx0KTtcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluIG1hcC1yZW1vdmUoJGNhbGxvdXQtc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoJHBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgcHJldmlvdXMgYXJyb3cgd2hlbiBgJHBhZ2luYXRpb24tYXJyb3dzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwYWdpbmF0aW9uLWFycm93LXByZXZpb3VzOiAnXFwwMEFCJyAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBuZXh0IGFycm93IHdoZW4gYCRwYWdpbmF0aW9uLWFycm93c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFnaW5hdGlvbi1hcnJvdy1uZXh0OiAnXFwwMEJCJyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICRwYWdpbmF0aW9uLWFycm93LXByZXZpb3VzO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJHBhZ2luYXRpb24tYXJyb3ctbmV4dDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIHBsdXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQicgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgbWludXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ6ICdcXDIwMTMnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkZ2xvYmUtYmx1ZSxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAkYWNjb3JkaW9uLXBsdXMtY29udGVudDtcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRhY2NvcmRpb24tbWludXMtY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJi5taWRkbGUge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmLmJvdHRvbSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCBkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGh1bWJuYWlsXG4vLy8vXG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kdGh1bWJuYWlsLWJvcmRlcjogNHB4IHNvbGlkICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wcnRpZXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRodW1ibmFpbCBzdHlsZXMgdG8gYW4gZWxlbWVudC5cbkBtaXhpbiB0aHVtYm5haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tO1xuXG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtcmFkaXVzO1xuICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdztcblxuICBsaW5lLWhlaWdodDogMDtcbn1cblxuQG1peGluIHRodW1ibmFpbC1saW5rIHtcbiAgdHJhbnNpdGlvbjogJHRodW1ibmFpbC10cmFuc2l0aW9uO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgaW1hZ2Uge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGh1bWJuYWlsIHtcbiAgLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xuICB9XG5cbiAgYS50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbC1saW5rO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSB0ZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmU6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLlxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLlxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIHRvcC9ib3R0b20gaWNvbnMgd2l0aGluIGEgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRhbGlnbm1lbnQgW2NlbnRlcl0gLSBBbGlnbm1lbnQgb2YgdGhlIGljb25cbkBtaXhpbiBtZW51LWljb24tYWxpZ25tZW50KCRhbGlnbm1lbnQ6IGNlbnRlcikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLmljb24tdG9wLFxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgbGkgYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlLCAoJG1lbnUtaXRlbS1jb2xvci1hY3RpdmUsICRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZSkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQobGVmdCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KGxlZnQpO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZW51IGljb24gcG9zaXRpb25cbiAgICAvLyBJbmNsdWRlcyBzcGVjaWZpY2l0eSB0byBuZXN0ZWQgaWNvbnMgd2l0aCBhIGRpZmZlcmVudCBwb3NpdGlvblxuICAgICYsXG4gICAgJi5uZXN0ZWQge1xuICAgICAgLy8gSWNvbiBMZWZ0XG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBSaWdodFxuICAgICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBUb3BcbiAgICAgICYuaWNvbi10b3Age1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWNvbiBCb3R0b21cbiAgICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBib3JkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTGlzdFxuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIGhlaWdodC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplICogMC41KTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG59XG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG5cbiAgLmFjY29yZGlvbi1tZW51IHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luLCByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gIH1cblxuICAvLyBTdWJtZW51IHRvZ2dsZVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuXG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gUm90YXRlIHRoZSBhcnJvdyB3aGVuIG1lbnUgaXMgb3BlblxuICAuc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIH1cblxuICAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAqIDAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW1cbiAgICA+IGxpID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW0gYWN0aXZlIHN0YXRlXG4gICAgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGdsb2JlLWJsdWU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcbiAgLy8gVG9wIGJhciBjb250YWluZXJcbiAgLnRvcC1iYXIge1xuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xuXG4gICAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludCkge1xuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbjogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIEZsZXhib3ggVXRpbGl0aWVzXG4vLy8vXG4vL1xuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb3VudCBvZiBzb3VyY2Ugb3JkZXJpbmdgXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDYgIWRlZmF1bHQ7XG5cbi8vLyBRdWlja2x5IGRpc2FibGUvZW5hYmxlIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIFZhbmlsbGEgRmxleCBIZWxwZXJzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmbGV4LWhlbHBlcnMge1xuICAuZmxleC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXg7XG4gIH1cblxuICAuZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgIC5mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1zaHJpbmsge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tZmxleC1kaXItI3skZGlyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzIHtcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdXNpbmcganVzdGlmeS1jb250ZW50XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtanVzdGlmeSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IFNwZWNpZmljYWxseSBmb3IgVmVydGljYWwgTWVudVxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgJi5tZW51ID4gbGkgPiBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6ICR2ZGlyKTtcbiAgICB9XG5cbiAgICAuYWxpZ24tc2VsZi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHk6ICR2ZGlyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmFsIGFsaWdubWVudCBvZiBjb250ZW50XG4gIC5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiBtaWRkbGUpO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudCB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmFuaWxsYSBGbGV4Ym94IEhlbHBlcnNcbiAgQGluY2x1ZGUgZmxleC1oZWxwZXJzO1xufVxuIiwiQGZ1bmN0aW9uIC16Zi1mbGV4LWp1c3RpZnkoJHRleHQtZGlyZWN0aW9uKSB7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtIDAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAwLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICAudmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIERhcmsgTW9kZSBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBJRTEwKyBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1pZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIC5zaG93LWZvci1pZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGlkZS1mb3ItaWUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0aWNreSBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmlzLXN0dWNrIC5zaG93LWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5pcy1zdHVjayAuaGlkZS1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgSW1wb3J0YW50UnVsZSwgU3BhY2VBZnRlckNvbW1hLCBTaW5nbGVMaW5lUGVyUHJvcGVydHlcblxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IG1hcC1nZXQoJG1vdGlvbi11aS1lYXNpbmdzLCBkZWZhdWx0KTtcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLXRyYW5zaXRpb25zIHtcbiAgLy8gU2xpZGVcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxuICAuc2xpZGUtaW4tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHJpZ2h0KTsgfVxuICAuc2xpZGUtaW4tdXAgICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHVwKTsgfVxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XG4gIC5zbGlkZS1vdXQtZG93biAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgZG93bik7IH1cbiAgLnNsaWRlLW91dC1yaWdodCAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCByaWdodCk7IH1cbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cbiAgLnNsaWRlLW91dC1sZWZ0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBsZWZ0KTsgfVxuXG4gIC8vIEZhZGVcbiAgLmZhZGUtaW4gIHsgQGluY2x1ZGUgbXVpLWZhZGUoaW4sICAwLCAxKTsgfVxuICAuZmFkZS1vdXQgeyBAaW5jbHVkZSBtdWktZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlLWluLWZyb20tdG9wICAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3ApOyB9XG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWJvdHRvbSAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgYm90dG9tKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1sZWZ0ICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGxlZnQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0LCBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS10b3AgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tYm90dG9tICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGJvdHRvbSk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBsZWZ0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCwgY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC5zY2FsZS1pbi11cCAgICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMC41LCAxKTsgfVxuICAuc2NhbGUtaW4tZG93biAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDEuNSwgMSk7IH1cbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XG4gIC5zY2FsZS1vdXQtZG93biB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMC41KTsgfVxuXG4gIC8vIFNwaW5cbiAgLnNwaW4taW4gICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjdyk7IH1cbiAgLnNwaW4tb3V0ICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjdyk7IH1cbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxuICAuc3Bpbi1vdXQtY2N3IHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjY3cpOyB9XG5cbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyB0cmFuc2l0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmltYXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzaGFrZSk7IH1cbiAgLnNwaW4tY3cgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cbiAgLndpZ2dsZSAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyBhbmltYXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcbiQtbXVpLWN1c3RvbTogMDtcblxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUga2V5ZnJhbWUuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gXCIjeyRvdXRwdXR9XCI7XG59XG5cbi8vLyBQcmludHMgdGhlIENTUyBwcm9wZXJ0aWVzIGZyb20gYSBzcGVjaWZpYyBrZXkgaW4gYSBrZXlmcmFtZXMgbWFwLiBVc2VkIHRvIGJvcnJvdyBDU1MgZnJvbSBrZXlmcmFtZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFuc2l0aW9ucy5cbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGtleSAtIEtleSBpbiB0aGUgbWFwIHRvIHByaW50IHRoZSBDU1Mgb2YuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XG4gICRtYXA6IG1hcC1nZXQoJGtmLCAka2V5KTtcblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xuICAgIC8vIFNvbWUga2V5ZnJhbWUgbWFwcyBzdG9yZSB0cmFuc2Zvcm1zIGFzIHF1b3RlZCBzdHJpbmdzXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcbiAgICB9XG4gICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc3BsaXQgdXAuXG4vLy8gQHJldHVybiB7TWFwfSBBIHJlZm9ybWF0dGVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIFNwbGl0IGtleXMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW50byBpbmRpdmlkdWFsIGtleXNcbiAgQGVhY2ggJGtleSwgJGl0ZW0gaW4gJG1hcCB7XG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xuXG4gICAgQGlmICRrZXktdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcbiAgICB9IEBlbHNlIGlmICRrZXktdHlwZSA9PSAnbGlzdCcge1xuICAgICAgQGVhY2ggJGsgaW4gJGtleSB7XG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgb2JqZWN0cyBpbnRvIG9uZS5cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRtYXBzLi4uIC0gQSBzZXJpZXMgb2YgbWFwcyB0byBtZXJnZSwgYXMgaW5kaXZpZHVhbCBwYXJhbWV0ZXJzLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBrZXlmcmFtZSBvYmplY3QuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRtYXBzLi4uKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBtYXAgcGFzc2VkIGluXG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgIEBpZiAtbXVpLWlzLWZ1bmN0aW9uKCRtYXApIHtcbiAgICAgICRtYXA6IC1tdWktc2FmZS1jYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbnVsbF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC4gQnkgZGVmYXVsdCBgbGVmdGAgYW5kIGByaWdodGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRhbW91bnQgWzEwMCVdIC0gTGVuZ3RoIG9mIHRoZSBzbGlkZSBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc2xpZGUgKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBudWxsLFxuICAkYW1vdW50OiAxMDAlLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzbGlkZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiAhPSBudWxsLCAkZGlyZWN0aW9uLCBpZigkc3RhdGUgPT0gaW4sIGxlZnQsIHJpZ2h0KSk7XG4gICRzbGlkZTogc2xpZGUoJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICAvLyBDU1MgT3V0cHV0XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgZmFkZSB0cmFuc2l0aW9uIGJ5IGFkanVzdGluZyB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gW251bGxdIC0gT3BhY2l0eSB0byBzdGFydCBhdC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuIEJ5IGRlZmF1bHQgYDBgIGFuZCBgMWAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbbnVsbF0gLSBPcGFjaXR5IHRvIGVuZCBvbi4gQnkgZGVmYXVsdCBgMWAgYW5kIGAwYCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1mYWRlKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbnVsbCxcbiAgJHRvOiBudWxsLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmcm9tOiBpZigkZnJvbSAhPSBudWxsLCAkZnJvbSwgaWYoJHN0YXRlID09IGluLCAwLCAxKSk7XG4gICR0bzogaWYoJHRvICE9IG51bGwsICR0bywgaWYoJHN0YXRlID09IGluLCAxLCAwKSk7XG4gICRmYWRlOiBmYWRlKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAwKTtcblxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMTAwKTtcbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtudWxsXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuIEJ5IGRlZmF1bHQgYGZyb20tYmFja2AgYW5kIGBmcm9tLWZyb250YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBudWxsLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBoaW5nZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHR1cm4tb3JpZ2luOiBpZigkdHVybi1vcmlnaW4gIT0gbnVsbCwgJHR1cm4tb3JpZ2luLCBpZigkc3RhdGUgPT0gaW4sIGZyb20tYmFjaywgZnJvbS1mcm9udCkpO1xuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gW251bGxdIC0gU2l6ZSB0byBzdGFydCBhdC4gQnkgZGVmYXVsdCBgMGAgYW5kIGAxYCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFtudWxsXSAtIFNpemUgdG8gZW5kIGF0LiBCeSBkZWZhdWx0IGAxYCBhbmQgYDBgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IG51bGwsXG4gICR0bzogbnVsbCxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2NhbGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmcm9tOiBpZigkZnJvbSAhPSBudWxsLCAkZnJvbSwgaWYoJHN0YXRlID09IGluLCAwLCAxKSk7XG4gICR0bzogaWYoJHRvICE9IG51bGwsICR0bywgaWYoJHN0YXRlID09IGluLCAxLCAwKSk7XG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtudWxsXSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuIEJ5IGRlZmF1bHQgYGN3YCBhbmQgYGNjd2AgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiAhPSBudWxsLCAkZGlyZWN0aW9uLCBpZigkc3RhdGUgPT0gaW4sIGN3LCBjY3cpKTtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1hbmltYXRpb24oJGFyZ3MuLi4pIHtcbiAgJG5hbWU6IG1hcC1nZXQoLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pLCBuYW1lKTtcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xuICBhbmltYXRpb24tbmFtZTogdW5xdW90ZSgkbmFtZSk7XG59XG4iLCIubm8tanMge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgIC50b3AtYmFyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAudGl0bGUtYmFyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuI2xvZ28gaDEge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxufVxyXG4jZnVzLWxvZ28ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xyXG59XHJcblxyXG4udGl0bGUtYmFyIHtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIHN2ZyB7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWdlLXRpdGxlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnbG9iZS1ibHVlO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5wYWdlLXRpdGxlIGgxIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDByZW07XHJcbiAgICBjb2xvcjokd2hpdGU7XHJcbn1cclxuLy9vdmVycmlkZSBibHVlIGhlYWRpbmcgc3R5bGUgZm9yIG9yYml0IHNsaWRlc1xyXG4ub3JiaXQtY2FwdGlvbiBoMiB7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTouNXJlbTtcclxufVxyXG5cclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcbi8vb3ZlcnJpZGUgaDIgc2l6ZSBoMyBjb2xvciBpbiBiYXNlLnNjc3NcclxuaDIge1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG59XHJcblxyXG5oMyB7XHJcbiAgICBjb2xvcjogIzAwMDAwMDtcclxufVxyXG5cclxuZHQge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbmRkIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgICArIGR0IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG5wLCBsaSB7XHJcbiAgICBtYXgtd2lkdGg6IDgwY2g7XHJcbn1cclxuXHJcbm1haW4ge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbn1cclxuLypBY2NvcmRpb24gZmxvYXQgaXNzdWUgZml4Ki9cclxuLmFjY29yZGlvbi1pdGVte1xyXG4gICAgY2xlYXI6Ym90aDtcclxufVxyXG5cclxudGFibGUgdGQgYSB7XHJcbiAgICAvLyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxufVxyXG5cclxuW2RhdGEtbWFnZWxsYW5dIC5pcy1hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZDogIzc2MWIyYjtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG59XHJcbi50b3AtYmFyLXJpZ2h0IHtcclxuICAgIHotaW5kZXg6IDIwMDtcclxuICAgIC5ncmlkLXkge1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICB9XHJcbn1cclxuXHJcbi5zdmdpbWcge1xyXG4gICAgd2lkdGg6IDVyZW07XHJcbiAgICBoZWlnaHQ6IDVyZW07XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcclxuICAgIG1hcmdpbi10b3A6IDRyZW07XHJcbiAgICB9XHJcbn1cclxuLy9hZGRlZCBidXR0b24gc3R5bGluZyBoZXJlIHRvIG92ZXJyaWRlIGZvdW5kYXRpb25cclxuLmJ1dHRvbiB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2LjI1cmVtO1xyXG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZSAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIGVhc2UgMC4zcztcclxuICAgIG1hcmdpbjogMC43NXJlbSAwO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGJhY2tncm91bmQ6ICRtZWRpdW0tYmx1ZTtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IHNvbGlkICR3aGl0ZTtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDAgM3B4IDNweCAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgM3B4IDhweDtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdG9wOiAycHg7XHJcbiAgICB9XHJcbiAgICAvL292ZXJyaWRlIGZvbnQgaW4gYnV0dG9uLnNjc3NcclxuICAgICYuc21hbGwge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wcmltYXJ5LW5hdiBsaSB7XHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogJGdsb2JlLWJsdWU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAvLyBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgICAgICAgJjphY3RpdmUsICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGdsb2JlLWJsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsIGxpIGEge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUFFRkYzO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWNvbmRhcnktbmF2IHtcclxuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogIzNGM0YzRjtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yLCAkYW1vdW50OiA1KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLypQYWdlcyB3aXRoIHJpZ2h0IHNpZGViYXIgbmF2Ki9cclxuLnBhZ2UtbmF2aWdhdGlvbntcclxuICAgIG1hcmdpbi1sZWZ0OjJyZW07XHJcbn1cclxuXHJcbi5ob21lcGFnZSAuZ3JpZC1jb250YWluZXIgLmdyaWQtY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmc6IDNyZW0gMDtcclxufVxyXG5cclxuLm5ld3MtaXRlbSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlY29uZGFyeS1jb2xvcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xyXG4gICAgI2xvZ28ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBoZWFkZXIge1xyXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgZm9vdGVyIC5kcmlsbGRvd24gYXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICAudG9sbC1mcmVlIHtcclxuICAgICAgICB0b3A6IDAuNzVyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAjZnVzLWxvZ28tdGl0bGUtYmFyIHtcclxuICAgICAgICB3aWR0aDogMTMwcHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDogMC40cmVtO1xyXG4gICAgICAgIC5mdXMtcmVkIHtcclxuICAgICAgICAgICAgZmlsbDogI0ZGRkZGRjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmZ1cy1ncmV5IHtcclxuICAgICAgICAgICAgZmlsbDogI0ZGRkZGRjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmZ1cy1ibGFjayB7XHJcbiAgICAgICAgICAgIGZpbGw6ICM2MzY1Njk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIC50b2xsLWZyZWU6OmFmdGVyIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCJhdHRyKGRhdGEtbGluZSlcIlwiO1xyXG4gICAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcclxuICAgIC50b3AtYmFyIGlucHV0IHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAgICNtYWluTmF2aWdhdGlvbiB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICNlZGVkZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlY29uZGFyeS1uYXYge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG4gICAgLy8gLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5hY3RpdmUgPiBhOjphZnRlciB7XHJcbiAgICAvLyAgICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmIHRyYW5zcGFyZW50O1xyXG4gICAgLy8gfVxyXG4gICAgLy8gLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcclxuICAgIC8vICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLy8gfVxyXG4gICAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5hY3RpdmUgPiBhOjphZnRlciB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ2xvYmUtYmx1ZSB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGdsb2JlLWJsdWUgdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZHQge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDAgMDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgIHdpZHRoOiAzNSU7XHJcbiAgICB9XHJcblxyXG4gICAgZGQge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICBtYXJnaW46IDFyZW0gMCAwIDA7XHJcbiAgICAgICAgd2lkdGg6IDY1JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGFjdCBkdCB7XHJcbiAgICAgICAgd2lkdGg6IDQwJTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWN0IGRkIHtcclxuICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgfVxyXG5cclxuICAgIC50d28tY29sdW1ucyB7XHJcbiAgICAgICAgY29sdW1uczogMjtcclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkgeyAgICBcclxuICAgIC5jb250YWN0IGR0IHtcclxuICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRhY3QgZGQge1xyXG4gICAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9IGFuZCAje2JyZWFrcG9pbnQoeHh4bGFyZ2UpfSB7XHJcbiAgICAjcmVzcG9uc2l2ZU1lbnUge1xyXG4gICAgICAgIHdpZHRoOiA2Mi41JTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBzZWN0aW9uLmdyaWQtY29udGFpbmVyIHtcclxuLy8gICAgIHBhZGRpbmc6IDNyZW0gMDtcclxuLy8gfVxyXG5cclxuc2VjdGlvbi5ncmlkLWNvbnRhaW5lci5wYWdlLXRpdGxlIHtcclxuICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcclxufVxyXG5cclxuXHJcbi5ia2ctZ3JleSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xyXG59XHJcblxyXG4jQnJpdGlzaF9Db2x1bWJpYSBwYXRoLCAjQWxiZXJ0YSBwYXRoLCAjU2Fza2F0Y2hld2FuIHBhdGgsICNNYW5pdG9iYSBwYXRoLCAjWXVrb24gcGF0aCwgI05vcnRod2VzdF9UZXJyaXRvcmllcyBwYXRoLCAjTnVuYXZ1dCBwYXRoIHtcclxuXHRcdFx0XHRcdGZpbGw6ICRyYWRpY2FsLWJsdWU7XHJcblx0XHRcdH1cclxuXHRcdFx0I09udGFyaW8gcGF0aCB7XHJcblx0XHRcdFx0XHRmaWxsOiAkZ2xvYmUtYmx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHQjUXVlYmVjIHBhdGgge1xyXG5cdFx0XHRcdFx0ZmlsbDogJHllbGxvdztcclxuXHRcdFx0fVxyXG5cdFx0XHQjTmV3X0JydW5zd2ljayBwYXRoLCAjUHJpbmNlX0Vkd2FyZF9Jc2xhbmQgcGF0aCwgI05vdmFfU2NvdGlhIHBhdGgsICNOZXdmb3VuZGxhbmRfYW5kX0xhYnJhZG9yIHBhdGgge1xyXG5cdFx0XHRcdFx0ZmlsbDogIzJlY2RkYztcclxuXHRcdFx0fVxyXG4uaDUge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0NDQ7XHJcbn1cclxuXHJcbiN0d2l0dGVyLXdpZGdldC0wIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcclxuICAgICAgICB0b3A6IDVweDtcclxuICAgIH1cclxuXHJcbmZvb3RlciB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkZ2xvYmUtYmx1ZTtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIHNtYWxsIGEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAub3B0YS1mb290ZXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMDtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogNy43NXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgdG9wOiAtLjI1cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudmVyaXNrLWZvb3RlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xyXG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDAgMXJlbSAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwIDAuNXJlbSAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IC41cmVtO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnZlcmlzay1mb290ZXIgLnZlcmlzay1icmFuZGluZyB7XHJcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEyNXB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMCAuNXJlbSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuICAub3B0YS1saW5rIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogMjUwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgcHJpbnQge1xyXG4gICAgcCwgbGkge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICAgIC5ncmlkLWNvbnRhaW5lciB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZmxleDogbm9uZTtcclxuICAgIH1cclxuICAgIC5ncmlkLXgge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZsZXg6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAuY2VsbCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZmxleDogbm9uZTtcclxuICAgIH1cclxuICAgIC5ncmlkLXggPiAubGFyZ2UtOCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfSIsIiR0aW1lbGluZS1jb2xvcjogJGxpZ2h0LWdyYXk7XHJcbiR0aW1lbGluZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1pbjtcclxuJHRpbWVsaW5lLWl0ZW0tY2FyZC1iZzogJHdoaXRlO1xyXG4kdGltZWxpbmUtaXRlbS1mb250LWNvbG9yOiAkYmxhY2s7XHJcbiR0aW1lbGluZS1pdGVtLWNhcmQ6IHRydWU7XHJcbiR0aW1lbGluZS1pdGVtLWNhcmQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vICVjbGVhcmZpeCB7XHJcbi8vICAgJjo6YWZ0ZXIsXHJcbi8vICAgJjo6YmVmb3JlIHtcclxuLy8gICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgICAgY29udGVudDogJyc7XHJcbi8vICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgIH1cclxuLy8gfVxyXG5cclxuLy8gLy8gVGltZWxpbmVcclxuLy8gLnRpbWVsaW5lIHtcclxuLy8gICBtYXJnaW46IDMwcHggYXV0bztcclxuLy8gICBwYWRkaW5nOiAwIDEwcHg7XHJcbi8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyAgIHRyYW5zaXRpb246ICR0aW1lbGluZS10cmFuc2l0aW9uO1xyXG4vLyAgIHdpZHRoOiAxMDAlO1xyXG5cclxuLy8gICAmOjpiZWZvcmUge1xyXG4vLyAgICAgYmFja2dyb3VuZDogJHRpbWVsaW5lLWNvbG9yO1xyXG4vLyAgICAgY29udGVudDogJyc7XHJcbi8vICAgICBoZWlnaHQ6IDEwMCU7XHJcbi8vICAgICBsZWZ0OiA1MCU7XHJcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICB0b3A6IDA7XHJcbi8vICAgICB3aWR0aDogM3B4O1xyXG4vLyAgIH1cclxuXHJcbi8vICAgJjo6YWZ0ZXIge1xyXG4vLyAgICAgY2xlYXI6IGJvdGg7XHJcbi8vICAgICBjb250ZW50OiAnJztcclxuLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4vLyAgICAgd2lkdGg6IDEwMCU7XHJcbi8vICAgfVxyXG5cclxuLy8gICBhIHtcclxuLy8gICAgIGNvbG9yOiAkdGltZWxpbmUtaXRlbS1mb250LWNvbG9yO1xyXG4vLyAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbi8vICAgICB0cmFuc2l0aW9uOiAkdGltZWxpbmUtdHJhbnNpdGlvbjtcclxuXHJcbi8vICAgICAmOmhvdmVyIHtcclxuLy8gICAgICAgYm94LXNoYWRvdzogMCAxcHggMHB4IDBweCAkdGltZWxpbmUtaXRlbS1mb250LWNvbG9yO1xyXG4vLyAgICAgICB0cmFuc2l0aW9uOiAkdGltZWxpbmUtdHJhbnNpdGlvbjtcclxuLy8gICAgIH1cclxuLy8gICB9XHJcblxyXG4gIGZpZ2NhcHRpb24ge1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgfVxyXG5cclxuLy8gICAudGltZWxpbmUtaXRlbSB7XHJcbi8vICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4vLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyAgICAgQGV4dGVuZCAlY2xlYXJmaXg7XHJcblxyXG4vLyAgICAgLnRpbWVsaW5lLWljb24ge1xyXG4vLyAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLy8gJHRpbWVsaW5lLWNvbG9yO1xyXG4vLyAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbi8vICAgICAgIC8vIGhlaWdodDogNTBweDtcclxuLy8gICAgICAgaGVpZ2h0OiAyNHB4O1xyXG4vLyAgICAgICBsZWZ0OiA1MCU7XHJcbi8vICAgICAgIG1hcmdpbi1sZWZ0OiAtNnB4O1xyXG4vLyAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLyAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICAgIHRvcDogMDtcclxuLy8gICAgICAgd2lkdGg6IDI0cHg7XHJcbi8vICAgICAgIC8vIHdpZHRoOiA1MHB4O1xyXG5cclxuLy8gICAgICAgaW1nLFxyXG4vLyAgICAgICBzdmcge1xyXG4vLyAgICAgICAgIC8vIGxlZnQ6IDE0cHg7XHJcbi8vICAgICAgICAgbGVmdDogMDtcclxuLy8gICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vICAgICAgICAgLy8gdG9wOiAxMXB4O1xyXG4vLyAgICAgICAgIHRvcDowO1xyXG4vLyAgICAgICB9XHJcblxyXG4vLyAgICAgICBzdmcge1xyXG4vLyAgICAgICAgIC8vIHRvcDogMTRweDtcclxuLy8gICAgICAgICB0b3A6IDA7XHJcbi8vICAgICAgICAgd2lkdGg6IDE2cHg7XHJcbi8vICAgICAgIH1cclxuLy8gICAgICAgLmNscy0xIHtcclxuLy8gICAgICAgICBmaWxsOiAkZGFyay1ncmF5O1xyXG4vLyAgICAgICB9XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgLnRpbWVsaW5lLWNvbnRlbnQge1xyXG4vLyAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4vLyAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuLy8gICAgICAgdHJhbnNpdGlvbjogJHRpbWVsaW5lLXRyYW5zaXRpb247XHJcbi8vICAgICAgIHdpZHRoOiA0NSU7XHJcblxyXG4vLyAgICAgICBAaWYgJHRpbWVsaW5lLWl0ZW0tY2FyZCA9PSB0cnVlIHtcclxuLy8gICAgICAgICBiYWNrZ3JvdW5kOiAkdGltZWxpbmUtaXRlbS1jYXJkLWJnO1xyXG4vLyAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR0aW1lbGluZS1pdGVtLWNhcmQtcmFkaXVzO1xyXG4vLyAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcclxuXHJcbi8vICAgICAgICAgcCB7XHJcbi8vICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfSBAZWxzZSB7XHJcbi8vICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblxyXG4vLyAgICAgICAgIHAge1xyXG4vLyAgICAgICAgICAgY29sb3I6ICR0aW1lbGluZS1pdGVtLWZvbnQtY29sb3I7XHJcbi8vICAgICAgICAgfVxyXG4vLyAgICAgICB9XHJcblxyXG4vLyAgICAgICAudGltZWxpbmUtY29udGVudC1tb250aCB7XHJcbi8vICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XHJcbi8vICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4vLyAgICAgICB9XHJcblxyXG4vLyAgICAgICAmLnJpZ2h0IHtcclxuLy8gICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbi8vICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuLy8gICAgICAgfVxyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuLy8gfVxyXG5cclxuLy8gQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbi8vICAgLnRpbWVsaW5lIHtcclxuLy8gICAgIG1hcmdpbjogMzBweDtcclxuLy8gICAgIHBhZGRpbmc6IDA7XHJcbi8vICAgICB3aWR0aDogOTAlO1xyXG5cclxuLy8gICAgICY6OmJlZm9yZSB7XHJcbi8vICAgICAgIGxlZnQ6IDA7XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgLnRpbWVsaW5lLWl0ZW0ge1xyXG4vLyAgICAgICAudGltZWxpbmUtY29udGVudCB7XHJcbi8vICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4vLyAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbi8vICAgICAgICAgd2lkdGg6IDkwJTtcclxuXHJcbi8vICAgICAgICAgJjo6YmVmb3JlLFxyXG4vLyAgICAgICAgICYucmlnaHQ6OmJlZm9yZSB7XHJcbi8vICAgICAgICAgICBib3JkZXItbGVmdDogMDtcclxuLy8gICAgICAgICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkICR0aW1lbGluZS1jb2xvcjtcclxuLy8gICAgICAgICAgIGxlZnQ6IDEwJTtcclxuLy8gICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNnB4O1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG5cclxuLy8gICAgICAgLnRpbWVsaW5lLWljb24ge1xyXG4vLyAgICAgICAgIGxlZnQ6IDA7XHJcbi8vICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xN3B4O1xyXG4vLyAgICAgICB9XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG4vLyB9XHJcblxyXG4udGltZWxpbmUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnRpbWVsaW5lOjpiZWZvcmUge1xyXG4gIGJhY2tncm91bmQ6ICR0aW1lbGluZS1jb2xvcjtcclxuICBjb250ZW50OiAnJztcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbGVmdDogMyU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogM3B4O1xyXG59XHJcblxyXG4udGltZWxpbmUtaXRlbSB7XHJcbiAgd2lkdGg6IDkwJTtcclxuICBtYXJnaW46IDUlIDElIDUlIDklO1xyXG4gIGJhY2tncm91bmQ6ICR0aW1lbGluZS1pdGVtLWNhcmQtYmc7XHJcbiAgYm9yZGVyLXJhZGl1czogJHRpbWVsaW5lLWl0ZW0tY2FyZC1yYWRpdXM7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4ICMyMzFmMjA7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMjMxZjIwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4udGltZWxpbmUtaWNvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IC05JTtcclxuICB0b3A6IDUlO1xyXG59XHJcblxyXG4udGltZWxpbmUtaXRlbTo6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgdG9wOiA0Ljc1JTtcclxuICAgIGJvcmRlci1yaWdodC13aWR0aDogMTVweDtcclxuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XHJcbiAgICByaWdodDogMTAwJTtcclxuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4udGltZWxpbmUtY29udGVudCB7XHJcbiAgcGFkZGluZzogMXJlbTtcclxufVxyXG5cclxuLnRpbWVsaW5lLWljb24gc3ZnIHtcclxuICB3aWR0aDogMTJweDtcclxufVxyXG5cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbi50aW1lbGluZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4udGltZWxpbmU6OmJlZm9yZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkdGltZWxpbmUtY29sb3I7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAzcHg7XHJcbn1cclxuXHJcbi50aW1lbGluZS1pdGVtIHtcclxuICB3aWR0aDogNDYlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAkdGltZWxpbmUtaXRlbS1jYXJkLWJnO1xyXG4gIGJvcmRlci1yYWRpdXM6ICR0aW1lbGluZS1pdGVtLWNhcmQtcmFkaXVzO1xyXG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCAjMjMxZjIwO1xyXG4gIG1hcmdpbjogMiU7XHJcblxyXG4gICY6bnRoLWNoaWxkKDFuKSAudGltZWxpbmUtaWNvbiB7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gIH1cclxuICAmOm50aC1jaGlsZChvZGQpIC50aW1lbGluZS1pY29uIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAtMzJweDtcclxuICAgIHRvcDogMTAuMjUlO1xyXG4gIH1cclxuICAmOm50aC1jaGlsZChldmVuKSAudGltZWxpbmUtaWNvbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtMjhweDtcclxuICAgIHRvcDogMjAuMjUlO1xyXG4gIH1cclxuICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICBvcmRlcjogMTtcclxuICB9XHJcbiAgJjpudGgtY2hpbGQoMikge1xyXG4gICAgb3JkZXI6IDI7XHJcbiAgfVxyXG4gICY6bnRoLWNoaWxkKDMpIHtcclxuICAgIG9yZGVyOiAzO1xyXG4gIH1cclxuICAmOm50aC1jaGlsZCg0KSB7XHJcbiAgICBvcmRlcjogNDtcclxuICB9XHJcbiAgJjpudGgtY2hpbGQoNSkge1xyXG4gICAgb3JkZXI6IDU7XHJcbiAgfVxyXG4gICY6bnRoLWNoaWxkKDYpIHtcclxuICAgIG9yZGVyOiA2O1xyXG4gIH1cclxuICAmOm50aC1jaGlsZCg3KSB7XHJcbiAgICBvcmRlcjogNztcclxuICB9XHJcbiAgJjpudGgtY2hpbGQoOCkge1xyXG4gICAgb3JkZXI6IDg7XHJcbiAgfVxyXG4gICY6bnRoLWNoaWxkKDkpIHtcclxuICAgIG9yZGVyOiA5O1xyXG4gIH1cclxuICAmOm50aC1jaGlsZCgxMCkge1xyXG4gICAgb3JkZXI6IDEwO1xyXG4gIH1cclxuICAmOm50aC1jaGlsZCgxMSkge1xyXG4gICAgb3JkZXI6IDExO1xyXG4gIH1cclxuICAmOm50aC1jaGlsZChvZGQpOjphZnRlciB7XHJcbiAgICBib3JkZXItY29sb3I6ICMyMzFmMjA7XHJcbiAgfVxyXG4gICY6bnRoLWNoaWxkKG9kZCk6OmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIHRvcDogMTAlO1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDE1cHg7XHJcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcbiAgICBsZWZ0OiAxMDAlO1xyXG4gICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG4gICY6bnRoLWNoaWxkKGV2ZW4pOjphZnRlciB7XHJcbiAgICBib3JkZXItY29sb3I6ICMyMzFmMjA7XHJcbiAgfVxyXG4gICY6bnRoLWNoaWxkKGV2ZW4pOjphZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICB0b3A6IDIwJTtcclxuICAgIGJvcmRlci1yaWdodC13aWR0aDogMTVweDtcclxuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XHJcbiAgICByaWdodDogMTAwJTtcclxuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIH1cclxuICAmOjpiZWZvcmUge1xyXG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4udGltZWxpbmUtaXRlbTo6YWZ0ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxuICB0b3A6IDQuNzUlO1xyXG4gIGJvcmRlci1yaWdodC13aWR0aDogMHB4O1xyXG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XHJcbiAgcmlnaHQ6IDEwMCU7XHJcbiAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG59IiwiLy8gRGVmYXVsdFxyXG4uZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIge1xyXG4gICAgbGkge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAub3JiaXQtaW1hZ2Uge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogNTB2aDtcclxuICAgIH1cclxuXHJcbiAgICAub3JiaXQtY2FwdGlvbiB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA3NXJlbTtcclxuICAgICAgICAvKm1hcmdpbjogMCBhdXRvOyovXHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjY1KTtcclxuICAgICAgICBib3R0b206IDAlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgICBtaW4taGVpZ2h0OiAxMnZ3O1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3JiaXQtZmlndXJlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB9XHJcbn1cclxuLy8gU01BTExcclxuQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAuZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIge1xyXG4gICAgICAgIC5vcmJpdC1idWxsZXRzIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG59XHJcblxyXG5cclxuICAvLyBNZWRpdW0gVVBcclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcclxuICAuZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIge1xyXG4gICAgLm9yYml0LWltYWdlIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDUwdmg7XHJcbiAgICAgICAgfVxyXG4gICAgLm9yYml0LWNhcHRpb24ge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDc1cmVtO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgYm90dG9tOiAxNSU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDQyJTtcclxuICAgICAgICAgICAgd2lkdGg6IDU1JTtcclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbn1cclxuXHJcbi8vIExBUkdFXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcclxuICAgIC5mdWxsc2NyZWVuLWltYWdlLXNsaWRlciB7XHJcbiAgICAgICAgLm9yYml0LWNhcHRpb24ge1xyXG4gICAgICAgICAgICBib3R0b206IDUlO1xyXG4gICAgICAgICAgICB0b3A6IDUlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICAvKmxlZnQ6IDQzJTsqL1xyXG4gICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm9yYml0LWNhcHRpb24gLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XHJcbiAgICAuZnVsbHNjcmVlbi1pbWFnZS1zbGlkZXIge1xyXG4gICAgICAgIC5vcmJpdC1jYXB0aW9uIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgIGxlZnQ6IDQ0LjI1JTtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XHJcbiAgICAgIC5mdWxsc2NyZWVuLWltYWdlLXNsaWRlciB7XHJcbiAgICAgICAgLm9yYml0LWNhcHRpb24ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgbGVmdDogNDUuNSU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMy41JTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9Il19 */
