@charset "UTF-8";
/**
 * Foundation for Sites
 * Version 6.7.4
 * https://get.foundation
 * Licensed under MIT Open Source
 */
@import '../../node_modules/swiper/swiper.min.css';
@import '../../node_modules/swiper/modules/effect-fade/effect-fade.min.css';
@import '../../node_modules/simple-lightbox/dist/simpleLightbox.min.css';
@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 {
  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;
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

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

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

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

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

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

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

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

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

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

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

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

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

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

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

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

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

[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&tablet=48.875em&large=64em&xlarge=80em&xxlarge=103.125em&wide=120em";
}

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

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

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

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

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

button {
  padding: 0;
  appearance: none;
  border: 0;
  border-radius: 0.25rem;
  background: transparent;
  line-height: 1;
  cursor: pointer;
}
[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;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #808080;
  border-radius: 0.25rem;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  appearance: none;
}
[type=text]:focus, [type=password]:focus, [type=date]:focus, [type=datetime]:focus, [type=datetime-local]:focus, [type=month]:focus, [type=week]:focus, [type=email]:focus, [type=number]:focus, [type=search]:focus, [type=tel]:focus, [type=time]:focus, [type=url]:focus, [type=color]:focus,
textarea:focus {
  outline: none;
  border: 1px solid #555;
  background-color: #fefefe;
  box-shadow: 0 0 5px #808080;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}
textarea[rows] {
  height: auto;
}

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

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

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

::placeholder {
  color: #808080;
}

[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.5;
  color: #000;
}
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: #000;
}

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch;
}
.input-group > :first-child, .input-group > :first-child.input-group-button > * {
  border-radius: 0.25rem 0 0 0.25rem;
}
.input-group > :last-child, .input-group > :last-child.input-group-button > * {
  border-radius: 0 0.25rem 0.25rem 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 #808080;
  background: #e6e6e6;
  color: #000;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}
.input-group-label:first-child {
  border-right: 0;
}
.input-group-label:last-child {
  border-left: 0;
}

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

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

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

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

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #808080;
}
.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
}

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  appearance: none;
  border: 1px solid #808080;
  border-radius: 0.25rem;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000;
  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%2885, 85, 85%29"></polygon></svg>');
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}
@media screen and (min-width: 0\0 ) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}
select:focus {
  outline: none;
  border: 1px solid #555;
  background-color: #fefefe;
  box-shadow: 0 0 5px #808080;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}
select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}
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)::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.5;
  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: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-style: normal;
  font-weight: bold;
  color: inherit;
  text-rendering: optimizeLegibility;
}
h1 small, .h1 small,
h2 small, .h2 small,
h3 small, .h3 small,
h4 small, .h4 small,
h5 small, .h5 small,
h6 small, .h6 small {
  line-height: 0;
  color: #808080;
}

h1, .h1 {
  font-size: 2.25rem;
  line-height: 1.1;
  margin-top: 0;
  margin-bottom: 1rem;
}

h2, .h2 {
  font-size: 2.25rem;
  line-height: 1.1;
  margin-top: 0;
  margin-bottom: 1rem;
}

h3, .h3 {
  font-size: 1.25rem;
  line-height: 1.1;
  margin-top: 0;
  margin-bottom: 1rem;
}

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

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

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

@media screen and (min-width: 80em) {
  h1, .h1 {
    font-size: 3rem;
  }

  h2, .h2 {
    font-size: 3rem;
  }

  h3, .h3 {
    font-size: 1.875rem;
  }

  h4, .h4 {
    font-size: 1.375rem;
  }

  h5, .h5 {
    font-size: 1.25rem;
  }

  h6, .h6 {
    font-size: 1rem;
  }
}
a {
  line-height: inherit;
  color: #000;
  text-decoration: none;
  cursor: pointer;
}
a:hover, a:focus {
  color: #000;
}
a img {
  border: 0;
}

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

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

li {
  font-size: inherit;
}

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

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 #808080;
}
blockquote, blockquote p {
  line-height: 1.5;
  color: #555;
}

abbr, abbr[title] {
  border-bottom: 1px dotted #000;
  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: #000;
  border-radius: 0.25rem;
}

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

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

.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: #555;
  font-size: 0.8125rem;
}
.cite-block:before, cite:before {
  content: "— ";
}

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

.code-block {
  border: 1px solid #808080;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #000;
  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: 48.875em) {
  .tablet-text-left {
    text-align: left;
  }

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

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

  .tablet-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;
  }
}
@media screen and (min-width: 80em) {
  .xlarge-text-left {
    text-align: left;
  }

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

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

  .xlarge-text-justify {
    text-align: justify;
  }
}
@media screen and (min-width: 103.125em) {
  .xxlarge-text-left {
    text-align: left;
  }

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

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

  .xxlarge-text-justify {
    text-align: justify;
  }
}
@media screen and (min-width: 120em) {
  .wide-text-left {
    text-align: left;
  }

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

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

  .wide-text-justify {
    text-align: justify;
  }
}
.show-for-print {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    color: black !important;
    color-adjust: economy;
    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 #555;
    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: 1.5rem;
  padding-left: 1.5rem;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.grid-container.fluid {
  padding-right: 1.5rem;
  padding-left: 1.5rem;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.grid-container.full {
  padding-right: 0;
  padding-left: 0;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.grid-x {
  display: flex;
  flex-flow: row wrap;
}

.cell {
  flex: 0 0 auto;
  min-height: 0;
  min-width: 0;
  width: 100%;
}
.cell.auto {
  flex: 1 1 0;
}
.cell.shrink {
  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 {
  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 {
    flex-basis: auto;
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-x > .tablet-shrink, .grid-x > .tablet-full, .grid-x > .tablet-1, .grid-x > .tablet-2, .grid-x > .tablet-3, .grid-x > .tablet-4, .grid-x > .tablet-5, .grid-x > .tablet-6, .grid-x > .tablet-7, .grid-x > .tablet-8, .grid-x > .tablet-9, .grid-x > .tablet-10, .grid-x > .tablet-11, .grid-x > .tablet-12 {
    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 {
    flex-basis: auto;
  }
}
@media screen and (min-width: 80em) {
  .grid-x > .xlarge-shrink, .grid-x > .xlarge-full, .grid-x > .xlarge-1, .grid-x > .xlarge-2, .grid-x > .xlarge-3, .grid-x > .xlarge-4, .grid-x > .xlarge-5, .grid-x > .xlarge-6, .grid-x > .xlarge-7, .grid-x > .xlarge-8, .grid-x > .xlarge-9, .grid-x > .xlarge-10, .grid-x > .xlarge-11, .grid-x > .xlarge-12 {
    flex-basis: auto;
  }
}
@media screen and (min-width: 103.125em) {
  .grid-x > .xxlarge-shrink, .grid-x > .xxlarge-full, .grid-x > .xxlarge-1, .grid-x > .xxlarge-2, .grid-x > .xxlarge-3, .grid-x > .xxlarge-4, .grid-x > .xxlarge-5, .grid-x > .xxlarge-6, .grid-x > .xxlarge-7, .grid-x > .xxlarge-8, .grid-x > .xxlarge-9, .grid-x > .xxlarge-10, .grid-x > .xxlarge-11, .grid-x > .xxlarge-12 {
    flex-basis: auto;
  }
}
@media screen and (min-width: 120em) {
  .grid-x > .wide-shrink, .grid-x > .wide-full, .grid-x > .wide-1, .grid-x > .wide-2, .grid-x > .wide-3, .grid-x > .wide-4, .grid-x > .wide-5, .grid-x > .wide-6, .grid-x > .wide-7, .grid-x > .wide-8, .grid-x > .wide-9, .grid-x > .wide-10, .grid-x > .wide-11, .grid-x > .wide-12 {
    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 {
  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 {
    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 {
    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: 48.875em) {
  .grid-x > .tablet-auto {
    flex: 1 1 0;
    width: auto;
  }

  .grid-x > .tablet-12, .grid-x > .tablet-11, .grid-x > .tablet-10, .grid-x > .tablet-9, .grid-x > .tablet-8, .grid-x > .tablet-7, .grid-x > .tablet-6, .grid-x > .tablet-5, .grid-x > .tablet-4, .grid-x > .tablet-3, .grid-x > .tablet-2, .grid-x > .tablet-1, .grid-x > .tablet-shrink {
    flex: 0 0 auto;
  }

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-x > .tablet-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-x > .large-auto {
    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 {
    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%;
  }
}
@media screen and (min-width: 80em) {
  .grid-x > .xlarge-auto {
    flex: 1 1 0;
    width: auto;
  }

  .grid-x > .xlarge-12, .grid-x > .xlarge-11, .grid-x > .xlarge-10, .grid-x > .xlarge-9, .grid-x > .xlarge-8, .grid-x > .xlarge-7, .grid-x > .xlarge-6, .grid-x > .xlarge-5, .grid-x > .xlarge-4, .grid-x > .xlarge-3, .grid-x > .xlarge-2, .grid-x > .xlarge-1, .grid-x > .xlarge-shrink {
    flex: 0 0 auto;
  }

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-x > .xlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .grid-x > .xxlarge-auto {
    flex: 1 1 0;
    width: auto;
  }

  .grid-x > .xxlarge-12, .grid-x > .xxlarge-11, .grid-x > .xxlarge-10, .grid-x > .xxlarge-9, .grid-x > .xxlarge-8, .grid-x > .xxlarge-7, .grid-x > .xxlarge-6, .grid-x > .xxlarge-5, .grid-x > .xxlarge-4, .grid-x > .xxlarge-3, .grid-x > .xxlarge-2, .grid-x > .xxlarge-1, .grid-x > .xxlarge-shrink {
    flex: 0 0 auto;
  }

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-x > .xxlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 120em) {
  .grid-x > .wide-auto {
    flex: 1 1 0;
    width: auto;
  }

  .grid-x > .wide-12, .grid-x > .wide-11, .grid-x > .wide-10, .grid-x > .wide-9, .grid-x > .wide-8, .grid-x > .wide-7, .grid-x > .wide-6, .grid-x > .wide-5, .grid-x > .wide-4, .grid-x > .wide-3, .grid-x > .wide-2, .grid-x > .wide-1, .grid-x > .wide-shrink {
    flex: 0 0 auto;
  }

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-x > .wide-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: -1.5rem;
  margin-right: -1.5rem;
}
.grid-margin-x > .cell {
  width: calc(100% - 3rem);
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.grid-margin-x > .auto {
  width: auto;
}
.grid-margin-x > .shrink {
  width: auto;
}
.grid-margin-x > .small-1 {
  width: calc(8.3333333333% - 3rem);
}
.grid-margin-x > .small-2 {
  width: calc(16.6666666667% - 3rem);
}
.grid-margin-x > .small-3 {
  width: calc(25% - 3rem);
}
.grid-margin-x > .small-4 {
  width: calc(33.3333333333% - 3rem);
}
.grid-margin-x > .small-5 {
  width: calc(41.6666666667% - 3rem);
}
.grid-margin-x > .small-6 {
  width: calc(50% - 3rem);
}
.grid-margin-x > .small-7 {
  width: calc(58.3333333333% - 3rem);
}
.grid-margin-x > .small-8 {
  width: calc(66.6666666667% - 3rem);
}
.grid-margin-x > .small-9 {
  width: calc(75% - 3rem);
}
.grid-margin-x > .small-10 {
  width: calc(83.3333333333% - 3rem);
}
.grid-margin-x > .small-11 {
  width: calc(91.6666666667% - 3rem);
}
.grid-margin-x > .small-12 {
  width: calc(100% - 3rem);
}
@media print, screen and (min-width: 40em) {
  .grid-margin-x > .medium-auto {
    width: auto;
  }
  .grid-margin-x > .medium-shrink {
    width: auto;
  }
  .grid-margin-x > .medium-1 {
    width: calc(8.3333333333% - 3rem);
  }
  .grid-margin-x > .medium-2 {
    width: calc(16.6666666667% - 3rem);
  }
  .grid-margin-x > .medium-3 {
    width: calc(25% - 3rem);
  }
  .grid-margin-x > .medium-4 {
    width: calc(33.3333333333% - 3rem);
  }
  .grid-margin-x > .medium-5 {
    width: calc(41.6666666667% - 3rem);
  }
  .grid-margin-x > .medium-6 {
    width: calc(50% - 3rem);
  }
  .grid-margin-x > .medium-7 {
    width: calc(58.3333333333% - 3rem);
  }
  .grid-margin-x > .medium-8 {
    width: calc(66.6666666667% - 3rem);
  }
  .grid-margin-x > .medium-9 {
    width: calc(75% - 3rem);
  }
  .grid-margin-x > .medium-10 {
    width: calc(83.3333333333% - 3rem);
  }
  .grid-margin-x > .medium-11 {
    width: calc(91.6666666667% - 3rem);
  }
  .grid-margin-x > .medium-12 {
    width: calc(100% - 3rem);
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-margin-x > .tablet-auto {
    width: auto;
  }
  .grid-margin-x > .tablet-shrink {
    width: auto;
  }
  .grid-margin-x > .tablet-1 {
    width: calc(8.3333333333% - 3rem);
  }
  .grid-margin-x > .tablet-2 {
    width: calc(16.6666666667% - 3rem);
  }
  .grid-margin-x > .tablet-3 {
    width: calc(25% - 3rem);
  }
  .grid-margin-x > .tablet-4 {
    width: calc(33.3333333333% - 3rem);
  }
  .grid-margin-x > .tablet-5 {
    width: calc(41.6666666667% - 3rem);
  }
  .grid-margin-x > .tablet-6 {
    width: calc(50% - 3rem);
  }
  .grid-margin-x > .tablet-7 {
    width: calc(58.3333333333% - 3rem);
  }
  .grid-margin-x > .tablet-8 {
    width: calc(66.6666666667% - 3rem);
  }
  .grid-margin-x > .tablet-9 {
    width: calc(75% - 3rem);
  }
  .grid-margin-x > .tablet-10 {
    width: calc(83.3333333333% - 3rem);
  }
  .grid-margin-x > .tablet-11 {
    width: calc(91.6666666667% - 3rem);
  }
  .grid-margin-x > .tablet-12 {
    width: calc(100% - 3rem);
  }
}
@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% - 3rem);
  }
  .grid-margin-x > .large-2 {
    width: calc(16.6666666667% - 3rem);
  }
  .grid-margin-x > .large-3 {
    width: calc(25% - 3rem);
  }
  .grid-margin-x > .large-4 {
    width: calc(33.3333333333% - 3rem);
  }
  .grid-margin-x > .large-5 {
    width: calc(41.6666666667% - 3rem);
  }
  .grid-margin-x > .large-6 {
    width: calc(50% - 3rem);
  }
  .grid-margin-x > .large-7 {
    width: calc(58.3333333333% - 3rem);
  }
  .grid-margin-x > .large-8 {
    width: calc(66.6666666667% - 3rem);
  }
  .grid-margin-x > .large-9 {
    width: calc(75% - 3rem);
  }
  .grid-margin-x > .large-10 {
    width: calc(83.3333333333% - 3rem);
  }
  .grid-margin-x > .large-11 {
    width: calc(91.6666666667% - 3rem);
  }
  .grid-margin-x > .large-12 {
    width: calc(100% - 3rem);
  }
}
@media screen and (min-width: 80em) {
  .grid-margin-x > .xlarge-auto {
    width: auto;
  }
  .grid-margin-x > .xlarge-shrink {
    width: auto;
  }
  .grid-margin-x > .xlarge-1 {
    width: calc(8.3333333333% - 3rem);
  }
  .grid-margin-x > .xlarge-2 {
    width: calc(16.6666666667% - 3rem);
  }
  .grid-margin-x > .xlarge-3 {
    width: calc(25% - 3rem);
  }
  .grid-margin-x > .xlarge-4 {
    width: calc(33.3333333333% - 3rem);
  }
  .grid-margin-x > .xlarge-5 {
    width: calc(41.6666666667% - 3rem);
  }
  .grid-margin-x > .xlarge-6 {
    width: calc(50% - 3rem);
  }
  .grid-margin-x > .xlarge-7 {
    width: calc(58.3333333333% - 3rem);
  }
  .grid-margin-x > .xlarge-8 {
    width: calc(66.6666666667% - 3rem);
  }
  .grid-margin-x > .xlarge-9 {
    width: calc(75% - 3rem);
  }
  .grid-margin-x > .xlarge-10 {
    width: calc(83.3333333333% - 3rem);
  }
  .grid-margin-x > .xlarge-11 {
    width: calc(91.6666666667% - 3rem);
  }
  .grid-margin-x > .xlarge-12 {
    width: calc(100% - 3rem);
  }
}
@media screen and (min-width: 103.125em) {
  .grid-margin-x > .xxlarge-auto {
    width: auto;
  }
  .grid-margin-x > .xxlarge-shrink {
    width: auto;
  }
  .grid-margin-x > .xxlarge-1 {
    width: calc(8.3333333333% - 3rem);
  }
  .grid-margin-x > .xxlarge-2 {
    width: calc(16.6666666667% - 3rem);
  }
  .grid-margin-x > .xxlarge-3 {
    width: calc(25% - 3rem);
  }
  .grid-margin-x > .xxlarge-4 {
    width: calc(33.3333333333% - 3rem);
  }
  .grid-margin-x > .xxlarge-5 {
    width: calc(41.6666666667% - 3rem);
  }
  .grid-margin-x > .xxlarge-6 {
    width: calc(50% - 3rem);
  }
  .grid-margin-x > .xxlarge-7 {
    width: calc(58.3333333333% - 3rem);
  }
  .grid-margin-x > .xxlarge-8 {
    width: calc(66.6666666667% - 3rem);
  }
  .grid-margin-x > .xxlarge-9 {
    width: calc(75% - 3rem);
  }
  .grid-margin-x > .xxlarge-10 {
    width: calc(83.3333333333% - 3rem);
  }
  .grid-margin-x > .xxlarge-11 {
    width: calc(91.6666666667% - 3rem);
  }
  .grid-margin-x > .xxlarge-12 {
    width: calc(100% - 3rem);
  }
}
@media screen and (min-width: 120em) {
  .grid-margin-x > .wide-auto {
    width: auto;
  }
  .grid-margin-x > .wide-shrink {
    width: auto;
  }
  .grid-margin-x > .wide-1 {
    width: calc(8.3333333333% - 3rem);
  }
  .grid-margin-x > .wide-2 {
    width: calc(16.6666666667% - 3rem);
  }
  .grid-margin-x > .wide-3 {
    width: calc(25% - 3rem);
  }
  .grid-margin-x > .wide-4 {
    width: calc(33.3333333333% - 3rem);
  }
  .grid-margin-x > .wide-5 {
    width: calc(41.6666666667% - 3rem);
  }
  .grid-margin-x > .wide-6 {
    width: calc(50% - 3rem);
  }
  .grid-margin-x > .wide-7 {
    width: calc(58.3333333333% - 3rem);
  }
  .grid-margin-x > .wide-8 {
    width: calc(66.6666666667% - 3rem);
  }
  .grid-margin-x > .wide-9 {
    width: calc(75% - 3rem);
  }
  .grid-margin-x > .wide-10 {
    width: calc(83.3333333333% - 3rem);
  }
  .grid-margin-x > .wide-11 {
    width: calc(91.6666666667% - 3rem);
  }
  .grid-margin-x > .wide-12 {
    width: calc(100% - 3rem);
  }
}

.grid-padding-x .grid-padding-x {
  margin-right: -1.5rem;
  margin-left: -1.5rem;
}
.grid-container:not(.full) > .grid-padding-x {
  margin-right: -1.5rem;
  margin-left: -1.5rem;
}
.grid-padding-x > .cell {
  padding-right: 1.5rem;
  padding-left: 1.5rem;
}

.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: 48.875em) {
  .tablet-up-1 > .cell {
    width: 100%;
  }

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

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

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

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

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

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

  .tablet-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%;
  }
}
@media screen and (min-width: 80em) {
  .xlarge-up-1 > .cell {
    width: 100%;
  }

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

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

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

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

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

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

  .xlarge-up-8 > .cell {
    width: 12.5%;
  }
}
@media screen and (min-width: 103.125em) {
  .xxlarge-up-1 > .cell {
    width: 100%;
  }

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

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

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

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

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

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

  .xxlarge-up-8 > .cell {
    width: 12.5%;
  }
}
@media screen and (min-width: 120em) {
  .wide-up-1 > .cell {
    width: 100%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  .grid-margin-x.medium-up-1 > .cell {
    width: calc(100% - 3rem);
  }

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

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

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

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

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

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

  .grid-margin-x.medium-up-8 > .cell {
    width: calc(12.5% - 3rem);
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-margin-x.tablet-up-1 > .cell {
    width: calc(100% - 3rem);
  }

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

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

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

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

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

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

  .grid-margin-x.tablet-up-8 > .cell {
    width: calc(12.5% - 3rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-x.large-up-1 > .cell {
    width: calc(100% - 3rem);
  }

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

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

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

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

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

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

  .grid-margin-x.large-up-8 > .cell {
    width: calc(12.5% - 3rem);
  }
}
@media screen and (min-width: 80em) {
  .grid-margin-x.xlarge-up-1 > .cell {
    width: calc(100% - 3rem);
  }

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

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

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

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

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

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

  .grid-margin-x.xlarge-up-8 > .cell {
    width: calc(12.5% - 3rem);
  }
}
@media screen and (min-width: 103.125em) {
  .grid-margin-x.xxlarge-up-1 > .cell {
    width: calc(100% - 3rem);
  }

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

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

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

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

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

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

  .grid-margin-x.xxlarge-up-8 > .cell {
    width: calc(12.5% - 3rem);
  }
}
@media screen and (min-width: 120em) {
  .grid-margin-x.wide-up-1 > .cell {
    width: calc(100% - 3rem);
  }

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

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

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

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

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

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

  .grid-margin-x.wide-up-8 > .cell {
    width: calc(12.5% - 3rem);
  }
}
.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: 48.875em) {
  .small-margin-collapse > .tablet-1 {
    width: 8.3333333333%;
  }
  .small-margin-collapse > .tablet-2 {
    width: 16.6666666667%;
  }
  .small-margin-collapse > .tablet-3 {
    width: 25%;
  }
  .small-margin-collapse > .tablet-4 {
    width: 33.3333333333%;
  }
  .small-margin-collapse > .tablet-5 {
    width: 41.6666666667%;
  }
  .small-margin-collapse > .tablet-6 {
    width: 50%;
  }
  .small-margin-collapse > .tablet-7 {
    width: 58.3333333333%;
  }
  .small-margin-collapse > .tablet-8 {
    width: 66.6666666667%;
  }
  .small-margin-collapse > .tablet-9 {
    width: 75%;
  }
  .small-margin-collapse > .tablet-10 {
    width: 83.3333333333%;
  }
  .small-margin-collapse > .tablet-11 {
    width: 91.6666666667%;
  }
  .small-margin-collapse > .tablet-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%;
  }
}
@media screen and (min-width: 80em) {
  .small-margin-collapse > .xlarge-1 {
    width: 8.3333333333%;
  }
  .small-margin-collapse > .xlarge-2 {
    width: 16.6666666667%;
  }
  .small-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .small-margin-collapse > .xlarge-4 {
    width: 33.3333333333%;
  }
  .small-margin-collapse > .xlarge-5 {
    width: 41.6666666667%;
  }
  .small-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .small-margin-collapse > .xlarge-7 {
    width: 58.3333333333%;
  }
  .small-margin-collapse > .xlarge-8 {
    width: 66.6666666667%;
  }
  .small-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .small-margin-collapse > .xlarge-10 {
    width: 83.3333333333%;
  }
  .small-margin-collapse > .xlarge-11 {
    width: 91.6666666667%;
  }
  .small-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .small-margin-collapse > .xxlarge-1 {
    width: 8.3333333333%;
  }
  .small-margin-collapse > .xxlarge-2 {
    width: 16.6666666667%;
  }
  .small-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .small-margin-collapse > .xxlarge-4 {
    width: 33.3333333333%;
  }
  .small-margin-collapse > .xxlarge-5 {
    width: 41.6666666667%;
  }
  .small-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .small-margin-collapse > .xxlarge-7 {
    width: 58.3333333333%;
  }
  .small-margin-collapse > .xxlarge-8 {
    width: 66.6666666667%;
  }
  .small-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .small-margin-collapse > .xxlarge-10 {
    width: 83.3333333333%;
  }
  .small-margin-collapse > .xxlarge-11 {
    width: 91.6666666667%;
  }
  .small-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 120em) {
  .small-margin-collapse > .wide-1 {
    width: 8.3333333333%;
  }
  .small-margin-collapse > .wide-2 {
    width: 16.6666666667%;
  }
  .small-margin-collapse > .wide-3 {
    width: 25%;
  }
  .small-margin-collapse > .wide-4 {
    width: 33.3333333333%;
  }
  .small-margin-collapse > .wide-5 {
    width: 41.6666666667%;
  }
  .small-margin-collapse > .wide-6 {
    width: 50%;
  }
  .small-margin-collapse > .wide-7 {
    width: 58.3333333333%;
  }
  .small-margin-collapse > .wide-8 {
    width: 66.6666666667%;
  }
  .small-margin-collapse > .wide-9 {
    width: 75%;
  }
  .small-margin-collapse > .wide-10 {
    width: 83.3333333333%;
  }
  .small-margin-collapse > .wide-11 {
    width: 91.6666666667%;
  }
  .small-margin-collapse > .wide-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: 48.875em) {
  .medium-margin-collapse > .tablet-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .tablet-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .tablet-3 {
    width: 25%;
  }
  .medium-margin-collapse > .tablet-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .tablet-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .tablet-6 {
    width: 50%;
  }
  .medium-margin-collapse > .tablet-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .tablet-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .tablet-9 {
    width: 75%;
  }
  .medium-margin-collapse > .tablet-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .tablet-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .tablet-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 screen and (min-width: 80em) {
  .medium-margin-collapse > .xlarge-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .xlarge-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .medium-margin-collapse > .xlarge-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .xlarge-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .medium-margin-collapse > .xlarge-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .xlarge-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .medium-margin-collapse > .xlarge-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .xlarge-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .medium-margin-collapse > .xxlarge-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .xxlarge-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .medium-margin-collapse > .xxlarge-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .xxlarge-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .medium-margin-collapse > .xxlarge-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .xxlarge-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .medium-margin-collapse > .xxlarge-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .xxlarge-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 120em) {
  .medium-margin-collapse > .wide-1 {
    width: 8.3333333333%;
  }
  .medium-margin-collapse > .wide-2 {
    width: 16.6666666667%;
  }
  .medium-margin-collapse > .wide-3 {
    width: 25%;
  }
  .medium-margin-collapse > .wide-4 {
    width: 33.3333333333%;
  }
  .medium-margin-collapse > .wide-5 {
    width: 41.6666666667%;
  }
  .medium-margin-collapse > .wide-6 {
    width: 50%;
  }
  .medium-margin-collapse > .wide-7 {
    width: 58.3333333333%;
  }
  .medium-margin-collapse > .wide-8 {
    width: 66.6666666667%;
  }
  .medium-margin-collapse > .wide-9 {
    width: 75%;
  }
  .medium-margin-collapse > .wide-10 {
    width: 83.3333333333%;
  }
  .medium-margin-collapse > .wide-11 {
    width: 91.6666666667%;
  }
  .medium-margin-collapse > .wide-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: 48.875em) {
  .tablet-margin-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .tablet-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0;
  }
}
@media print, screen and (min-width: 48.875em) {
  .tablet-margin-collapse > .small-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .small-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .small-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .small-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .small-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .small-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .small-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .small-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .small-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .small-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .small-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .small-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 48.875em) {
  .tablet-margin-collapse > .medium-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .medium-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .medium-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .medium-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .medium-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .medium-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .medium-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .medium-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .medium-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .medium-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .medium-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .medium-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 48.875em) {
  .tablet-margin-collapse > .tablet-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .tablet-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .tablet-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .tablet-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .tablet-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .tablet-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .tablet-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .tablet-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .tablet-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .tablet-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .tablet-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .tablet-12 {
    width: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .tablet-margin-collapse > .large-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .large-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .large-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .large-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .large-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .large-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .large-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .large-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .large-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .large-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .large-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .large-12 {
    width: 100%;
  }
}
@media screen and (min-width: 80em) {
  .tablet-margin-collapse > .xlarge-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .xlarge-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .xlarge-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .xlarge-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .xlarge-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .xlarge-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .xlarge-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .xlarge-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .tablet-margin-collapse > .xxlarge-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .xxlarge-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .xxlarge-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .xxlarge-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .xxlarge-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .xxlarge-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .xxlarge-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .xxlarge-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 120em) {
  .tablet-margin-collapse > .wide-1 {
    width: 8.3333333333%;
  }
  .tablet-margin-collapse > .wide-2 {
    width: 16.6666666667%;
  }
  .tablet-margin-collapse > .wide-3 {
    width: 25%;
  }
  .tablet-margin-collapse > .wide-4 {
    width: 33.3333333333%;
  }
  .tablet-margin-collapse > .wide-5 {
    width: 41.6666666667%;
  }
  .tablet-margin-collapse > .wide-6 {
    width: 50%;
  }
  .tablet-margin-collapse > .wide-7 {
    width: 58.3333333333%;
  }
  .tablet-margin-collapse > .wide-8 {
    width: 66.6666666667%;
  }
  .tablet-margin-collapse > .wide-9 {
    width: 75%;
  }
  .tablet-margin-collapse > .wide-10 {
    width: 83.3333333333%;
  }
  .tablet-margin-collapse > .wide-11 {
    width: 91.6666666667%;
  }
  .tablet-margin-collapse > .wide-12 {
    width: 100%;
  }
}

@media print, screen and (min-width: 48.875em) {
  .tablet-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .tablet-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 > .tablet-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .tablet-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .tablet-3 {
    width: 25%;
  }
  .large-margin-collapse > .tablet-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .tablet-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .tablet-6 {
    width: 50%;
  }
  .large-margin-collapse > .tablet-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .tablet-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .tablet-9 {
    width: 75%;
  }
  .large-margin-collapse > .tablet-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .tablet-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .tablet-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 screen and (min-width: 80em) {
  .large-margin-collapse > .xlarge-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .xlarge-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .xlarge-3 {
    width: 25%;
  }
  .large-margin-collapse > .xlarge-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .xlarge-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .xlarge-6 {
    width: 50%;
  }
  .large-margin-collapse > .xlarge-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .xlarge-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .xlarge-9 {
    width: 75%;
  }
  .large-margin-collapse > .xlarge-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .xlarge-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .xlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .large-margin-collapse > .xxlarge-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .xxlarge-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .xxlarge-3 {
    width: 25%;
  }
  .large-margin-collapse > .xxlarge-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .xxlarge-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .xxlarge-6 {
    width: 50%;
  }
  .large-margin-collapse > .xxlarge-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .xxlarge-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .xxlarge-9 {
    width: 75%;
  }
  .large-margin-collapse > .xxlarge-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .xxlarge-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .xxlarge-12 {
    width: 100%;
  }
}
@media screen and (min-width: 120em) {
  .large-margin-collapse > .wide-1 {
    width: 8.3333333333%;
  }
  .large-margin-collapse > .wide-2 {
    width: 16.6666666667%;
  }
  .large-margin-collapse > .wide-3 {
    width: 25%;
  }
  .large-margin-collapse > .wide-4 {
    width: 33.3333333333%;
  }
  .large-margin-collapse > .wide-5 {
    width: 41.6666666667%;
  }
  .large-margin-collapse > .wide-6 {
    width: 50%;
  }
  .large-margin-collapse > .wide-7 {
    width: 58.3333333333%;
  }
  .large-margin-collapse > .wide-8 {
    width: 66.6666666667%;
  }
  .large-margin-collapse > .wide-9 {
    width: 75%;
  }
  .large-margin-collapse > .wide-10 {
    width: 83.3333333333%;
  }
  .large-margin-collapse > .wide-11 {
    width: 91.6666666667%;
  }
  .large-margin-collapse > .wide-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;
  }
}

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

@media screen and (min-width: 80em) {
  .xlarge-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xlarge-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

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

@media screen and (min-width: 103.125em) {
  .xxlarge-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .xxlarge-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0;
  }
}

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

@media screen and (min-width: 120em) {
  .wide-padding-collapse {
    margin-right: 0;
    margin-left: 0;
  }
  .wide-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% + 3rem / 2);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  .medium-offset-0 {
    margin-left: 0%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.6666666667% + 3rem / 2);
  }
}
@media print, screen and (min-width: 48.875em) {
  .tablet-offset-0 {
    margin-left: 0%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-margin-x > .tablet-offset-11 {
    margin-left: calc(91.6666666667% + 3rem / 2);
  }
}
@media print, screen and (min-width: 64em) {
  .large-offset-0 {
    margin-left: 0%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.6666666667% + 3rem / 2);
  }
}
@media screen and (min-width: 80em) {
  .xlarge-offset-0 {
    margin-left: 0%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-margin-x > .xlarge-offset-11 {
    margin-left: calc(91.6666666667% + 3rem / 2);
  }
}
@media screen and (min-width: 103.125em) {
  .xxlarge-offset-0 {
    margin-left: 0%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-margin-x > .xxlarge-offset-11 {
    margin-left: calc(91.6666666667% + 3rem / 2);
  }
}
@media screen and (min-width: 120em) {
  .wide-offset-0 {
    margin-left: 0%;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .grid-margin-x > .wide-offset-11 {
    margin-left: calc(91.6666666667% + 3rem / 2);
  }
}
.grid-y {
  display: flex;
  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 {
  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 {
    flex-basis: auto;
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-y > .tablet-shrink, .grid-y > .tablet-full, .grid-y > .tablet-1, .grid-y > .tablet-2, .grid-y > .tablet-3, .grid-y > .tablet-4, .grid-y > .tablet-5, .grid-y > .tablet-6, .grid-y > .tablet-7, .grid-y > .tablet-8, .grid-y > .tablet-9, .grid-y > .tablet-10, .grid-y > .tablet-11, .grid-y > .tablet-12 {
    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 {
    flex-basis: auto;
  }
}
@media screen and (min-width: 80em) {
  .grid-y > .xlarge-shrink, .grid-y > .xlarge-full, .grid-y > .xlarge-1, .grid-y > .xlarge-2, .grid-y > .xlarge-3, .grid-y > .xlarge-4, .grid-y > .xlarge-5, .grid-y > .xlarge-6, .grid-y > .xlarge-7, .grid-y > .xlarge-8, .grid-y > .xlarge-9, .grid-y > .xlarge-10, .grid-y > .xlarge-11, .grid-y > .xlarge-12 {
    flex-basis: auto;
  }
}
@media screen and (min-width: 103.125em) {
  .grid-y > .xxlarge-shrink, .grid-y > .xxlarge-full, .grid-y > .xxlarge-1, .grid-y > .xxlarge-2, .grid-y > .xxlarge-3, .grid-y > .xxlarge-4, .grid-y > .xxlarge-5, .grid-y > .xxlarge-6, .grid-y > .xxlarge-7, .grid-y > .xxlarge-8, .grid-y > .xxlarge-9, .grid-y > .xxlarge-10, .grid-y > .xxlarge-11, .grid-y > .xxlarge-12 {
    flex-basis: auto;
  }
}
@media screen and (min-width: 120em) {
  .grid-y > .wide-shrink, .grid-y > .wide-full, .grid-y > .wide-1, .grid-y > .wide-2, .grid-y > .wide-3, .grid-y > .wide-4, .grid-y > .wide-5, .grid-y > .wide-6, .grid-y > .wide-7, .grid-y > .wide-8, .grid-y > .wide-9, .grid-y > .wide-10, .grid-y > .wide-11, .grid-y > .wide-12 {
    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 {
  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 {
    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 {
    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: 48.875em) {
  .grid-y > .tablet-auto {
    flex: 1 1 0;
    height: auto;
  }
  .grid-y > .tablet-12, .grid-y > .tablet-11, .grid-y > .tablet-10, .grid-y > .tablet-9, .grid-y > .tablet-8, .grid-y > .tablet-7, .grid-y > .tablet-6, .grid-y > .tablet-5, .grid-y > .tablet-4, .grid-y > .tablet-3, .grid-y > .tablet-2, .grid-y > .tablet-1, .grid-y > .tablet-shrink {
    flex: 0 0 auto;
  }
  .grid-y > .tablet-shrink {
    height: auto;
  }
  .grid-y > .tablet-1 {
    height: 8.3333333333%;
  }
  .grid-y > .tablet-2 {
    height: 16.6666666667%;
  }
  .grid-y > .tablet-3 {
    height: 25%;
  }
  .grid-y > .tablet-4 {
    height: 33.3333333333%;
  }
  .grid-y > .tablet-5 {
    height: 41.6666666667%;
  }
  .grid-y > .tablet-6 {
    height: 50%;
  }
  .grid-y > .tablet-7 {
    height: 58.3333333333%;
  }
  .grid-y > .tablet-8 {
    height: 66.6666666667%;
  }
  .grid-y > .tablet-9 {
    height: 75%;
  }
  .grid-y > .tablet-10 {
    height: 83.3333333333%;
  }
  .grid-y > .tablet-11 {
    height: 91.6666666667%;
  }
  .grid-y > .tablet-12 {
    height: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-y > .large-auto {
    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 {
    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%;
  }
}
@media screen and (min-width: 80em) {
  .grid-y > .xlarge-auto {
    flex: 1 1 0;
    height: auto;
  }
  .grid-y > .xlarge-12, .grid-y > .xlarge-11, .grid-y > .xlarge-10, .grid-y > .xlarge-9, .grid-y > .xlarge-8, .grid-y > .xlarge-7, .grid-y > .xlarge-6, .grid-y > .xlarge-5, .grid-y > .xlarge-4, .grid-y > .xlarge-3, .grid-y > .xlarge-2, .grid-y > .xlarge-1, .grid-y > .xlarge-shrink {
    flex: 0 0 auto;
  }
  .grid-y > .xlarge-shrink {
    height: auto;
  }
  .grid-y > .xlarge-1 {
    height: 8.3333333333%;
  }
  .grid-y > .xlarge-2 {
    height: 16.6666666667%;
  }
  .grid-y > .xlarge-3 {
    height: 25%;
  }
  .grid-y > .xlarge-4 {
    height: 33.3333333333%;
  }
  .grid-y > .xlarge-5 {
    height: 41.6666666667%;
  }
  .grid-y > .xlarge-6 {
    height: 50%;
  }
  .grid-y > .xlarge-7 {
    height: 58.3333333333%;
  }
  .grid-y > .xlarge-8 {
    height: 66.6666666667%;
  }
  .grid-y > .xlarge-9 {
    height: 75%;
  }
  .grid-y > .xlarge-10 {
    height: 83.3333333333%;
  }
  .grid-y > .xlarge-11 {
    height: 91.6666666667%;
  }
  .grid-y > .xlarge-12 {
    height: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .grid-y > .xxlarge-auto {
    flex: 1 1 0;
    height: auto;
  }
  .grid-y > .xxlarge-12, .grid-y > .xxlarge-11, .grid-y > .xxlarge-10, .grid-y > .xxlarge-9, .grid-y > .xxlarge-8, .grid-y > .xxlarge-7, .grid-y > .xxlarge-6, .grid-y > .xxlarge-5, .grid-y > .xxlarge-4, .grid-y > .xxlarge-3, .grid-y > .xxlarge-2, .grid-y > .xxlarge-1, .grid-y > .xxlarge-shrink {
    flex: 0 0 auto;
  }
  .grid-y > .xxlarge-shrink {
    height: auto;
  }
  .grid-y > .xxlarge-1 {
    height: 8.3333333333%;
  }
  .grid-y > .xxlarge-2 {
    height: 16.6666666667%;
  }
  .grid-y > .xxlarge-3 {
    height: 25%;
  }
  .grid-y > .xxlarge-4 {
    height: 33.3333333333%;
  }
  .grid-y > .xxlarge-5 {
    height: 41.6666666667%;
  }
  .grid-y > .xxlarge-6 {
    height: 50%;
  }
  .grid-y > .xxlarge-7 {
    height: 58.3333333333%;
  }
  .grid-y > .xxlarge-8 {
    height: 66.6666666667%;
  }
  .grid-y > .xxlarge-9 {
    height: 75%;
  }
  .grid-y > .xxlarge-10 {
    height: 83.3333333333%;
  }
  .grid-y > .xxlarge-11 {
    height: 91.6666666667%;
  }
  .grid-y > .xxlarge-12 {
    height: 100%;
  }
}
@media screen and (min-width: 120em) {
  .grid-y > .wide-auto {
    flex: 1 1 0;
    height: auto;
  }
  .grid-y > .wide-12, .grid-y > .wide-11, .grid-y > .wide-10, .grid-y > .wide-9, .grid-y > .wide-8, .grid-y > .wide-7, .grid-y > .wide-6, .grid-y > .wide-5, .grid-y > .wide-4, .grid-y > .wide-3, .grid-y > .wide-2, .grid-y > .wide-1, .grid-y > .wide-shrink {
    flex: 0 0 auto;
  }
  .grid-y > .wide-shrink {
    height: auto;
  }
  .grid-y > .wide-1 {
    height: 8.3333333333%;
  }
  .grid-y > .wide-2 {
    height: 16.6666666667%;
  }
  .grid-y > .wide-3 {
    height: 25%;
  }
  .grid-y > .wide-4 {
    height: 33.3333333333%;
  }
  .grid-y > .wide-5 {
    height: 41.6666666667%;
  }
  .grid-y > .wide-6 {
    height: 50%;
  }
  .grid-y > .wide-7 {
    height: 58.3333333333%;
  }
  .grid-y > .wide-8 {
    height: 66.6666666667%;
  }
  .grid-y > .wide-9 {
    height: 75%;
  }
  .grid-y > .wide-10 {
    height: 83.3333333333%;
  }
  .grid-y > .wide-11 {
    height: 91.6666666667%;
  }
  .grid-y > .wide-12 {
    height: 100%;
  }
}

.grid-padding-y .grid-padding-y {
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
}
.grid-padding-y > .cell {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.grid-margin-y {
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
}
.grid-margin-y > .cell {
  height: calc(100% - 3rem);
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.grid-margin-y > .auto {
  height: auto;
}
.grid-margin-y > .shrink {
  height: auto;
}
.grid-margin-y > .small-1 {
  height: calc(8.3333333333% - 3rem);
}
.grid-margin-y > .small-2 {
  height: calc(16.6666666667% - 3rem);
}
.grid-margin-y > .small-3 {
  height: calc(25% - 3rem);
}
.grid-margin-y > .small-4 {
  height: calc(33.3333333333% - 3rem);
}
.grid-margin-y > .small-5 {
  height: calc(41.6666666667% - 3rem);
}
.grid-margin-y > .small-6 {
  height: calc(50% - 3rem);
}
.grid-margin-y > .small-7 {
  height: calc(58.3333333333% - 3rem);
}
.grid-margin-y > .small-8 {
  height: calc(66.6666666667% - 3rem);
}
.grid-margin-y > .small-9 {
  height: calc(75% - 3rem);
}
.grid-margin-y > .small-10 {
  height: calc(83.3333333333% - 3rem);
}
.grid-margin-y > .small-11 {
  height: calc(91.6666666667% - 3rem);
}
.grid-margin-y > .small-12 {
  height: calc(100% - 3rem);
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y > .medium-auto {
    height: auto;
  }
  .grid-margin-y > .medium-shrink {
    height: auto;
  }
  .grid-margin-y > .medium-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .medium-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .medium-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .medium-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-12 {
    height: calc(100% - 3rem);
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-margin-y > .tablet-auto {
    height: auto;
  }
  .grid-margin-y > .tablet-shrink {
    height: auto;
  }
  .grid-margin-y > .tablet-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .tablet-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .tablet-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .tablet-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-12 {
    height: calc(100% - 3rem);
  }
}
@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% - 3rem);
  }
  .grid-margin-y > .large-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .large-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .large-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .large-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .large-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .large-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .large-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .large-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .large-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .large-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .large-12 {
    height: calc(100% - 3rem);
  }
}
@media screen and (min-width: 80em) {
  .grid-margin-y > .xlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xlarge-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .xlarge-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .xlarge-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .xlarge-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-12 {
    height: calc(100% - 3rem);
  }
}
@media screen and (min-width: 103.125em) {
  .grid-margin-y > .xxlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xxlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xxlarge-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .xxlarge-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .xxlarge-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .xxlarge-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-12 {
    height: calc(100% - 3rem);
  }
}
@media screen and (min-width: 120em) {
  .grid-margin-y > .wide-auto {
    height: auto;
  }
  .grid-margin-y > .wide-shrink {
    height: auto;
  }
  .grid-margin-y > .wide-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .wide-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .wide-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .wide-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-12 {
    height: calc(100% - 3rem);
  }
}

.grid-frame {
  overflow: hidden;
  position: relative;
  flex-wrap: nowrap;
  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: flex;
  flex-direction: column;
  max-height: 100%;
}
.cell-block-container > .grid-x {
  max-height: 100%;
  flex-wrap: nowrap;
}

@media print, screen and (min-width: 40em) {
  .medium-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    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: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .medium-cell-block-container > .grid-x {
    max-height: 100%;
    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: 48.875em) {
  .tablet-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }

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

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

  .tablet-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .tablet-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }

  .tablet-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;
    flex-wrap: nowrap;
    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: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .large-cell-block-container > .grid-x {
    max-height: 100%;
    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;
  }
}
@media screen and (min-width: 80em) {
  .xlarge-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }

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

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

  .xlarge-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .xlarge-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }

  .xlarge-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}
@media screen and (min-width: 103.125em) {
  .xxlarge-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }

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

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

  .xxlarge-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .xxlarge-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }

  .xxlarge-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}
@media screen and (min-width: 120em) {
  .wide-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100vw;
  }

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

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

  .wide-cell-block-container {
    display: flex;
    flex-direction: column;
    max-height: 100%;
  }
  .wide-cell-block-container > .grid-x {
    max-height: 100%;
    flex-wrap: nowrap;
  }

  .wide-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;
  flex-wrap: nowrap;
  align-items: stretch;
  height: 100vh;
  width: auto;
}
@media print, screen and (min-width: 40em) {
  .grid-y.medium-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
    width: auto;
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-y.tablet-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
    width: auto;
  }
}
@media print, screen and (min-width: 64em) {
  .grid-y.large-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
    width: auto;
  }
}
@media screen and (min-width: 80em) {
  .grid-y.xlarge-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
    width: auto;
  }
}
@media screen and (min-width: 103.125em) {
  .grid-y.xxlarge-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    align-items: stretch;
    height: 100vh;
    width: auto;
  }
}
@media screen and (min-width: 120em) {
  .grid-y.wide-grid-frame {
    overflow: hidden;
    position: relative;
    flex-wrap: nowrap;
    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: 48.875em) {
  .cell .grid-y.tablet-grid-frame {
    height: 100%;
  }
}
@media print, screen and (min-width: 64em) {
  .cell .grid-y.large-grid-frame {
    height: 100%;
  }
}
@media screen and (min-width: 80em) {
  .cell .grid-y.xlarge-grid-frame {
    height: 100%;
  }
}
@media screen and (min-width: 103.125em) {
  .cell .grid-y.xxlarge-grid-frame {
    height: 100%;
  }
}
@media screen and (min-width: 120em) {
  .cell .grid-y.wide-grid-frame {
    height: 100%;
  }
}

.grid-margin-y {
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
}
.grid-margin-y > .cell {
  height: calc(100% - 3rem);
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.grid-margin-y > .auto {
  height: auto;
}
.grid-margin-y > .shrink {
  height: auto;
}
.grid-margin-y > .small-1 {
  height: calc(8.3333333333% - 3rem);
}
.grid-margin-y > .small-2 {
  height: calc(16.6666666667% - 3rem);
}
.grid-margin-y > .small-3 {
  height: calc(25% - 3rem);
}
.grid-margin-y > .small-4 {
  height: calc(33.3333333333% - 3rem);
}
.grid-margin-y > .small-5 {
  height: calc(41.6666666667% - 3rem);
}
.grid-margin-y > .small-6 {
  height: calc(50% - 3rem);
}
.grid-margin-y > .small-7 {
  height: calc(58.3333333333% - 3rem);
}
.grid-margin-y > .small-8 {
  height: calc(66.6666666667% - 3rem);
}
.grid-margin-y > .small-9 {
  height: calc(75% - 3rem);
}
.grid-margin-y > .small-10 {
  height: calc(83.3333333333% - 3rem);
}
.grid-margin-y > .small-11 {
  height: calc(91.6666666667% - 3rem);
}
.grid-margin-y > .small-12 {
  height: calc(100% - 3rem);
}
@media print, screen and (min-width: 40em) {
  .grid-margin-y > .medium-auto {
    height: auto;
  }
  .grid-margin-y > .medium-shrink {
    height: auto;
  }
  .grid-margin-y > .medium-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .medium-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .medium-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .medium-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .medium-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .medium-12 {
    height: calc(100% - 3rem);
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-margin-y > .tablet-auto {
    height: auto;
  }
  .grid-margin-y > .tablet-shrink {
    height: auto;
  }
  .grid-margin-y > .tablet-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .tablet-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .tablet-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .tablet-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .tablet-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .tablet-12 {
    height: calc(100% - 3rem);
  }
}
@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% - 3rem);
  }
  .grid-margin-y > .large-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .large-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .large-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .large-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .large-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .large-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .large-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .large-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .large-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .large-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .large-12 {
    height: calc(100% - 3rem);
  }
}
@media screen and (min-width: 80em) {
  .grid-margin-y > .xlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xlarge-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .xlarge-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .xlarge-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .xlarge-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .xlarge-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .xlarge-12 {
    height: calc(100% - 3rem);
  }
}
@media screen and (min-width: 103.125em) {
  .grid-margin-y > .xxlarge-auto {
    height: auto;
  }
  .grid-margin-y > .xxlarge-shrink {
    height: auto;
  }
  .grid-margin-y > .xxlarge-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .xxlarge-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .xxlarge-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .xxlarge-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .xxlarge-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .xxlarge-12 {
    height: calc(100% - 3rem);
  }
}
@media screen and (min-width: 120em) {
  .grid-margin-y > .wide-auto {
    height: auto;
  }
  .grid-margin-y > .wide-shrink {
    height: auto;
  }
  .grid-margin-y > .wide-1 {
    height: calc(8.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-2 {
    height: calc(16.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-3 {
    height: calc(25% - 3rem);
  }
  .grid-margin-y > .wide-4 {
    height: calc(33.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-5 {
    height: calc(41.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-6 {
    height: calc(50% - 3rem);
  }
  .grid-margin-y > .wide-7 {
    height: calc(58.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-8 {
    height: calc(66.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-9 {
    height: calc(75% - 3rem);
  }
  .grid-margin-y > .wide-10 {
    height: calc(83.3333333333% - 3rem);
  }
  .grid-margin-y > .wide-11 {
    height: calc(91.6666666667% - 3rem);
  }
  .grid-margin-y > .wide-12 {
    height: calc(100% - 3rem);
  }
}

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

@media print, screen and (min-width: 40em) {
  .grid-margin-y.medium-grid-frame {
    height: calc(100vh + 3rem);
  }
}
@media print, screen and (min-width: 48.875em) {
  .grid-margin-y.tablet-grid-frame {
    height: calc(100vh + 3rem);
  }
}
@media print, screen and (min-width: 64em) {
  .grid-margin-y.large-grid-frame {
    height: calc(100vh + 3rem);
  }
}
@media screen and (min-width: 80em) {
  .grid-margin-y.xlarge-grid-frame {
    height: calc(100vh + 3rem);
  }
}
@media screen and (min-width: 103.125em) {
  .grid-margin-y.xxlarge-grid-frame {
    height: calc(100vh + 3rem);
  }
}
@media screen and (min-width: 120em) {
  .grid-margin-y.wide-grid-frame {
    height: calc(100vh + 3rem);
  }
}
.button, .gdpr-framework-privacy-tools .button,
#gdpr-submit {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 1rem;
  font-weight: bold;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
}
[data-whatinput=mouse] .button,
[data-whatinput=mouse] #gdpr-submit {
  outline: 0;
}
.button.tiny,
.tiny#gdpr-submit {
  font-size: 0.6rem;
}
.button.small,
.small#gdpr-submit {
  font-size: 0.75rem;
}
.button.large,
.large#gdpr-submit {
  font-size: 1.25rem;
}
.button.expanded,
.expanded#gdpr-submit {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}
.button, .gdpr-framework-privacy-tools .button,
#gdpr-submit, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
  background-color: #000;
  color: #fefefe;
}
.button:hover,
#gdpr-submit:hover, .button:focus,
#gdpr-submit:focus {
  background-color: #555;
  color: #fefefe;
}
.button.primary,
.primary#gdpr-submit, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
  background-color: #000;
  color: #fefefe;
}
.button.primary:hover,
.primary#gdpr-submit:hover, .button.primary:focus,
.primary#gdpr-submit:focus {
  background-color: black;
  color: #fefefe;
}
.button.secondary,
.secondary#gdpr-submit, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
  background-color: #6f818e;
  color: #000;
}
.button.secondary:hover,
.secondary#gdpr-submit:hover, .button.secondary:focus,
.secondary#gdpr-submit:focus {
  background-color: #596772;
  color: #000;
}
.button.success,
.success#gdpr-submit, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
  background-color: #3adb76;
  color: #000;
}
.button.success:hover,
.success#gdpr-submit:hover, .button.success:focus,
.success#gdpr-submit:focus {
  background-color: #22bb5b;
  color: #000;
}
.button.warning,
.warning#gdpr-submit, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
  background-color: #ffae00;
  color: #000;
}
.button.warning:hover,
.warning#gdpr-submit:hover, .button.warning:focus,
.warning#gdpr-submit:focus {
  background-color: #cc8b00;
  color: #000;
}
.button.alert,
.alert#gdpr-submit, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
  background-color: #cc4b37;
  color: #000;
}
.button.alert:hover,
.alert#gdpr-submit:hover, .button.alert:focus,
.alert#gdpr-submit:focus {
  background-color: #a53b2a;
  color: #000;
}
.button.hollow,
.hollow#gdpr-submit, .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,
.hollow#gdpr-submit, .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 #000;
  color: #000;
}
.button.hollow:hover,
.hollow#gdpr-submit:hover, .button.hollow:focus,
.hollow#gdpr-submit:focus {
  border-color: black;
  color: black;
}
.button.hollow.primary,
.hollow.primary#gdpr-submit, .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 #000;
  color: #000;
}
.button.hollow.primary:hover,
.hollow.primary#gdpr-submit:hover, .button.hollow.primary:focus,
.hollow.primary#gdpr-submit:focus {
  border-color: black;
  color: black;
}
.button.hollow.secondary,
.hollow.secondary#gdpr-submit, .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 #6f818e;
  color: #6f818e;
}
.button.hollow.secondary:hover,
.hollow.secondary#gdpr-submit:hover, .button.hollow.secondary:focus,
.hollow.secondary#gdpr-submit:focus {
  border-color: #384147;
  color: #384147;
}
.button.hollow.success,
.hollow.success#gdpr-submit, .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,
.hollow.success#gdpr-submit:hover, .button.hollow.success:focus,
.hollow.success#gdpr-submit:focus {
  border-color: #157539;
  color: #157539;
}
.button.hollow.warning,
.hollow.warning#gdpr-submit, .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,
.hollow.warning#gdpr-submit:hover, .button.hollow.warning:focus,
.hollow.warning#gdpr-submit:focus {
  border-color: #805700;
  color: #805700;
}
.button.hollow.alert,
.hollow.alert#gdpr-submit, .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,
.hollow.alert#gdpr-submit:hover, .button.hollow.alert:focus,
.hollow.alert#gdpr-submit:focus {
  border-color: #67251a;
  color: #67251a;
}
.button.clear,
.clear#gdpr-submit, .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,
.clear#gdpr-submit, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
  color: #000;
}
.button.clear:hover,
.clear#gdpr-submit:hover, .button.clear:focus,
.clear#gdpr-submit:focus {
  color: black;
}
.button.clear.primary,
.clear.primary#gdpr-submit, .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: #000;
}
.button.clear.primary:hover,
.clear.primary#gdpr-submit:hover, .button.clear.primary:focus,
.clear.primary#gdpr-submit:focus {
  color: black;
}
.button.clear.secondary,
.clear.secondary#gdpr-submit, .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: #6f818e;
}
.button.clear.secondary:hover,
.clear.secondary#gdpr-submit:hover, .button.clear.secondary:focus,
.clear.secondary#gdpr-submit:focus {
  color: #384147;
}
.button.clear.success,
.clear.success#gdpr-submit, .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: #3adb76;
}
.button.clear.success:hover,
.clear.success#gdpr-submit:hover, .button.clear.success:focus,
.clear.success#gdpr-submit:focus {
  color: #157539;
}
.button.clear.warning,
.clear.warning#gdpr-submit, .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: #ffae00;
}
.button.clear.warning:hover,
.clear.warning#gdpr-submit:hover, .button.clear.warning:focus,
.clear.warning#gdpr-submit:focus {
  color: #805700;
}
.button.clear.alert,
.clear.alert#gdpr-submit, .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: #cc4b37;
}
.button.clear.alert:hover,
.clear.alert#gdpr-submit:hover, .button.clear.alert:focus,
.clear.alert#gdpr-submit:focus {
  color: #67251a;
}
.button.disabled,
.disabled#gdpr-submit, .button[disabled],
[disabled]#gdpr-submit {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.dropdown::after,
.dropdown#gdpr-submit::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,
.dropdown.hollow#gdpr-submit::after, .button.dropdown.clear::after,
.dropdown.clear#gdpr-submit::after {
  border-top-color: #000;
}
.button.dropdown.hollow.primary::after,
.dropdown.hollow.primary#gdpr-submit::after, .button.dropdown.clear.primary::after,
.dropdown.clear.primary#gdpr-submit::after {
  border-top-color: #000;
}
.button.dropdown.hollow.secondary::after,
.dropdown.hollow.secondary#gdpr-submit::after, .button.dropdown.clear.secondary::after,
.dropdown.clear.secondary#gdpr-submit::after {
  border-top-color: #6f818e;
}
.button.dropdown.hollow.success::after,
.dropdown.hollow.success#gdpr-submit::after, .button.dropdown.clear.success::after,
.dropdown.clear.success#gdpr-submit::after {
  border-top-color: #3adb76;
}
.button.dropdown.hollow.warning::after,
.dropdown.hollow.warning#gdpr-submit::after, .button.dropdown.clear.warning::after,
.dropdown.clear.warning#gdpr-submit::after {
  border-top-color: #ffae00;
}
.button.dropdown.hollow.alert::after,
.dropdown.hollow.alert#gdpr-submit::after, .button.dropdown.clear.alert::after,
.dropdown.clear.alert#gdpr-submit::after {
  border-top-color: #cc4b37;
}
.button.arrow-only::after,
.arrow-only#gdpr-submit::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

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

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

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

thead {
  background: #000;
  color: #fefefe;
}

tfoot {
  background: #f1f1f1;
  color: #000;
}

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: 48.87375em) {
  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: black;
}
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;
}

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(0, 0, 0, 0.45);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.reveal {
  z-index: 1006;
  backface-visibility: hidden;
  display: none;
  padding: 2rem;
  border: 1px solid #808080;
  border-radius: 0;
  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: 1000px;
    max-width: 1400px;
  }
}
.reveal.collapse {
  padding: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 1400px;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 1400px;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 1400px;
  }
}
.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;
}

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

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

.align-center {
  justify-content: center;
}

.align-justify {
  justify-content: space-between;
}

.align-spaced {
  justify-content: space-around;
}

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

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

.align-center.vertical.menu > li > a {
  justify-content: center;
}

.align-top {
  align-items: flex-start;
}

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

.align-bottom {
  align-items: flex-end;
}

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

.align-middle {
  align-items: center;
}

.align-self-middle {
  align-self: center;
}

.align-stretch {
  align-items: stretch;
}

.align-self-stretch {
  align-self: stretch;
}

.align-center-middle {
  justify-content: center;
  align-items: center;
  align-content: center;
}

.small-order-1 {
  order: 1;
}

.small-order-2 {
  order: 2;
}

.small-order-3 {
  order: 3;
}

.small-order-4 {
  order: 4;
}

.small-order-5 {
  order: 5;
}

.small-order-6 {
  order: 6;
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    order: 1;
  }

  .medium-order-2 {
    order: 2;
  }

  .medium-order-3 {
    order: 3;
  }

  .medium-order-4 {
    order: 4;
  }

  .medium-order-5 {
    order: 5;
  }

  .medium-order-6 {
    order: 6;
  }
}
@media print, screen and (min-width: 48.875em) {
  .tablet-order-1 {
    order: 1;
  }

  .tablet-order-2 {
    order: 2;
  }

  .tablet-order-3 {
    order: 3;
  }

  .tablet-order-4 {
    order: 4;
  }

  .tablet-order-5 {
    order: 5;
  }

  .tablet-order-6 {
    order: 6;
  }
}
@media print, screen and (min-width: 64em) {
  .large-order-1 {
    order: 1;
  }

  .large-order-2 {
    order: 2;
  }

  .large-order-3 {
    order: 3;
  }

  .large-order-4 {
    order: 4;
  }

  .large-order-5 {
    order: 5;
  }

  .large-order-6 {
    order: 6;
  }
}
@media screen and (min-width: 80em) {
  .xlarge-order-1 {
    order: 1;
  }

  .xlarge-order-2 {
    order: 2;
  }

  .xlarge-order-3 {
    order: 3;
  }

  .xlarge-order-4 {
    order: 4;
  }

  .xlarge-order-5 {
    order: 5;
  }

  .xlarge-order-6 {
    order: 6;
  }
}
@media screen and (min-width: 103.125em) {
  .xxlarge-order-1 {
    order: 1;
  }

  .xxlarge-order-2 {
    order: 2;
  }

  .xxlarge-order-3 {
    order: 3;
  }

  .xxlarge-order-4 {
    order: 4;
  }

  .xxlarge-order-5 {
    order: 5;
  }

  .xxlarge-order-6 {
    order: 6;
  }
}
@media screen and (min-width: 120em) {
  .wide-order-1 {
    order: 1;
  }

  .wide-order-2 {
    order: 2;
  }

  .wide-order-3 {
    order: 3;
  }

  .wide-order-4 {
    order: 4;
  }

  .wide-order-5 {
    order: 5;
  }

  .wide-order-6 {
    order: 6;
  }
}
.flex-container {
  display: flex;
}

.flex-child-auto {
  flex: 1 1 auto;
}

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

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

.flex-dir-row {
  flex-direction: row;
}

.flex-dir-row-reverse {
  flex-direction: row-reverse;
}

.flex-dir-column {
  flex-direction: column;
}

.flex-dir-column-reverse {
  flex-direction: column-reverse;
}

@media print, screen and (min-width: 40em) {
  .medium-flex-container {
    display: flex;
  }

  .medium-flex-child-auto {
    flex: 1 1 auto;
  }

  .medium-flex-child-grow {
    flex: 1 0 auto;
  }

  .medium-flex-child-shrink {
    flex: 0 1 auto;
  }

  .medium-flex-dir-row {
    flex-direction: row;
  }

  .medium-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }

  .medium-flex-dir-column {
    flex-direction: column;
  }

  .medium-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 48.875em) {
  .tablet-flex-container {
    display: flex;
  }

  .tablet-flex-child-auto {
    flex: 1 1 auto;
  }

  .tablet-flex-child-grow {
    flex: 1 0 auto;
  }

  .tablet-flex-child-shrink {
    flex: 0 1 auto;
  }

  .tablet-flex-dir-row {
    flex-direction: row;
  }

  .tablet-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }

  .tablet-flex-dir-column {
    flex-direction: column;
  }

  .tablet-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: flex;
  }

  .large-flex-child-auto {
    flex: 1 1 auto;
  }

  .large-flex-child-grow {
    flex: 1 0 auto;
  }

  .large-flex-child-shrink {
    flex: 0 1 auto;
  }

  .large-flex-dir-row {
    flex-direction: row;
  }

  .large-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }

  .large-flex-dir-column {
    flex-direction: column;
  }

  .large-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media screen and (min-width: 80em) {
  .xlarge-flex-container {
    display: flex;
  }

  .xlarge-flex-child-auto {
    flex: 1 1 auto;
  }

  .xlarge-flex-child-grow {
    flex: 1 0 auto;
  }

  .xlarge-flex-child-shrink {
    flex: 0 1 auto;
  }

  .xlarge-flex-dir-row {
    flex-direction: row;
  }

  .xlarge-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }

  .xlarge-flex-dir-column {
    flex-direction: column;
  }

  .xlarge-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media screen and (min-width: 103.125em) {
  .xxlarge-flex-container {
    display: flex;
  }

  .xxlarge-flex-child-auto {
    flex: 1 1 auto;
  }

  .xxlarge-flex-child-grow {
    flex: 1 0 auto;
  }

  .xxlarge-flex-child-shrink {
    flex: 0 1 auto;
  }

  .xxlarge-flex-dir-row {
    flex-direction: row;
  }

  .xxlarge-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }

  .xxlarge-flex-dir-column {
    flex-direction: column;
  }

  .xxlarge-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media screen and (min-width: 120em) {
  .wide-flex-container {
    display: flex;
  }

  .wide-flex-child-auto {
    flex: 1 1 auto;
  }

  .wide-flex-child-grow {
    flex: 1 0 auto;
  }

  .wide-flex-child-shrink {
    flex: 0 1 auto;
  }

  .wide-flex-dir-row {
    flex-direction: row;
  }

  .wide-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }

  .wide-flex-dir-column {
    flex-direction: column;
  }

  .wide-flex-dir-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: 48.87375em) {
  .hide-for-medium-only {
    display: none !important;
  }
}

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

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

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

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

@media screen and (max-width: 48.87375em), screen and (min-width: 64em) {
  .show-for-tablet-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: 79.99875em) {
  .hide-for-large-only {
    display: none !important;
  }
}

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

@media screen and (min-width: 80em) {
  .hide-for-xlarge {
    display: none !important;
  }
}

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

@media screen and (min-width: 80em) and (max-width: 103.12375em) {
  .hide-for-xlarge-only {
    display: none !important;
  }
}

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

@media screen and (min-width: 103.125em) {
  .hide-for-xxlarge {
    display: none !important;
  }
}

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

@media screen and (min-width: 103.125em) and (max-width: 119.99875em) {
  .hide-for-xxlarge-only {
    display: none !important;
  }
}

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

@media screen and (min-width: 120em) {
  .hide-for-wide {
    display: none !important;
  }
}

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

@media screen and (min-width: 120em) {
  .hide-for-wide-only {
    display: none !important;
  }
}

@media screen and (max-width: 119.99875em) {
  .show-for-wide-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;
}

.search-overlay .site-search__submit,
.u-screen-reader {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.u-clearfix::before,
.u-clearfix::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.u-clearfix::after {
  clear: both;
}

.wysiwyg a[target=_blank]:not([href$=".pdf"]):after, .u-external-link-black:after,
.u-external-link:after {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-bottom: 3px;
  margin-left: 3px;
  background-image: url("../images/external-link.svg");
  background-size: 8px;
  content: "";
  vertical-align: middle;
}

.u-external-link-black:after {
  background-image: url("../images/external-link-black.svg");
}

.u-photo-bg,
.u-bg-cover {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.u-bg-contain {
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.u-bg-100 {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}

.u-svg-container {
  position: relative;
  width: 100%;
  height: 0;
}
.u-svg-container img,
.u-svg-container svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.u-svg-container--logo {
  padding-bottom: 61.7632070664%;
}

.u-photo-bg {
  padding-bottom: 56.25%;
}
@media print, screen and (min-width: 48.875em) {
  .u-photo-bg {
    padding-bottom: 66.6666666667%;
  }
}
.u-photo-bg--extend-left {
  margin-left: calc(-100vw + 100% + 1.5rem);
}
@media print, screen and (min-width: 48.875em) {
  .u-photo-bg--extend-left {
    margin-left: calc(-50vw + 100% + 1.5rem);
  }
}
.u-photo-bg--extend-right {
  margin-right: calc(-100vw + 100% + 1.5rem);
}
@media print, screen and (min-width: 48.875em) {
  .u-photo-bg--extend-right {
    margin-right: calc(-50vw + 100% + 1.5rem);
  }
}

* {
  -ms-interpolation-mode: nearest-neighbor;
  image-rendering: crisp-edges;
  image-rendering: -moz-crisp-edges;
  image-rendering: -o-crisp-edges;
  image-rendering: -webkit-optimize-contrast;
}

html {
  display: flex;
}
@media print, screen and (min-width: 64em) {
  html {
    font-size: 106.25%;
  }
}
@media screen and (min-width: 80em) {
  html {
    font-size: 112.5%;
  }
}

body {
  display: flex;
  width: 100%;
  min-height: 100vh;
  flex-direction: column;
}
body.admin-bar {
  min-height: calc(100vh - 46px);
}
@media print, screen and (min-width: 48.875em) {
  body.admin-bar {
    min-height: calc(100vh - 32px);
  }
}

a {
  transition: all 0.2s ease-in-out;
  font-weight: bold;
}

address {
  font-style: normal;
}

.js-reveal-slide-up,
.js-reveal-slide-down,
.js-reveal-slide-right,
.js-reveal-slide-left,
.js-reveal-fade,
.js-reveal-slide-right-delayed,
.js-reveal-slide-left-delayed {
  visibility: hidden;
}
.reveal .js-reveal-slide-up,
.reveal .js-reveal-slide-down,
.reveal .js-reveal-slide-right,
.reveal .js-reveal-slide-left,
.reveal .js-reveal-fade,
.reveal .js-reveal-slide-right-delayed,
.reveal .js-reveal-slide-left-delayed {
  visibility: visible;
}

button {
  font-weight: bold;
}

.button, .gdpr-framework-privacy-tools .button,
#gdpr-submit {
  text-transform: uppercase;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
  letter-spacing: 2px;
  background-color: unset;
  border: 3px solid #000;
  color: #000;
  transition: 200ms ease-out;
}
.button:hover,
#gdpr-submit:hover {
  background-color: #000;
  color: #fefefe;
  transform: translateY(-0.25rem);
}
.button.inverted,
.inverted#gdpr-submit {
  border-color: #fefefe;
  color: #fefefe;
}
.button.inverted:hover,
.inverted#gdpr-submit:hover {
  background-color: #272727;
}
.button .hny-svg--chevron-left,
#gdpr-submit .hny-svg--chevron-left {
  margin-right: 0.5rem;
}
.button .hny-svg--external-link,
#gdpr-submit .hny-svg--external-link {
  position: relative;
  top: -1px;
  margin-left: 10px;
}
.button__inner-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}
.button--top-spacing {
  margin-top: 2rem;
}

.button-container--align-center {
  text-align: center;
}
.button-container--align-left {
  text-align: left;
}
.button-container--align-right {
  text-align: right;
}

select {
  padding-right: calc(16px + 1.5em) !important;
  background-image: url("../images/chevron-down.svg");
  background-repeat: no-repeat;
  background-position: right 1em center;
  background-size: 16px 16px;
  background-origin: border-box;
}

.hny .gform_wrapper.gravity-theme .gform_validation_errors,
.hny .gform_wrapper.gravity-theme .validation_message {
  border-radius: 0;
  border-color: #cc4b37;
  background: #fcf6f5;
  color: #cc4b37;
  font-size: 0.75rem;
  font-weight: bold;
  box-shadow: none;
}
.hny .gform_wrapper.gravity-theme .gform_validation_errors {
  margin-top: 0;
  margin-bottom: 1rem;
}
.hny .gform_wrapper.gravity-theme .gform_validation_errors > h2 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  font-size: 0.75rem;
  font-weight: bold;
  line-height: 1.2;
  text-transform: none;
}
.hny .gform_wrapper.gravity-theme .validation_message,
.hny .gform_wrapper.gravity-theme .instruction,
.hny .gform_wrapper.gravity-theme .gfield_validation_message {
  padding: 0.5rem;
  border-radius: 0;
  font-size: 0.75rem;
}
.hny .gform_wrapper.gravity-theme .description,
.hny .gform_wrapper.gravity-theme .gfield_description,
.hny .gform_wrapper.gravity-theme .instruction {
  font-size: 0.75rem;
}
.hny .gform_wrapper.gravity-theme .field_description_above .gfield_description ul {
  margin-bottom: 0;
}
.hny .gform_wrapper.gravity-theme .field_description_above .gfield_description.gfield_validation_message {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.hny .gform_wrapper.gravity-theme [type=file] {
  margin-bottom: 0;
}
.hny .gform_wrapper.gravity-theme .gform_required_legend {
  display: none;
}
.hny .gform_wrapper.gravity-theme .gform_footer,
.hny .gform_wrapper.gravity-theme .gform_page_footer {
  margin-bottom: 0;
  padding-bottom: 0;
}
.hny .gform_wrapper.gravity-theme .gform_footer.left_label, .hny .gform_wrapper.gravity-theme .gform_footer.right_label,
.hny .gform_wrapper.gravity-theme .gform_page_footer.left_label,
.hny .gform_wrapper.gravity-theme .gform_page_footer.right_label {
  padding-left: 0;
}
.hny .gform_wrapper.gravity-theme .gform_footer input,
.hny .gform_wrapper.gravity-theme .gform_footer button,
.hny .gform_wrapper.gravity-theme .gform_page_footer input,
.hny .gform_wrapper.gravity-theme .gform_page_footer button {
  min-height: 0 !important;
  margin-bottom: 0;
  border-radius: 0;
  font-weight: bold;
  line-height: 1 !important;
}
.hny .gform_wrapper.gravity-theme .button,
.hny .gform_wrapper.gravity-theme #gdpr-submit {
  border-radius: 0;
}
.hny .gform_wrapper.gravity-theme .gform_footer .button[type=submit],
.hny .gform_wrapper.gravity-theme .gform_footer [type=submit]#gdpr-submit {
  width: 100%;
  justify-content: center;
}
.hny .gform_wrapper.gravity-theme .gform_footer .button + .button, .hny .gform_wrapper.gravity-theme .gform_footer .gdpr-framework-privacy-tools .button + .button,
.hny .gform_wrapper.gravity-theme .gform_footer #gdpr-submit + .button,
.hny .gform_wrapper.gravity-theme .gform_footer .gdpr-framework-privacy-tools #gdpr-submit + .button,
.hny .gform_wrapper.gravity-theme .gform_footer .button + #gdpr-submit,
.hny .gform_wrapper.gravity-theme .gform_footer .gdpr-framework-privacy-tools .button + #gdpr-submit,
.hny .gform_wrapper.gravity-theme .gform_footer #gdpr-submit + #gdpr-submit {
  margin-left: 0.25rem;
}
.hny .gform_wrapper.gravity-theme .gform_ajax_spinner {
  display: none;
}
.hny .gform_wrapper.gravity-theme input[type=radio],
.hny .gform_wrapper.gravity-theme input[type=checkbox] {
  margin: 0;
}
.hny .gform_wrapper.gravity-theme input[type=radio] + label,
.hny .gform_wrapper.gravity-theme input[type=checkbox] + label {
  margin-left: 0;
}
.hny .gform_wrapper.gravity-theme .gfield_label {
  margin-bottom: 0;
  font-size: 0.875rem;
}
.hny .gform_wrapper.gravity-theme .gfield_error [aria-invalid=true] {
  border-width: 2px;
}
.hny .gform_wrapper.gravity-theme .gfield.remove-indent {
  margin-left: 0;
}
@media screen and (min-width: 40.0625em) {
  .hny .gform_wrapper.gravity-theme .gfield.gf_list_inline .gfield_checkbox .gchoice,
.hny .gform_wrapper.gravity-theme .gfield.gf_list_inline .gfield_radio .gchoice {
    display: inline-flex !important;
  }
}
.hny .gform_wrapper.gravity-theme .gfield + .gsection {
  margin-top: 1.5rem;
}
.hny .gform_wrapper.gravity-theme .gsection_title {
  margin-bottom: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  text-transform: none;
}
.hny .gform_wrapper.gravity-theme input[type=color],
.hny .gform_wrapper.gravity-theme input[type=date],
.hny .gform_wrapper.gravity-theme input[type=datetime-local],
.hny .gform_wrapper.gravity-theme input[type=datetime],
.hny .gform_wrapper.gravity-theme input[type=email],
.hny .gform_wrapper.gravity-theme input[type=month],
.hny .gform_wrapper.gravity-theme input[type=number],
.hny .gform_wrapper.gravity-theme input[type=password],
.hny .gform_wrapper.gravity-theme input[type=search],
.hny .gform_wrapper.gravity-theme input[type=tel],
.hny .gform_wrapper.gravity-theme input[type=text],
.hny .gform_wrapper.gravity-theme input[type=time],
.hny .gform_wrapper.gravity-theme input[type=url],
.hny .gform_wrapper.gravity-theme input[type=week],
.hny .gform_wrapper.gravity-theme select,
.hny .gform_wrapper.gravity-theme textarea {
  border-radius: 0.25rem;
  font-size: 1rem;
}
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice label,
.hny .gform_wrapper.gravity-theme .ginput_container_consent label {
  max-width: 95%;
  margin-right: 0;
  padding-left: 1.625rem;
  text-overflow: inherit;
  overflow: visible;
  position: relative;
  align-items: center;
}
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice label:before,
.hny .gform_wrapper.gravity-theme .ginput_container_consent label:before {
  display: block;
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  border: 1px solid #808080;
  border-radius: 2px;
  box-shadow: 0 0 0 2px #808080 inset;
  content: "";
}
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice label:after,
.hny .gform_wrapper.gravity-theme .ginput_container_consent label:after {
  display: block;
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  content: "";
  transition: ease-in-out 0.1s;
  background-image: url("../images/check.svg");
  opacity: 0;
  background-repeat: no-repeat;
  background-size: 13px 13px;
  background-position: 4px 3px;
}
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice input[type=radio],
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice input[type=checkbox],
.hny .gform_wrapper.gravity-theme .ginput_container_consent input[type=radio],
.hny .gform_wrapper.gravity-theme .ginput_container_consent input[type=checkbox] {
  position: absolute;
  opacity: 0;
  appearance: none;
}
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice input[type=radio]:checked + label:after,
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice input[type=checkbox]:checked + label:after,
.hny .gform_wrapper.gravity-theme .ginput_container_consent input[type=radio]:checked + label:after,
.hny .gform_wrapper.gravity-theme .ginput_container_consent input[type=checkbox]:checked + label:after {
  opacity: 1;
}
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice input[type=radio] + label,
.hny .gform_wrapper.gravity-theme .gfield_checkbox .gchoice input[type=checkbox] + label,
.hny .gform_wrapper.gravity-theme .ginput_container_consent input[type=radio] + label,
.hny .gform_wrapper.gravity-theme .ginput_container_consent input[type=checkbox] + label {
  margin-left: 0;
  font-size: 1rem;
}
.hny .gform_wrapper.gravity-theme .ginput_container_date input {
  width: inherit;
}
.hny .gform_wrapper.gravity-theme .gchoice + .gchoice {
  margin-top: 0.5rem;
}
.hny .gform_wrapper.gravity-theme .ginput_container_consent,
.hny .gform_wrapper.gravity-theme .gchoice {
  display: flex;
  white-space: nowrap;
}
.hny .gform_wrapper.gravity-theme .ginput_container_consent .gfield_required,
.hny .gform_wrapper.gravity-theme .gchoice .gfield_required {
  display: none;
}
.hny .gform_wrapper.gravity-theme .ginput_container_consent input,
.hny .gform_wrapper.gravity-theme .gchoice input {
  margin-top: 0.25em;
}
.hny .gform_wrapper.gravity-theme .ginput_container_consent input + label,
.hny .gform_wrapper.gravity-theme .gchoice input + label {
  margin: 0;
  margin-left: 0.375rem;
  font-size: 0.875rem;
}
.hny .gform_wrapper.gravity-theme .ginput_container_consent label,
.hny .gform_wrapper.gravity-theme .gchoice label {
  max-width: none;
  white-space: normal;
}
.hny .gform_wrapper.gravity-theme .left_label .gfield:not(.gsection):not(.gfield_html):not(fieldset),
.hny .gform_wrapper.gravity-theme .right_label .gfield:not(.gsection):not(.gfield_html):not(fieldset) {
  align-items: center;
}
.hny .gform_wrapper.gravity-theme .ginput_complex .ginput_container_date {
  max-width: none;
  flex: 0 1 auto;
}

@media print, screen and (max-width: 48.87375em) {
  .hny .gform-theme-datepicker:not(.gform-legacy-datepicker) {
    left: 1.5rem !important;
    width: calc(100% - 3rem);
    max-width: calc(100% - 3rem);
  }
  .hny .gform-theme-datepicker:not(.gform-legacy-datepicker) .ui-datepicker-calendar th,
.hny .gform-theme-datepicker:not(.gform-legacy-datepicker) .ui-datepicker-calendar td {
    text-align: center;
  }
  .hny .gform-theme-datepicker:not(.gform-legacy-datepicker) .ui-datepicker-calendar th span {
    width: 30px;
    height: 30px;
    margin: 0 auto;
    font-size: 0.625rem;
  }
  .hny .gform-theme-datepicker:not(.gform-legacy-datepicker) .ui-datepicker-calendar td {
    width: 30px;
    height: 30px;
  }
  .hny .gform-theme-datepicker:not(.gform-legacy-datepicker) .ui-datepicker-calendar td .ui-state-default {
    width: 24px;
    height: 24px;
    margin: 0 auto;
    font-size: 0.75rem;
  }
}

.hny .gform_wrapper.gravity-theme form input[type=text], .hny .gform_wrapper.gravity-theme form input[type=email], .hny .gform_wrapper.gravity-theme form input[type=tel], .hny .gform_wrapper.gravity-theme form input[type=number], .hny .gform_wrapper.gravity-theme form select {
  height: 4rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.hny .gform_wrapper.gravity-theme form textarea {
  padding-top: 1.25rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.hny .gform_wrapper.gravity-theme form input::placeholder, .hny .gform_wrapper.gravity-theme form textarea::placeholder {
  text-transform: uppercase;
  color: #808080;
}
.hny .gform_wrapper.gravity-theme form .gfield_checkbox input.gfield-choice-input {
  top: auto;
}
.hny .gform_wrapper.gravity-theme form .gform_footer .gform_button[type=submit] {
  width: unset;
  border-color: #000;
  color: #000;
}
.hny .gform_wrapper.gravity-theme form .gform_footer .gform_button[type=submit]:hover, .hny .gform_wrapper.gravity-theme form .gform_footer .gform_button[type=submit]:focus {
  background-color: #000;
  color: #fefefe;
}
.hny .gform_wrapper.gravity-theme form .ginput_complex span {
  margin-bottom: 16px;
}
.hny .gform_wrapper.gravity-theme form .ginput_complex span:last-child {
  margin-bottom: 0;
}
@media print, screen and (min-width: 40em) {
  .hny .gform_wrapper.gravity-theme form .ginput_complex span {
    margin-bottom: 0;
  }
}
.hny .gform_wrapper.gravity-theme form#gform_8 {
  opacity: 1 !important;
}

.grid-container--full {
  max-width: none;
  padding: 0;
}
.grid-container--narrow {
  max-width: 933.3333333333px;
}
.grid-container--wide {
  max-width: 2100px;
}
.grid-container .grid-padding-x {
  margin-right: -1.5rem;
  margin-left: -1.5rem;
}
.grid-container .grid-padding-x--small {
  margin-right: -0.75rem;
  margin-left: -0.75rem;
}
.grid-container .grid-padding-x--small > .cell {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
}
.grid-container .grid-padding-y--small > .cell {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.cell--flex {
  display: flex;
}

h1,
h2,
h3,
h4 {
  font-weight: bold;
}

h1.heading, h2.heading {
  margin-bottom: 3rem;
  text-transform: uppercase;
}
.l-block h1.heading, .l-block h2.heading {
  margin-bottom: 2rem;
}
.l-block h1.heading::after, .l-block h2.heading::after {
  content: none;
}

h3 {
  text-transform: uppercase;
}

.heading--align-center {
  text-align: center;
}
.heading--align-left {
  text-align: left;
}
.heading--align-right {
  text-align: right;
}

.hny-svg {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: middle;
  fill: currentColor;
}
.hny-svg path {
  fill: currentColor;
}

.l-hero {
  overflow: hidden;
  position: relative;
  top: -4rem;
  margin-bottom: -4rem;
}

.page-content > .l-container:first-child {
  padding-top: 0;
}
.default-template .page-content > .l-container:first-child {
  padding-top: 3rem;
}

.l-container {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.l-container--small {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.l-container--large {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.l-container--remove-spacing-top {
  padding-top: 0;
}
.l-container--remove-spacing-bottom {
  padding-bottom: 0;
}

.l-footer {
  margin-top: auto;
}

.pagination__wrapper {
  display: flex;
  position: relative;
  text-align: center;
  justify-content: center;
  align-items: center;
}
.pagination__wrapper:before, .pagination__wrapper:after {
  display: block;
  height: 1px;
  background: #e6e6e6;
  content: "";
  flex-grow: 1;
}
.pagination ul {
  display: flex;
  margin: 3rem 0;
  align-items: center;
}
.pagination ul li {
  display: inline-block;
  line-height: 1;
  vertical-align: middle;
}
.pagination ul li a,
.pagination ul li span {
  display: block;
  padding: 0 12px;
  font-weight: normal;
}
.pagination ul li a.next .hny-svg, .pagination ul li a.prev .hny-svg,
.pagination ul li span.next .hny-svg,
.pagination ul li span.prev .hny-svg {
  fill: #000;
}
.pagination ul li a.next:focus .hny-svg, .pagination ul li a.next:hover .hny-svg, .pagination ul li a.prev:focus .hny-svg, .pagination ul li a.prev:hover .hny-svg,
.pagination ul li span.next:focus .hny-svg,
.pagination ul li span.next:hover .hny-svg,
.pagination ul li span.prev:focus .hny-svg,
.pagination ul li span.prev:hover .hny-svg {
  fill: #000;
}
.pagination ul li a.current,
.pagination ul li span.current {
  position: relative;
  color: #fefefe;
  font-weight: bold;
}
.pagination ul li a.current:after,
.pagination ul li span.current:after {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  padding-bottom: 100%;
  transform: translate(-50%, -50%);
  border-radius: 100%;
  background: #000;
  content: "";
  z-index: -1;
}
.pagination ul li.pagination-previous > a, .pagination ul li.pagination-next > a {
  margin: 0 1.5rem;
  font-size: 0.6875rem;
  font-weight: bold;
  text-transform: uppercase;
}

.wysiwyg img {
  max-width: 100%;
  height: auto;
}
.wysiwyg h1,
.wysiwyg h2,
.wysiwyg h3,
.wysiwyg h4,
.wysiwyg h5,
.wysiwyg h6 {
  display: block;
  clear: both;
}
.wysiwyg .alignleft {
  margin: 0.5rem 1rem 0.5rem 0;
  float: left;
}
.wysiwyg .aligncenter {
  display: block;
  margin: 10px auto;
}
.wysiwyg .alignright {
  margin: 0.5rem 0 0.5rem 1rem;
  float: right;
}
.wysiwyg .alignnone {
  display: block;
  margin: 0.5rem 0;
}
.wysiwyg .gallery {
  overflow: hidden;
}
.wysiwyg .gallery .gallery-item {
  width: 0.166666667%;
  margin: 0 0 2%;
}
.wysiwyg .gallery .gallery-item a {
  display: block;
}
.wysiwyg .gallery .gallery-item a img {
  display: block;
}
.wysiwyg .wp-caption > figcaption {
  max-width: 100%;
  padding: 0.25rem 0;
  color: #555;
  font-size: 0.8rem;
}
.wysiwyg p.wp-caption-text {
  padding: 0.625rem 0;
  color: #555;
  font-size: 90%;
}
.wysiwyg p:last-of-type {
  margin-bottom: 0;
}

@media print, screen and (max-width: 48.87375em) {
  .table.stack thead {
    display: none;
  }
  .table.stack tbody tr {
    display: flex;
    flex-direction: column;
  }
}
.table thead th {
  text-transform: uppercase;
}
.table tbody tr.has-link:hover td {
  background: rgba(0, 0, 0, 0.1);
}
.table tbody tr.has-link td {
  position: relative;
  transition: all 0.2s ease-in-out;
}
@media print, screen and (max-width: 48.87375em) {
  .table tbody tr.has-link td[data-label] {
    text-align: right;
  }
  .table tbody tr.has-link td[data-label]:before {
    display: block;
    padding-right: 1.5rem;
    float: left;
    font-weight: bold;
    text-transform: uppercase;
    content: attr(data-label);
  }
}
.table tbody tr.has-link td > a {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.four-oh-four {
  padding-top: 3rem;
  text-align: center;
}
.four-oh-four .button,
.four-oh-four #gdpr-submit {
  margin-top: 1rem;
}

.back-to-top {
  display: inline-block;
  position: fixed;
  right: 0.5rem;
  bottom: 0.5rem;
  width: 40px;
  height: 40px;
  transform: translateY(20px);
  transition: all 0.2s ease-in-out;
  border-radius: 0;
  background: #555;
  color: #fefefe;
  line-height: 45px;
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.25), 0 5px 15px rgba(0, 0, 0, 0.15);
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  z-index: 9997;
}
@media print, screen and (min-width: 64em) {
  .back-to-top {
    right: 1rem;
    bottom: 1rem;
    width: 50px;
    height: 50px;
  }
}
.back-to-top:hover, .back-to-top:focus {
  border-color: #e6e6e6;
  background: #fefefe;
}
.back-to-top:hover .hny-svg, .back-to-top:focus .hny-svg {
  fill: #000;
}
.back-to-top .hny-svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 26px;
  height: 26px;
  margin: -14px 0 0 -13px;
  fill: #fefefe;
}
.back-to-top.is-visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.checklist {
  margin: 0;
  list-style: none;
}
.checklist--two-column {
  column-gap: 1.5rem;
  column-count: 2;
}
.checklist--two-column li {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
  will-change: transform;
}
.checklist li {
  position: relative;
  padding-left: calc(20px + 0.5rem);
}
.checklist li + li {
  margin-top: 0.75rem;
}
.checklist li .hny-svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  fill: #000;
}
.checklist li .hny-svg--warning {
  fill: #ffae00;
}

.close-button {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background-color: #fefefe;
  border: 2px solid #555;
  border-radius: 0;
  font-size: 2rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  z-index: 2;
  transition: all 0.2s ease-in-out;
}
.close-button .hny-svg {
  position: absolute;
  fill: #555;
  transition: all 0.2s ease-in-out;
}
.close-button:hover, .close-button:focus {
  background-color: #555;
  border-color: #555;
}
.close-button:hover .hny-svg, .close-button:focus .hny-svg {
  fill: #fefefe;
}

.colophon {
  position: relative;
  text-align: center;
  z-index: 3;
}
@media print, screen and (min-width: 64em) {
  .colophon {
    display: flex;
    text-align: inherit;
    align-items: center;
    justify-content: space-between;
  }
}
.colophon p {
  margin-bottom: 0;
}
.colophon a {
  display: inline-block;
  padding: 0.25rem;
  line-height: 1.25;
}
@media print, screen and (min-width: 64em) {
  .colophon a {
    display: block;
    padding: 0;
  }
}
@media print, screen and (min-width: 64em) {
  .colophon__legalese {
    display: flex;
    flex-flow: row nowrap;
  }
}
.colophon__credit a {
  font-weight: normal;
}
.colophon__credit a:hover, .colophon__credit a:focus {
  text-decoration: underline;
}

.contact-commercial {
  background-color: #000;
}
.contact-commercial__logo {
  text-align: right;
}
.contact-commercial__logo img {
  max-width: 12rem;
}
.contact-commercial__heading {
  max-width: 46rem;
  margin: auto;
  border: 5px solid;
  padding: 1rem 3rem;
}
.contact-commercial__heading h3 {
  margin-bottom: 0;
  color: #fefefe;
}
.contact-commercial__info {
  color: #fefefe;
  text-transform: uppercase;
}
.contact-commercial__info a:not(.button):not(#gdpr-submit) {
  font-weight: normal;
  color: #fefefe;
}
.contact-commercial__button {
  padding-top: 2rem;
}
.contact-commercial__button a:hover {
  background-color: unset !important;
}
.contact-commercial__stripe {
  height: 4rem;
  background-color: #fefefe;
}

.contact-industrial {
  overflow: hidden;
  padding-bottom: 3rem;
}
.contact-industrial__wrapper {
  background-color: #000;
}
.contact-industrial__content-wrapper {
  height: 100%;
  padding: 3rem 0;
}
.contact-industrial__content {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem;
  text-align: right;
  position: relative;
}
.contact-industrial__content > * {
  position: relative;
  z-index: 1;
}
.contact-industrial__content a {
  font-weight: normal;
}
.contact-industrial__background-image {
  background-size: cover;
  background-position: center center;
  position: absolute;
  z-index: 0;
  width: 100vw;
  height: 100%;
  top: 0;
  right: 0;
}
.contact-industrial__form-wrapper {
  padding: 3rem 6rem;
  position: relative;
}
.contact-industrial__form-wrapper > * {
  position: relative;
  z-index: 1;
}
.contact-industrial__form-background {
  position: absolute;
  z-index: 0;
  background-color: #000;
  width: 100vw;
  height: 100%;
  top: 0;
  left: 0;
}
.contact-industrial .gform_wrapper .gfield_label, .contact-industrial .gform_wrapper .gfield_consent_label, .contact-industrial .gform_wrapper label {
  color: #fefefe;
}
.contact-industrial .gform_wrapper .gfield_checkbox .gchoice label:after,
.contact-industrial .gform_wrapper .ginput_container_consent label:after {
  filter: invert(1);
}
.contact-industrial .gform_wrapper .gfield_checkbox .gchoice {
  display: inline-block;
}
.contact-industrial .gform_wrapper .gfield_checkbox .gchoice label {
  max-width: 100% !important;
}
.contact-industrial .gform_wrapper .gfield_checkbox .gchoice + .gchoice {
  margin-left: 2rem;
}
.contact-industrial .gform_wrapper .gfield_consent_label a {
  color: #fefefe;
}
.contact-industrial .gform_wrapper .gform_button {
  color: #fefefe !important;
}

.contact-info .location-info + .location-info {
  margin-top: 2rem;
}
.contact-info__email {
  margin-top: 2rem;
}
.contact-info__social a {
  font-size: 1.4em;
}

.contact-residential {
  overflow: hidden;
}
.contact-residential__photo-wrapper {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  max-height: 30rem;
}
.contact-residential__photo-wrapper img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}
.contact-residential__content-wrapper {
  height: 100%;
  display: flex;
  align-items: center;
}
.contact-residential__content-wrapper > * {
  text-transform: uppercase;
  font-weight: bold;
}
.contact-residential__heading {
  position: relative;
  margin-bottom: 3rem;
}
.contact-residential .heading-banner {
  position: absolute;
  height: calc(100% + 1rem);
  width: 100vw;
  top: 50%;
  z-index: -1;
}
.contact-residential .heading-banner--left {
  left: 50%;
  transform: translate3d(-100%, -50%, 0);
}
.contact-residential .heading-banner--right {
  left: calc(50% - 1rem);
  transform: translateY(-50%);
}
.contact-residential__title {
  margin-bottom: 1.5rem;
}
.contact-residential__button {
  margin-top: 2.75rem;
}

.content-block--no-background:not(.content-block--no-spacing) + .content-block--no-background:not(.content-block--no-spacing) .l-container {
  padding-top: 0;
}
.content-block--centered {
  text-align: center;
}
.content-block--extra-spacing--top {
  margin-top: 2rem;
}
@media print, screen and (min-width: 48.875em) {
  .content-block--extra-spacing--top {
    margin-top: 3rem;
  }
}
.content-block__wrapper {
  display: flex;
  max-width: 100%;
  flex-direction: column;
  flex: 0 0 100%;
}
.content-block__content {
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.content-block__layout--two-column .cell + .cell .content-block__column, .content-block__layout--three-column .cell + .cell .content-block__column, .content-block__layout--four-column .cell + .cell .content-block__column, .content-block__layout--five-column .cell + .cell .content-block__column {
  margin-top: 1.5rem;
}
@media print, screen and (min-width: 48.875em) {
  .content-block__layout--two-column .cell + .cell .content-block__column, .content-block__layout--three-column .cell + .cell .content-block__column, .content-block__layout--four-column .cell + .cell .content-block__column, .content-block__layout--five-column .cell + .cell .content-block__column {
    margin-top: 0;
  }
}
@media print, screen and (min-width: 48.875em) {
  .content-block__layout--three-column .grid-x, .content-block__layout--four-column .grid-x, .content-block__layout--five-column .grid-x {
    justify-content: center;
  }
}
@media print, screen and (min-width: 48.875em) {
  .content-block__layout--two-column .cell:nth-child(2n+3), .content-block__layout--two-column .cell:nth-child(2n+4) {
    margin-top: 1.5rem;
  }
}
@media print, screen and (min-width: 48.875em) {
  .content-block__layout--three-column .cell:nth-child(6n+4), .content-block__layout--three-column .cell:nth-child(6n+5), .content-block__layout--three-column .cell:nth-child(6n+6) {
    margin-top: 1.5rem;
  }
}
@media print, screen and (min-width: 48.875em) {
  .content-block__layout--four-column .cell:nth-child(8n+5), .content-block__layout--four-column .cell:nth-child(8n+6), .content-block__layout--four-column .cell:nth-child(8n+7), .content-block__layout--four-column .cell:nth-child(8n+8) {
    margin-top: 1.5rem;
  }
}
@media print, screen and (min-width: 48.875em) {
  .content-block__layout--five-column .cell:nth-child(10n+6), .content-block__layout--five-column .cell:nth-child(10n+7), .content-block__layout--five-column .cell:nth-child(10n+8), .content-block__layout--five-column .cell:nth-child(10n+9), .content-block__layout--five-column .cell:nth-child(10n+10) {
    margin-top: 1.5rem;
  }
}
@media screen and (min-width: 103.125em) {
  .content-block--centered .content-block__layout--two-column .content-block__column {
    max-width: 75%;
    margin: 0 auto;
  }
}
.content-block__module:not(.content-block__module--heading) + .content-block__module {
  margin-top: 1rem;
}
.content-block__module {
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.content-block__column {
  display: flex;
  max-width: 100%;
  flex: 0 0 100%;
  flex-direction: column;
}
.content-block__modules {
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.content-block__modules .content-block__module:last-child.content-block__module--button {
  margin-top: auto;
}

.form-pop-up {
  padding-top: 2.5rem;
}
@media print, screen and (min-width: 40em) {
  .form-pop-up {
    width: 75% !important;
  }
}
@media print, screen and (min-width: 64em) {
  .form-pop-up {
    width: 50% !important;
  }
}
.form-pop-up__wrapper {
  margin-top: 1.5rem;
}

.home .hero {
  position: relative;
  top: -4rem;
  margin-bottom: -4rem;
}
.home .hero__video {
  height: 100%;
}
.home .hero__video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home .mission-statement__text {
  text-align: center;
  padding: 2.5rem;
}
@media print, screen and (min-width: 48.875em) {
  .home .mission-statement__text {
    padding: 3rem;
  }
}
.home .mission-statement .letter-l {
  display: flex;
  height: 100%;
  transform: scale(0.75);
  position: relative;
}
@media print, screen and (min-width: 48.875em) {
  .home .mission-statement .letter-l {
    transform: none;
  }
}
.home .mission-statement .letter-l--thick {
  justify-content: flex-end;
  transform-origin: top;
  right: -2rem;
}
@media print, screen and (min-width: 48.875em) {
  .home .mission-statement .letter-l--thick {
    right: 0;
  }
}
.home .mission-statement .letter-l--thick span {
  height: 50%;
  aspect-ratio: 0.8;
  border-left: 2.75rem solid black;
  border-bottom: 2rem solid black;
}
.home .mission-statement .letter-l--thin {
  align-items: flex-end;
  transform-origin: bottom;
  left: -2rem;
}
@media print, screen and (min-width: 48.875em) {
  .home .mission-statement .letter-l--thin {
    left: 0;
  }
}
.home .mission-statement .letter-l--thin span {
  height: 50%;
  aspect-ratio: 0.65;
  border-top: 0.5rem solid #000;
  border-right: 0.5rem solid #000;
}
.home .projects {
  position: relative;
  padding-bottom: 3rem;
}
@media print, screen and (min-width: 48.875em) {
  .home .projects {
    padding-bottom: 6rem;
  }
}
.home .projects__grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 2rem;
}
@media print, screen and (min-width: 48.875em) {
  .home .projects__grid {
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 1rem;
  }
}
@media print, screen and (min-width: 64em) {
  .home .projects__grid {
    grid-gap: 2rem;
  }
}
.home .projects__tile {
  width: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  height: 20rem;
}
@media print, screen and (min-width: 48.875em) {
  .home .projects__tile {
    aspect-ratio: 1;
    height: unset;
  }
}
.home .projects__tile:hover .projects__tile-background {
  transform: scale(1.15);
}
.home .projects__tile:hover .projects__heading {
  background-color: #000;
  transform: translateY(-5px);
}
.home .projects__tile-background {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  transition: 200ms ease-out;
  background-size: cover;
  background-position: center center;
}
.home .projects__tile-background::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.25) 30%);
}
.home .projects__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
}
.home .projects__heading {
  text-transform: uppercase;
  color: #fefefe;
  letter-spacing: 2px;
  padding: 0.5rem 1.5rem;
  border: 2px solid #fefefe;
  font-size: 1.25rem;
  transition: 200ms ease-out;
}
.home .projects__background {
  width: 100%;
  height: 30rem;
  background-size: 84rem;
  background-repeat: repeat-x;
  position: absolute;
  bottom: -6rem;
  z-index: -1;
}
.home .news__items {
  width: calc(100% + 4rem);
  transform: translateX(-2rem);
}
.home .news__item {
  background: #000;
  color: #fefefe;
  padding: 4rem;
  height: 100%;
  min-height: 26rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-weight: normal;
  transition: 200ms ease-out;
}
.home .news__item--has-link:hover {
  transform: translateY(-1rem);
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.5);
}
.home .news__item-content {
  text-align: center;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.home .news__heading {
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
}
.home .news__link {
  color: #fefefe;
  font-weight: normal;
  text-transform: uppercase;
}
.home .news__link::after {
  width: 16px;
  height: 16px;
  background-size: 16px;
  margin-left: 0.5rem;
  position: relative;
  top: -1px;
}

@media print, screen and (min-width: 64em) {
  .gdpr__grid {
    display: flex;
    margin-right: -0.5rem;
    margin-left: -0.5rem;
    flex-flow: row wrap;
  }
}
.gdpr__box + .gdpr__box {
  margin-top: 1rem;
}
@media only screen and (min-width: 40.0625em) {
  .gdpr__box {
    display: flex;
    padding: 0 0.5rem;
    flex: 1 1;
  }
  .gdpr__box + .gdpr__box {
    margin-top: 0;
  }
}
.gdpr__box > a {
  display: flex;
  position: relative;
  padding: 2rem;
  border-radius: 0.25rem;
  background: rgba(254, 254, 254, 0.5);
  color: #000;
  font-size: 0.875rem;
  font-weight: normal;
  text-align: center;
  box-shadow: 0 7px 14px rgba(0, 0, 0, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08);
  flex-flow: column wrap;
  flex: 1 1;
}
.gdpr__box > a svg {
  margin: 0 auto 1rem;
  fill: #000 !important;
}
.gdpr__box > a:focus, .gdpr__box > a:hover {
  background: #fefefe;
  color: #000;
}

#cookie-law-info-bar {
  position: fixed !important;
  box-shadow: 0 18px 140px rgba(0, 0, 0, 0.25), 0 5px 15px rgba(0, 0, 0, 0.15);
  z-index: 2147483647;
}

.gdpr-framework-privacy-tools {
  text-align: center;
}
.gdpr-framework-privacy-tools h2,
.gdpr-framework-privacy-tools h3 {
  font-size: 2rem;
}

.gdpr-notice + h3 {
  display: none;
}
.gdpr-notice + h3 + form {
  display: none;
}

.gdpr-download-button + .gdpr-export-button {
  margin-top: 0.5rem;
}

.gdpr-framework-privacy-tools .button,
#gdpr-submit {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 1rem;
  font-weight: bold;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background: #000;
  color: #fefefe;
}
[data-whatinput=mouse] .gdpr-framework-privacy-tools .button,
[data-whatinput=mouse] #gdpr-submit {
  outline: 0;
}
.gdpr-framework-privacy-tools .button, .gdpr-framework-privacy-tools .button.disabled, .gdpr-framework-privacy-tools .button[disabled], .gdpr-framework-privacy-tools .button.disabled:hover, .gdpr-framework-privacy-tools .button[disabled]:hover, .gdpr-framework-privacy-tools .button.disabled:focus, .gdpr-framework-privacy-tools .button[disabled]:focus,
#gdpr-submit,
#gdpr-submit.disabled,
#gdpr-submit[disabled],
#gdpr-submit.disabled:hover,
#gdpr-submit[disabled]:hover,
#gdpr-submit.disabled:focus,
#gdpr-submit[disabled]:focus {
  background-color: #000;
  color: #fefefe;
}
.gdpr-framework-privacy-tools .button:hover, .gdpr-framework-privacy-tools .button:focus,
#gdpr-submit:hover,
#gdpr-submit:focus {
  background-color: #555;
  color: #fefefe;
}
.gdpr-framework-privacy-tools .button:focus, .gdpr-framework-privacy-tools .button:hover,
#gdpr-submit:focus,
#gdpr-submit:hover {
  transform: none;
  background: #000;
  color: #fefefe;
}
.gdpr-framework-privacy-tools .button:before, .gdpr-framework-privacy-tools .button:after,
#gdpr-submit:before,
#gdpr-submit:after {
  content: none;
}

.hny .cookielawinfo-row-cat-table {
  width: 100%;
  margin-left: 0;
  border: 0;
}
.hny .cookielawinfo-row-cat-table tbody {
  border: 0;
}
.hny .cookielawinfo-row-cat-table thead {
  background: #000;
  color: #fefefe;
}
.hny .cookielawinfo-row-cat-table th,
.hny .cookielawinfo-row-cat-table td {
  border-color: #fefefe;
}

.header-utility ul {
  margin: 0;
  list-style: none;
}
.header-utility a {
  display: flex;
  padding: 0.75rem;
  outline: none;
  text-align: center;
  align-items: center;
  justify-content: center;
  font-weight: normal;
}
.header-utility a:hover {
  color: #6f818e;
}
.header-utility__items {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-end;
}
.header-utility__item {
  font-size: 0.75rem;
}
.header-utility__item--active {
  color: #6f818e;
}
.header-utility__item--active > a {
  color: currentColor;
}

.hero {
  width: 100%;
  height: 20rem;
}
@media print, screen and (min-width: 40em) {
  .hero {
    height: 34rem;
  }
}
@media print, screen and (min-width: 64em) {
  .hero {
    height: 46rem;
  }
}
.not-front .hero {
  height: 20rem;
}
@media print, screen and (min-width: 40em) {
  .not-front .hero {
    height: 30rem;
  }
}
@media print, screen and (min-width: 64em) {
  .not-front .hero {
    height: 40vw;
    max-height: 40rem;
  }
}
.hero__content {
  height: 100%;
  padding-top: 6rem;
  padding-bottom: 2rem;
  background-size: cover;
}
@media print, screen and (min-width: 40em) {
  .hero__content {
    padding-top: 7rem;
    padding-bottom: 3rem;
  }
}
@media print, screen and (min-width: 64em) {
  .hero__content {
    padding-top: 8rem;
    padding-bottom: 4rem;
  }
}
.hero__content > .grid-container {
  display: flex;
  height: 100%;
  align-items: baseline;
}
.hero__content--gradient::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 45%);
  content: "";
}
.hero__content--gradient > * {
  position: relative;
  z-index: 1;
}
.hero__heading {
  margin: auto;
  padding: 0.5rem 1rem;
  transform: translateY(-10px);
  border: 4px solid black;
  background-color: rgba(254, 254, 254, 0.3);
  font-size: 1.75rem;
  letter-spacing: 5px;
  text-align: center;
  text-transform: uppercase;
}
@media print, screen and (min-width: 40em) {
  .hero__heading {
    margin: 0 0 1rem;
    transform: none;
    font-size: 2.25rem;
  }
}
@media print, screen and (min-width: 40em) {
  .hero__heading {
    padding: 0.75rem 3.5rem;
  }
}
@media print, screen and (min-width: 40em) {
  .hero__heading--bottom {
    align-self: flex-end;
  }
}
@media print, screen and (min-width: 40em) {
  .hero__heading--right {
    margin-left: auto;
  }
}

.hero-project__content {
  padding-top: 8rem;
  padding-bottom: 4rem;
  position: relative;
}
.hero-project__heading {
  align-self: flex-end;
  color: #fefefe;
}
.hero-project__heading--normal {
  margin-left: auto;
  text-align: center;
  font-family: serif;
  max-width: 32rem;
  text-transform: uppercase;
  font-weight: normal;
}
.hero-project__heading--large {
  font-weight: normal;
  text-transform: uppercase;
  font-size: 8rem;
  line-height: 1.25;
}
.hero-project__heading--logo {
  margin-left: auto;
  max-width: 26rem;
}
.hero-project__square {
  position: absolute !important;
  top: calc(50% + 62px);
  transform: translateY(-50%);
  background-color: #000;
  width: 3.5rem;
  height: 104px;
}

.hero-slideshow {
  height: 100%;
}
.hero-slideshow .swiper {
  height: 100%;
}
.hero-slideshow__slide {
  position: relative;
  height: 100%;
}
.hero-slideshow__slide > a {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.hero-slideshow__photo {
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.job-postings-embed-script {
  padding-top: 1rem;
}
.job-postings-embed-script ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
@media print, screen and (min-width: 48.875em) {
  .job-postings-embed-script {
    padding-top: 0;
    padding-bottom: 4rem;
  }
}
.job-postings-embed-script .BambooHR-ATS-Jobs-List {
  padding: 2px 20px 12px 0 !important;
}
@media print, screen and (min-width: 40em) {
  .job-postings-embed-script .BambooHR-ATS-Jobs-List {
    padding: 2px 20px 12px 20px !important;
  }
}
.job-postings-embed-script .BambooHR-ATS-Location {
  float: none !important;
  padding-top: 0 !important;
  display: block !important;
}
@media print, screen and (min-width: 40em) {
  .job-postings-embed-script .BambooHR-ATS-Location {
    float: right !important;
    padding-top: 9px !important;
    display: inline-block !important;
  }
}

.legal-nav {
  margin-top: 0.4rem;
}
@media print, screen and (min-width: 40em) {
  .legal-nav {
    margin-top: 0.3rem;
  }
}
@media print, screen and (min-width: 64em) {
  .legal-nav {
    margin-top: 0;
  }
}
.legal-nav a {
  font-size: 0.75rem;
}
@media print, screen and (min-width: 40em) {
  .legal-nav a {
    font-size: inherit;
  }
}
.legal-nav a:hover, .legal-nav a:focus {
  color: #555;
}
.legal-nav__items {
  display: flex;
  margin: 0;
  list-style: none;
  flex-flow: row nowrap;
  justify-content: center;
}
@media print, screen and (min-width: 64em) {
  .legal-nav__items {
    justify-content: flex-start;
  }
}
.legal-nav__item + .legal-nav__item {
  margin-left: 0.5rem;
}

.listing__item + .listing__item {
  margin-top: 3rem;
}

.location-info__label {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 0.75rem;
}
.location-info__address {
  margin-bottom: 1rem;
  color: #808080;
}
.location-info__phone {
  color: #808080;
}
.location-info__phone a {
  font-weight: normal;
}

.masthead {
  display: flex;
  position: relative;
  padding: 1.75rem 0;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
}
@media print, screen and (min-width: 48.875em) {
  .masthead {
    padding: 2.5rem 0;
    justify-content: center;
  }
}
.masthead__logo a {
  display: block;
  width: 140px;
}
@media print, screen and (min-width: 40em) {
  .masthead__logo a {
    width: 180px;
  }
}
@media screen and (min-width: 80em) {
  .masthead__logo a {
    width: 280px;
  }
}
.masthead__logo a .hny-svg {
  fill: #fefefe;
}
.masthead__navburger {
  display: block;
}
@media print, screen and (min-width: 48.875em) {
  .masthead__navburger {
    display: none;
  }
}

.mobile-nav {
  display: none;
}
@media print, screen and (min-width: 48.875em) {
  .mobile-nav {
    display: none !important;
  }
}
.mobile-nav ul {
  list-style: none;
  margin: 0;
}
.mobile-nav__wrapper {
  background-color: #000;
  padding-bottom: 1.5rem;
}
.mobile-nav__items {
  display: flex;
  flex-direction: column;
}
.mobile-nav__item {
  padding: 0 1.5rem;
}
.mobile-nav__item > a {
  color: #fefefe;
  text-transform: uppercase;
  font-weight: normal;
  line-height: 1.25;
  display: block;
  padding: 0.75rem 0;
}
.mobile-nav__item > a:hover, .mobile-nav__item > a:focus {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mobile-nav__item--active > a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mobile-nav__submenu-item > a:not(.button):not(#gdpr-submit) {
  text-transform: none;
  font-weight: normal;
  padding: 0.25rem 0;
  border-top: none;
}
.mobile-nav .submenu {
  padding-bottom: 0.75rem;
}

.navburger {
  width: 32px;
  height: 32px;
}
.navburger__icon {
  display: block;
  position: relative;
  height: 3px;
  transition: all 0.2s ease-in-out;
  background: #fefefe;
  border-radius: 2px;
}
.is-mobile-nav-open .l-header .navburger__icon {
  transform: rotate(180deg);
  background: transparent;
}
.navburger__icon:after, .navburger__icon:before {
  display: block;
  position: absolute;
  width: 100%;
  height: inherit;
  transition: inherit;
  background: inherit;
  border-radius: inherit;
  content: "";
}
.is-mobile-nav-open .l-header .navburger__icon:after, .is-mobile-nav-open .l-header .navburger__icon:before {
  background: #fefefe;
}
.navburger__icon:after {
  top: 10px;
}
.is-mobile-nav-open .l-header .navburger__icon:after {
  top: 0;
  transform: rotate(135deg);
}
.navburger__icon:before {
  top: -10px;
}
.is-mobile-nav-open .l-header .navburger__icon:before {
  top: 0;
  transform: rotate(45deg);
}

.primary-nav {
  background-color: rgba(0, 0, 0, 0.5);
}
.primary-nav ul {
  margin: 0;
  list-style: none;
}
.primary-nav a {
  display: flex;
  padding: 1rem;
  outline: none;
  color: #fefefe;
  font-size: 0.9rem;
  font-weight: normal;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  align-items: center;
  justify-content: center;
}
@media print, screen and (min-width: 64em) {
  .primary-nav a {
    padding: 1rem 1.75rem;
    font-size: 1rem;
  }
}
.primary-nav a .hny-svg {
  display: none;
  width: 0.5em;
  height: 0.5em;
  margin-left: 0.25em;
}
.primary-nav__items {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}
.primary-nav__items > .primary-nav__item > a:hover, .primary-nav__items > .primary-nav__item > a:focus {
  background-color: #fefefe;
  color: #000;
}
.primary-nav__item {
  display: none;
}
.primary-nav__item.show-on-mobile {
  display: inline-block;
}
@media print, screen and (min-width: 48.875em) {
  .primary-nav__item {
    display: inline-block;
  }
}
.primary-nav__item.is-dropdown-submenu-parent {
  position: relative;
}
.primary-nav__item.is-active > a {
  background-color: #fefefe;
  color: #000;
}
.primary-nav__item--active > a {
  background-color: #fefefe;
  color: #000;
}
.primary-nav__submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  width: 16rem;
  transform: translate3d(-50%, 0, 0);
  background: rgba(0, 0, 0, 0.75);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
  opacity: 0;
  pointer-events: none;
  transform-origin: 100% 0;
  will-change: transform, opacity;
  transition-property: transform, opacity;
  transition-duration: 0.25s;
  perspective: 2000px;
}
.is-active .primary-nav__submenu {
  transform: translate3d(-50%, 0, 0);
  opacity: 1;
  pointer-events: auto;
}
.primary-nav__submenu-item + .primary-nav__submenu-item {
  border-top: 1px solid rgba(254, 254, 254, 0.1);
}
.primary-nav__submenu-item:not(.primary-nav__submenu-item--active) > a {
  font-weight: normal;
}
.primary-nav__submenu-item a {
  color: #fefefe;
}
.primary-nav__submenu-item a:hover, .primary-nav__submenu-item a:focus {
  background-color: #000;
  color: #fefefe;
}
.primary-nav__submenu-item > a {
  font-size: 0.875rem;
}
.primary-nav__submenu-item--active > a {
  background: #000;
  color: #fefefe;
  font-weight: bold;
}

.search-header {
  margin-bottom: 3rem;
}
.search-header__count {
  margin-top: 1.5rem;
}

.site-footer__top {
  background: #000;
}
.site-footer__top * {
  color: #fefefe;
}
.site-footer__bottom {
  position: relative;
  padding-top: 1rem;
  padding-bottom: 1rem;
  background: #e6e6e6;
  font-size: 0.8125rem;
  overflow: hidden;
}
@media print, screen and (min-width: 64em) {
  .site-footer__bottom {
    font-size: 0.75rem;
  }
}
.site-footer__bottom > .grid-container {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
}
@media print, screen and (min-width: 40em) {
  .site-footer__bottom > .grid-container {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
}

.site-header {
  position: relative;
  z-index: 100;
}
.site-header__masthead {
  background-color: #000;
}

.site-search__form {
  position: relative;
}
.l-main .site-search__form {
  display: flex;
  padding: 1rem;
  background: #e6e6e6;
  flex-flow: row nowrap;
  align-items: center;
}
.l-main .site-search__form > div {
  flex: 1 0 auto;
}
.l-main .site-search__form > div:last-child {
  flex: 0 1 auto;
}
.site-search__input label {
  position: relative;
}
.site-search__input label .hny-svg {
  position: absolute;
  top: 50%;
  left: 0;
  width: 24px;
  height: 24px;
  margin-top: -12px;
  fill: #000;
}
.search-overlay .site-search__input label .hny-svg {
  width: 48px;
  height: 48px;
  margin-top: -24px;
  fill: rgba(254, 254, 254, 0.2);
}
.site-search__input input[type=text] {
  margin-bottom: 0;
}
.l-main .site-search__input input[type=text] {
  padding: 0 0 0 calc(24px + 1rem);
  border: 0;
  background: none;
  font-size: 1.375rem;
  line-height: 1.25rem;
  box-shadow: none;
}
.l-main .site-search__input input[type=text]::placeholder {
  color: rgba(0, 0, 0, 0.2);
}
.search-overlay .site-search__input input[type=text] {
  height: auto;
  padding: 0 0 0 calc(48px + 1rem);
  border: none;
  border-bottom: 1px dotted #fefefe;
  outline: none !important;
  background: none;
  color: #fefefe;
  font-size: 2rem;
  line-height: 2rem;
  box-shadow: none !important;
}
@media print, screen and (min-width: 64em) {
  .search-overlay .site-search__input input[type=text] {
    font-size: 4rem;
    line-height: 4rem;
  }
}
.search-overlay .site-search__input input[type=text]::placeholder {
  color: rgba(254, 254, 254, 0.2);
}
.specifications-list {
  color: #000;
}
.specifications-list__heading {
  text-transform: uppercase;
  position: relative;
  margin-bottom: 3.5rem;
  font-size: 1.5rem;
}
.specifications-list__heading::after {
  content: "";
  display: block;
  width: 10rem;
  position: relative;
  top: 1.5rem;
  border-bottom: 1px solid black;
}
.specifications-list__content--two-column {
  display: grid;
  grid-template-columns: 1fr;
}
@media print, screen and (min-width: 40em) {
  .specifications-list__content--two-column {
    grid-template-columns: 1fr 1fr;
  }
}
.specifications-list__column + .specifications-list__column {
  margin-top: 1.5rem;
}
@media print, screen and (min-width: 40em) {
  .specifications-list__column {
    margin-top: 0;
  }
}
@media print, screen and (min-width: 40em) {
  .specifications-list__column:nth-child(2) {
    margin-left: 1.5rem;
  }
}
.specifications-list__row + .specifications-list__row {
  margin-top: 1.5rem;
}
.specifications-list__label {
  text-transform: uppercase;
  font-weight: bold;
  color: #808080;
}

.team-members__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media print, screen and (min-width: 40em) {
  .team-members__grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .team-members__grid[data-grid="3"] {
    grid-template-columns: repeat(3, 1fr);
  }
}

.team-members-item {
  position: relative;
}
.team-members-item__photo figure {
  background-position: center top;
}
.team-members-item__link {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  overflow: hidden;
  align-items: flex-end;
}
.team-members-item__link:hover .team-members-item__content, .team-members-item__link:focus .team-members-item__content {
  transform: none;
}
.team-members-item__content {
  width: 100%;
  padding: 1rem;
  transform: translateY(100%);
  transition: all 0.2s ease-in-out;
  background-color: rgba(0, 0, 0, 0.3);
  color: #fefefe;
}
@media print, screen and (min-width: 40em) {
  .team-members-item__content {
    padding: 1.5rem;
  }
}
.team-members-item__job-title {
  font-size: 0.75rem;
  font-weight: normal;
  text-transform: uppercase;
}
.team-members-item__name {
  font-size: 1.25rem;
  text-transform: uppercase;
}
@media print, screen and (min-width: 40em) {
  .team-members-item__name {
    font-size: 1.5rem;
  }
}
.team-members-item__name + .team-members-item__name {
  margin-top: -0.5rem;
}

.team-members-modal {
  top: 6rem !important;
  max-width: calc(100vw - 3rem);
  height: unset;
  min-height: auto;
  margin: auto;
  padding: 1.25rem;
  overflow: visible;
}
@media print, screen and (min-width: 40em) {
  .team-members-modal {
    max-width: calc(100vw - 10rem);
    padding: 2rem;
  }
}
@media print, screen and (min-width: 64em) {
  .team-members-modal {
    top: unset;
  }
}
.team-members-modal__close {
  display: flex;
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2rem;
  height: 2rem;
  padding: 0;
  transition: all 0.2s ease-in-out;
  border: 2px solid #555;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 2rem;
  z-index: 2;
  align-items: center;
  justify-content: center;
}
.team-members-modal__close .hny-svg {
  position: absolute;
  transition: all 0.2s ease-in-out;
  fill: #555;
}
.team-members-modal__close:hover, .team-members-modal__close:focus {
  border-color: #555;
  background-color: #555;
}
.team-members-modal__close:hover .hny-svg, .team-members-modal__close:focus .hny-svg {
  fill: #fefefe;
}
@media print, screen and (min-width: 40em) {
  .team-members-modal .nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
}
.team-members-modal .nav--prev {
  left: -4rem;
}
.team-members-modal .nav--next {
  right: -4rem;
}
.team-members-modal .nav .hny-svg {
  width: 2rem;
  height: 2rem;
  transition: all 0.2s ease-in-out;
  color: #555;
}
@media print, screen and (min-width: 40em) {
  .team-members-modal .nav .hny-svg {
    width: 3rem;
    height: 3rem;
    color: #fefefe;
  }
}
.team-members-modal .nav:nth-child(2) {
  margin-left: 1.5rem;
}
@media print, screen and (min-width: 40em) {
  .team-members-modal .nav:nth-child(2) {
    margin-left: 0;
  }
}
.team-members-modal .nav:hover .hny-svg {
  transform: scale(1.1);
}
.team-members-modal__slide {
  display: grid;
  grid-gap: 1rem;
}
@media screen and (min-width: 54.6875em) {
  .team-members-modal__slide {
    grid-gap: 2rem;
    grid-template-columns: 2fr 3fr;
  }
}
.team-members-modal__photo figure {
  background-position: center top;
}
@media screen and (min-width: 30em) {
  .team-members-modal__photo {
    width: 60%;
    max-width: 20rem;
  }
}
@media screen and (min-width: 54.6875em) {
  .team-members-modal__photo {
    width: 100%;
    max-width: none;
  }
}
.team-members-modal__content {
  align-self: center;
}
.team-members-modal__job-title {
  font-weight: normal;
  text-transform: uppercase;
}
.team-members-modal__name {
  display: flex;
  position: relative;
  margin-bottom: 1.5rem;
  font-size: 1.75rem;
  font-weight: bold;
  line-height: 1.15;
  text-transform: uppercase;
}
@media screen and (min-width: 54.6875em) {
  .team-members-modal__name {
    display: block;
    margin-bottom: 3rem;
  }
}
.team-members-modal__name div + div {
  margin-left: 9px;
}
@media screen and (min-width: 54.6875em) {
  .team-members-modal__name div + div {
    margin-left: 0;
  }
}
.team-members-modal__name::before {
  content: "";
  display: block;
  width: 10rem;
  position: relative;
  top: 1.5rem;
  border-bottom: 1px solid black;
  position: absolute;
  top: calc(100% + 0.75rem);
}
@media screen and (min-width: 54.6875em) {
  .team-members-modal__name::before {
    top: calc(100% + 1.5rem);
  }
}
.team-members-modal__bio {
  font-size: 0.9rem;
}
.team-members-modal__footer {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem !important;
  text-align: center;
}
@media print, screen and (min-width: 40em) {
  .team-members-modal__footer {
    margin-top: 0;
    margin-bottom: 0 !important;
  }
}

.contact-info .mfa-logo {
  margin-top: 2rem;
}
.contact-info .mfa-logo > img {
  max-width: 100px;
}

.swiper-slide {
  position: relative;
}
.swiper-slide .gallery-caption {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0.5rem 1rem;
  background-color: #000;
  color: #fefefe;
  border-bottom-right-radius: 10px;
}
.swiper-slide img {
  width: 100%;
}
.swiper .swiper-button-next, .swiper .swiper-button-prev {
  color: #000;
}

.gallery__image-wrapper {
  height: 24rem;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  padding: 1rem 0;
}
.swiper-slide-prev .gallery__image-wrapper {
  justify-content: flex-end;
}
.swiper-slide-next .gallery__image-wrapper {
  justify-content: flex-start;
}
.gallery__image-wrapper > a {
  transition: 300ms;
  height: 80%;
}
.swiper-slide-active .gallery__image-wrapper > a {
  height: 100%;
}
.gallery__image {
  height: 100%;
  width: auto;
}
.swiper-slide-active .gallery__image {
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.3);
}
.gallery__caption-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  top: -2rem;
  margin-bottom: -2rem;
}
.gallery--style-3 .gallery__caption-wrapper {
  top: -3rem;
  margin-bottom: -4rem;
}
.gallery .swiper-prev .hny-svg, .gallery .swiper-next .hny-svg {
  width: 3rem;
  height: 3rem;
  margin: 0 0.5rem;
  color: #4e4d4d;
  transition: 200ms ease-out;
}
.gallery .swiper-prev:hover .hny-svg, .gallery .swiper-next:hover .hny-svg {
  color: #808080;
  transform: scale(1.1);
}
.gallery__caption-container {
  width: 100%;
  max-width: 26rem;
  padding: 1.5rem 2rem;
  margin: 0;
  z-index: 1;
}
.gallery--style-3 .gallery__caption-container {
  border: 1rem solid #fefefe;
  max-width: 28rem;
}
.gallery__caption {
  text-align: left !important;
}
.gallery__caption--title {
  text-transform: uppercase;
  margin-bottom: 0.25rem;
  font-size: 1.25rem;
}
.gallery__caption--description {
  color: #fefefe;
}

.image-text__container {
  background-color: #000;
  color: #fefefe;
}
.image-text--style-2 .image-text__container {
  background-color: unset;
}
.image-text--style-2 .image-text__wrapper {
  background-color: #000;
}
.image-text__image-wrapper {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.image-text__image-wrapper img {
  max-height: 36rem;
  max-width: 100%;
  width: auto;
}
.image-text--style-2 .image-text__image-wrapper img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.image-text__square {
  width: 36rem;
  aspect-ratio: 1.15;
  position: absolute;
  border: 5px solid;
}
.image-text__content-wrapper {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem 4.5rem;
  position: relative;
}
.image-text__little-square {
  height: 3rem;
  width: 3rem;
  position: absolute;
  top: 3rem;
  left: 2rem;
}
.image-text__button {
  margin-top: 1.5rem;
}

.selling-points {
  overflow: hidden;
}

.selling-points-horizontal {
  overflow: hidden;
}
.selling-points-horizontal__images-row {
  position: relative;
}
.selling-points-horizontal__banner {
  position: absolute;
  width: 100vw;
  height: 60%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.selling-points-horizontal__image {
  width: 100%;
  aspect-ratio: 1;
}
.selling-points-horizontal__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.selling-points-horizontal__heading {
  text-transform: uppercase;
  text-align: center;
  font-size: 1.5rem;
  font-weight: bold;
}
.selling-points-horizontal .line-container {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  margin-top: 1rem;
  margin-bottom: 0.25rem;
}
.selling-points-horizontal .line-container__vertical {
  background-color: #000;
  width: 1rem;
  height: 3rem;
}
.selling-points-horizontal .line-container__horizontal {
  height: 1rem;
  background-color: #000;
  position: absolute;
}
.selling-points-horizontal .line-container__horizontal--half-right {
  width: calc(50% + 3rem);
  left: 50%;
}
.selling-points-horizontal .line-container__horizontal--half-left {
  width: calc(50% + 3rem);
  right: 50%;
}
.selling-points-horizontal .line-container__horizontal--full {
  width: 100%;
}

.selling-points-vertical {
  background-color: #272727;
  color: #fefefe;
}
.selling-points-vertical__content-container {
  height: 100%;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1;
}
.selling-points-vertical__content-wrapper {
  position: absolute;
  width: 100vw;
}
.selling-points-vertical__row + .selling-points-vertical__row {
  margin-top: 1.25rem;
}
.selling-points-vertical__heading {
  text-transform: uppercase;
  font-size: 1.5rem;
  display: inline-block;
  background-color: #808080;
  padding: 1rem;
  border-top-left-radius: 0.3rem;
  border-bottom-left-radius: 0.3rem;
  position: relative;
  height: 4.5rem;
}
.selling-points-vertical__heading h4 {
  margin-bottom: 0;
  position: relative;
  top: 6px;
}
.selling-points-vertical__heading::before {
  position: absolute;
  display: block;
  content: "";
  bottom: 0.5rem;
  left: 0;
  width: 6rem;
  height: 0.25rem;
  background-color: #272727;
}
.selling-points-vertical__point {
  position: absolute;
  content: "";
  top: 0;
  left: 100%;
  border-style: solid;
  border-color: #808080;
  border-top-width: 2.25rem;
  border-bottom-width: 2.25rem;
  border-left-width: 1rem;
  border-top-color: transparent !important;
  border-bottom-color: transparent !important;
  border-right-color: transparent !important;
}
.selling-points-vertical__image-container {
  position: relative;
}
.selling-points-vertical__image-overlay {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100%;
  width: 10rem;
  background-color: rgba(0, 0, 0, 0.3);
}

.specifications {
  color: #fefefe;
}
.specifications__wrapper {
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
}
.specifications__wrapper::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}
.specifications__wrapper > * {
  position: relative;
  z-index: 1;
}
.specifications__left-side, .specifications__right-side {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.specifications__left-row {
  text-align: center;
}
.specifications__left-row--label {
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: bold;
}
.specifications__left-row + .specifications__left-row {
  margin-top: 2rem;
}
.specifications__table, .specifications__table tr, .specifications__table td {
  border: 3px solid #fefefe;
  border-collapse: collapse;
}
.specifications__table td {
  padding: 0.15rem 1rem;
  text-align: center;
}
.specifications__table--label {
  text-transform: uppercase;
}
.specifications__document {
  margin-top: 2rem;
}
.specifications__document .hny-svg {
  height: 1.75rem;
  width: 1.75rem;
}

.specs-text-only__container {
  background-size: cover;
  background-position: center center;
}
.specs-text-only__wrapper {
  background-color: #000;
  color: #fefefe;
  text-align: center;
  max-width: 64rem;
  margin: auto;
}
.specs-text-only__row {
  display: flex;
  justify-content: center;
}
.specs-text-only__row + .specs-text-only__row {
  margin-top: 1.5rem;
}
.specs-text-only__label {
  text-transform: uppercase;
}
.specs-text-only__divider {
  margin: 0 0.5rem;
}

.specs-with-image__container {
  position: relative;
}
.specs-with-image__container > * {
  position: relative;
  z-index: 1;
}
.specs-with-image__container::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.75);
}
.specs-with-image__image-wrapper {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.specs-with-image__image-wrapper img {
  width: 100%;
  max-width: 30rem;
  aspect-ratio: 1;
  object-fit: cover;
}
.specs-with-image__content-wrapper {
  color: #fefefe;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-left: 5px solid white;
  padding-left: 3rem;
}
.specs-with-image__row + .specs-with-image__row {
  margin-top: 1.5rem;
}
.specs-with-image__label {
  text-transform: uppercase;
  font-weight: bold;
}

.text-image {
  background-color: #000;
  color: #fefefe;
}
.text-image--style-2 {
  margin-top: 2rem;
}
.text-image__inner-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.text-image__square {
  position: absolute;
  border: 5px solid;
  width: calc(100% - 4rem);
  height: calc(100% - 4rem);
  pointer-events: none;
}
.text-image__image-wrapper {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.text-image__image-wrapper img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.text-image__content-container {
  height: 100%;
  display: flex;
  flex-direction: column;
  position: relative;
}
.text-image__bookmark {
  position: absolute;
  right: 0;
  margin-right: 2rem;
  width: 2.5rem;
  height: 10rem;
}
.text-image__content-wrapper {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6rem 4.5rem 6rem 6rem;
}
.text-image__stripe {
  position: absolute;
  bottom: 0;
  right: 0;
  margin-bottom: 3rem;
  height: 1rem;
  width: 50vw;
  background-color: #fefefe;
}
.text-image__button {
  margin-top: 1.5rem;
}
.text-image .cell {
  position: relative;
}

.text-image-grid__inner-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.text-image-grid__content-container {
  height: 100%;
  position: relative;
}
.text-image-grid__content-wrapper {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem 4rem 4rem 9rem;
}
.text-image-grid__decorative-block {
  position: absolute;
  height: 100%;
  width: 5rem;
  top: 0;
  left: 0;
}
.text-image-grid__button {
  margin-top: 1.5rem;
}
.text-image-grid__button a {
  color: #000;
}
.text-image-grid__image-wrapper {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
.text-image-grid__image-wrapper::before {
  position: absolute;
  display: block;
  content: "";
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 35%);
}
.text-image-grid__image-wrapper img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.text-image-grid__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 0.5rem 0.75rem;
  color: #fefefe;
}
.text-image-grid .cell {
  position: relative;
}

.two-column-text__wrapper {
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
}
.two-column-text__wrapper::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.1) 75%);
}
.two-column-text__wrapper > * {
  position: relative;
  z-index: 1;
}
.two-column-text__inner-wrapper {
  padding: 4rem 9rem;
}
.two-column-text__heading {
  text-align: center;
  color: #fefefe;
}
.two-column-text__left-column, .two-column-text__right-column {
  color: #fefefe;
}

@media print {
  *:before, *:after {
    background: rgba(255, 255, 255, 0) !important;
    color: #000 !important;
    text-shadow: none !important;
    box-shadow: none !important;
  }

  a[href]:after {
    content: none;
  }
  a[href^=tel]:after,
a [href^="#"]:after {
    content: "";
  }
  a:visited {
    text-decoration: underline;
  }

  abbr[title]:after {
    content: " (" attr(title) ")";
  }

  pre,
blockquote {
    border: 1px solid #000;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  tr,
img {
    page-break-inside: avoid;
  }

  img {
    max-width: 100% !important;
  }

  .hny-svg {
    fill: #000 !important;
  }

  p,
h2,
h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
h3 {
    page-break-after: avoid;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwibWFpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsInNldHRpbmdzL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jb2xsYXBzZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19mcmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19mbGV4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsImNvbW1vbi9fdXRpbC5zY3NzIiwiY29tbW9uL19nbG9iYWwuc2NzcyIsImNvbW1vbi9fdmFyaWFibGVzLnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19nZm9ybXMuc2NzcyIsImNvbXBvbmVudHMvX2dmb3Jtcy1jdXN0b20uc2NzcyIsImNvbXBvbmVudHMvX2dyaWQuc2NzcyIsImNvbXBvbmVudHMvX2hlYWRpbmdzLnNjc3MiLCJjb21wb25lbnRzL19pY29ucy5zY3NzIiwiY29tcG9uZW50cy9fbGF5b3V0LnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL193eXNpd3lnLnNjc3MiLCJjb21wb25lbnRzL190YWJsZS1jdXN0b20uc2NzcyIsIm1vZHVsZXMvXzQwNC5zY3NzIiwibW9kdWxlcy9fYmFjay10by10b3Auc2NzcyIsIm1vZHVsZXMvX2NoZWNrbGlzdC5zY3NzIiwibW9kdWxlcy9fY2xvc2UtYnV0dG9uLnNjc3MiLCJtb2R1bGVzL19jb2xvcGhvbi5zY3NzIiwibW9kdWxlcy9fY29udGFjdC1jb21tZXJjaWFsLnNjc3MiLCJtb2R1bGVzL19jb250YWN0LWluZHVzdHJpYWwuc2NzcyIsIm1vZHVsZXMvX2NvbnRhY3QtaW5mby5zY3NzIiwibW9kdWxlcy9fY29udGFjdC1yZXNpZGVudGlhbC5zY3NzIiwibW9kdWxlcy9fY29udGVudC1ibG9ja3Muc2NzcyIsIm1vZHVsZXMvX2Zvcm0tcG9wLXVwLnNjc3MiLCJtb2R1bGVzL19mcm9udC1wYWdlLnNjc3MiLCJtb2R1bGVzL19nZHByLnNjc3MiLCJtb2R1bGVzL19oZWFkZXItdXRpbGl0eS5zY3NzIiwibW9kdWxlcy9faGVyby5zY3NzIiwibW9kdWxlcy9faGVyby1wcm9qZWN0LnNjc3MiLCJtb2R1bGVzL19oZXJvLXNsaWRlc2hvdy5zY3NzIiwibW9kdWxlcy9fam9iLXBvc3RpbmdzLnNjc3MiLCJtb2R1bGVzL19sZWdhbC1uYXYuc2NzcyIsIm1vZHVsZXMvX2xpc3Rpbmcuc2NzcyIsIm1vZHVsZXMvX2xvY2F0aW9uLWluZm8uc2NzcyIsIm1vZHVsZXMvX21hc3RoZWFkLnNjc3MiLCJtb2R1bGVzL19tb2JpbGUtbmF2LnNjc3MiLCJtb2R1bGVzL19uYXZidXJnZXIuc2NzcyIsIm1vZHVsZXMvX3ByaW1hcnktbmF2LnNjc3MiLCJtb2R1bGVzL19zZWFyY2gtaGVhZGVyLnNjc3MiLCJtb2R1bGVzL19zaXRlLWZvb3Rlci5zY3NzIiwibW9kdWxlcy9fc2l0ZS1oZWFkZXIuc2NzcyIsIm1vZHVsZXMvX3NpdGUtc2VhcmNoLnNjc3MiLCJtb2R1bGVzL19zcGVjaWZpY2F0aW9ucy1saXN0LnNjc3MiLCJtb2R1bGVzL190ZWFtLW1lbWJlcnMuc2NzcyIsIm1vZHVsZXMvX21mYS1sb2dvLnNjc3MiLCJtb2R1bGVzL19zd2lwZXIuc2NzcyIsIm1vZHVsZXMvcHJvamVjdC9fZ2FsbGVyeS5zY3NzIiwibW9kdWxlcy9wcm9qZWN0L19pbWFnZS10ZXh0LnNjc3MiLCJtb2R1bGVzL3Byb2plY3QvX3NlbGxpbmctcG9pbnRzLnNjc3MiLCJtb2R1bGVzL3Byb2plY3QvX3NwZWNpZmljYXRpb25zLnNjc3MiLCJtb2R1bGVzL3Byb2plY3QvX3NwZWNpZmljYXRpb25zLXN0YW5kYXJkLnNjc3MiLCJtb2R1bGVzL3Byb2plY3QvX3RleHQtaW1hZ2Uuc2NzcyIsIm1vZHVsZXMvcHJvamVjdC9fdGV4dC1pbWFnZS1ncmlkLnNjc3MiLCJtb2R1bGVzL3Byb2plY3QvX3R3by1jb2x1bW4tdGV4dC5zY3NzIiwiY29tbW9uL19wcmludC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUM4SFE7QUFDQTtBQUNBO0FDbURBO0VDdElOO0lBQ0U7SUFDQTtJQUNBOzs7QUM3Q0Y7QUFRQTtFQUNFO0VBQ0E7OztBQVFGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFLRjtBQUFBO0VBRUU7OztBQU1GO0FBQUE7QUFBQTtFQUdFO0VBQ0E7OztBQUtGO0VBQ0U7OztBQU1GO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBUUY7RUFDRTs7O0FBU0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtBQUFBO0VBRUU7OztBQU1GO0FBQUE7RUFFRTs7O0FBS0Y7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBS0Y7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFLRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFLRjtFQUNFOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBS0Y7RUFDRTs7O0FBTUY7QUFBQTtFQUVFO0VBQ0E7OztBQUtGO0FBQUE7RUFFRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7OztBQVFGO0VBQ0U7OztBQUtGO0VBQ0U7OztBQVFGO0VBQ0U7OztBQUtGO0VBQ0U7OztBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTs7O0FDeEpGO0VBQ0U7OztBQUdG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Qy9OZ0I7RURnT2hCLGlCVnJLcUI7RVV1S3JCOztBQUVBO0VBRUUsT1YzUUU7O0FVaVJKO0VBQ0U7OztBQUtKO0VBQ0U7RUFFQSxXVnhTVztFVXlTWDtFQUNBLFFWeExRO0VVMExSO0VBQ0E7RUFDQSxlVjdMUTtFVThMUjs7O0FBSUY7QUFBQTtBQUFBO0VBR0UsZVY3TXNCO0VVOE10QixxQlZqTWtCO0VVa01sQixhVnZUZ0I7OztBVTJUbEI7RUFDRTs7O0FBSUY7RUFDRSxhVjNNZTtFVTRNZixpQlY5TWM7OztBVWtOaEI7RUFDRSxhVmpOZTs7O0FVc05mO0VBQ0UsYVZ0Tm9CO0VVdU5wQjs7O0FBS0o7RUFDRSxlVjVOcUI7O0FVOE5yQjtFQUNFLGVWN053QjtFVThOeEIsYVZoVWU7OztBVXFVbkI7RUFDRTtFQUNBLFNWbk9pQjtFVW9PakIsYVZuT2dCOztBVXFPaEI7RUFDRSxhVm5XYztFVW9XZCxPVnpWTTs7O0FVdVdWO0VBQ0UsZVYvT2E7RVVnUGI7RUFDQTs7O0FBSUY7RUFDRTs7O0FBV0Y7RUFDRTtFQUNBLFNWclFnQjtFVXVRaEIsa0JWaFlTO0VVa1lULGFWN1RvQjtFVThUcEIsT1YvWEk7RVVrWUYsZVZ0WFU7OztBWXFDZDtFQUNFLFlaK0VtQjtFWTlFbkIsZVorRXNCO0VZN0V0QixhWjNDbUI7RVk0Q25CLGFaYWdCO0VZWmhCLE9aekRROzs7QVk2RFY7RUFDRSxXWmdFYTtFWS9EYixhWjFFZ0I7OztBWThFbEI7RUFDRSxXWmlFYTtFWWhFYjs7QUFFQTtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7OztBQUlKO0VBakZBO0VBQ0EsT1pKVTtFWUtWLFdaa0llOztBWWhJZjtFQUNFLFNaZ0lrQjs7O0FZNUNwQjtFQTdFQSxRWjhIWTtFWTdIWixrQlpsQlc7RVlvQlgsYVppRHNCO0VZaER0QixhWlBxQjtFWVFyQixPWmxCTTtFWXdCTjtFQUNBO0VBQ0E7RUFFQSxTWmdIYTs7O0FZekNiO0VBdEZBLFFaOEhZO0VZN0haLGtCWmxCVztFWW9CWCxhWmlEc0I7RVloRHRCLGFaUHFCO0VZUXJCLE9abEJNO0VZa0NOO0VBQ0E7RUFDQTtFQUVBLFNadUdtQjtFWXRHbkIsZVp1R3lCOzs7QWFwTmpCO0VBQ0UsWUFSVTs7O0FBT1o7RUFDRSxZQVJVOzs7QUFPWjtFQUNFLFlBUlU7OztBQU9aO0VBQ0UsWUFSVTs7O0FqQjRLZDtFaUIxS0U7SUFDRSxZQUhVOzs7RUFFWjtJQUNFLFlBSFU7OztFQUVaO0lBQ0UsWUFIVTs7O0VBRVo7SUFDRSxZQUhVOzs7QWpCNEtkO0VpQjFLRTtJQUNFLFlBSFU7OztFQUVaO0lBQ0UsWUFIVTs7O0VBRVo7SUFDRSxZQUhVOzs7RUFFWjtJQUNFLFlBSFU7OztBakI0S2Q7RWlCMUtFO0lBQ0UsWUFIVTs7O0VBRVo7SUFDRSxZQUhVOzs7RUFFWjtJQUNFLFlBSFU7OztFQUVaO0lBQ0UsWUFIVTs7O0FqQmlMZDtFaUIvS0U7SUFDRSxZQUhVOzs7RUFFWjtJQUNFLFlBSFU7OztFQUVaO0lBQ0UsWUFIVTs7O0VBRVo7SUFDRSxZQUhVOzs7QWpCaUxkO0VpQi9LRTtJQUNFLFlBSFU7OztFQUVaO0lBQ0UsWUFIVTs7O0VBRVo7SUFDRSxZQUhVOzs7RUFFWjtJQUNFLFlBSFU7OztBakJpTGQ7RWlCL0tFO0lBQ0UsWUFIVTs7O0VBRVo7SUFDRSxZQUhVOzs7RUFFWjtJQUNFLFlBSFU7OztFQUVaO0lBQ0UsWUFIVTs7O0FDVXBCO0VBQWtCOzs7QUFFbEI7RUFDRTtJQUlJO0lBQ0E7SUFDQTtJQU9GO0lBQ0E7OztFQUdGO0lBQWtCOzs7RUFDbEI7SUFBa0I7OztFQUVsQjtJQUF1Qjs7O0VBQ3ZCO0lBQXVCOzs7RUFDdkI7SUFBdUI7OztFQUN2QjtJQUFvQjs7O0VBQ3BCO0lBQW9COzs7RUFDcEI7SUFBb0I7OztFQUdwQjtBQUFBO0lBQ1k7OztFQUVWO0lBQWdCOzs7RUFJbEI7QUFBQTtBQUFBO0lBRXFCOzs7RUFHckI7SUFBb0I7OztFQUdwQjtBQUFBO0lBRUU7SUFDQTs7O0VBSUY7SUFBUTs7O0VBRVI7QUFBQTtJQUNNOzs7RUFFTjtJQUFNOzs7RUFFTjtJQUFROztFQUVSO0FBQUE7QUFBQTtJQUdFO0lBQ0E7OztFQUlGO0FBQUE7SUFDSzs7O0VBR0w7SUFDRTs7O0FDaEZKO0VDb0JNO0VBQUE7RUNkTixXakJvRGE7RWlCbkRiO0VBQ0E7O0FGTEU7RUNpQkk7RUFBQTtFQ2ROLFdGRitCO0VFRy9CO0VBQ0E7O0FGREU7RUNzQkU7RUFBQTtFQ3ZCSixXRkUrQjtFRUQvQjtFQUNBOzs7QUZLQTtFRVNBO0VBQ0E7OztBRk5BO0VHNEZBO0VBSUU7RUFDQTtFQXNDQSxPQVRNOztBSDNITjtFR3lGRjs7QUhyRkU7RUdxRkY7OztBSC9FRTtFRzBIQSxPQVRNOztBSDdHTjtFR3NIQSxPQVRNOzs7QUg3Rko7RUFDRTs7O0FuQm9IQTtFbUJySEY7SUFDRTs7O0FuQm9IQTtFbUJySEY7SUFDRTs7O0FuQm9IQTtFbUJySEY7SUFDRTs7O0FuQnlIQTtFbUIxSEY7SUFDRTs7O0FuQnlIQTtFbUIxSEY7SUFDRTs7O0FuQnlIQTtFbUIxSEY7SUFDRTs7O0FBYUo7RUc2Q0Y7OztBSDlCSTtFR3lFRixPQVRNOzs7QUhoRUo7RUd5RUYsT0FUTTs7O0FIaEVKO0VHeUVGLE9BVE07OztBSGhFSjtFR3lFRixPQVRNOzs7QUhoRUo7RUd5RUYsT0FUTTs7O0FIaEVKO0VHeUVGLE9BVE07OztBSGhFSjtFR3lFRixPQVRNOzs7QUhoRUo7RUd5RUYsT0FUTTs7O0FIaEVKO0VHeUVGLE9BVE07OztBSGhFSjtFR3lFRixPQVRNOzs7QUhoRUo7RUd5RUYsT0FUTTs7O0FIaEVKO0VHeUVGLE9BVE07OztBdEJ3QkY7RW1CNUdGO0lHa0RKO0lBMkNFLE9BVE07OztFSC9FTjtJRzZDRjs7O0VIdkNJO0lHa0ZGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztBdEJ3QkY7RW1CNUdGO0lHa0RKO0lBMkNFLE9BVE07OztFSC9FTjtJRzZDRjs7O0VIdkNJO0lHa0ZGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztBdEJ3QkY7RW1CNUdGO0lHa0RKO0lBMkNFLE9BVE07OztFSC9FTjtJRzZDRjs7O0VIdkNJO0lHa0ZGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztBdEI2QkY7RW1CakhGO0lHa0RKO0lBMkNFLE9BVE07OztFSC9FTjtJRzZDRjs7O0VIdkNJO0lHa0ZGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztBdEI2QkY7RW1CakhGO0lHa0RKO0lBMkNFLE9BVE07OztFSC9FTjtJRzZDRjs7O0VIdkNJO0lHa0ZGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztBdEI2QkY7RW1CakhGO0lHa0RKO0lBMkNFLE9BVE07OztFSC9FTjtJRzZDRjs7O0VIdkNJO0lHa0ZGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztFSGhFSjtJR3lFRixPQVRNOzs7RUhoRUo7SUd5RUYsT0FUTTs7O0VIaEVKO0lHeUVGLE9BVE07OztBSHhEUjtFQUNFOzs7QUFJRjtFQUNFOzs7QUE4QkY7RUN2R007RUFBQTs7QUQyR0o7RUd5QkEsT0FUTTtFRmxISjtFQUFBOztBRHNFSjtFR3FERSxPQVRNOztBSHhDUjtFR2lERSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBSGhDTjtFR3lDQSxPQVRNOztBdEJ3QkY7RW1CcEVOO0lHcURFLE9BVE07O0VIeENSO0lHaURFLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07OztBdEJ3QkY7RW1CcEVOO0lHcURFLE9BVE07O0VIeENSO0lHaURFLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07OztBdEJ3QkY7RW1CcEVOO0lHcURFLE9BVE07O0VIeENSO0lHaURFLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07OztBdEI2QkY7RW1CekVOO0lHcURFLE9BVE07O0VIeENSO0lHaURFLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07OztBdEI2QkY7RW1CekVOO0lHcURFLE9BVE07O0VIeENSO0lHaURFLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07OztBdEI2QkY7RW1CekVOO0lHcURFLE9BVE07O0VIeENSO0lHaURFLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07O0VIaENOO0lHeUNBLE9BVE07Ozs7QUhtQk47RUM5SUk7RUFBQTs7QURvSko7RUNwSkk7RUFBQTs7QUR5Sko7RUN6Skk7RUFBQTs7O0FHQU47RURvSUUsT0FUTTs7O0FDM0hSO0VEb0lFLE9BVE07OztBQzNIUjtFRG9JRSxPQVRNOzs7QUMzSFI7RURvSUUsT0FUTTs7O0FDM0hSO0VEb0lFLE9BVE07OztBQzNIUjtFRG9JRSxPQVRNOzs7QUMzSFI7RURvSUUsT0FUTTs7O0FDM0hSO0VEb0lFLE9BVE07OztBdEJ3QkY7RXVCbkpOO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7QXRCd0JGO0V1Qm5KTjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0F0QndCRjtFdUJuSk47SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztBdEI2QkY7RXVCeEpOO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7QXRCNkJGO0V1QnhKTjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0F0QjZCRjtFdUJ4Sk47SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztBQzNIUjtFRG9JRSxPQVRNOzs7QUMzSFI7RURvSUUsT0FUTTs7O0FDM0hSO0VEb0lFLE9BVE07OztBQzNIUjtFRG9JRSxPQVRNOzs7QUMzSFI7RURvSUUsT0FUTTs7O0FDM0hSO0VEb0lFLE9BVE07OztBQzNIUjtFRG9JRSxPQVRNOzs7QUMzSFI7RURvSUUsT0FUTTs7O0F0QndCRjtFdUJuSk47SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztBdEJ3QkY7RXVCbkpOO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7QXRCd0JGO0V1Qm5KTjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0F0QjZCRjtFdUJ4Sk47SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztBdEI2QkY7RXVCeEpOO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7QXRCNkJGO0V1QnhKTjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0VDM0hSO0lEb0lFLE9BVE07OztFQzNIUjtJRG9JRSxPQVRNOzs7RUMzSFI7SURvSUUsT0FUTTs7O0FINEVKO0VLOU1FO0VBQUE7O0FBR0Y7RUFFSTtFQUFBOztBQXNCRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBRXZHRTtFRmdIUixPQVRNOztBdEJ3QkY7RXdCL0hJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEJ3QkY7RXdCL0hJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEJ3QkY7RXdCL0hJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07Ozs7QUhrRko7RUs3S0U7RUFBQTs7QUFHRjtFQUVJO0VBQUE7OztBeEI4R0Y7RW1Cb0RGO0lLOU1FO0lBQUE7O0VBR0Y7SUFFSTtJQUFBOzs7QXhCcUpGO0V3QnhJSTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOzs7QXRCd0JGO0V3Qi9ISTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCd0JGO0V3Qi9ISTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCd0JGO0V3Qi9ISTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCNkJGO0V3QnBJSTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCNkJGO0V3QnBJSTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCNkJGO0V3QnBJSTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7O0F0QndCRjtFbUIwREY7SUs3S0U7SUFBQTs7RUFHRjtJQUVJO0lBQUE7Ozs7QXhCOEdGO0VtQm9ERjtJSzlNRTtJQUFBOztFQUdGO0lBRUk7SUFBQTs7O0F4QnFKRjtFd0J4SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QndCRjtFd0J4SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QndCRjtFd0IvSEk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7O0F0QndCRjtFd0IvSEk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7O0F0QjZCRjtFd0JwSUk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7O0F0QjZCRjtFd0JwSUk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7O0F0QjZCRjtFd0JwSUk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7OztBdEJ3QkY7RW1CMERGO0lLN0tFO0lBQUE7O0VBR0Y7SUFFSTtJQUFBOzs7O0F4QjhHRjtFbUJvREY7SUs5TUU7SUFBQTs7RUFHRjtJQUVJO0lBQUE7OztBeEJxSkY7RXdCeElJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEJ3QkY7RXdCeElJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEJ3QkY7RXdCeElJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEJ3QkY7RXdCL0hJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07Ozs7QXRCd0JGO0VtQjBERjtJSzdLRTtJQUFBOztFQUdGO0lBRUk7SUFBQTs7OztBeEJtSEY7RW1CK0NGO0lLOU1FO0lBQUE7O0VBR0Y7SUFFSTtJQUFBOzs7QXhCMEpGO0V3QjdJSTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOzs7QXRCNkJGO0V3QjdJSTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOzs7QXRCNkJGO0V3QjdJSTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOzs7QXRCNkJGO0V3QjdJSTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOztFRWhIRTtJRnlIUixPQVRNOzs7QXRCNkJGO0V3QnBJSTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCNkJGO0V3QnBJSTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7QXRCNkJGO0V3QnBJSTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOztFRXZHRTtJRmdIUixPQVRNOzs7O0F0QjZCRjtFbUJxREY7SUs3S0U7SUFBQTs7RUFHRjtJQUVJO0lBQUE7Ozs7QXhCbUhGO0VtQitDRjtJSzlNRTtJQUFBOztFQUdGO0lBRUk7SUFBQTs7O0F4QjBKRjtFd0I3SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QjZCRjtFd0I3SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QjZCRjtFd0I3SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QjZCRjtFd0I3SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QjZCRjtFd0I3SUk7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7RUVoSEU7SUZ5SFIsT0FUTTs7O0F0QjZCRjtFd0JwSUk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7O0F0QjZCRjtFd0JwSUk7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7RUV2R0U7SUZnSFIsT0FUTTs7OztBdEI2QkY7RW1CcURGO0lLN0tFO0lBQUE7O0VBR0Y7SUFFSTtJQUFBOzs7O0F4Qm1IRjtFbUIrQ0Y7SUs5TUU7SUFBQTs7RUFHRjtJQUVJO0lBQUE7OztBeEIwSkY7RXdCN0lJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEI2QkY7RXdCN0lJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEI2QkY7RXdCN0lJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEI2QkY7RXdCN0lJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEI2QkY7RXdCN0lJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEI2QkY7RXdCN0lJO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07O0VFaEhFO0lGeUhSLE9BVE07OztBdEI2QkY7RXdCcElJO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07O0VFdkdFO0lGZ0hSLE9BVE07Ozs7QXRCNkJGO0VtQnFERjtJSzdLRTtJQUFBOztFQUdGO0lBRUk7SUFBQTs7OztBTHNMSjtFTXZNRjs7O0FOMk1FO0VNM01GOzs7QU51TUU7RU12TUY7OztBTjJNRTtFTTNNRjs7O0FOdU1FO0VNdk1GOzs7QU4yTUU7RU0zTUY7OztBTnVNRTtFTXZNRjs7O0FOMk1FO0VNM01GOzs7QU51TUU7RU12TUY7OztBTjJNRTtFTTNNRjs7O0FOdU1FO0VNdk1GOzs7QU4yTUU7RU0zTUY7OztBTnVNRTtFTXZNRjs7O0FOMk1FO0VNM01GOzs7QU51TUU7RU12TUY7OztBTjJNRTtFTTNNRjs7O0FOdU1FO0VNdk1GOzs7QU4yTUU7RU0zTUY7OztBTnVNRTtFTXZNRjs7O0FOMk1FO0VNM01GOzs7QU51TUU7RU12TUY7OztBTjJNRTtFTTNNRjs7O0FOdU1FO0VNdk1GOzs7QU4yTUU7RU0zTUY7OztBekIrSEk7RW1Cd0VGO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0F6QitISTtFbUJ3RUY7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7QXpCK0hJO0VtQndFRjtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztBekJvSUk7RW1CbUVGO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0F6Qm9JSTtFbUJtRUY7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7QXpCb0lJO0VtQm1FRjtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztFTnVNRTtJTXZNRjs7O0VOMk1FO0lNM01GOzs7RU51TUU7SU12TUY7OztFTjJNRTtJTTNNRjs7O0VOdU1FO0lNdk1GOzs7RU4yTUU7SU0zTUY7OztBTjZORjtFRS9PQTtFQUNBOztBRmtQRTtFRzlJRjtFQUNBOztBSGlKRTtFR3JIQSxRQVRNOztBSGtJTjtFR3pIQSxRQVRNOztBSGdKSjtFQUNFOztBbkJ6SEE7RW1Cd0hGO0lBQ0U7OztBbkJ6SEE7RW1Cd0hGO0lBQ0U7OztBbkJ6SEE7RW1Cd0hGO0lBQ0U7OztBbkJwSEE7RW1CbUhGO0lBQ0U7OztBbkJwSEE7RW1CbUhGO0lBQ0U7OztBbkJwSEE7RW1CbUhGO0lBQ0U7OztBQVlGO0VHL0xKOztBSDhNTTtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBSDRLRjtFR25LSixRQVRNOztBdEJ3QkY7RW1CZ0lBO0lHMUxOO0lBMkNFLFFBVE07O0VINkpKO0lHL0xKOztFSHFNTTtJRzFKSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOzs7QXRCd0JGO0VtQmdJQTtJRzFMTjtJQTJDRSxRQVRNOztFSDZKSjtJRy9MSjs7RUhxTU07SUcxSkosUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7O0F0QndCRjtFbUJnSUE7SUcxTE47SUEyQ0UsUUFUTTs7RUg2Sko7SUcvTEo7O0VIcU1NO0lHMUpKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07OztBdEI2QkY7RW1CMkhBO0lHMUxOO0lBMkNFLFFBVE07O0VINkpKO0lHL0xKOztFSHFNTTtJRzFKSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOztFSDRLRjtJR25LSixRQVRNOzs7QXRCNkJGO0VtQjJIQTtJRzFMTjtJQTJDRSxRQVRNOztFSDZKSjtJRy9MSjs7RUhxTU07SUcxSkosUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7RUg0S0Y7SUduS0osUUFUTTs7O0F0QjZCRjtFbUIySEE7SUcxTE47SUEyQ0UsUUFUTTs7RUg2Sko7SUcvTEo7O0VIcU1NO0lHMUpKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07O0VINEtGO0lHbktKLFFBVE07Ozs7QUh3TEo7RUNuVEU7RUFBQTs7QUR3VEY7RUN4VEU7RUFBQTs7O0FEdUdOO0VDdkdNO0VBQUE7O0FEMkdKO0VHeUJBLFFBVE07RUZsSEo7RUFBQTs7QURzRUo7RUdxREUsUUFUTTs7QUh4Q1I7RUdpREUsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QUhoQ047RUd5Q0EsUUFUTTs7QXRCd0JGO0VtQnBFTjtJR3FERSxRQVRNOztFSHhDUjtJR2lERSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOzs7QXRCd0JGO0VtQnBFTjtJR3FERSxRQVRNOztFSHhDUjtJR2lERSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOzs7QXRCd0JGO0VtQnBFTjtJR3FERSxRQVRNOztFSHhDUjtJR2lERSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOzs7QXRCNkJGO0VtQnpFTjtJR3FERSxRQVRNOztFSHhDUjtJR2lERSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOzs7QXRCNkJGO0VtQnpFTjtJR3FERSxRQVRNOztFSHhDUjtJR2lERSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxRQVRNOztFSGhDTjtJR3lDQSxR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O0lBQ0U7OztBbkJyUEY7RW1Cb1BBO0lBQ0U7OztBbkJoUEY7RW1CK09BO0lBQ0U7OztBbkJoUEY7RW1CK09BO0lBQ0U7OztBbkJoUEY7RW1CK09BO0lBQ0U7Ozs7QUFqU1I7RUN2R007RUFBQTs7QUQyR0o7RUd5QkEsUUFUTTtFRmxISjtFQUFBOztBRHNFSjtFR3FERSxRQVRNOztBSHhDUjtFR2lERSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBSGhDTjtFR3lDQSxRQVRNOztBdEJ3QkY7RW1CcEVOO0lHcURFLFFBVE07O0VIeENSO0lHaURFLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07OztBdEJ3QkY7RW1CcEVOO0lHcURFLFFBVE07O0VIeENSO0lHaURFLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07OztBdEJ3QkY7RW1CcEVOO0lHcURFLFFBVE07O0VIeENSO0lHaURFLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07OztBdEI2QkY7RW1CekVOO0lHcURFLFFBVE07O0VIeENSO0lHaURFLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07OztBdEI2QkY7RW1CekVOO0lHcURFLFFBVE07O0VIeENSO0lHaURFLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07OztBdEI2QkY7RW1CekVOO0lHcURFLFFBVE07O0VIeENSO0lHaURFLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07O0VIaENOO0lHeUNBLFFBVE07Ozs7QUhvUk47RU8xWUk7O0ExQjhJQTtFbUI0UEo7SU8xWUk7OztBMUI4SUE7RW1CNFBKO0lPMVlJOzs7QTFCOElBO0VtQjRQSjtJTzFZSTs7O0ExQm1KQTtFbUJ1UEo7SU8xWUk7OztBMUJtSkE7RW1CdVBKO0lPMVlJOzs7QTFCbUpBO0VtQnVQSjtJTzFZSTs7OztBMUI4SUE7RW1CZ1FGO0lPOVlFOzs7QTFCOElBO0VtQmdRRjtJTzlZRTs7O0ExQjhJQTtFbUJnUUY7SU85WUU7OztBMUJtSkE7RW1CMlBGO0lPOVlFOzs7QTFCbUpBO0VtQjJQRjtJTzlZRTs7O0ExQm1KQTtFbUIyUEY7SU85WUU7OztBQ3VTTjtBQUFBO0VBMU9BO0VBQ0E7RUFDQSxRdkIyTWM7RXVCak1aLFN2QmdNYTtFdUI3TGYsUXZCcU1jO0V1QnBNZCxldkJtTWM7RXVCbE1kLFl2QitNa0I7RXVCOU1sQixhdkJ3TG1CO0V1QnZMbkI7RUFDQSxhdkJ2Qm1CO0V1QndCbkI7RUFDQTtFQUNBO0VBQ0E7O0F0QitFQTtBQUFBO0VBQ0U7O0FzQnVJRTtBQUFBO0VBQ0UsV0FGbUI7O0FBQ3JCO0FBQUE7RUFDRSxXQUZtQjs7QUFDckI7QUFBQTtFQUNFLFdBRm1COztBQU12QjtBQUFBO0VBck5BO0VBQ0E7RUFDQTtFQUNBOztBQWlFRjtBQUFBO0VBSUUsa0JaaEZnQjtFWWlGaEIsT3ZCckhJOztBdUJ3SE47QUFBQTtBQUFBO0VBQ0Usa0J2QjVIUTtFdUI2SFIsT3ZCMUhJOztBdUJnSE47QUFBQTtFQUlFLGtCdkJqSWlCO0V1QmtJakIsT0FiUTs7QUFnQlY7QUFBQTtBQUFBO0VBQ0Usa0JBYm1CO0VBY25CLE9BbEJROztBQVFWO0FBQUE7RUFJRSxrQnZCaklpQjtF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RG1DTjtFQ25CRixpQkFoQlE7OztBRDRDRjtFQzVCTixpQkFoQlE7OztBRDRDRjtFQzVCTixpQkFoQlE7OztBRDRDRjtFQzVCTixpQkFoQlE7OztBRHFETjtFQ3BDRixhQVJROzs7QURnRE47RUN4QkYsWUFQUTs7O0FEMkJOO0VDcENGLGFBUlE7OztBRGdETjtFQ3hCRixZQVBROzs7QUQyQk47RUNwQ0YsYUFSUTs7O0FEZ0ROO0VDeEJGLFlBUFE7OztBRDJCTjtFQ3BDRixhQVJROzs7QURnRE47RUN4QkYsWUFQUTs7O0FEcUNSO0VDL0NBLGlCQWhCUTtFQWlCUixhQVJRO0VEd0ROOzs7QUFNRTtFQ2hDSixPRCtCZTs7O0FBQ1g7RUNoQ0osT0QrQmU7OztBQUNYO0VDaENKLE9EK0JlOzs7QUFDWDtFQ2hDSixPRCtCZTs7O0FBQ1g7RUNoQ0osT0QrQmU7OztBQUNYO0VDaENKLE9EK0JlOzs7QTdCc0VUO0U2QnJFRjtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7RUFDWDtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7QTdCc0VUO0U2QnJFRjtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7RUFDWDtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7QTdCc0VUO0U2QnJFRjtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7RUFDWDtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7QTdCMkVUO0U2QjFFRjtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7RUFDWDtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7QTdCMkVUO0U2QjFFRjtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7RUFDWDtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7QTdCMkVUO0U2QjFFRjtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7RUFDWDtJQ2hDSixPRCtCZTs7O0VBQ1g7SUNoQ0osT0QrQmU7OztFQUNYO0lDaENKLE9EK0JlOzs7QUE1RmY7RUNZQTs7O0FEUkE7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBSUE7RUNzREYsZ0JBcEVtQjs7O0FEY2pCO0VDc0RGLGdCQXBFbUI7OztBRGNqQjtFQ3NERixnQkFwRW1COzs7QURjakI7RUNzREYsZ0JBcEVtQjs7O0E5QitKYjtFNkJ2SUU7SUNmUjs7O0VEbUJRO0lBQ0U7OztFQUdGO0lBQ0U7OztFQUdGO0lBQ0U7OztFQUlBO0lDMkJWLGdCQXBFbUI7OztFRHlDVDtJQzJCVixnQkFwRW1COzs7RUR5Q1Q7SUMyQlYsZ0JBcEVtQjs7O0VEeUNUO0lDMkJWLGdCQXBFbUI7OztBOUIrSmI7RTZCdklFO0lDZlI7OztFRG1CUTtJQUNFOzs7RUFHRjtJQUNFOzs7RUFHRjtJQUNFOzs7RUFJQTtJQzJCVixnQkFwRW1COzs7RUR5Q1Q7SUMyQlYsZ0JBcEVtQjs7O0VEeUNUO0lDMkJWLGdCQXBFbUI7OztFRHlDVDtJQzJCVixnQkFwRW1COzs7QTlCK0piO0U2QnZJRTtJQ2ZSOzs7RURtQlE7SUFDRTs7O0VBR0Y7SUFDRTs7O0VBR0Y7SUFDRTs7O0VBSUE7SUMyQlYsZ0JBcEVtQjs7O0VEeUNUO0lDMkJWLGdCQXBFbUI7OztFRHlDVDtJQzJCVixnQkFwRW1COzs7RUR5Q1Q7SUMyQlYsZ0JBcEVtQjs7O0E5Qm9LYjtFNkI1SUU7SUNmUjs7O0VEbUJRO0lBQ0U7OztFQUdGO0lBQ0U7OztFQUdGO0lBQ0U7OztFQUlBO0lDMkJWLGdCQXBFbUI7OztFRHlDVDtJQzJCVixnQkFwRW1COzs7RUR5Q1Q7SUMyQlYsZ0JBcEVtQjs7O0VEeUNUO0lDMkJWLGdCQXBFbUI7OztBOUJvS2I7RTZCNUlFO0lDZlI7OztFRG1CUTtJQUNFOzs7RUFHRjtJQUNFOzs7RUFHRjtJQUNFOzs7RUFJQTtJQzJCVixnQkFwRW1COzs7RUR5Q1Q7SUMyQlYsZ0JBcEVtQjs7O0VEeUNUO0lDMkJWLGdCQXBFbUI7OztFRHlDVDtJQzJCVixnQkFwRW1COzs7QTlCb0tiO0U2QjVJRTtJQ2ZSOzs7RURtQlE7SUFDRTs7O0VBR0Y7SUFDRTs7O0VBR0Y7SUFDRTs7O0VBSUE7SUMyQlYsZ0JBcEVtQjs7O0VEeUNUO0lDMkJWLGdCQXBFbUI7OztFRHlDVDtJQzJCVixnQkFwRW1COzs7RUR5Q1Q7SUMyQlYsZ0JBcEVtQjs7O0FDNENuQjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFOzs7QS9CMkdJO0UrQjVGSjtJQTdCQTs7OztBQW5CQTtFQW9EQTtJQW5ERTs7OztBL0IySUU7RStCckdGO0lBNUJGOzs7O0EvQnNJSTtFK0J0R0Y7SUFwRUY7Ozs7QS9CcUtJO0UrQjVGSjtJQTdCQTs7OztBQW5CQTtFQW9EQTtJQW5ERTs7OztBL0IySUU7RStCckdGO0lBNUJGOzs7O0EvQnNJSTtFK0J0R0Y7SUFwRUY7Ozs7QS9CcUtJO0UrQjVGSjtJQTdCQTs7OztBQW5CQTtFQW9EQTtJQW5ERTs7OztBL0IySUU7RStCckdGO0lBNUJGOzs7O0EvQnNJSTtFK0J0R0Y7SUFwRUY7Ozs7QS9CcUtJO0UrQjVGSjtJQTdCQTs7OztBQW5CQTtFQW9EQTtJQW5ERTs7OztBL0JnSkU7RStCMUdGO0lBNUJGOzs7O0EvQnNJSTtFK0J0R0Y7SUFwRUY7Ozs7QS9CMEtJO0UrQmpHSjtJQTdCQTs7OztBQW5CQTtFQW9EQTtJQW5ERTs7OztBL0JnSkU7RStCMUdGO0lBNUJGOzs7O0EvQnNJSTtFK0J0R0Y7SUFwRUY7Ozs7QS9CMEtJO0UrQmpHSjtJQTdCQTs7OztBQW5CQTtFQW9EQTtJQW5ERTs7OztBL0JnSkU7RStCMUdGO0lBNUJGOzs7O0EvQnNJSTtFK0J0R0Y7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Zm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNy40XG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyAtLS0gRGVwZW5kZW5jaWVzIC0tLVxuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gLS0tIFNldHRpbmdzIC0tLVxuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcbi8vIEdsb2JhbCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG4vLyBHcmlkc1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG4vLyBHZW5lcmljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG4vLyBCYXNpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2UsXG4gICR4eS1ncmlkOiAkeHktZ3JpZFxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaWYgJHh5LWdyaWQge1xuICAgICR4eS1ncmlkOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiQGltcG9ydCAnY29tbW9uL2ZvbnRzJztcbkBpbXBvcnQgJ2F1dG9sb2FkL2F1dG9sb2FkJztcblxuLy8gR2xvYmFsIHN0eWxlc1xuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuLy8gR3JpZHMgKGNob29zZSBvbmUpXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3Nlcztcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcblxuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcblxuLy8gQmFzaWMgY29tcG9uZW50c1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbi8vIENvbnRhaW5lcnNcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG5cbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuLy8gSGVscGVyc1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuXG4vL0BpbXBvcnQgJ21vdGlvbi11aSc7XG4vL0BpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcbi8vQGluY2x1ZGUgbW90aW9uLXVpLWFuaW1hdGlvbnM7XG5cbkBpbXBvcnQgJ2NvbW1vbi92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tbW9uL3V0aWwnO1xuQGltcG9ydCAnY29tbW9uL2dsb2JhbCc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9ucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dmb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2dmb3Jtcy1jdXN0b20nO1xuQGltcG9ydCAnY29tcG9uZW50cy9ncmlkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGluZ3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9pY29ucyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xheW91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy93eXNpd3lnJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUtY3VzdG9tJztcblxuQGltcG9ydCAnbW9kdWxlcy80MDQnO1xuQGltcG9ydCAnbW9kdWxlcy9iYWNrLXRvLXRvcCc7XG5AaW1wb3J0ICdtb2R1bGVzL2NoZWNrbGlzdCc7XG5AaW1wb3J0ICdtb2R1bGVzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdtb2R1bGVzL2NvbG9waG9uJztcbkBpbXBvcnQgJ21vZHVsZXMvY29udGFjdC1jb21tZXJjaWFsJztcbkBpbXBvcnQgJ21vZHVsZXMvY29udGFjdC1pbmR1c3RyaWFsJztcbkBpbXBvcnQgJ21vZHVsZXMvY29udGFjdC1pbmZvJztcbkBpbXBvcnQgJ21vZHVsZXMvY29udGFjdC1yZXNpZGVudGlhbCc7XG5AaW1wb3J0ICdtb2R1bGVzL2NvbnRlbnQtYmxvY2tzJztcbkBpbXBvcnQgJ21vZHVsZXMvZm9ybS1wb3AtdXAnO1xuQGltcG9ydCAnbW9kdWxlcy9mcm9udC1wYWdlJztcbkBpbXBvcnQgJ21vZHVsZXMvZ2Rwcic7XG5AaW1wb3J0ICdtb2R1bGVzL2hlYWRlci11dGlsaXR5JztcbkBpbXBvcnQgJ21vZHVsZXMvaGVybyc7XG5AaW1wb3J0ICdtb2R1bGVzL2hlcm8tcHJvamVjdCc7XG5AaW1wb3J0ICdtb2R1bGVzL2hlcm8tc2xpZGVzaG93JztcbkBpbXBvcnQgJ21vZHVsZXMvam9iLXBvc3RpbmdzJztcbkBpbXBvcnQgJ21vZHVsZXMvbGVnYWwtbmF2JztcbkBpbXBvcnQgJ21vZHVsZXMvbGlzdGluZyc7XG5AaW1wb3J0ICdtb2R1bGVzL2xvY2F0aW9uLWluZm8nO1xuQGltcG9ydCAnbW9kdWxlcy9tYXN0aGVhZCc7XG5AaW1wb3J0ICdtb2R1bGVzL21vYmlsZS1uYXYnO1xuQGltcG9ydCAnbW9kdWxlcy9uYXZidXJnZXInO1xuQGltcG9ydCAnbW9kdWxlcy9wcmltYXJ5LW5hdic7XG5AaW1wb3J0ICdtb2R1bGVzL3NlYXJjaC1oZWFkZXInO1xuQGltcG9ydCAnbW9kdWxlcy9zaW5nbGUtcHJvamVjdCc7XG5AaW1wb3J0ICdtb2R1bGVzL3NpdGUtZm9vdGVyJztcbkBpbXBvcnQgJ21vZHVsZXMvc2l0ZS1oZWFkZXInO1xuQGltcG9ydCAnbW9kdWxlcy9zaXRlLXNlYXJjaCc7XG5AaW1wb3J0ICdtb2R1bGVzL3NwZWNpZmljYXRpb25zLWxpc3QnO1xuQGltcG9ydCAnbW9kdWxlcy90ZWFtLW1lbWJlcnMnO1xuQGltcG9ydCAnbW9kdWxlcy9tZmEtbG9nbyc7XG5AaW1wb3J0ICdtb2R1bGVzL3N3aXBlcic7XG5cbkBpbXBvcnQgJ21vZHVsZXMvcHJvamVjdC9nYWxsZXJ5JztcbkBpbXBvcnQgJ21vZHVsZXMvcHJvamVjdC9pbWFnZS10ZXh0JztcbkBpbXBvcnQgJ21vZHVsZXMvcHJvamVjdC9zZWxsaW5nLXBvaW50cyc7XG5AaW1wb3J0ICdtb2R1bGVzL3Byb2plY3Qvc3BlY2lmaWNhdGlvbnMnO1xuQGltcG9ydCAnbW9kdWxlcy9wcm9qZWN0L3NwZWNpZmljYXRpb25zLXN0YW5kYXJkJztcbkBpbXBvcnQgJ21vZHVsZXMvcHJvamVjdC90ZXh0LWltYWdlJztcbkBpbXBvcnQgJ21vZHVsZXMvcHJvamVjdC90ZXh0LWltYWdlLWdyaWQnO1xuQGltcG9ydCAnbW9kdWxlcy9wcm9qZWN0L3R3by1jb2x1bW4tdGV4dCc7XG5cbkBpbXBvcnQgJ2NvbW1vbi9wcmludCc7XG4vL0BpbXBvcnQgJ2NvbW1vbi9kZWJ1Zyc7XG5cbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9zd2lwZXIvc3dpcGVyLm1pbi5jc3MnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1mYWRlL2VmZmVjdC1mYWRlLm1pbi5jc3MnO1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL3NpbXBsZS1saWdodGJveC9kaXN0L3NpbXBsZUxpZ2h0Ym94Lm1pbi5jc3MnO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kLXpmLXNpemU6IG51bGw7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIEhpRFBJIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzIGZvciByZXNvbHV0aW9ucy5cbi8vLyBWYWx1ZXMgbXVzdCByZXByZXNlbnQgdGhlIGRldmljZSBwaXhlbHMgLyB3ZWIgcGl4ZWxzIHJhdGlvbiBhbmQgYmUgdW5pdGxlc3Mgb3IgaW4gRFBQWC5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBoaWRwaS0xOiAxLFxuICBoaWRwaS0xLTU6IDEuNSxcbiAgaGlkcGktMjogMixcbiAgcmV0aW5hOiAyLFxuICBoaWRwaS0zOiAzXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFdlYiBzdGFuZGFyZCBQaXhlbHMgcGVyIGluY2guICgxZGRweCAvICRzdGQtd2ViLWRwaSkgPSAxZHBpXG4gIC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy0zLyNhYnNvbHV0ZS1sZW5ndGhzXG4gICRzdGQtd2ViLWRwaTogOTY7XG5cbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBvZiB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnRcbiAgJGJwLW5leHQ6IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWluOiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWluLXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogbnVsbDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIElmIG5hbWVkLCBuYW1lIG9mIHRoZSBicmVha3BvaW50XG4gICRuYW1lOiBudWxsO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIEhpRFBJIGJyZWFrcG9pbnRcbiAgJGhpZHBpOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cblxuICAvLyBJZiBhIGJyZWFrcG9pbnQgbmFtZSBpcyBnaXZlbiwgZ2V0IGl0cyB2YWx1ZSBmcm9tIHRoZSAkYnJlYWtwb2ludHMvJGJyZWFrcG9pbnRzLWhpZHBpIG1hcC5cbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLWhpZHBpLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0LW51bWJlcigkYnJlYWtwb2ludHMtaGlkcGksICRicCk7XG4gICAgICAkaGlkcGk6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgYCRicmVha3BvaW50c2Agb3IgYCRicmVha3BvaW50cy1oaWRwaWAgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJG5hbWUgYW5kICRkaXIgPT0gJ29ubHknIHtcbiAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gT25seSAnb25seScgYW5kICd1cCcgaGF2ZSBhIG1pbiBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ3VwJyB7XG4gICAgJGJwLW1pbjogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgfVxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ2Rvd24nIGhhdmUgYSBtYXggbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSB2YWx1ZSwgdXNlIGl0IGFzIG1heCBsaW1pdC5cbiAgICBAaWYgbm90ICRuYW1lIHtcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gICAgfVxuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIG5hbWVkLCB0aGUgbWF4IGxpbWl0IGlzIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCAtIDFweC5cbiAgICBAZWxzZSBpZiAkYnAtbmV4dCB7XG4gICAgICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gICAgICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCAkYnAtbmV4dCAtIGRpdmlkZSgxLCAkc3RkLXdlYi1kcGkpLCAtemYtYnAtdG8tZW0oJGJwLW5leHQpIC0gMC4wMDEyNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJhdGUgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIG1pbiBhbmQgbWF4IGxpbWl0cy5cbiAgQGlmICRoaWRwaSB7XG4gICAgLy8gR2VuZXJhdGUgdmFsdWVzIGluIERQSSBpbnN0ZWFkIG9mIERQUFggZm9yIGFuIElFOS0xMS9PcGVyYSBtaW5pIGNvbXBhdGliaWxpdHkuXG4gICAgLy8gU2VlIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLW1lZGlhLXJlc29sdXRpb25cbiAgICAkYnAtbWluLWRwaTogaWYoJGJwLW1pbiwgJGJwLW1pbiAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1taW4pO1xuICAgICRicC1tYXgtZHBpOiBpZigkYnAtbWF4LCAkYnAtbWF4ICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1heCk7XG4gICAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgsICctd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8nLCAnLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvJyksXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLWRwaSwgJGJwLW1heC1kcGksICdtaW4tcmVzb2x1dGlvbicsICdtYXgtcmVzb2x1dGlvbicpLFxuICAgICAgJywgJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCk7XG4gIH1cbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBhbmQgYCRicmVha3BvaW50cy1oaWRwaWAgbWFwcywgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIElmIG11bHRpcGxlIHZhbHVlcyBhcmUgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBnZW5lcmF0ZSBhIG1lZGlhIHF1ZXJ5IGZvciBlYWNoIG9mIHRoZW0gYXMgZGVzY3JpYmVkIGFib3ZlLlxuLy8vIFNpbmNlIHRoZSBjb250ZW50IGlzIGR1cGxpY2F0ZWQgZm9yIGVhY2ggYnJlYWtwb2ludCwgdGhpcyBtaXhpbiBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggcHJvcGVydGllcyB0aGF0XG4vLy8gY2hhbmdlIGFjcm9zcyBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZXMuLi4gLSBCcmVha3BvaW50IG5hbWUgb3IgcHgvcmVtL2VtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZXMuLi4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHZhbHVlcykge1xuICAgICR2YWx1ZTogbnRoKCR2YWx1ZXMsICRpKTtcbiAgICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsIG50aCgkdmFsdWUsIDEpKTtcbiAgICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcbiAgICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAgICRkaXI6IGlmKGxlbmd0aCgkdmFsdWUpID4gMSwgbnRoKCR2YWx1ZSwgMiksIHVwKTtcblxuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAgIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAgIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICAgIC8vIGdlbmVyYXRlIHByaW50IGlmIHRoZSBicmVha3BvaW50IGFmZmVjdHMgdGhlIHByaW50LWJyZWFrcG9pbnQgKG9yIHNtYWxsZXIpLlxuICAgICAgLy8gVGhpcyBtZWFucyB0aGUgY3VycmVudCBjb25kaXRpb24gb25seSBuZWVkcyB0byBiZSBleHRlbmRlZCBzbyAnZG93bicgYWx3YXlzIGdlbmVyYXRlcyBwcmludC5cbiAgICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgKCRicCA8PSAkcGJwIG9yICRkaXIgPT0gZG93bikge1xuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJ0cyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBudW1iZXIgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAkbnVtYmVyIC0gTnVtYmVyIHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgbnVtYmVyIGZvbGxvd2luZyBgJG51bWJlcmAsIGlmIGAkbnVtYmVyYCB3YXMgZm91bmQuIElmIGAkbnVtYmVyYCB3YXMgbm90IGZvdW5kLCBvciBgJG51bWJlcmAgd2FzIHRoZSBiaWdnZXN0IG51bWJlciBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQtbnVtYmVyKCRtYXAsICRudW1iZXIpIHtcblxuICAkbmV4dC1udW1iZXI6IG51bGw7XG5cbiAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgIEBpZiB0eXBlLW9mKCR2KSA9PSAnbnVtYmVyJyBhbmQgJHYgPiAkbnVtYmVyIGFuZCAoJG5leHQtbnVtYmVyID09IG51bGwgb3IgJHYgPCAkbmV4dC1udW1iZXIpIHtcbiAgICAgICRuZXh0LW51bWJlcjogJHY7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV4dC1udW1iZXI7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmQta2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kLWtleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmQta2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8vIFJldHVybiB0aGUgYmVzdCBicmVha3BvaW50IHRvIHVzZSBhY2NvcmRpbmcgdG8gdGhlIGNhbGxpbmcgY29udGV4dC4gSXQgcmV0dXJucyBpbiBvcmRlcjpcbi8vLyAxLiB0aGUgZ2l2ZW4gYCR2YWx1ZWAgYXJndW1lbnQgaWYgaXQgaXMgbm90IG51bGwuXG4vLy8gMi4gdGhlIGdsb2JhbCBicmVha3BvaW50IGNvbnRleHQgYCQtemYtc2l6ZWAgaWYgaXQgaXMgbm90IG51bGwgKGxpa2UgaWYgY2FsbGVkIGluc2lkZSB0aGVuIGBicmVha3BvaW50KClgIG1peGluKVxuLy8vIDMuIHRoZSBnaXZlbiBgJGRlZmF1bHRgIGFyZ3VtZW50LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgaW4gcHJpb3JpdHkgaWYgbm9uLW51bGwuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGVmYXVsdCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBieSBkZWZhdWx0IGlmIG5vIG90aGVyIHZhbHVlIGNhbiBiZSB1c2VkLlxuLy8vXG4vLy8gQHJldHVybiB7S2V5d29yZH0gVGhlIHJlc29sdmVkIGJyZWFrcG9pbnQuXG5AZnVuY3Rpb24gLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkdmFsdWU6IG51bGwsICRkZWZhdWx0OiBudWxsKSB7XG4gIEBpZiAoJHZhbHVlICE9IG51bGwpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgIEByZXR1cm4gJC16Zi1zaXplO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRkZWZhdWx0O1xuICB9XG59XG5cbi8vLyBSZXR1cm4gbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gdGhlIGdpdmVuIG1pbiBhbmQvb3IgbWF4IGxpbWl0cy5cbi8vLyBJZiBhIGxpbWl0IGlzIGVxdWFsIHRvIGBudWxsYCBvciBgMGAsIGl0IGlzIGlnbm9yZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1pbiBbMF0gLSBNaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggWzBdIC0gTWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWluLW5hbWUgWydtaW4td2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlbGltaXRlciBbJ21heC13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gTWVkaWEgUXVlcnkgc3RyaW5nLlxuQGZ1bmN0aW9uIC16Zi1icC1qb2luKFxuICAkbWluOiAwLFxuICAkbWF4OiAwLFxuICAkbWluLW5hbWU6ICdtaW4td2lkdGgnLFxuICAkbWF4LW5hbWU6ICdtYXgtd2lkdGgnXG4pIHtcbiAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICBpZigkbWluIGFuZCAkbWluID4gMCwgJygjeyRtaW4tbmFtZX06ICN7JG1pbn0pJywgbnVsbCksXG4gICAgaWYoJG1heCBhbmQgJG1heCA+IDAsICcoI3skbWF4LW5hbWV9OiAjeyRtYXh9KScsIG51bGwpLFxuICAgICcgYW5kICcpO1xufVxuXG4kc21hbGwtdXA6ICcnO1xuJHNtYWxsLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG4kbWVkaXVtLXVwOiAnJztcbiRtZWRpdW0tb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuJGxhcmdlLXVwOiAnJztcbiRsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHhsYXJnZS11cDogJyc7XG4keGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4eGxhcmdlLXVwOiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbi8vIFRoaXMgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGJyZWFrcG9pbnQgdGhlbiBgQG1peGluIHJldmVhbC1tb2RhbC13aWR0aGBcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleCArIDE7XG4gIC8vIFdvcmthcm91bmQgYW5kcm9pZCBicm93c2VyIHotaW5kZXggYnVnXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgLy8gRXh0ZW5kcyBtdXN0IGJlIG1hZGUgb3V0c2lkZSBvZiBicmVha3BvaW50cyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5ld2VyIFNhc3MgdmVyc2lvbnMgKGxpYnNhc3MgdjMuNSlcbiAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG5cbiAgLy8vIERpc2FibGVzIHRoZSBzY3JvbGwgd2hlbiBSZXZlYWwgaXMgc2hvd24gdG8gcHJldmVudCB0aGUgYmFja2dyb3VuZCBmcm9tIHNoaWZ0aW5nXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAmLnpmLWhhcy1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIH1cblxuICAgIGJvZHkgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbkBtaXhpbiBmb3VuZGF0aW9uLW5vcm1hbGl6ZSgpIHtcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4gIC8vIERvY3VtZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cblxuICBodG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICB9XG5cbiAgLy8gU2VjdGlvbnNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAvLyBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLy8gR3JvdXBpbmcgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gIC8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICAgIGhlaWdodDogMDsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyAyXG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgcHJlIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICAvLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyAvLyAxXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvLyAyXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBjb2RlLFxuICBrYmQsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cblxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gIH1cblxuICAvLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgLy8gYWxsIGJyb3dzZXJzLlxuXG4gIHN1YixcbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgLy8gRW1iZWRkZWQgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG5cbiAgaW1nIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIH1cblxuICAvLyBGb3Jtc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyAxXG4gICAgZm9udC1zaXplOiAxMDAlOyAvLyAxXG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICBtYXJnaW46IDA7IC8vIDJcbiAgfVxuXG4gIC8vIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAvLyAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQgeyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHsgLy8gMVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIFt0eXBlPVwiYnV0dG9uXCJdLFxuICBbdHlwZT1cInJlc2V0XCJdLFxuICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cblxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuXG4gIGZpZWxkc2V0IHtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gIC8vIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgLy8gICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgbGVnZW5kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMVxuICAgIG1heC13aWR0aDogMTAwJTsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDNcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvLyAxXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuXG4gIHByb2dyZXNzIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cblxuICB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAyXG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG5cbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vIDJcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cblxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgLy8gMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuXG4gIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG4gICAgZm9udDogaW5oZXJpdDsgLy8gMlxuICB9XG5cbiAgLy8gSW50ZXJhY3RpdmVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuXG4gIGRldGFpbHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgfVxuXG4gIC8vIE1pc2NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG5cbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cblxuICBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIERpc2FibGUgb3V0bGluZSB3aGVuIGludGVudCBpcyBjbGVhcmx5IG1vdXNlIGFuZCB0b3VjaFxuICBbZGF0YS13aGF0aW50ZW50PVwibW91c2VcIl0sXG4gIFtkYXRhLXdoYXRpbnRlbnQ9XCJ0b3VjaFwiXSxcbiAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0sXG4gIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIHtcbiAgICAqLCAqOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSBpT1MgY2FsbG91dHMgd2hlbiBkcmFnZ2FibGUgaXMgZmFsc2VcbiAgW2RyYWdnYWJsZT1mYWxzZV0ge1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgc2FmZSBwYWRkaW5nIG9uIHRoZSBib2R5IGZvciBub24tcmVjdGFuZ3VsYXIgZGV2aWNlcyAoaS5lLiBwaG9uZXMgd2l0aCBub3RjaGVzKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LXNhZmUtcGFkZGluZzogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlIHRoYXQgY29udGFpbnMgdGhlIGZsZXgganVzdGlmeWluZyBvcHRpb25zXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGlmICgkYm9keS1zYWZlLXBhZGRpbmcpIHtcbiAgICAgIC8vIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhY2NvdW50IGZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMgZS5nLiBwaG9uZXMgd2l0aCBub3RjaGVzXG4gICAgICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xuICAgICAgcGFkZGluZy1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgICAgcGFkZGluZy1sZWZ0OiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4vLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vICAyMC4gRm9ybXNcbi8vICAyMS4gTGFiZWxcbi8vICAyMi4gTWVkaWEgT2JqZWN0XG4vLyAgMjMuIE1lbnVcbi8vICAyNC4gTWV0ZXJcbi8vICAyNS4gT2ZmLWNhbnZhc1xuLy8gIDI2LiBPcmJpdFxuLy8gIDI3LiBQYWdpbmF0aW9uXG4vLyAgMjguIFByb2dyZXNzIEJhclxuLy8gIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vICAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAgMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAgMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vICAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vICA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAgNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAgNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgNDcuIFJldmVhbFxuLy8gIDQ4LiBTbGlkZXJcbi8vICA0OS4gU3dpdGNoXG4vLyAgNTAuIFRhYmxlXG4vLyAgNTEuIFRhYnNcbi8vICA1Mi4gVGh1bWJuYWlsXG4vLyAgNTMuIFRpdGxlIEJhclxuLy8gIDU0LiBUb29sdGlwXG4vLyAgNTUuIFRvcCBCYXJcbi8vICA1Ni4gWHkgR3JpZFxuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtd2lkdGg6IDE0MDBweDtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMDAwLFxuICBzZWNvbmRhcnk6ICM2ZjgxOGUsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKTtcbiRzdWJ0bGUtZ3JheTogI2YxZjFmMTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjODA4MDgwO1xuJGRhcmstZ3JheTogIzU1NTtcbiRkYXJrZXItZ3JheTogIzI3MjcyNztcbiRibGFjazogIzAwMDtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuJGJvZHktc2FmZS1wYWRkaW5nOiBmYWxzZTtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDEuNXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMnJlbTtcbiRnbG9iYWwtcG9zaXRpb246IDEuNXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwLjI1cmVtO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IHBvaW50ZXI7XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuJHByaW50LWhyZWZzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIHRhYmxldDogNzgycHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTI4MHB4LFxuICB4eGxhcmdlOiAxNjUwcHgsXG4gIHdpZGU6IDE5MjBweCxcbik7XG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gdGFibGV0IGxhcmdlIHhsYXJnZSB4eGxhcmdlIHdpZGUpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDQ4cHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJztcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuMTtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzNiksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAzNiksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIHhsYXJnZTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzApLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjIpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kZW5hYmxlLWNvZGUtaW5saW5lOiB0cnVlO1xuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiAkYm9keS1mb250LWNvbG9yO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZW5hYmxlLWNpdGUtYmxvY2s6IHRydWU7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcbiRsZWFkLWxpbmVoZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiRzdWJoZWFkZXItbGluZWhlaWdodDogJGhlYWRlci1saW5laGVpZ2h0O1xuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kc3RhdC1mb250LXNpemU6IDIuNXJlbTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbTtcbiRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuLy8gNi4gQWJpZGVcbi8vIC0tLS0tLS0tXG5cbiRhYmlkZS1pbnB1dHM6IHRydWU7XG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQic7XG4kYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ6ICdcXDIwMTMnO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcbiRidXR0b24tZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiAkZGFyay1ncmF5O1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAwO1xuJGJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAxcmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2U7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1zaXplczogKFxuICBzbWFsbDogMC41cmVtLFxuICBkZWZhdWx0OiAxcmVtLFxuICBsYXJnZTogM3JlbSxcbik7XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMDtcbiRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemU6IG1lZGl1bTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDY7XG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xuXG4vLyAyMC4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXBhZGRpbmc6IG1hdGguZGl2KCRmb3JtLXNwYWNpbmcsIDIpO1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIyLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIzLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmU6ICRibGFjaztcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KTtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpO1xuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTE7XG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzO1xuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8gMjYuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNy4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG4kcGFnaW5hdGlvbi1hcnJvdy1wcmV2aW91czogJ1xcMDBBQic7XG4kcGFnaW5hdGlvbi1hcnJvdy1uZXh0OiAnXFwwMEJCJztcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbik7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKTtcblxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcblxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pO1xuXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKTtcblxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogMDtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogMTAwMHB4O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJHJldmVhbC1yYWRpdXM6IDA7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4kc3dpdGNoLW9wYWNpdHktZGlzYWJsZWQ6IDAuNTtcbiRzd2l0Y2gtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcblxuLy8gNTAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogJGJsYWNrO1xuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICR3aGl0ZTtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlO1xuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcblxuLy8gNTEuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA1Mi4gVGh1bWJuYWlsXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDtcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNTMuIFRpdGxlIEJhclxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtO1xuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheTtcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG5cbi8vIDU0LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHA7XG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtO1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNTUuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1Ni4gWHkgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJHh5LWdyaWQ6IHRydWU7XG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW5zOiAxMjtcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXG4gIHNtYWxsOiA0OHB4LFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1wYi12YWx1ZTogbnVsbDtcblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGRpdmlkZSgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycyksICRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWUgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAqIDAuNSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICA6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nICogMC41ICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuICAmOm5vdChbbXVsdGlwbGVdKSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkLWZyb20taGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTtcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGQtZnJvbS1oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNvZGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNvZGUtaW5saW5lOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jaXRlLWJsb2NrOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbmxpbmUgQ2l0YXRpb25zXG4gIEBpZiAoJGVuYWJsZS1jaXRlLWJsb2NrID09IHRydWUpIHtcbiAgICBjaXRlIHtcbiAgICAgIC8vIEV4dGVuZGluZyBhIGNsYXNzIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAgIC8vIFRPRE86IEJyZWFrIHRoZSB0eXBvZ3JhcGh5LWJhc2UvdHlwb2dyYXBoeS1oZWxwZXJzIHNlcGFyYXRpb25cbiAgICAgIEBleHRlbmQgJWNpdGUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29kZVxuICBAaWYgKCRlbmFibGUtY29kZS1pbmxpbmUgPT0gdHJ1ZSkge1xuICAgIGNvZGUge1xuICAgICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kcHJpbWFyeS1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6IGRpdmlkZSgkcmdiLCAyNTUpO1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsIGRpdmlkZSgkcmdiLCAxMi45MiksIHBvdyhkaXZpZGUoJHJnYiArIDAuMDU1LCAxLjA1NSksIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86IGRpdmlkZSgkbHVtaW5hbmNlMSwgJGx1bWluYW5jZTIpO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IGRpdmlkZSgxLCAkcmF0aW8pO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgKiAwLjE7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuICdDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fSc7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiB1bmRlciB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY29kZS1ibG9jay1tYXJnaW4tYm90dG9tOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBjaXRlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY2l0ZS1jb2xvcjtcbiAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICB9XG59XG5cbi8vLyBBZGQgYmFzaWMgc3R5bGVzIGZvciBhIGNvZGUgaGVscGVyLlxuLy8vIFNlZSBgY29kZS1pbmxpbmVgIGFuZCBgY29kZS1ibG9ja2AgbWl4aW5zLlxuQG1peGluIGNvZGUtc3R5bGUge1xuICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgY29sb3I6ICRjb2RlLWNvbG9yO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gaW5saW5lLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWlubGluZWBcbkBtaXhpbiBjb2RlLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGEgYmxvY2suXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtYmxvY2tgXG5AbWl4aW4gY29kZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcblxuICBwYWRkaW5nOiAkY29kZS1ibG9jay1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkY29kZS1ibG9jay1tYXJnaW4tYm90dG9tO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAlY2l0ZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY2l0ZS1ibG9jaztcbiAgfVxuXG4gIC5jaXRlLWJsb2NrIHtcbiAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICB9XG5cbiAgJWNvZGUtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtaW5saW5lIHtcbiAgICBAZXh0ZW5kICVjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtYmxvY2s7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXlzIG5leHQgdG8gYWxsIGxpbmtzIHRoZWlyIFwiaHJlZlwiIHdoZW4gcHJpbnRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIC8vIEVuc3VyZSBhIFwiYmxhY2stb24td2hpdGVcIiBwcmludCBieSByZW1vdmluZyBiYWNrZ3JvdW5kcyxcbiAgICAgIC8vIHVzaW5nIGJsYWNrIHRleHQgZXZlcnl3aGVyZSBhbmQgZm9yY2luZyB0aGUgYnJvd3NlciB0byBlY29ub21pemUgaW5rLlxuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICAgIGNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSwgcHJldmVudCBhbnkgZWNvbm9teSBieSB0aGUgYnJvd3Nlci5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJhc2UtZ3JpZC1jbGFzc2VzIHtcblxuICAvLyBHcmlkIENvbnRhaW5lclxuICAuZ3JpZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyO1xuXG4gICAgJi5mbHVpZCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlKTtcbiAgICB9XG5cbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICAuZ3JpZC14IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICB9XG5cbiAgLmNlbGwge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoZnVsbCwgJGd1dHRlci10eXBlOiBub25lKTtcblxuICAgICYuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgfVxuXG4gICAgJi5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gIH1cbiAgLmdyaWQteCB7XG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIHdpZHRoXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyAmIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAuZ3JpZC14IHtcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCI7XG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIC8vIFJlc3BvbnNpdmUgXCJhdXRvXCIgbW9kaWZpZXJcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCB3aWR0aCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teGAgbm90IG9uIGAuZ3JpZC14YFxuICAuZ3JpZC1tYXJnaW4teDpub3QoLmdyaWQteCkgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXlgIG5vdCBvbiBgLmdyaWQteWBcbiAgLmdyaWQtbWFyZ2luLXk6bm90KC5ncmlkLXkpID4gLmNlbGwge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRjbGFzcy1icmVha3BvaW50LCAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbCkge1xuICAkcHJlZml4OiBpZigkY2xhc3MtYnJlYWtwb2ludCA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCwgJycsICcjeyRjbGFzcy1icmVha3BvaW50fS0nKTtcbiAgPiAuI3skcHJlZml4fWF1dG8ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICA+IC4jeyRwcmVmaXh9c2hyaW5rIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAkY2xhc3NuYW1lOiBpZigkdmVydGljYWwsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9Jyk7XG5cbiAgICA+ICN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBsZWZ0IHJpZ2h0LFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkd3JhcHBpbmctc2VsZWN0b3I6ICcuZ3JpZC1tYXJnaW4teCdcbil7XG4gICN7JHdyYXBwaW5nLXNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246ICRndXR0ZXItcG9zaXRpb24pO1xuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbCgkdmVydGljYWw6ICR2ZXJ0aWNhbCwgJG91dHB1dDogKHNpemUgZ3V0dGVycykpO1xuICAgIH1cblxuICAgIC8vIGJhc2Ugc3R5bGVzIG5lZWQgdG8gYWxsIGJlIGJlZm9yZSB0aGUgYXV0byBhbmQgc2hyaW5rIHN0eWxlc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpIGFuZCAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuY2VsbCB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgkdmVydGljYWw6ICR2ZXJ0aWNhbCwgJG91dHB1dDogKHNpemUgZ3V0dGVycykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcblxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgIC8vIGZvciBhbGwgcHJpb3IgYnJlYWtwb2ludHMuXG4gICAgICAvLyBBcyB0aGVpciBndXR0ZXIgaXMgZGVmaW5lZCB3aXRoIHRoZWlyIHdpZHRoL2hlaWdodCwgZXZlbiBicmVha3BvaW50IHdpdGhvdXQgYSBuZXcgbWFyZ2luIG11c3QgYmVcbiAgICAgIC8vIGdlbmVyYXRlZCB0byBub3QgaGF2aW5nIHRoZWlyIHdpZHRoL2hlaWdodCBvdmVycmlkZWQgYnkgcmUtYWRqdXN0ZWQgc21hbGxlciBicmVha3BvaW50cy5cbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRicCwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkLXpmLXNpemUsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFkZGluZyBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcyB7XG4gIC5ncmlkLXBhZGRpbmcteCB7XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgIC5ncmlkLXBhZGRpbmcteCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBncmlkcyB3aXRoaW4gYGdyaWQtY29udGFpbmVyL2dyaWQtY29udGFpbmVyLmZsdWlkYFxuICAgIC8vIFRoaXMgYWxsb3dzIG1hcmdpbiBhbmQgcGFkZGluZyBncmlkcyB0byBsaW5lIHVwIHdpdGggZWFjaG90aGVyXG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAmIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEJsb2NrIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkb3V0cHV0OiAoc2l6ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyRicH0tdXAtI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDb2xsYXBzZSBjbGFzc2VzXG5AbWl4aW4geHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgICAuI3skYnB9LW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBtYXJnaW4sICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgICAuI3skYnB9LXBhZGRpbmctY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogcGFkZGluZywgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBPZmZzZXQgY2xhc3Nlc1xuQG1peGluIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtbWFyZ2luLXggPiAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVmVydGljYWwgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWVcbikge1xuXG4gIC8vIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gIC8vICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAuZ3JpZC15IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkKHZlcnRpY2FsLCBmYWxzZSk7XG5cblxuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1yZXNldCgpO1xuICAgIH1cblxuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgYW5kIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCI7XG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZSBndXR0ZXJzIGZvciBhIGNlbGwvY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBlaXRoZXIgbWFyZ2luIG9yIHBhZGRpbmcuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZWdhdGl2ZSBbZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgZ3V0dGVyIGFzIGEgbmVnYXRpdmUgdmFsdWUuIENvbW1vbmx5IHVzZWQgZm9yIG5lc3RlZCBncmlkcy5cbkBtaXhpbiB4eS1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbmVnYXRpdmU6IGZhbHNlXG4pIHtcbiAgJG9wZXJhdG9yOiBpZigkbmVnYXRpdmUsICctJywgJycpO1xuXG4gIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgbmVnYXRpdmUgZ3V0dGVycywgZm9yY2UgdHlwZSB0byBgbWFyZ2luLlxuICAkZ3V0dGVyLXR5cGU6IGlmKCRuZWdhdGl2ZSwgJ21hcmdpbicsICRndXR0ZXItdHlwZSk7XG5cbiAgLy8gT3V0cHV0IG91ciBtYXJnaW4gZ3V0dGVycy5cbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRndXR0ZXJzKSB7XG4gICAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAqIDAuNTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgKiAwLjU7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIGZsZXggdmFsdWUgZm9yIGEgY2VsbCBiYXNlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gVGhlIGNlbGwgZmxleCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuIDEgMSAwO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnZ3JvdycpIHtcbiAgICBAcmV0dXJuIDEgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSAnc2hyaW5rJyBvciAkc2l6ZSA9PSAnZnVsbCcgb3IgemYtaXMtZnJhY3Rpb24oJHNpemUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogdHJ1ZSkpIHtcbiAgICBAcmV0dXJuIDAgMCBhdXRvO1xuICB9XG4gIEByZXR1cm4gbnVsbDtcbn1cblxuLy8vIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBhIGNlbGwgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwIGAkZ3V0dGVyc2AuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ8TWFwfSBUaGUgY2VsbCBndXR0ZXIgc2l6ZSBvciB0aGUgcmVzcG9uc2l2ZSBndXR0ZXJzIG1hcC5cbkBmdW5jdGlvbiB4eS1jZWxsLWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAvLyBGb3IgYGF1dG9gLCByZXR1cm5zIHRoZSByZXNwb25zaXZlIG1hcCBgJGd1dHRlcnNgLlxuICBAaWYgKCRicmVha3BvaW50ID09ICdhdXRvJykge1xuICAgIEByZXR1cm4gJGd1dHRlcnM7XG4gIH1cblxuICAvLyBVc2UgdGhlIGNvbnRleHR1YWwgYnJlYWtwb2ludCBieSBkZWZhdWx0LlxuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCk7XG5cbiAgQGlmICgkYnJlYWtwb2ludCkge1xuICAgIEByZXR1cm4gLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi16ZXJvLWJyZWFrcG9pbnQpIG9yIDA7XG4gIH1cbn1cblxuLy8vIFJldHVybnMgdGhlIHBlcmNlbnRhZ2Ugc2l6ZSBvZiBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkc2l6ZSBbJGdyaWQtY29sdW1uc10gLSBTaXplIHRvIG1ha2UgdGhlIGNlbGwuIFlvdSBjYW4gcGFzcyBhIHZhbHVlIGluIG11bHRpcGxlIGZvcm1hdHMsIHN1Y2ggYXMgYDZgLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvM2AuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBTaXplIG9mIHRoZSBjZWxsIChpbiBwZXJjZW50KS5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgQHJldHVybiBmcmFjdGlvbi10by1wZXJjZW50YWdlKCRzaXplLCAkZGVub21pbmF0b3I6ICRncmlkLWNvbHVtbnMpO1xufVxuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIGZvciBhIGNlbGwgc2l6ZS5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCBvciBhbnkgZnJhY3Rpb24gbGlrZSBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgcmV0dXJucyBhIG1hcCBvZiBzaXplcyBhZGFwdGVkIHRvIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxTdHJpbmd8TWFwfSBUaGUgY2VsbCBzaXppbmcgcHJvcGVydHkgdmFsdWUsIG9yIGEgcmVzcG9uc2l2ZSBtYXAgb2YgdGhlbS5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUtY3NzKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkbWFyZ2luLWd1dHRlcjogMDtcblxuICBAaWYgKCRzaXplID09ICdhdXRvJyBvciAkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgIEByZXR1cm4gYXV0bztcbiAgfVxuXG4gIC8vIEZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzLCB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICAkbWFyZ2luLWd1dHRlcjogeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICAgQGlmICgkbWFyZ2luLWd1dHRlciA9PSBudWxsKSB7XG4gICAgICBAZXJyb3IgJ3h5LWNlbGwtc2l6ZTogbm8gZ3V0dGVycyB3ZXJlIGZvdW5kIGluIGAkZ3V0dGVyc2AgZm9yIFwiJGJyZWFrcG9pbnQ6ICN7JGJyZWFrcG9pbnR9XCInO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBzaXplIChudW1iZXIpXG4gICRzaXplLXJhdzogaWYoJHNpemUgPT0gJ2Z1bGwnLCAxMDAlLCB4eS1jZWxsLXNpemUoJHNpemUpKTtcblxuICAvLyBDYWxjdWxhdGUgdGhlIGNlbGwgQ1NTIHNpemUgaW5jbHVkaW5nIGd1dHRlcnMgKHN0cmluZylcbiAgLy8gSWYgdGhlIGNlbGwgaGFzIHJlc3BvbnNpdmUgbWFyZ2luIGd1dHRlcnMsIHJldHVybiBhIHJlc3BvbnNpdmUgbWFwIG9mIHNpemVzLlxuICBAaWYgdHlwZS1vZigkbWFyZ2luLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICRyZXNwb25zaXZlLWNzcy1zaXplczogKCk7XG5cbiAgICBAZWFjaCAkYnAsICRtZyBpbiAkbWFyZ2luLWd1dHRlciB7XG4gICAgICAkc2l6ZS1jc3M6IGlmKCRtZyA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3tyZW0tY2FsYygkbWcpfSkpO1xuICAgICAgJHJlc3BvbnNpdmUtY3NzLXNpemVzOiBtYXAtbWVyZ2UoJHJlc3BvbnNpdmUtY3NzLXNpemVzLCAoJGJwOiAkc2l6ZS1jc3MpKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXNwb25zaXZlLWNzcy1zaXplcztcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiBhIHNpbmdsZSBDU1Mgc2l6ZS5cbiAgQGVsc2Uge1xuICAgICRjc3Mtc2l6ZTogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgJHNpemUtcmF3LCBjYWxjKCN7JHNpemUtcmF3fSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgIEByZXR1cm4gJGNzcy1zaXplO1xuICB9XG59XG5cbi8vLyBTZXRzIGJhc2UgZmxleCBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCwgYGdyb3dgLCBvciBhbnkgb3RoZXIgdmFsdWUgcmVwcmVzZW50aW5nIGEgY2VsbCBzaXplIChpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYHNocmlua2ApLlxuQG1peGluIHh5LWNlbGwtYmFzZSgkc2l6ZTogZnVsbCkge1xuICAkYmFzZTogeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICBmbGV4OiAjeyRiYXNlfTtcblxuICAvLyBTZXQgYmFzZSBzdHlsZXMgZm9yIFwiZnVsbFwiIG9ubHlcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG59XG5cbi8vLyBSZXNldHMgYSBjZWxscyB3aWR0aCAob3IgaGVpZ2h0IGlmIHZlcnRpY2FsIGlzIHRydWUpIGFzIHdlbGwgYXMgc3RyaXBzIGl0cyBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtcmVzZXQoJHZlcnRpY2FsOiB0cnVlKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgbWF4LSN7JGRpcmVjdGlvbn06IG5vbmU7XG59XG5cbi8vLyBTZXRzIHNpemluZyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHNpemVzIGFkYXB0ZWQgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplczogeHktY2VsbC1zaXplLWNzcygkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG5cbiAgQGlmICh0eXBlLW9mKCRzaXplcykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkc2l6ZXMpIHtcbiAgICAgICN7JGRpcmVjdGlvbn06ICQtemYtYnAtdmFsdWU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRkaXJlY3Rpb259OiAkc2l6ZXM7XG4gIH1cbn1cblxuLy8vIFNldHMgZ3V0dGVycyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIERpcmVjdGlvbiBvZiB0aGUgZ3V0dGVycyB0byBvdXRwdXQuIFNlZSBgJGd1dHRlci1wb3NpdGlvbmAuXG5AbWl4aW4geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIC8vIEdldCB0aGUgZGVmYXVsdCBndXR0ZXIgcG9zaXRpb24gYWNjb3JkaW5nIHRvIGNlbGwgZGlyZWN0aW9uXG4gIEBpZigkZ3V0dGVyLXBvc2l0aW9uID09IG51bGwpIHtcbiAgICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciB3aWR0aCBmb3IgdGhpcyBicmVha3BvaW50XG4gICRndXR0ZXItd2lkdGg6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICBAaWYgKCRndXR0ZXItd2lkdGggPT0gbnVsbCkge1xuICAgIEBlcnJvciAneHktY2VsbC1ndXR0ZXJzOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gIH1cblxuICBAaWYgKCRndXR0ZXItdHlwZSBhbmQgJGd1dHRlci10eXBlICE9IG5vbmUpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXItd2lkdGgsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgcHJvcGVybHkgb3RoZXJ3aXNlLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogbnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRvdXRwdXQ6IChiYXNlIHNpemUgZ3V0dGVycylcbikge1xuICAvLyBEZWZhdWx0IGZvciAkZ3V0dGVyLW91dHB1dFxuICBAaWYgKCRndXR0ZXItb3V0cHV0ICE9IG51bGwpIHtcbiAgICBAd2FybiAneHktY2VsbDogJGd1dHRlci1vdXRwdXQgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuICAgIEBpZiAoJGd1dHRlci1vdXRwdXQgPT0gZmFsc2UpIHtcbiAgICAgICRvdXRwdXQ6IHNsLXJlbW92ZSgkb3V0cHV0LCBndXR0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGJhc2UpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIHNpemUpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGd1dHRlcnMpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gYHh5LWNlbGwtc3RhdGljKClgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC5cbi8vLyBVc2UgYHh5LWNlbGwoKWAgaW5zdGVhZCB3aXRoIGAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKWAgdG8gbm90IGdlbmVyYXRlIHRoZSBjZWxsIGJhc2UuXG4vLy8gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCB2Ni42LjBcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLiBBbHdheXMgYHRydWVgIGZvciBtYXJnaW4gZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIEB3YXJuICd4eS1jZWxsLXN0YXRpYygpIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIFwieHktY2VsbCgpXCIgaW5zdGVhZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgJC1ndXR0ZXItb3V0cHV0OiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIHRydWUsICRndXR0ZXItb3V0cHV0KTtcbiAgJC1ndXR0ZXItbWFyZ2luOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsICRndXR0ZXIsIDApO1xuXG4gIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICQtZ3V0dGVyLW1hcmdpbiwgJHZlcnRpY2FsKTtcbiAgQGlmICgkLWd1dHRlci1vdXRwdXQpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jZWxsJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW251bGxdIC0gW0RFUFJFQ0FURURdIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBicmVha3BvaW50IHRvIHVzZSBmb3IgdGhlIGNlbGwgZ2VuZXJhdGlvbi4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRvdXRwdXQgWyhiYXNlIHNpemUgZ3V0dGVycyldIC0gQ2VsbCBwYXJ0cyB0byBvdXRwdXQuIFlvdSB3aWxsIG5lZWQgdG8gZ2VuZXJhdGUgb3RoZXJzIHBhcnRzIG9mIHRoZSBjZWxsIHNlcGVyYXRlbHksIGl0IG1heSBub3Qgd29yayBjb3JyZWN0bHkgb3RoZXJ3aXNlLlxuQG1peGluIHh5LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLW91dHB1dDogbnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRvdXRwdXQ6IChiYXNlIHNpemUgZ3V0dGVycylcbikge1xuICAkc2l6ZTogcGVyY2VudGFnZShkaXZpZGUoMSwgJG4pKTtcblxuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsKCRzaXplLCAkZ3V0dGVyLW91dHB1dCwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbiwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCwgJG91dHB1dCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZXMgdGhlIGdyaWQgYSBjZWxscyB3aXRoaW4gaXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsuY2VsbF0gLSBUaGUgY2hpbGQgZWxlbWVudCB0byByZW1vdmUgdGhlIGd1dHRlciBmcm9tLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHJlbW92ZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9ucyB0byByZW1vdmUgZ3V0dGVycyBmcm9tLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRtaW4tYnJlYWtwb2ludCBbJC16Zi16ZXJvLWJyZWFrcG9pbnRdIC0gTWluaW11bSBicmVha3BvaW50IGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBmb3Igd2hpY2ggdG8gY29sbGFwc2UgdGhlIGd1dHRlci5cbkBtaXhpbiB4eS1ncmlkLWNvbGxhcHNlKFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbWluLWJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50XG4pIHtcbiAgLy8gRmlyc3QsIGxldHMgbmVnYXRlIGFueSBtYXJnaW5zIG9uIHRoZSB0b3AgbGV2ZWxcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkZXhjbHVkZWQtYnBzOiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRtaW4tYnJlYWtwb2ludCk7XG5cbiAgICAvLyBPdXRwdXQgbmV3IHdpZHRocyB0byBub3QgaW5jbHVkZSBndXR0ZXJzXG4gICAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmKHNsLWNvbnRhaW4oJGV4Y2x1ZGVkLWJwcywgJGJwKSkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICAgICAgPiAuI3skYnB9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIENTUyB2YWx1ZSB0byBvZmZzZXQgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBTaXplIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYHh5LWNlbGwoKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIE1hcCBvZiBndXR0ZXJzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gdXNlLiBDYW4gYmUgYG1hcmdpbmAgb3IgYHBhZGRpbmdgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxTdHJpbmd9IFRoZSBjZWxsIG9mZnNldCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLW9mZnNldChcbiAgJG4sXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiBudWxsXG4pIHtcbiAgJGJyZWFrcG9pbnQ6IC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQsICRkZWZhdWx0OiAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gICRzaXplOiB4eS1jZWxsLXNpemUoJG4pO1xuXG4gICRvZmZzZXQ6ICRzaXplO1xuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpKTtcbiAgICAkb2Zmc2V0OiBpZigkZ3V0dGVyID09IDAsICRzaXplLCBjYWxjKCN7JHNpemV9ICsgI3skZ3V0dGVyfSAvIDIpKTtcbiAgfVxuICBAcmV0dXJuICRvZmZzZXQ7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodC9ib3R0b20gYnkgYCRuYCBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBTaXplIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYHh5LWNlbGwoKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIE1hcCBvZiBndXR0ZXJzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gdXNlLiBDYW4gYmUgYG1hcmdpbmAgb3IgYHBhZGRpbmdgXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJGJyZWFrcG9pbnQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgZm9yIGAkZ3V0dGVyc2AuIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy4gSWYgYSBsaXN0IGlzIGdpdmVuLCBtZWRpYS1xdWVyaWVzIHdpbGwgYmUgZ2VuZXJhdGVkLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgdGhlIG9mZnNldC4gSWYgc2V0IHRvIHRydWUgd2lsbCBhcHBseSBtYXJnaW4tdG9wIGluc3RlYWQuXG5AbWl4aW4geHktY2VsbC1vZmZzZXQoXG4gICRuLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oJGJyZWFrcG9pbnQsICRtZWRpYS1xdWVyaWVzOiAnZm9yLWxpc3RzJykge1xuICAgICRvZmZzZXQ6IHh5LWNlbGwtb2Zmc2V0KCRuLCAkZ3V0dGVycywgJGd1dHRlci10eXBlKTtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skb2Zmc2V0fTtcbiAgfVxufVxuIiwiLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbi8vLyBNb2RpZmllcyBhIGdyaWQgdG8gZ2l2ZSBpdCBcImZyYW1lXCIgYmVoYXZpb3IgKG5vIG92ZXJmbG93LCBubyB3cmFwLCBzdHJldGNoIGJlaGF2aW9yKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdGVkIFtmYWxzZV0gLSBJcyBncmlkIG5lc3RlZCBvciBub3QuIElmIG5lc3RlZCBpcyB0cnVlIHRoaXMgc2V0cyB0aGUgZnJhbWUgdG8gMTAwJSBoZWlnaHQsIG90aGVyd2lzZSB3aWxsIGJlIDEwMHZoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgW251bGxdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGluY2x1ZGUtYmFzZSBbdHJ1ZV0gLSBJbmNsdWRlIHRoZSBiYXNlIHN0eWxlcyB0aGF0IGRvbid0IHZhcnkgcGVyIGJyZWFrcG9pbnQuXG5AbWl4aW4geHktZ3JpZC1mcmFtZShcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG5lc3RlZDogZmFsc2UsXG4gICRndXR0ZXJzOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJGluY2x1ZGUtYmFzZTogdHJ1ZVxuKSB7XG5cbiAgQGlmICRpbmNsdWRlLWJhc2Uge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgQGlmICRicmVha3BvaW50ID09IG51bGwgYW5kIHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSgkdmVydGljYWwsICRuZXN0ZWQsICRndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC8vIEdldCBvdXIgZ3V0dGVycyBpZiBhcHBsaWNhYmxlXG4gICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcblxuICAgIC8vIElmIHdlIGhhdmUgYSBndXR0ZXIsIGFkZCBpdCB0byB0aGUgd2lkdGgvaGVpZ2h0XG4gICAgQGlmICRndXR0ZXIge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgaGVpZ2h0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB3aWR0aDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNb2RpZmllcyBhIGNlbGwgdG8gZ2l2ZSBpdCBcImJsb2NrXCIgYmVoYXZpb3IgKG92ZXJmbG93IGF1dG8sIGluZXJ0aWFsIHNjcm9sbGluZylcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuQG1peGluIHh5LWNlbGwtYmxvY2soXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkcHJvcGVydHk6IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCAnb3ZlcmZsb3cteScsICdvdmVyZmxvdy14Jyk7XG5cbiAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgfSBAZWxzZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xufVxuXG4vLy8gQ29udGFpbmVyIGZvciBpbnNpZGUgYSBncmlkIGZyYW1lIGNvbnRhaW5pbmcgbXVsdGlwbGUgYmxvY2tzLiBUeXBpY2FsbHkgdXNlZFxuLy8vIGFzIGEgbW9kaWZpZXIgZm9yIGEgYC5jZWxsYCB0byBhbGxvdyB0aGUgY2VsbCB0byBwYXNzIGFsb25nIGZsZXggc2l6aW5nXG4vLy8gY29uc3RyYWludHMgLyBmcm9tIHBhcmVudHMgdG8gY2hpbGRyZW4uXG5AbWl4aW4geHktY2VsbC1ibG9jay1jb250YWluZXIoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIElnbm9yZWQgaWYgbnVsbCAoZGVmYXVsdClcbi8vLyBAdHlwZSBGb250LVdlaWdodFxuJGJ1dHRvbi1mb250LXdlaWdodDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBidXR0b25zLCB0cmFuc3BhcmVudCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciAuZXhwYW5kZWRcbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIGJvcmRlcjogJGJ1dHRvbi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBvciBjbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1maWxsLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC4gYHNvbGlkYCBoYXMgbm8gZWZmZWN0cy5cbkBtaXhpbiBidXR0b24tZmlsbChcbiAgJGZpbGw6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlcyBvZiBhIHNvbGlkL2hvbGxvdy9jbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW5zIGBidXR0b24tc3R5bGVgLCBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgYW5kIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciBlZmZlY3RzIG9mIHZpc3VhbCBzdHlsaW5nIHBhcmFtZXRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSAtXG5AbWl4aW4gYnV0dG9uLWZpbGwtc3R5bGUoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGwsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkZmlsbCA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXItc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24taG9sbG93LXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGhvbGxvdyBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWJhY2tncm91bmRdIC0gVGV4dCBhbmQgYm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYm9yZGVyLXdpZHRoIFskYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhdIC0gQm9yZGVyIHdpZHRoIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24tY2xlYXIge1xuICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWJhY2tncm91bmRdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG5AbWl4aW4gYnV0dG9uLWNsZWFyLXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50IGFuZCByZXNldGluZyB0aGUgY3Vyc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3BhY2l0eSBbJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXSAtIE9wYWNpdHkgb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRcbikge1xuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJHN0eWxlKTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJHN0eWxlLCAkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCRzdHlsZTogbm9uZSk7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIEBpZiAkYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQge1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gb25seSkge1xuICAgICAgICAgICYuI3skc2l6ZX0tb25seS1leHBhbmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gZG93bikge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1kb3duLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9KSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJHNlbGVjdG9yOiBpZigkYnV0dG9uLWZpbGwgPT0gJGZpbGxpbmcsIG51bGwsICcuI3skZmlsbGluZ30nKTtcblxuICAgICAgJiN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRmaWxsaW5nKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdywgJi5jbGVhciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cblxuICBhLmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICogMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdCBbZmFsc2VdIC0gTmVlZGVkIGlmIHlvdSBvbmx5IHdhbnQgdG8gYXBwbHkgdGhpcyB0byBhIHNwZWNpZmljIHRhYmxlLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQgZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICYubWVudSA+IGxpID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbikge1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAwLjAwMTI1O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gMC4wMDEyNTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbiAgLnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBEYXJrIE1vZGUgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIC5zaG93LWZvci1kYXJrLW1vZGUge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSUUxMCsgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItaWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAuc2hvdy1mb3ItaWUge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmhpZGUtZm9yLWllIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBTdGlja3kgVmlzaWJpbGl0eVxuICAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pcy1zdHVjayAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaXMtc3R1Y2sgLmhpZGUtZm9yLXN0aWNreSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4ldS1zY3JlZW4tcmVhZGVyLFxuLnUtc2NyZWVuLXJlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xufVxuXG4ldS1jbGVhcmZpeCxcbi51LWNsZWFyZml4IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbiV1LWV4dGVybmFsLWxpbmssXG4udS1leHRlcm5hbC1saW5rIHtcbiAgJjphZnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvZXh0ZXJuYWwtbGluay5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDhweDtcbiAgICBjb250ZW50OiAnJztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi51LWV4dGVybmFsLWxpbmstYmxhY2sge1xuICBAZXh0ZW5kICV1LWV4dGVybmFsLWxpbms7XG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2V4dGVybmFsLWxpbmstYmxhY2suc3ZnJyk7XG4gIH1cbn1cblxuJXUtYmctY292ZXIsXG4udS1iZy1jb3ZlciB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuJXUtYmctY29udGFpbixcbi51LWJnLWNvbnRhaW4ge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cblxuJXUtYmctMTAwLFxuLnUtYmctMTAwIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG59XG5cbi51LXN2Zy1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG5cbiAgaW1nLFxuICBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgfVxuXG4gICYtLWxvZ28ge1xuICAgIHBhZGRpbmctYm90dG9tOiBwZXJjZW50YWdlKG1hdGguZGl2KDM2My42LCA1ODguNykpO1xuICB9XG59XG5cbiV1LXBob3RvLWJnLFxuLnUtcGhvdG8tYmcge1xuICBAZXh0ZW5kICV1LWJnLWNvdmVyO1xuICBwYWRkaW5nLWJvdHRvbTogcGVyY2VudGFnZShtYXRoLmRpdig5LCAxNikpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgcGFkZGluZy1ib3R0b206IHBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgMykpO1xuICB9XG5cbiAgJi0tZXh0ZW5kLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xMDB2dyArIDEwMCUgKyAxLjVyZW0pO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC01MHZ3ICsgMTAwJSArIDEuNXJlbSk7XG4gICAgfVxuICB9XG5cbiAgJi0tZXh0ZW5kLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEwMHZ3ICsgMTAwJSArIDEuNXJlbSk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC01MHZ3ICsgMTAwJSArIDEuNXJlbSk7XG4gICAgfVxuICB9XG59XG4iLCIqIHtcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjtcbiAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG59XG5cbmh0bWwge1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IDEwNi4yNSU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgIGZvbnQtc2l6ZTogMTEyLjUlO1xuICB9XG59XG5cbmJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJi5hZG1pbi1iYXIge1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0NnB4KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7XG4gICAgfVxuICB9XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiAkdHJhbnM7XG4gIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xufVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uanMtcmV2ZWFsLXNsaWRlLXVwLFxuLmpzLXJldmVhbC1zbGlkZS1kb3duLFxuLmpzLXJldmVhbC1zbGlkZS1yaWdodCxcbi5qcy1yZXZlYWwtc2xpZGUtbGVmdCxcbi5qcy1yZXZlYWwtZmFkZSxcbi5qcy1yZXZlYWwtc2xpZGUtcmlnaHQtZGVsYXllZCxcbi5qcy1yZXZlYWwtc2xpZGUtbGVmdC1kZWxheWVkIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC5yZXZlYWwgJiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuIiwiJHRyYW5zOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRjdWJpYzogYWxsIDAuMjVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuJGJ1dHRvbi1ib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgkYmxhY2ssIC4xMSksIDAgMXB4IDNweCByZ2JhKCRibGFjaywgLjA4KTtcbiRidXR0b24tYm94LXNoYWRvdy1ob3ZlcjogMCA3cHggMTRweCByZ2JhKCRibGFjaywgLjEpLCAwIDNweCA2cHggcmdiYSgkYmxhY2ssIC4wOCk7XG4kYm94LXNoYWRvdzogMCAxOHB4IDM1cHggcmdiYSgkYmxhY2ssIDAuMjUpLCAwIDVweCAxNXB4IHJnYmEoJGJsYWNrLCAwLjE1KTtcbiRib3gtc2hhZG93LWhvdmVyOiAwIDE4cHggMzVweCByZ2JhKCRibGFjaywgMC4yNSksIDAgNXB4IDE1cHggcmdiYSgkYmxhY2ssIDAuMTUpO1xuJGJveC1zaGFkb3ctbGFyZ2U6IDAgMThweCAxNDBweCByZ2JhKCRibGFjaywgMC4yNSksIDAgNXB4IDE1cHggcmdiYSgkYmxhY2ssIDAuMTUpO1xuXG4kaGVyby1vZmZzZXQ6IDRyZW07XG5cbkBtaXhpbiBoZWFkaW5nLXVuZGVybGluZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMS41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XG59XG4iLCJidXR0b24ge1xuICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbn1cblxuLmJ1dHRvbiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICBib3JkZXI6IDNweCBzb2xpZCAkYmxhY2s7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIHRyYW5zaXRpb246IDIwMG1zIGVhc2Utb3V0O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yNXJlbSk7XG4gIH1cblxuICAmLmludmVydGVkIHtcbiAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyLWdyYXk7XG4gICAgfVxuICB9XG5cbiAgLmhueS1zdmcge1xuICAgICYtLWNoZXZyb24tbGVmdCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmLS1leHRlcm5hbC1saW5rIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxuXG5cbiAgJl9faW5uZXItd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJi0tdG9wLXNwYWNpbmcge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cbn1cblxuLmJ1dHRvbi1jb250YWluZXIge1xuICAmLS1hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYtLWFsaWduLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmLS1hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cbiIsInNlbGVjdCB7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoMTZweCArIDEuNWVtKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jaGV2cm9uLWRvd24uc3ZnJyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDFlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4O1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogYm9yZGVyLWJveDtcbn1cblxuLmhueSB7XG4gIC5nZm9ybV93cmFwcGVyIHtcbiAgICAmLmdyYXZpdHktdGhlbWUge1xuICAgICAgLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3JzLFxuICAgICAgLnZhbGlkYXRpb25fbWVzc2FnZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGFsZXJ0LWNvbG9yLCAkbGlnaHRuZXNzOiA5NSUpO1xuICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnZhbGlkYXRpb25fbWVzc2FnZSxcbiAgICAgIC5pbnN0cnVjdGlvbixcbiAgICAgIC5nZmllbGRfdmFsaWRhdGlvbl9tZXNzYWdlIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICB9XG5cbiAgICAgIC5kZXNjcmlwdGlvbixcbiAgICAgIC5nZmllbGRfZGVzY3JpcHRpb24sXG4gICAgICAuaW5zdHJ1Y3Rpb24ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgIH1cblxuICAgICAgLmZpZWxkX2Rlc2NyaXB0aW9uX2Fib3ZlIHtcbiAgICAgICAgLmdmaWVsZF9kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIFt0eXBlPSdmaWxlJ10ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAuZ2Zvcm1fcmVxdWlyZWRfbGVnZW5kIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmdmb3JtX2Zvb3RlcixcbiAgICAgIC5nZm9ybV9wYWdlX2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICAgICYubGVmdF9sYWJlbCxcbiAgICAgICAgJi5yaWdodF9sYWJlbCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgIC5nZm9ybV9mb290ZXIge1xuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAmW3R5cGU9c3VibWl0XSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICsgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdmb3JtX2FqYXhfc3Bpbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXG4gICAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICsgbGFiZWwge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nZmllbGRfbGFiZWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgIH1cblxuICAgICAgLmdmaWVsZF9lcnJvciB7XG4gICAgICAgIFthcmlhLWludmFsaWQ9dHJ1ZV0ge1xuICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nZmllbGQge1xuICAgICAgICAmLnJlbW92ZS1pbmRlbnQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5nZl9saXN0X2lubGluZSB7XG4gICAgICAgICAgLmdmaWVsZF9jaGVja2JveCxcbiAgICAgICAgICAuZ2ZpZWxkX3JhZGlvIHtcbiAgICAgICAgICAgIC5nY2hvaWNlIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg2NDEpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nZmllbGQge1xuICAgICAgICArIC5nc2VjdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nc2VjdGlvbl90aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9Y29sb3JdLFxuICAgICAgaW5wdXRbdHlwZT1kYXRlXSxcbiAgICAgIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLFxuICAgICAgaW5wdXRbdHlwZT1kYXRldGltZV0sXG4gICAgICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgICAgIGlucHV0W3R5cGU9bW9udGhdLFxuICAgICAgaW5wdXRbdHlwZT1udW1iZXJdLFxuICAgICAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gICAgICBpbnB1dFt0eXBlPXNlYXJjaF0sXG4gICAgICBpbnB1dFt0eXBlPXRlbF0sXG4gICAgICBpbnB1dFt0eXBlPXRleHRdLFxuICAgICAgaW5wdXRbdHlwZT10aW1lXSxcbiAgICAgIGlucHV0W3R5cGU9dXJsXSxcbiAgICAgIGlucHV0W3R5cGU9d2Vla10sXG4gICAgICBzZWxlY3QsXG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cblxuICAgICAgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSxcbiAgICAgIC5naW5wdXRfY29udGFpbmVyX2NvbnNlbnQsXG4gICAgICB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDk1JTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjYyNXJlbTtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBpbmhlcml0O1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkbWVkaXVtLWdyYXkgaW5zZXQ7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCAuMXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jaGVjay5zdmcnKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAvLyBEZWZpbmUgdGhlc2UgaGVyZSBzbyB0aGV5IGRvbid0IGFuaW1hdGUgd2hlbiB0aGUgYmFja2dyb3VuZC1pbWFnZSBzaG93czpcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEzcHggMTNweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDRweCAzcHg7XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPSdyYWRpbyddLFxuICAgICAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICsgbGFiZWwge1xuICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgKyBsYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdpbnB1dF9jb250YWluZXJfZGF0ZSB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ2Nob2ljZSB7XG4gICAgICAgICsgLmdjaG9pY2Uge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ2lucHV0X2NvbnRhaW5lcl9jb25zZW50LFxuICAgICAgLmdjaG9pY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIC5nZmllbGRfcmVxdWlyZWQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMC4yNWVtO1xuXG4gICAgICAgICAgKyBsYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4zNzVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxlZnRfbGFiZWwsXG4gICAgICAucmlnaHRfbGFiZWwge1xuICAgICAgICAuZ2ZpZWxkOm5vdCguZ3NlY3Rpb24pOm5vdCguZ2ZpZWxkX2h0bWwpOm5vdChmaWVsZHNldCkge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdpbnB1dF9jb21wbGV4IHtcbiAgICAgICAgLmdpbnB1dF9jb250YWluZXJfZGF0ZSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5obnkge1xuICAuZ2Zvcm0tdGhlbWUtZGF0ZXBpY2tlcjpub3QoLmdmb3JtLWxlZ2FjeS1kYXRlcGlja2VyKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xuXG4gICAgICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB7XG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICAgICAgICAudWktc3RhdGUtZGVmYXVsdCB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuaG55IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgZm9ybSB7IC8vIDwtIGluY3JlYXNlIHNwZWNpZmljaXR5XG5cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cInRlbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgc2VsZWN0IHtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxuXG4gIGlucHV0OjpwbGFjZWhvbGRlciwgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gIH1cblxuICAuZ2ZpZWxkX2NvbnNlbnRfbGFiZWwge1xuICAgIGEge1xuICAgICAgLy9jb2xvcjogJHdoaXRlO1xuICAgICAgLy9tYXJnaW46IDAgMC4zcmVtO1xuICAgIH1cbiAgfVxuXG4gIC5nZmllbGRfY2hlY2tib3ggaW5wdXQuZ2ZpZWxkLWNob2ljZS1pbnB1dCB7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgLmdmb3JtX2Zvb3RlciB7XG4gICAgLmdmb3JtX2J1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrO1xuICAgICAgY29sb3I6ICRibGFjaztcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ2lucHV0X2NvbXBsZXgge1xuICAgIHNwYW4ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYjZ2Zvcm1fOCB7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbi5ncmlkLWNvbnRhaW5lciB7XG4gICYtLWZ1bGwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi0tbmFycm93IHtcbiAgICBtYXgtd2lkdGg6IG1hdGguZGl2KCRnbG9iYWwtd2lkdGgsIDEuNSk7XG4gIH1cblxuICAmLS13aWRlIHtcbiAgICBtYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggKiAxLjU7XG4gIH1cblxuICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcblxuICAgICYtLXNtYWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTAuNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNzVyZW07XG5cbiAgICAgID4gLmNlbGwge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAmLS1zbWFsbCB7XG4gICAgICA+IC5jZWxsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2VsbCB7XG4gICYtLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbiIsImgxLFxuaDIsXG5oMyxcbmg0IHtcbiAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG59XG5cbmgxLmhlYWRpbmcsIGgyLmhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIC8vIGN1c3RvbSBQcm9qZWN0IGxheW91dCBibG9ja3NcbiAgLmwtYmxvY2sgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbmgzIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmhlYWRpbmcge1xuICAmLS1hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYtLWFsaWduLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmLS1hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cbiIsIi5obnktc3ZnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuXG4gIHBhdGgge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuIiwiLmwtaGVybyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtJGhlcm8tb2Zmc2V0O1xuICBtYXJnaW4tYm90dG9tOiAtJGhlcm8tb2Zmc2V0O1xufVxuXG4ucGFnZS1jb250ZW50IHtcbiAgPiAubC1jb250YWluZXI6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgLmRlZmF1bHQtdGVtcGxhdGUgJiB7XG4gICAgPiAubC1jb250YWluZXI6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgfVxuICB9XG59XG5cbi5sLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAmLS1zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIH1cblxuICAmLS1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gIH1cblxuICAmLS1yZW1vdmUtc3BhY2luZy10b3Age1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgJi0tcmVtb3ZlLXNwYWNpbmctYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ubC1mb290ZXIge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuIiwiLnBhZ2luYXRpb24ge1xuICAmX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAzcmVtIDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgYSxcbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuXG4gICAgICAgICYubmV4dCxcbiAgICAgICAgJi5wcmV2IHtcbiAgICAgICAgICAuaG55LXN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuaG55LXN2ZyB7XG4gICAgICAgICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnBhZ2luYXRpb24tcHJldmlvdXMsXG4gICAgICAmLnBhZ2luYXRpb24tbmV4dCB7XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgbWFyZ2luOiAwIDEuNXJlbTtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiAgICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIud3lzaXd5ZyB7XG4gIGEge1xuICAgICZbdGFyZ2V0PSdfYmxhbmsnXTpub3QoW2hyZWYkPVwiLnBkZlwiXSkge1xuICAgICAgQGV4dGVuZCAldS1leHRlcm5hbC1saW5rO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG5cbiAgLmFsaWdubGVmdCB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuXG4gIC5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIH1cblxuICAuYWxpZ25yaWdodCB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMCAwLjVyZW0gMXJlbTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAuYWxpZ25ub25lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAuNXJlbSAwO1xuICB9XG5cbiAgLmdhbGxlcnkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAwLjE2NjY2NjY2NyU7XG4gICAgICBtYXJnaW46IDAgMCAyJTtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud3AtY2FwdGlvbiB7XG4gICAgPiBmaWdjYXB0aW9uIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMDtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgJi53cC1jYXB0aW9uLXRleHQge1xuICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTApIDA7XG4gICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgIH1cbiAgfVxuXG4gIHA6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIudGFibGUge1xuICAmLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIHRib2R5IHtcbiAgICAgICAgdHIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRoZWFkIHtcbiAgICB0aCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHtcbiAgICB0ciB7XG4gICAgICAmLmhhcy1saW5rIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkcHJpbWFyeS1jb2xvciwgMC4xKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRyYW5zaXRpb246ICR0cmFucztcblxuICAgICAgICAgICZbZGF0YS1sYWJlbF0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5mb3VyLW9oLWZvdXIge1xuICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cbiIsIi5iYWNrLXRvLXRvcCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMC41cmVtO1xuICBib3R0b206IDAuNXJlbTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICB0cmFuc2l0aW9uOiAkdHJhbnM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICRkYXJrLWdyYXk7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWhvdmVyO1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDk5OTc7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGJvdHRvbTogMXJlbTtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRsaWdodC1ncmF5O1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuICAgIC5obnktc3ZnIHtcbiAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5obnktc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBtYXJnaW46IC0xNHB4IDAgMCAtMTNweDtcbiAgICBmaWxsOiAkd2hpdGU7XG4gIH1cblxuICAmLmlzLXZpc2libGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cbiIsIi5jaGVja2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgJi0tdHdvLWNvbHVtbiB7XG4gICAgY29sdW1uLWdhcDogMS41cmVtO1xuICAgIGNvbHVtbi1jb3VudDogMjtcblxuICAgIGxpIHtcbiAgICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB9XG4gIH1cblxuICBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygyMHB4ICsgMC41cmVtKTtcblxuICAgICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgICB9XG5cbiAgICAuaG55LXN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBmaWxsOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgJi0td2FybmluZyB7XG4gICAgICAgIGZpbGw6ICR3YXJuaW5nLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xuICByaWdodDogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBib3JkZXI6IDJweCBzb2xpZCAkZGFyay1ncmF5O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDJyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICB6LWluZGV4OiAyO1xuICB0cmFuc2l0aW9uOiAkdHJhbnM7XG5cbiAgLmhueS1zdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmaWxsOiAkZGFyay1ncmF5O1xuICAgIHRyYW5zaXRpb246ICR0cmFucztcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgYm9yZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuXG4gICAgLmhueS1zdmcge1xuICAgICAgZmlsbDogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuIiwiLmNvbG9waG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAmX19sZWdhbGVzZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICB9XG4gIH1cblxuICAmX19jcmVkaXQge1xuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNvbnRhY3QtY29tbWVyY2lhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcblxuICAmX19sb2dvIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxMnJlbTtcbiAgICB9XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBtYXgtd2lkdGg6IDQ2cmVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXI6IDVweCBzb2xpZDtcbiAgICBwYWRkaW5nOiAxcmVtIDNyZW07XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblxuICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICB9XG5cbiAgJl9fYnV0dG9uIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcblxuICAgIGEge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAmX19zdHJpcGUge1xuICAgIGhlaWdodDogNHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIH1cblxufVxuIiwiLmNvbnRhY3QtaW5kdXN0cmlhbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuXG4gICZfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgfVxuXG4gICZfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICA+ICoge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgJl9fYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgJl9fZm9ybS13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAzcmVtIDZyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgPiAqIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICB9XG5cbiAgJl9fZm9ybS1iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5nZm9ybV93cmFwcGVyIHtcbiAgICAuZ2ZpZWxkX2xhYmVsLCAuZ2ZpZWxkX2NvbnNlbnRfbGFiZWwsIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG5cbiAgICAvLyBjaGVja2JveCBjb2xvdXJcbiAgICAuZ2ZpZWxkX2NoZWNrYm94IC5nY2hvaWNlLFxuICAgIC5naW5wdXRfY29udGFpbmVyX2NvbnNlbnQsIHtcbiAgICAgIGxhYmVsIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjaGVja2JveCBsYXlvdXQgKHNpZGUgYnkgc2lkZSlcbiAgICAuZ2ZpZWxkX2NoZWNrYm94IHtcbiAgICAgIC5nY2hvaWNlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGUgX2dmb3Jtcy5zY3NzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdjaG9pY2UgKyAuZ2Nob2ljZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLmdmaWVsZF9jb25zZW50X2xhYmVsIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nZm9ybV9idXR0b24ge1xuICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50OyAvLyBvdmVycmlkZSBfZ2Zvcm1zLWN1c3RvbS5zY3NzXG4gICAgfVxuICB9XG5cbn1cbiIsIi5jb250YWN0LWluZm8ge1xuXG4gIC5sb2NhdGlvbi1pbmZvICsgLmxvY2F0aW9uLWluZm8ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cblxuICAmX19lbWFpbCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuICAmX19zb2NpYWx7XG4gICAgYXtcbiAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgfVxuICB9XG5cbn1cbiIsIi5jb250YWN0LXJlc2lkZW50aWFsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmX19waG90by13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICA+ICoge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG5cbiAgLmhlYWRpbmctYmFubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyAxcmVtKTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgdG9wOiA1MCU7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmLS1sZWZ0IHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIC01MCUsIDApO1xuICAgIH1cblxuICAgICYtLXJpZ2h0IHtcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMXJlbSk7IC8vIHNvIHRoZXJlIGlzIHNvbWUgb3ZlcmxhcFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDIuNzVyZW07XG4gIH1cbn1cbiIsIi5jb250ZW50LWJsb2NrIHtcbiAgJi0tbm8tYmFja2dyb3VuZCB7XG4gICAgJjpub3QoLmNvbnRlbnQtYmxvY2stLW5vLXNwYWNpbmcpIHtcbiAgICAgICsgLmNvbnRlbnQtYmxvY2stLW5vLWJhY2tncm91bmQge1xuICAgICAgICAmOm5vdCguY29udGVudC1ibG9jay0tbm8tc3BhY2luZykge1xuICAgICAgICAgIC5sLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1jZW50ZXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJi0tZXh0cmEtc3BhY2luZyB7XG4gICAgJi0tdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMCAwIDEwMCU7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gICZfX2xheW91dCB7XG4gICAgJi0tdHdvLWNvbHVtbixcbiAgICAmLS10aHJlZS1jb2x1bW4sXG4gICAgJi0tZm91ci1jb2x1bW4sXG4gICAgJi0tZml2ZS1jb2x1bW4ge1xuICAgICAgLmNlbGwge1xuICAgICAgICArIC5jZWxsIHtcbiAgICAgICAgICAuY29udGVudC1ibG9ja19fY29sdW1uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10aHJlZS1jb2x1bW4sXG4gICAgJi0tZm91ci1jb2x1bW4sXG4gICAgJi0tZml2ZS1jb2x1bW4ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgLmdyaWQteCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10d28tY29sdW1uIHtcbiAgICAgIC5jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAmOm50aC1jaGlsZCgybiszKSxcbiAgICAgICAgICAmOm50aC1jaGlsZCgybis0KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tdGhyZWUtY29sdW1uIHtcbiAgICAgIC5jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAmOm50aC1jaGlsZCg2bis0KSxcbiAgICAgICAgICAmOm50aC1jaGlsZCg2bis1KSxcbiAgICAgICAgICAmOm50aC1jaGlsZCg2bis2KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tZm91ci1jb2x1bW4ge1xuICAgICAgLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICY6bnRoLWNoaWxkKDhuKzUpLFxuICAgICAgICAgICY6bnRoLWNoaWxkKDhuKzYpLFxuICAgICAgICAgICY6bnRoLWNoaWxkKDhuKzcpLFxuICAgICAgICAgICY6bnRoLWNoaWxkKDhuKzgpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1maXZlLWNvbHVtbiB7XG4gICAgICAuY2VsbCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgJjpudGgtY2hpbGQoMTBuKzYpLFxuICAgICAgICAgICY6bnRoLWNoaWxkKDEwbis3KSxcbiAgICAgICAgICAmOm50aC1jaGlsZCgxMG4rOCksXG4gICAgICAgICAgJjpudGgtY2hpbGQoMTBuKzkpLFxuICAgICAgICAgICY6bnRoLWNoaWxkKDEwbisxMCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbHVtbiB7XG4gICAgLmNvbnRlbnQtYmxvY2stLWNlbnRlcmVkIC5jb250ZW50LWJsb2NrX19sYXlvdXQtLXR3by1jb2x1bW4gJiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX21vZHVsZTpub3QoLmNvbnRlbnQtYmxvY2tfX21vZHVsZS0taGVhZGluZykge1xuICAgICsgLmNvbnRlbnQtYmxvY2tfX21vZHVsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX21vZHVsZSB7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cblxuICAmX19jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAmX19tb2R1bGVzIHtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIC5jb250ZW50LWJsb2NrX19tb2R1bGUge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgJi5jb250ZW50LWJsb2NrX19tb2R1bGUtLWJ1dHRvbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmZvcm0tcG9wLXVwIHtcbiAgcGFkZGluZy10b3A6IDIuNXJlbTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGUgRm91bmRhdGlvbiBkZWZhdWx0XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJl9fd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG59XG4iLCIuaG9tZSB7XG4gIC5oZXJvIHtcbiAgICAvLyBpbnNpZGUgcGFnZXMgYXJlIHBvc2l0aW9uZWQgdXNpbmcgLmwtaGVyb1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0kaGVyby1vZmZzZXQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLSRoZXJvLW9mZnNldDtcblxuICAgICZfX3ZpZGVvIHtcbiAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgdmlkZW8ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC5taXNzaW9uLXN0YXRlbWVudCB7XG4gICAgJl9fdGV4dCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAyLjVyZW07XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxldHRlci1sIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYtLXRoaWNrIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICAgICAgICByaWdodDogLTJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICAgIGFzcGVjdC1yYXRpbzogMC44O1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAyLjc1cmVtIHNvbGlkIGJsYWNrO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDJyZW0gc29saWQgYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tdGhpbiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICAgICAgICBsZWZ0OiAtMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBoZWlnaHQ6IDUwJTtcbiAgICAgICAgICBhc3BlY3QtcmF0aW86IDAuNjU7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMC41cmVtIHNvbGlkICRibGFjaztcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDAuNXJlbSBzb2xpZCAkYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvamVjdHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgICB9XG5cbiAgICAmX19ncmlkIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdyaWQtZ2FwOiAycmVtO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICBncmlkLWdhcDogMXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBncmlkLWdhcDogMnJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aWxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAyMHJlbTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLnByb2plY3RzX190aWxlLWJhY2tncm91bmQge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvamVjdHNfX2hlYWRpbmcge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aWxlLWJhY2tncm91bmQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNpdGlvbjogMjAwbXMgZWFzZS1vdXQ7XG5cbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgMCwgMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNzUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMjUpIDMwJSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJl9faGVhZGluZyB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgdHJhbnNpdGlvbjogMjAwbXMgZWFzZS1vdXQ7XG4gICAgfVxuXG4gICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMzByZW07XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDg0cmVtO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtNnJlbTsgLy8gbWF0Y2hlcyBwYWRkaW5nIGJvdHRvbSBvZiAucHJvamVjdHNcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cbiAgfVxuXG4gIC5uZXdzIHtcbiAgICAmX19pdGVtcyB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgNHJlbSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJyZW0pO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDRyZW07XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAyNnJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICAgIHRyYW5zaXRpb246IDIwMG1zIGVhc2Utb3V0O1xuXG4gICAgICAmLS1oYXMtbGluayB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXJlbSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tY29udGVudCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgIG1heC13aWR0aDogMjJyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG4iLCIuZ2RwciB7XG4gICZfX2dyaWQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0wLjVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgfVxuICB9XG5cbiAgJl9fYm94IHtcbiAgICArIC5nZHByX19ib3gge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjA2MjVlbSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgZmxleDogMSAxO1xuXG4gICAgICArIC5nZHByX19ib3gge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuNSk7XG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRidXR0b24tYm94LXNoYWRvdy1ob3ZlcjtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XG4gICAgICBmbGV4OiAxIDE7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW07XG4gICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNjb29raWUtbGF3LWluZm8tYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWxhcmdlO1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xufVxuXG4uZ2Rwci1mcmFtZXdvcmstcHJpdmFjeS10b29scyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBoMixcbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuXG4uZ2Rwci1ub3RpY2Uge1xuICArIGgzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgKyBmb3JtIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5nZHByLWRvd25sb2FkLWJ1dHRvbiB7XG4gICsuZ2Rwci1leHBvcnQtYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIH1cbn1cblxuLmdkcHItZnJhbWV3b3JrLXByaXZhY3ktdG9vbHMgLmJ1dHRvbixcbiNnZHByLXN1Ym1pdCB7XG4gIEBpbmNsdWRlIGJ1dHRvbjtcbiAgQGV4dGVuZCAuYnV0dG9uO1xuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lO1xuICB9XG59XG5cbi5obnkge1xuICAuY29va2llbGF3aW5mby1yb3ctY2F0LXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG5cbiAgICB0Ym9keSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgdGhlYWQge1xuICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuIiwiLmhlYWRlci11dGlsaXR5IHtcbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cbiAgICAgID4gYSB7XG4gICAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuaGVybyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIwcmVtO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgaGVpZ2h0OiAzNHJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBoZWlnaHQ6IDQ2cmVtO1xuICB9XG5cbiAgLm5vdC1mcm9udCAmIHtcbiAgICBoZWlnaHQ6IDIwcmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGhlaWdodDogMzByZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgaGVpZ2h0OiA0MHZ3O1xuICAgICAgbWF4LWhlaWdodDogNDByZW07XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAkaGVyby1vZmZzZXQgKyAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcGFkZGluZy10b3A6ICRoZXJvLW9mZnNldCArIDNyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLXRvcDogJGhlcm8tb2Zmc2V0ICsgNHJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgIH1cblxuICAgID4gLmdyaWQtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgJi0tZ3JhZGllbnQge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgMCwgMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNzUpIDAlLCByZ2IoMCwgMCwgMCwgMCkgNDUlKTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICB9XG5cbiAgICAgID4gKiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19zbGlkZXNob3cge1xuXG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICBib3JkZXI6IDRweCBzb2xpZCBibGFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR3aGl0ZSwgMC4zKTtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAvLyBGb3VuZGF0aW9uIGRlZmF1bHRzOlxuICAgICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nOiAwLjc1cmVtIDMuNXJlbTtcbiAgICB9XG5cbiAgICAmLS1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuaGVyby1wcm9qZWN0IHtcbiAgJl9fY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6ICRoZXJvLW9mZnNldCArIDRyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJl9faGVhZGluZyB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICYtLW5vcm1hbCB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgICAgIG1heC13aWR0aDogMzJyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cblxuICAgICYtLWxvZ28ge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDI2cmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3NxdWFyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8vIHRvIG92ZXJyaWRlICogc2VsZWN0b3IgZm9yIGdyYWRpZW50IGJhY2tncm91bmRcbiAgICAvL3RvcDogY2FsYyg1MCUgKyAkaGVyby1vZmZzZXQgLyAyKTtcbiAgICB0b3A6IGNhbGMoNTAlICsgNjJweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICB3aWR0aDogMy41cmVtO1xuICAgIGhlaWdodDogMTA0cHg7XG4gICAgLy9hc3BlY3QtcmF0aW86IDAuNjtcbiAgfVxufVxuIiwiLmhlcm8tc2xpZGVzaG93IHtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIC5zd2lwZXIge1xuICAgIGhlaWdodDogMTAwJTsgLy8gdG8gY29udGFpbiBjb250ZW50IHRvIGhlaWdodFxuICB9XG5cbiAgJl9fc2xpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fcGhvdG8ge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB9XG59XG4iLCIuam9iLXBvc3RpbmdzLWVtYmVkLXNjcmlwdCB7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgfVxuXG4gIC5CYW1ib29IUi1BVFMtSm9icy1MaXN0IHtcbiAgICBwYWRkaW5nOiAycHggMjBweCAxMnB4IDAgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAvLyBPcmlnaW5hbCBzdHlsZXM6XG4gICAgICBwYWRkaW5nOiAycHggMjBweCAxMnB4IDIwcHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuQmFtYm9vSFItQVRTLUxvY2F0aW9uIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAvLyBPcmlnaW5hbCBzdHlsZXM6XG4gICAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctdG9wOiA5cHggIWltcG9ydGFudDtcblxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIubGVnYWwtbmF2IHtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICB9XG4gIH1cblxuICAmX19pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgKyAubGVnYWwtbmF2X19pdGVtIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuICB9XG59XG4iLCIubGlzdGluZyB7XG4gICZfX2l0ZW0ge1xuICAgICsgLmxpc3RpbmdfX2l0ZW0ge1xuICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi5sb2NhdGlvbi1pbmZvIHtcblxuICAmX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIH1cblxuICAmX19hZGRyZXNzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gIH1cblxuICAmX19waG9uZSB7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICB9XG4gIH1cblxufVxuIiwiLm1hc3RoZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxLjc1cmVtIDA7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxNDBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICB3aWR0aDogMjgwcHg7XG4gICAgICB9XG5cbiAgICAgIC5obnktc3ZnIHtcbiAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX25hdmJ1cmdlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIubW9iaWxlLW5hdiB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICZfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgJl9faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIEBtaXhpbiBhY3RpdmUtc3R5bGUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgcGFkZGluZzogMCAxLjVyZW07XG5cbiAgICA+IGEge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIGFjdGl2ZS1zdHlsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgYWN0aXZlLXN0eWxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3N1Ym1lbnUtaXRlbSB7XG4gICAgPiBhOm5vdCguYnV0dG9uKSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5zdWJtZW51IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbiAgfVxuXG59XG4iLCIubmF2YnVyZ2VyIHtcbiAgJG5hdmJ1cmdlci1zaXplOiAzMnB4O1xuICB3aWR0aDogJG5hdmJ1cmdlci1zaXplO1xuICBoZWlnaHQ6ICRuYXZidXJnZXItc2l6ZTtcblxuICAmX19pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAuaXMtbW9iaWxlLW5hdi1vcGVuIC5sLWhlYWRlciAmIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmFmdGVyLFxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICB0cmFuc2l0aW9uOiBpbmhlcml0O1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBjb250ZW50OiAnJztcblxuXG4gICAgICAuaXMtbW9iaWxlLW5hdi1vcGVuIC5sLWhlYWRlciAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgICRuYXZidXJnZXItc3BhY2luZzogMTBweDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgdG9wOiAkbmF2YnVyZ2VyLXNwYWNpbmc7XG5cbiAgICAgIC5pcy1tb2JpbGUtbmF2LW9wZW4gLmwtaGVhZGVyICYge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgdG9wOiAtJG5hdmJ1cmdlci1zcGFjaW5nO1xuXG4gICAgICAuaXMtbW9iaWxlLW5hdi1vcGVuIC5sLWhlYWRlciAmIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gYWN0aXZlLXN0eWxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBjb2xvcjogJGJsYWNrO1xufVxuXG5cbi5wcmltYXJ5LW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAwLjUpO1xuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZzogMXJlbSAxLjc1cmVtO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgIC5obnktc3ZnIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogMC41ZW07XG4gICAgICBoZWlnaHQ6IDAuNWVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVlbTtcbiAgICB9XG5cbiAgfVxuXG4gICZfX2l0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICA+IC5wcmltYXJ5LW5hdl9faXRlbSB7XG4gICAgICA+IGEge1xuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgNDAlKTtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgODAlKTtcbiAgICAgICAgICBAaW5jbHVkZSBhY3RpdmUtc3R5bGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gICZfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLnNob3ctb24tbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICYuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIGFjdGl2ZS1zdHlsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgYWN0aXZlLXN0eWxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3N1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAxNnJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjc1KTtcbiAgICBib3gtc2hhZG93OiAkYnV0dG9uLWJveC1zaGFkb3c7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgICBwZXJzcGVjdGl2ZTogMjAwMHB4O1xuXG4gICAgLmlzLWFjdGl2ZSAmIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJl9fc3VibWVudS1pdGVtIHtcbiAgICArIC5wcmltYXJ5LW5hdl9fc3VibWVudS1pdGVtIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCR3aGl0ZSwgMC4xKTtcbiAgICB9XG5cbiAgICAmOm5vdCgucHJpbWFyeS1uYXZfX3N1Ym1lbnUtaXRlbS0tYWN0aXZlKSB7XG4gICAgICA+IGEge1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGEge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuc2VhcmNoLWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG5cbiAgJl9fY291bnQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgfVxufVxuIiwiLnNpdGUtZm9vdGVyIHtcbiAgJl9fdG9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICoge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAmX19ib3R0b20ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgfVxuXG4gICAgPiAuZ3JpZC1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zaXRlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAwO1xuXG4gICZfX21hc3RoZWFkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxufVxuIiwiLnNpdGUtc2VhcmNoIHtcbiAgJl9fZm9ybSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmwtbWFpbiAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4gICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbnB1dCB7XG4gICAgbGFiZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuaG55LXN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xMnB4O1xuICAgICAgICBmaWxsOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgICAuc2VhcmNoLW92ZXJsYXkgJiB7XG4gICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0yNHB4O1xuICAgICAgICAgIGZpbGw6IHJnYmEoJHdoaXRlLCAwLjIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIC5sLW1haW4gJiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIGNhbGMoMjRweCArIDFyZW0pO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoJGJvZHktZm9udC1jb2xvciwgMC4yKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2VhcmNoLW92ZXJsYXkgJiB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAwIDAgY2FsYyg0OHB4ICsgMXJlbSk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkd2hpdGU7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzMik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg2NCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDY0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIDAuMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19zdWJtaXQge1xuICAgIC5zZWFyY2gtb3ZlcmxheSAmIHtcbiAgICAgIEBleHRlbmQgJXUtc2NyZWVuLXJlYWRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5zcGVjaWZpY2F0aW9ucy1saXN0IHtcbiAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgJl9faGVhZGluZyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMy41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy11bmRlcmxpbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG5cbiAgICAmLS10d28tY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbHVtbiB7XG4gICAgJiArICYge1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcm93IHtcbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgfVxufVxuIiwiLnRlYW0tbWVtYmVycyB7XG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuXG4gICAgICAmW2RhdGEtZ3JpZD0nMyddIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnRlYW0tbWVtYmVycy1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICZfX3Bob3RvIHtcbiAgICBmaWd1cmUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgICB9XG4gIH1cblxuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAudGVhbS1tZW1iZXJzLWl0ZW1fX2NvbnRlbnQge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMzAlKTtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19qb2ItdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX19uYW1lIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4udGVhbS1tZW1iZXJzLW1vZGFsIHtcbiAgJG1vZGFsLWJyZWFrcG9pbnQ6IDg3NXB4O1xuXG4gIHRvcDogNnJlbSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzcmVtKTtcbiAgaGVpZ2h0OiB1bnNldDtcbiAgbWluLWhlaWdodDogYXV0bztcbiAgbWFyZ2luOiBhdXRvO1xuXG4gIHBhZGRpbmc6IDEuMjVyZW07XG5cbiAgLy8gUmVzZXQgRm91bmRhdGlvbiBkZWZhdWx0cyBhdCBzbWFsbCBzaXplczpcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMTByZW0pO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHRvcDogdW5zZXQ7XG4gIH1cblxuICAmX19jbG9zZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxcmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zaXRpb246ICR0cmFucztcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAuaG55LXN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnM7XG4gICAgICBmaWxsOiAkZGFyay1ncmF5O1xuICAgIH1cblxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcblxuICAgICAgLmhueS1zdmcge1xuICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdiB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuXG4gICAgJi0tcHJldiB7XG4gICAgICBsZWZ0OiAtNHJlbTtcbiAgICB9XG5cbiAgICAmLS1uZXh0IHtcbiAgICAgIHJpZ2h0OiAtNHJlbTtcbiAgICB9XG5cbiAgICAuaG55LXN2ZyB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFucztcbiAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5obnktc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3NsaWRlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbW9kYWwtYnJlYWtwb2ludCkge1xuICAgICAgZ3JpZC1nYXA6IDJyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAzZnI7XG4gICAgfVxuICB9XG5cbiAgJl9fcGhvdG8ge1xuICAgIGZpZ3VyZSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNDgwcHgpIHtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1vZGFsLWJyZWFrcG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuXG4gICZfX2pvYi10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fbmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbW9kYWwtYnJlYWtwb2ludCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIH1cblxuICAgIGRpdiArIGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogOXB4O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbW9kYWwtYnJlYWtwb2ludCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy11bmRlcmxpbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArIDAuNzVyZW0pO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtb2RhbC1icmVha3BvaW50KSB7XG4gICAgICAgIHRvcDogY2FsYygxMDAlICsgMS41cmVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19iaW8ge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlIEZvdW5kYXRpb24gZGVmYXVsdFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxufVxuIiwiLm1mYS1sb2dvIHtcbiAgLmNvbnRhY3QtaW5mbyAmIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgPiBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5zd2lwZXIge1xuICAmLmpzLWdhbGxlcnkge1xuICAgIFxuICB9XG5cbiAgJi1zbGlkZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuc3dpcGVyLWJ1dHRvbi1uZXh0LCAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgICBjb2xvcjogJGJsYWNrO1xuICB9XG59XG5cbiIsIi5nYWxsZXJ5IHtcblxuICAmX19pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDI0cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgIC5zd2lwZXItc2xpZGUtcHJldiAmIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnN3aXBlci1zbGlkZS1uZXh0ICYge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgID4gYSB7XG4gICAgICB0cmFuc2l0aW9uOiAzMDBtcztcbiAgICAgIGhlaWdodDogODAlO1xuICAgIH1cblxuICAgIC5zd2lwZXItc2xpZGUtYWN0aXZlICYge1xuICAgICAgPiBhIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAmIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIH1cblxuICB9XG5cbiAgJl9fY2FwdGlvbi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLTJyZW07XG5cbiAgICAuZ2FsbGVyeS0tc3R5bGUtMyAmIHtcbiAgICAgIHRvcDogLTNyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAtNHJlbTtcbiAgICB9XG4gIH1cblxuICAuc3dpcGVyLXByZXYsIC5zd2lwZXItbmV4dCB7XG4gICAgLmhueS1zdmcge1xuICAgICAgd2lkdGg6IDNyZW07XG4gICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgY29sb3I6ICM0ZTRkNGQ7XG4gICAgICB0cmFuc2l0aW9uOiAyMDBtcyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5obnktc3ZnIHtcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NhcHRpb24tY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDI2cmVtO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICAgIG1hcmdpbjogMDsgLy8gb3ZlcnJpZGUgU3dpcGVyIGRlZmF1bHQgc3R5bGVzXG4gICAgei1pbmRleDogMTtcblxuICAgIC5nYWxsZXJ5LS1zdHlsZS0zICYge1xuICAgICAgYm9yZGVyOiAxcmVtIHNvbGlkICR3aGl0ZTtcbiAgICAgIG1heC13aWR0aDogMjhyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fY2FwdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXG4gICAgJi0tdGl0bGUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgfVxuXG4gICAgJi0tZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5pbWFnZS10ZXh0IHtcblxuICAmX19jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgLmltYWdlLXRleHQtLXN0eWxlLTIgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICB9XG4gIH1cblxuICAmX193cmFwcGVyIHtcbiAgICAuaW1hZ2UtdGV4dC0tc3R5bGUtMiAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAmX19pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IDM2cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgIC5pbWFnZS10ZXh0LS1zdHlsZS0yICYge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19zcXVhcmUge1xuICAgIHdpZHRoOiAzNnJlbTtcbiAgICBhc3BlY3QtcmF0aW86IDEuMTU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkOyAvLyB1c2VzIHRoZW1lIGNvbG91clxuICB9XG5cbiAgJl9fY29udGVudC13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNyZW0gNC41cmVtOyAvLyBpbmNsdWRlcyAxLjVyZW0gcGFkZGluZyB0byBzaW11bGF0ZSAuZ3JpZC1wYWRkaW5nLXhcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAmX19saXR0bGUtc3F1YXJlIHtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IDNyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogM3JlbTtcbiAgICBsZWZ0OiAycmVtO1xuICB9XG5cbiAgJl9fYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIH1cblxufVxuIiwiLy8gLnNlbGxpbmctcG9pbnRzLWhvcml6b250YWwgYW5kIC5zZWxsaW5nLXBvaW50cy12ZXJ0aWNhbCBhcmUgbmV3XG4vLyBCRU0gYmxvY2tzIG5lc3RlZCB3aXRoaW4gdGhlIHBhcmVudCAuc2VsbGluZy1wb2ludHMgY29udGFpbmVyXG5cbi5zZWxsaW5nLXBvaW50cyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zZWxsaW5nLXBvaW50cy1ob3Jpem9udGFsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmX19pbWFnZXMtcm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAmX19iYW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiA2MCU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICAmX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGluZ3Mtcm93IHtcbiAgfVxuXG4gICZfX2hlYWRpbmcge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLmxpbmUtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICZfX3ZlcnRpY2FsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgIH1cblxuICAgICZfX2hvcml6b250YWwge1xuICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlICsgM3JlbSk7IC8vIHRvIGFjY291bnQgZm9yIC5ncmlkLXgtcGFkZGluZ1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICB9XG5cbiAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDUwJSArIDNyZW0pOyAvLyB0byBhY2NvdW50IGZvciAuZ3JpZC14LXBhZGRpbmdcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIH1cblxuICAgICAgJi0tZnVsbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5zZWxsaW5nLXBvaW50cy12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXItZ3JheTtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmX19jb250ZW50LWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTsgLy8gdG8gcGxhY2Ugb3ZlciB0aGUgaW1hZ2UgY29udGFpbmVyXG4gIH1cblxuICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cblxuICAmX19yb3cge1xuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGluZyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4zcmVtO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuM3JlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0LjVyZW07XG5cbiAgICBoNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiA2cHg7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIC8vIHNtYWxsIGxpbmVcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogNnJlbTtcbiAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXItZ3JheTtcbiAgICB9XG4gIH1cblxuICAmX19wb2ludCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAxMDAlO1xuXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuICAgIGJvcmRlci10b3Atd2lkdGg6IDIuMjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMi4yNXJlbTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXJlbTtcblxuICAgIC8vICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgaW5saW5lIGJvcmRlci1jb2xvciBzdHlsZXMgKGZyb20gdGhlbWUgY29sb3IpXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICB9XG5cbiAgJl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAmX19pbWFnZS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIH1cbn1cbiIsIi5zcGVjaWZpY2F0aW9ucyB7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJl9fd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIH1cblxuICAgID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gICZfX2xlZnQtc2lkZSwgJl9fcmlnaHQtc2lkZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJl9fbGVmdC1yb3cge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICYtLWxhYmVsIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgfVxuXG4gICAgJiArICYge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgfVxuXG4gICZfX3RhYmxlLCAmX190YWJsZSB0ciwgJl9fdGFibGUgdGQge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICR3aGl0ZTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB9XG5cbiAgJl9fdGFibGUge1xuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAuMTVyZW0gMXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLS1sYWJlbCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICB9XG5cbiAgJl9fZG9jdW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgLmhueS1zdmcge1xuICAgICAgaGVpZ2h0OiAxLjc1cmVtO1xuICAgICAgd2lkdGg6IDEuNzVyZW07XG4gICAgfVxuICB9XG5cbn1cblxuIiwiLy8gVGhlIGFjdHVhbCB0b3AtbGV2ZWwgY29udGFpbmVyIGNsYXNzIGlzIC5zcGVjaWZpY2F0aW9ucy1zdGFuZGFyZFxuLy8gLnNwZWNzLXRleHQtb25seSBhbmQgLnNwZWNzLXdpdGgtaW1hZ2Ugc3RhcnQgYSBuZXcgQkVNIGJsb2NrXG4vLyB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlIHR3byBsYXlvdXQgdHlwZXMuXG5cbi5zcGVjcy10ZXh0LW9ubHkge1xuICAmX19jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgfVxuXG4gICZfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDY0cmVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gICZfX2RpdmlkZXIge1xuICAgIG1hcmdpbjogMCAwLjVyZW07XG4gIH1cbn1cblxuLnNwZWNzLXdpdGgtaW1hZ2Uge1xuICAmX19jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgICB9XG4gIH1cblxuICAmX19pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAzMHJlbTtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgd2hpdGU7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cbn1cbiIsIi50ZXh0LWltYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICYtLXN0eWxlLTIge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cblxuICAmX19pbm5lci13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJl9fc3F1YXJlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiA1cHggc29saWQ7IC8vIHVzZXMgdGhlbWUgY29sb3VyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0pO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNHJlbSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmX19pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudC1jb250YWluZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJl9fYm9va21hcmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgd2lkdGg6IDIuNXJlbTtcbiAgICBoZWlnaHQ6IDEwcmVtO1xuICB9XG5cbiAgJl9fY29udGVudC13cmFwcGVyIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZyZW0gNC41cmVtIDZyZW0gNnJlbTtcbiAgfVxuXG4gICZfX3N0cmlwZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogNTB2dztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgfVxuXG4gIC5jZWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxufVxuIiwiLnRleHQtaW1hZ2UtZ3JpZCB7XG5cbiAgJl9faW5uZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX2NvbnRlbnQtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJl9fY29udGVudC13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDRyZW0gNHJlbSA0cmVtIDlyZW07IC8vIHRvIGFjY291bnQgZm9yIHdpZHRoIG9mICZfX2RlY29yYXRpdmUtYmxvY2tcbiAgfVxuXG4gICZfX2RlY29yYXRpdmUtYmxvY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICB9XG4gIH1cblxuICAmX19pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwwLDAsMC43KSAwJSwgcmdiYSgwLDAsMCwwKSAzNSUpO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG5cbiAgLmNlbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG59XG4iLCIudHdvLWNvbHVtbi10ZXh0IHtcblxuICAmX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgMCwgMCk7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgwLCAwLCAwLCAwLjg1KSAwJSwgcmdiKDAsIDAsIDAsIDAuMSkgNzUlKTtcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cblxuICAmX19pbm5lci13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiA0cmVtIDlyZW07XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gICZfX2xlZnQtY29sdW1uLCAmX19yaWdodC1jb2x1bW4ge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cbiIsIkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICRibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgICZbaHJlZl0ge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3Qgc2hvdyBsaW5rcyBmb3IgZnJhZ21lbnQgaWRlbnRpZmllcnMsIG9yIDp0ZWwgbGlua3NcbiAgICAmW2hyZWZePSd0ZWwnXSxcbiAgICBbaHJlZl49JyMnXSB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIGFiYnIge1xuICAgICZbdGl0bGVdIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjaztcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cblxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG5cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gQXZvaWQgaW1hZ2VzIGJsZWVkaW5nIG9mZiB0aGUgZWRnZXMgb2YgdGhlIHBhZ2VcbiAgfVxuXG4gIC5obnktc3ZnIHtcbiAgICBmaWxsOiAkYmxhY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7XG4gIH1cblxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG59XG4iXX0= */
