@charset "UTF-8";
/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

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

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

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

a {
  background-color: transparent; }

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

b,
strong {
  font-weight: bolder; }

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

small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

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

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

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

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

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

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

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

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

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

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

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

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

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

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

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

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

body {
  margin: 0;
  padding: 0;
  background: #FFFFFF;
  font-family: paralucent, "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: 300;
  line-height: 1.75;
  color: #000000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

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

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

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

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

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

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

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.3375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #EDF3FF;
  border-radius: 0;
  background-color: #EDF3FF;
  box-shadow: none;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4;
  color: #000000;
  transition: border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #0054FF;
    background-color: #EDF3FF;
    box-shadow: none;
    transition: 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: #979797;
  cursor: not-allowed; }

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

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

::-webkit-input-placeholder {
  color: #2E2E2E; }

::-moz-placeholder {
  color: #2E2E2E; }

:-ms-input-placeholder {
  color: #2E2E2E; }

::-ms-input-placeholder {
  color: #2E2E2E; }

::placeholder {
  color: #2E2E2E; }

[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: 1.125rem;
  font-weight: 300;
  line-height: 1.8;
  color: #000000; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

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

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

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

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #2E2E2E;
  background: #979797;
  color: #000000;
  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 #2E2E2E; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.3375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #EDF3FF;
  border-radius: 0;
  background-color: #EDF3FF;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4;
  color: #000000;
  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%280, 84, 255%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: 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 #0054FF;
    background-color: #EDF3FF;
    box-shadow: none;
    transition: border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #979797;
    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: #faedeb; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::-moz-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #cc4b37; }

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

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

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

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

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

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

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

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: paralucent, "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: 600;
  color: #0054FF;
  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: #2E2E2E; }

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

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

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

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

@media print, screen and (min-width: 64em) {
  h1, .h1 {
    font-size: 4.375rem; }
  h2, .h2 {
    font-size: 2.75rem; }
  h3, .h3 {
    font-size: 1.875rem; }
  h4, .h4 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #0054FF;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #0048db; }
  a img {
    border: 0; }

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #2E2E2E; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #010021; }

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

figure {
  margin: 0; }

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

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

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

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

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

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

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

.code-block {
  border: 1px solid #2E2E2E;
  background-color: #979797;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: 300;
  color: #000000;
  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: 30em) {
  .small-text-left {
    text-align: left; }
  .small-text-right {
    text-align: right; }
  .small-text-center {
    text-align: center; }
  .small-text-justify {
    text-align: justify; } }

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

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

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

@media print {
  * {
    background: transparent !important;
    color: black !important;
    -webkit-print-color-adjust: economy;
            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 #010021;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.row {
  max-width: 76.875rem;
  margin-right: auto;
  margin-left: auto;
  display: flex;
  flex-flow: row wrap; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 30em) {
      .row .row {
        margin-right: -0.625rem;
        margin-left: -0.625rem; } }
    @media print, screen and (min-width: 48em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row.is-collapse-child,
  .row.collapse > .column > .row,
  .row.collapse > .columns > .row {
    margin-right: 0;
    margin-left: 0; }

.column, .columns {
  flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0; }
  @media print, screen and (min-width: 48em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

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

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

.tiny-1 {
  flex: 0 0 8.33333%;
  max-width: 8.33333%; }

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

.tiny-2 {
  flex: 0 0 16.66667%;
  max-width: 16.66667%; }

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

.tiny-3 {
  flex: 0 0 25%;
  max-width: 25%; }

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

.tiny-4 {
  flex: 0 0 33.33333%;
  max-width: 33.33333%; }

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

.tiny-5 {
  flex: 0 0 41.66667%;
  max-width: 41.66667%; }

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

.tiny-6 {
  flex: 0 0 50%;
  max-width: 50%; }

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

.tiny-7 {
  flex: 0 0 58.33333%;
  max-width: 58.33333%; }

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

.tiny-8 {
  flex: 0 0 66.66667%;
  max-width: 66.66667%; }

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

.tiny-9 {
  flex: 0 0 75%;
  max-width: 75%; }

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

.tiny-10 {
  flex: 0 0 83.33333%;
  max-width: 83.33333%; }

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

.tiny-11 {
  flex: 0 0 91.66667%;
  max-width: 91.66667%; }

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

.tiny-12 {
  flex: 0 0 100%;
  max-width: 100%; }

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

.tiny-up-1 {
  flex-wrap: wrap; }
  .tiny-up-1 > .column, .tiny-up-1 > .columns {
    flex: 0 0 100%;
    max-width: 100%; }

.tiny-up-2 {
  flex-wrap: wrap; }
  .tiny-up-2 > .column, .tiny-up-2 > .columns {
    flex: 0 0 50%;
    max-width: 50%; }

.tiny-up-3 {
  flex-wrap: wrap; }
  .tiny-up-3 > .column, .tiny-up-3 > .columns {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.tiny-up-4 {
  flex-wrap: wrap; }
  .tiny-up-4 > .column, .tiny-up-4 > .columns {
    flex: 0 0 25%;
    max-width: 25%; }

.tiny-up-5 {
  flex-wrap: wrap; }
  .tiny-up-5 > .column, .tiny-up-5 > .columns {
    flex: 0 0 20%;
    max-width: 20%; }

.tiny-up-6 {
  flex-wrap: wrap; }
  .tiny-up-6 > .column, .tiny-up-6 > .columns {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.tiny-up-7 {
  flex-wrap: wrap; }
  .tiny-up-7 > .column, .tiny-up-7 > .columns {
    flex: 0 0 14.28571%;
    max-width: 14.28571%; }

.tiny-up-8 {
  flex-wrap: wrap; }
  .tiny-up-8 > .column, .tiny-up-8 > .columns {
    flex: 0 0 12.5%;
    max-width: 12.5%; }

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

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

@media print, screen and (min-width: 30em) {
  .small-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .small-offset-0 {
    margin-left: 0%; }
  .small-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .small-offset-1 {
    margin-left: 8.33333%; }
  .small-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .small-offset-2 {
    margin-left: 16.66667%; }
  .small-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .small-offset-3 {
    margin-left: 25%; }
  .small-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .small-offset-4 {
    margin-left: 33.33333%; }
  .small-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .small-offset-5 {
    margin-left: 41.66667%; }
  .small-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .small-offset-6 {
    margin-left: 50%; }
  .small-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .small-offset-7 {
    margin-left: 58.33333%; }
  .small-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .small-offset-8 {
    margin-left: 66.66667%; }
  .small-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .small-offset-9 {
    margin-left: 75%; }
  .small-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .small-offset-10 {
    margin-left: 83.33333%; }
  .small-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  .small-offset-11 {
    margin-left: 91.66667%; }
  .small-up-1 {
    flex-wrap: wrap; }
    .small-up-1 > .column, .small-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  .small-up-2 {
    flex-wrap: wrap; }
    .small-up-2 > .column, .small-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  .small-up-3 {
    flex-wrap: wrap; }
    .small-up-3 > .column, .small-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .small-up-4 {
    flex-wrap: wrap; }
    .small-up-4 > .column, .small-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  .small-up-5 {
    flex-wrap: wrap; }
    .small-up-5 > .column, .small-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  .small-up-6 {
    flex-wrap: wrap; }
    .small-up-6 > .column, .small-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .small-up-7 {
    flex-wrap: wrap; }
    .small-up-7 > .column, .small-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .small-up-8 {
    flex-wrap: wrap; }
    .small-up-8 > .column, .small-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 30em) and (min-width: 30em) {
  .small-expand {
    flex: 1 1 0px; } }

.row.small-unstack > .column, .row.small-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 30em) {
    .row.small-unstack > .column, .row.small-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 30em) {
  .small-collapse > .column, .small-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .small-uncollapse > .column, .small-uncollapse > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; } }

@media print, screen and (min-width: 48em) {
  .medium-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 {
    flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  .medium-up-2 {
    flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  .medium-up-3 {
    flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-up-4 {
    flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  .medium-up-5 {
    flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  .medium-up-6 {
    flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-7 {
    flex-wrap: wrap; }
    .medium-up-7 > .column, .medium-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .medium-up-8 {
    flex-wrap: wrap; }
    .medium-up-8 > .column, .medium-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 48em) and (min-width: 48em) {
  .medium-expand {
    flex: 1 1 0px; } }

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 48em) {
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 48em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

@media print, screen and (min-width: 64em) {
  .large-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 {
    flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  .large-up-2 {
    flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  .large-up-3 {
    flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-up-4 {
    flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  .large-up-5 {
    flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  .large-up-6 {
    flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-7 {
    flex-wrap: wrap; }
    .large-up-7 > .column, .large-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .large-up-8 {
    flex-wrap: wrap; }
    .large-up-8 > .column, .large-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    flex: 1 1 0px; } }

.row.large-unstack > .column, .row.large-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 64em) {
    .row.large-unstack > .column, .row.large-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

.shrink {
  flex: 0 0 auto;
  max-width: 100%; }

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

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 13px 24px 12px 24px;
  border: 2px solid #0054FF;
  border-radius: 25px;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 21px;
  font-weight: 600;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
    background-color: #0054FF;
    color: #FFFFFF; }
  .button:hover, .button:focus {
    background-color: transparent;
    color: #FFFFFF; }
  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
    background-color: #0054FF;
    color: #FFFFFF; }
  .button.primary:hover, .button.primary:focus {
    background-color: #0043cc;
    color: #FFFFFF; }
  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
    background-color: #767676;
    color: #FFFFFF; }
  .button.secondary:hover, .button.secondary:focus {
    background-color: #5e5e5e;
    color: #FFFFFF; }
  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
    background-color: #3adb76;
    color: #0054FF; }
  .button.success:hover, .button.success:focus {
    background-color: #22bb5b;
    color: #0054FF; }
  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
    background-color: #ffae00;
    color: #0054FF; }
  .button.warning:hover, .button.warning:focus {
    background-color: #cc8b00;
    color: #0054FF; }
  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
    background-color: #cc4b37;
    color: #FFFFFF; }
  .button.alert:hover, .button.alert:focus {
    background-color: #a53b2a;
    color: #FFFFFF; }
  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
    background-color: transparent; }
  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {
    border: 1px solid #0054FF;
    color: #0054FF; }
  .button.hollow:hover, .button.hollow:focus {
    border-color: #002a80;
    color: #002a80; }
  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {
    border: 1px solid #0054FF;
    color: #0054FF; }
  .button.hollow.primary:hover, .button.hollow.primary:focus {
    border-color: #002a80;
    color: #002a80; }
  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {
    border: 1px solid #767676;
    color: #767676; }
  .button.hollow.secondary:hover, .button.hollow.secondary:focus {
    border-color: #3b3b3b;
    color: #3b3b3b; }
  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {
    border: 1px solid #3adb76;
    color: #3adb76; }
  .button.hollow.success:hover, .button.hollow.success:focus {
    border-color: #157539;
    color: #157539; }
  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {
    border: 1px solid #ffae00;
    color: #ffae00; }
  .button.hollow.warning:hover, .button.hollow.warning:focus {
    border-color: #805700;
    color: #805700; }
  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {
    border: 1px solid #cc4b37;
    color: #cc4b37; }
  .button.hollow.alert:hover, .button.hollow.alert:focus {
    border-color: #67251a;
    color: #67251a; }
  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
    border-color: transparent;
    background-color: transparent; }
  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
    color: #0054FF; }
  .button.clear:hover, .button.clear:focus {
    color: #002a80; }
  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {
    color: #0054FF; }
  .button.clear.primary:hover, .button.clear.primary:focus {
    color: #002a80; }
  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {
    color: #767676; }
  .button.clear.secondary:hover, .button.clear.secondary:focus {
    color: #3b3b3b; }
  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {
    color: #3adb76; }
  .button.clear.success:hover, .button.clear.success:focus {
    color: #157539; }
  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {
    color: #ffae00; }
  .button.clear.warning:hover, .button.clear.warning:focus {
    color: #805700; }
  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {
    color: #cc4b37; }
  .button.clear.alert:hover, .button.clear.alert:focus {
    color: #67251a; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #FFFFFF transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 24px; }
  .button.dropdown.hollow::after, .button.dropdown.clear::after {
    border-top-color: #0054FF; }
  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
    border-top-color: #0054FF; }
  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
    border-top-color: #767676; }
  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
    border-top-color: #cc4b37; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

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

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  flex-grow: 1; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .button-group::after {
    clear: both; }
  .button-group::before, .button-group::after {
    display: none; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 21px;
    flex: 0 0 auto; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.expanded .button {
    flex: 1 1 0px;
    margin-right: 0; }
  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {
    background-color: #0054FF;
    color: #FFFFFF; }
  .button-group.primary .button:hover, .button-group.primary .button:focus {
    background-color: #0043cc;
    color: #FFFFFF; }
  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {
    background-color: #767676;
    color: #FFFFFF; }
  .button-group.secondary .button:hover, .button-group.secondary .button:focus {
    background-color: #5e5e5e;
    color: #FFFFFF; }
  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {
    background-color: #3adb76;
    color: #0054FF; }
  .button-group.success .button:hover, .button-group.success .button:focus {
    background-color: #22bb5b;
    color: #0054FF; }
  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {
    background-color: #ffae00;
    color: #0054FF; }
  .button-group.warning .button:hover, .button-group.warning .button:focus {
    background-color: #cc8b00;
    color: #0054FF; }
  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {
    background-color: #cc4b37;
    color: #FFFFFF; }
  .button-group.alert .button:hover, .button-group.alert .button:focus {
    background-color: #a53b2a;
    color: #FFFFFF; }
  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {
    background-color: transparent; }
  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {
    border: 1px solid #0054FF;
    color: #0054FF; }
  .button-group.hollow .button:hover, .button-group.hollow .button:focus {
    border-color: #002a80;
    color: #002a80; }
  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {
    border: 1px solid #0054FF;
    color: #0054FF; }
  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {
    border-color: #002a80;
    color: #002a80; }
  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {
    border: 1px solid #767676;
    color: #767676; }
  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {
    border-color: #3b3b3b;
    color: #3b3b3b; }
  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {
    border: 1px solid #3adb76;
    color: #3adb76; }
  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {
    border-color: #157539;
    color: #157539; }
  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {
    border: 1px solid #ffae00;
    color: #ffae00; }
  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {
    border-color: #805700;
    color: #805700; }
  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {
    border: 1px solid #cc4b37;
    color: #cc4b37; }
  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {
    border-color: #67251a;
    color: #67251a; }
  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {
    border-color: transparent;
    background-color: transparent; }
  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {
    color: #0054FF; }
  .button-group.clear .button:hover, .button-group.clear .button:focus {
    color: #002a80; }
  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {
    color: #0054FF; }
  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {
    color: #002a80; }
  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {
    color: #767676; }
  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {
    color: #3b3b3b; }
  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {
    color: #3adb76; }
  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {
    color: #157539; }
  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {
    color: #ffae00; }
  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {
    color: #805700; }
  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {
    color: #cc4b37; }
  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {
    color: #67251a; }
  .button-group.no-gaps .button {
    margin-right: -0.0625rem; }
    .button-group.no-gaps .button + .button {
      border-left-color: transparent; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
      flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
        margin-bottom: 0; }
    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
      flex: 1 1 0px;
      margin-right: 0; }
  @media print, screen and (min-width: 48em) {
    .button-group.stacked-for-small .button {
      flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 30em) and (max-width: 47.99875em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }
  @media print, screen and (max-width: 63.99875em) {
    .button-group.stacked-for-medium.expanded {
      display: block; }
      .button-group.stacked-for-medium.expanded .button {
        display: block;
        margin-right: 0; } }

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #000000;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #2E2E2E; }
  .breadcrumbs a {
    color: #0054FF; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #2E2E2E;
    cursor: not-allowed; }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 0;
  background-color: white;
  color: #000000; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #d9e5ff;
    color: #000000; }
  .callout.secondary {
    background-color: #eaeaea;
    color: #000000; }
  .callout.success {
    background-color: #e1faea;
    color: #000000; }
  .callout.warning {
    background-color: #fff3d9;
    color: #000000; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #000000; }
  .callout.tiny {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

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

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

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

.accordion-title {
  position: relative;
  display: block;
  padding: 10px 2.5rem;
  border: none;
  border-bottom: 0;
  font-size: 1.125rem;
  line-height: 1;
  color: #0054FF; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: none;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #FFFFFF; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: "+"; }
  .is-active > .accordion-title::before {
    content: "–"; }

.accordion-content {
  display: none;
  padding: 3rem 2.5rem;
  border: none;
  border-bottom: 0;
  background-color: #002C87;
  color: #FFFFFF; }
  :last-child > .accordion-content:last-child {
    border-bottom: none; }

.tabs {
  margin: 0;
  border: 1px solid #979797;
  background: #EDF3FF;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' ';
    flex-basis: 0;
    order: 1; }
  .tabs::after {
    clear: both; }

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

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

.tabs.primary {
  background: #0054FF; }
  .tabs.primary > li > a {
    color: #FFFFFF; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #0050f2; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 10px 30px 4px;
    font-size: 1.3125rem;
    line-height: 1;
    color: #0054FF; }
    [data-whatinput='mouse'] .tabs-title > a {
      outline: 0; }
    .tabs-title > a:hover {
      background: #FFFFFF;
      color: #0048db; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #0054FF;
      color: #FFFFFF; }

.tabs-content {
  border: 1px solid #979797;
  border-top: 0;
  background: #002C87;
  color: #FFFFFF;
  transition: all 0.5s ease; }

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

.tabs-panel {
  display: none;
  padding: 3rem 2.5rem; }
  .tabs-panel.is-active {
    display: block; }

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 12px 0; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    flex-wrap: wrap;
    flex-direction: row; }
  .menu.vertical {
    flex-wrap: nowrap;
    flex-direction: column; }
  .menu.expanded li {
    flex: 1 1 0px; }
  .menu.simple {
    align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 30em) {
    .menu.small-horizontal {
      flex-wrap: wrap;
      flex-direction: row; }
    .menu.small-vertical {
      flex-wrap: nowrap;
      flex-direction: column; }
    .menu.small-expanded li {
      flex: 1 1 0px; }
    .menu.small-simple li {
      flex: 1 1 0px; } }
  @media print, screen and (min-width: 48em) {
    .menu.medium-horizontal {
      flex-wrap: wrap;
      flex-direction: row; }
    .menu.medium-vertical {
      flex-wrap: nowrap;
      flex-direction: column; }
    .menu.medium-expanded li {
      flex: 1 1 0px; }
    .menu.medium-simple li {
      flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      flex-wrap: wrap;
      flex-direction: row; }
    .menu.large-vertical {
      flex-wrap: nowrap;
      flex-direction: column; }
    .menu.large-expanded li {
      flex: 1 1 0px; }
    .menu.large-simple li {
      flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: flex; }
  .menu.icon-left li a {
    flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a {
    flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg {
      margin-left: 0.25rem; }
  .menu.icon-top li a {
    flex-flow: column nowrap; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg {
      align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-bottom li a {
    flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg {
      align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu .is-active > a {
    background: #0054FF;
    color: #FFFFFF; }
  .menu .active > a {
    background: #0054FF;
    color: #FFFFFF; }
  .menu.align-left {
    justify-content: flex-start; }
  .menu.align-right li {
    display: flex;
    justify-content: flex-end; }
    .menu.align-right li .submenu li {
      justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: flex;
    justify-content: center; }
    .menu.align-center li .submenu li {
      justify-content: flex-start; }
  .menu .menu-text {
    padding: 12px 0;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

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

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

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

.accordion-menu a {
  padding: 12px 0; }

.accordion-menu .is-accordion-submenu a {
  padding: 12px 0; }

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

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

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

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

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  cursor: pointer; }
  .submenu-toggle::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #0054FF transparent transparent;
    top: 0;
    bottom: 0;
    margin: auto; }

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

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

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

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

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

.dropdown.menu > li > a {
  padding: 12px 0; }

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

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

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

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

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

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

@media print, screen and (min-width: 30em) {
  .dropdown.menu.small-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.small-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.small-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.small-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.small-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

@media print, screen and (min-width: 48em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

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

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

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

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: none;
  background: #EDF3FF; }
  .dropdown .is-dropdown-submenu a {
    padding: 12px 0; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

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

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

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

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #EDF3FF; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: none; }
  .off-canvas.is-open {
    transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #EDF3FF; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-push {
    z-index: 12; }
  .off-canvas-absolute.is-closed {
    visibility: hidden; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      box-shadow: none; }
  .off-canvas-absolute.is-open {
    transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 100vw;
  transform: translateX(-100vw); }
  @media print, screen and (min-width: 48em) {
    .position-left {
      width: 480px;
      transform: translateX(-480px); } }
  .off-canvas-content .off-canvas.position-left {
    transform: translateX(-100vw); }
    @media print, screen and (min-width: 48em) {
      .off-canvas-content .off-canvas.position-left {
        transform: translateX(-480px); } }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    transform: translateX(100vw); }
    @media print, screen and (min-width: 48em) {
      .off-canvas-content.is-open-left.has-transition-push {
        transform: translateX(480px); } }
  .position-left.is-transition-push {
    box-shadow: inset 0 0 0 0 none; }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 100vw;
  transform: translateX(100vw); }
  @media print, screen and (min-width: 48em) {
    .position-right {
      width: 480px;
      transform: translateX(480px); } }
  .off-canvas-content .off-canvas.position-right {
    transform: translateX(100vw); }
    @media print, screen and (min-width: 48em) {
      .off-canvas-content .off-canvas.position-right {
        transform: translateX(480px); } }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    transform: translateX(-100vw); }
    @media print, screen and (min-width: 48em) {
      .off-canvas-content.is-open-right.has-transition-push {
        transform: translateX(-480px); } }
  .position-right.is-transition-push {
    box-shadow: inset 0 0 0 0 none; }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(-250px); }
  .off-canvas-content .off-canvas.position-top {
    transform: translateY(-250px); }
    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-top.has-transition-push {
    transform: translateY(250px); }
  .position-top.is-transition-push {
    box-shadow: inset 0 0 0 0 none; }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(250px); }
  .off-canvas-content .off-canvas.position-bottom {
    transform: translateY(250px); }
    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
      transform: translate(0, 0); }
  .off-canvas-content.is-open-bottom.has-transition-push {
    transform: translateY(-250px); }
  .position-bottom.is-transition-push {
    box-shadow: inset 0 0 0 0 none; }

.off-canvas-content {
  transform: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {
    transition: transform 0.5s ease; }
  .off-canvas-content.has-transition-push {
    transform: translate(0, 0); }
  .off-canvas-content .off-canvas.is-open {
    transform: translate(0, 0); }

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

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

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

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

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

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

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

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

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

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

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

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

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

@media print, screen and (min-width: 30em) {
  .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: 48em) {
  .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: 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; } }

.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: 30em) {
  .small-flex-container {
    display: flex; }
  .small-flex-child-auto {
    flex: 1 1 auto; }
  .small-flex-child-grow {
    flex: 1 0 auto; }
  .small-flex-child-shrink {
    flex: 0 1 auto; }
  .small-flex-dir-row {
    flex-direction: row; }
  .small-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  .small-flex-dir-column {
    flex-direction: column; }
  .small-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

@media print, screen and (min-width: 48em) {
  .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: 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; } }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7; }

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

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

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

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

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

.spin-ccw {
  -webkit-animation-name: spin-ccw-1turn;
          animation-name: spin-ccw-1turn; }

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

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

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

body {
  font-size: 1.125rem; }

.path-user.user-not-logged-in form {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .path-user.user-not-logged-in form {
      margin-bottom: 90px; } }

.dropbutton > .dropbutton-action > span {
  cursor: pointer; }

.dropbutton .dropbutton-toggle {
  bottom: auto;
  height: 100%;
  width: 100%; }
  .dropbutton .dropbutton-toggle .dropbutton-arrow {
    position: static;
    width: 100%;
    height: 100%;
    margin: auto;
    border: none;
    background-image: url("../img/drop.svg");
    background-repeat: no-repeat;
    background-position: 18px 13px;
    display: block; }

.dropbutton ul {
  margin: 0;
  padding: 5px 0;
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateY(100%);
  background-color: #EDF3FF; }
  .dropbutton ul .dropbutton-action a, .dropbutton ul .dropbutton-action span {
    padding: 5px 15px;
    color: #000000; }
  .dropbutton ul .dropbutton-action a {
    position: relative; }
    .dropbutton ul .dropbutton-action a:after {
      content: '';
      display: block;
      position: absolute;
      bottom: 6px;
      left: 15px;
      width: 17px;
      height: 2px;
      background-color: #0054FF;
      opacity: 0;
      transition: opacity .25s ease-out; }
    .dropbutton ul .dropbutton-action a:hover:after, .dropbutton ul .dropbutton-action a:focus:after {
      opacity: 1; }
  .dropbutton ul .active-language {
    font-weight: 700; }

.language-link {
  font-size: 0.875rem; }

.domain-custom-nav-block ul li a, .domain-custom-nav-block ul li span {
  display: flex;
  align-items: center; }

[data-domain-id] {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  width: 18px;
  height: 18px;
  display: block;
  margin-right: 8px; }

ul li ul [data-domain-id] {
  width: 14px;
  height: 14px; }

[data-domain-id='hupico_eu'] {
  background-image: url("../img/hupico_com.svg"); }

[data-domain-id='hupico_be'] {
  background-image: url("../img/hupico_be.svg"); }

[data-domain-id='hupico_fr'] {
  background-image: url("../img/hupico_fr.svg"); }

[data-domain-id='hupico_nl'] {
  background-image: url("../img/hupico_nl.svg"); }

.wrapper-padding {
  padding-right: 3.125rem;
  padding-left: 3.125rem; }
  @media print, screen and (min-width: 48em) {
    .wrapper-padding {
      padding-right: 1.875rem;
      padding-left: 1.875rem; } }

.row .row {
  flex: 1; }

@media print, screen and (min-width: 48em) {
  .medium-no-columns {
    padding-left: 0;
    padding-right: 0; } }

@media print, screen and (min-width: 48em) {
  .medium-no-padding-right {
    padding-right: 0; } }

.field-name-body .field-items .field-item *:last-child,
.field-type-text-long .field-items .field-item *:last-child {
  margin-bottom: 0; }

.field-name-body a,
.field-type-text-long a {
  text-decoration: underline; }

.intro,
.field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block,
.paragraph-items > .paragraph--type--text-block,
.field-label,
.tabs-wrapper .tabs a,
.tabs-wrapper .accordion a,
.product-variation h2,
.product-categories.full .content .field-name-field-body,
.paragraph--type--features > .content > .field-type-text-long,
.paragraph--type--list > .content > .field-type-text-long,
.paragraph--type--overview > .content > .field-type-text-long,
.paragraph--type--jobs > .content > .field-type-text-long,
.paragraph--type--text-image .field-type-text-long {
  letter-spacing: .4px;
  line-height: 2;
  font-size: 1.3125rem; }

.field-label {
  color: #0054FF; }

.field-label,
.tabs-wrapper .tabs .is-active a {
  font-weight: 700; }

.item-list > ul {
  margin: 0;
  list-style-type: none; }

.item-list > .linkicon {
  display: flex;
  list-style-type: none;
  margin: auto calc(-4px - 8px); }
  .item-list > .linkicon > li {
    margin: auto 4px; }
  .item-list > .linkicon a {
    font-size: 15px;
    padding: 8px;
    display: block; }
    .item-list > .linkicon a .icon {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 32px;
      height: 32px;
      border-radius: 50%; }
    .item-list > .linkicon a:not([href*="facebook"]) .icon {
      transition: background-color .25s ease-out;
      color: #010021;
      background-color: #0054FF; }
    .item-list > .linkicon a:not([href*="facebook"]):hover .icon, .item-list > .linkicon a:not([href*="facebook"]):focus .icon {
      background-color: #FFFFFF; }
  .item-list > .linkicon a[href*="facebook"] {
    font-size: 38px;
    border-radius: 0;
    background-color: transparent;
    color: #0054FF;
    transition: color .25s ease-out; }
    .item-list > .linkicon a[href*="facebook"]:hover, .item-list > .linkicon a[href*="facebook"]:focus {
      color: #FFFFFF; }

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

ul[data-drupal-views-infinite-scroll-pager] {
  margin: 0;
  padding: 0;
  list-style-type: none;
  width: 100%;
  text-align: center; }

div[class*="field-type-text"] ul {
  margin: 0 0 1rem 0;
  padding: 0;
  list-style-type: none; }
  div[class*="field-type-text"] ul li {
    padding-left: 14px;
    position: relative; }
    div[class*="field-type-text"] ul li:before {
      content: '-';
      position: absolute;
      top: 0;
      left: 0; }

figure.overlay {
  position: relative; }
  figure.overlay:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background-color: #EDF3FF; }
  figure.overlay > img, figure.overlay > picture img, figure.overlay .field-name-field-image img {
    position: relative;
    z-index: 1; }

.paragraph--type--feature,
.page.teaser,
.product-categories.teaser.level-1,
.partner.teaser {
  background-color: #FFFFFF;
  padding: 30px;
  width: 100%; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--feature,
    .page.teaser,
    .product-categories.teaser.level-1,
    .partner.teaser {
      display: flex;
      flex-direction: column; } }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--feature,
    .page.teaser,
    .product-categories.teaser.level-1,
    .partner.teaser {
      padding: 40px 69px 58px 69px; } }
  .paragraph--type--feature h3,
  .page.teaser h3,
  .product-categories.teaser.level-1 h3,
  .partner.teaser h3 {
    margin-bottom: 25px; }
  .paragraph--type--feature a.link,
  .page.teaser a.link,
  .product-categories.teaser.level-1 a.link,
  .partner.teaser a.link {
    margin-top: auto; }

.paragraph--type--feature .field-name-field-text,
.page.teaser .field-name-body {
  margin-bottom: 20px; }

.paragraph--type--features .features-items,
.view-id-jobs.view-display-teasers > .row > .row,
.view-id-partners-nodes.view-display-teasers > .row > .row,
.view-id-product-categories > .row > .row,
.view-id-products.view-display-teasers > .row > .row {
  margin-bottom: -30px; }

.paragraph--type--features .features-items > div,
.view-id-jobs.view-display-teasers .views-row,
.view-id-partners-nodes.view-display-teasers .views-row,
.view-id-products.view-display-teasers .views-row,
.view-id-product-categories .views-row {
  display: flex;
  margin-bottom: 30px; }

.job.teaser .teaser-content,
.product.teaser .teaser-content,
.product-categories.teaser.level-2 .teaser-content {
  padding: 30px; }

.job.teaser h3,
.product.teaser h3,
.product-categories.teaser.level-2 h3 {
  margin-bottom: 0;
  transition: .25s ease-out font-size; }

.job.teaser figure.overlay img,
.product.teaser figure.overlay img,
.product-categories.teaser.level-2 figure.overlay img {
  opacity: .2;
  transition: .25s ease-out opacity; }

.job.teaser a,
.product.teaser a,
.product-categories.teaser.level-2 a {
  background-color: #FFFFFF;
  transition: .25s ease-out background-color;
  display: block; }
  .job.teaser a:hover, .job.teaser a:focus,
  .product.teaser a:hover,
  .product.teaser a:focus,
  .product-categories.teaser.level-2 a:hover,
  .product-categories.teaser.level-2 a:focus {
    background-color: #0054FF; }
    .job.teaser a:hover figure.overlay img, .job.teaser a:focus figure.overlay img,
    .product.teaser a:hover figure.overlay img,
    .product.teaser a:focus figure.overlay img,
    .product-categories.teaser.level-2 a:hover figure.overlay img,
    .product-categories.teaser.level-2 a:focus figure.overlay img {
      opacity: 1; }
    .job.teaser a:hover h3, .job.teaser a:focus h3,
    .product.teaser a:hover h3,
    .product.teaser a:focus h3,
    .product-categories.teaser.level-2 a:hover h3,
    .product-categories.teaser.level-2 a:focus h3 {
      color: #FFFFFF; }

.gallery-thumbs {
  margin-top: 30px; }

.gallery-top .swiper-wrapper {
  align-items: center; }

.swiper-button-custom {
  width: 48px;
  height: 48px;
  background-image: url("../img/link.svg");
  background-position: center center;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  z-index: 2;
  background-color: #EDF3FF;
  cursor: pointer;
  transition: .25s ease-out opacity;
  opacity: .5; }
  .swiper-button-custom:hover, .swiper-button-custom:focus {
    opacity: 1; }

.swiper-button-custom-prev {
  left: 5px;
  transform: translateY(-50%) scale(-1); }

.swiper-button-custom-next {
  right: 5px;
  transform: translateY(-50%); }

.gallery-thumbs .swiper-slide {
  cursor: pointer; }

ul.links-wrapper {
  padding: 0;
  list-style-type: none;
  display: flex;
  margin: 0; }
  ul.links-wrapper li:not(:last-of-type) {
    margin-right: 5px; }

.content__sidebar .block__wrapper {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 0;
  background-color: #ecf8ff;
  color: #000000; }
  .content__sidebar .block__wrapper > :first-child {
    margin-top: 0; }
  .content__sidebar .block__wrapper > :last-child {
    margin-bottom: 0; }

.button {
  text-transform: lowercase;
  letter-spacing: .4px;
  margin-bottom: 0; }
  .button:hover, .button:focus {
    color: #0054FF; }

.button-upper,
.button-group .button-upper {
  font-size: 0.75rem;
  letter-spacing: 1px;
  text-transform: uppercase; }

.link, .back-link,
.file-link {
  font-size: 1.125rem;
  font-weight: 600; }
  @media print, screen and (min-width: 64em) {
    .link, .back-link,
    .file-link {
      font-size: 21px; } }

.link, .back-link {
  text-transform: lowercase;
  transition: color .25s ease-out; }
  .link span, .back-link span {
    position: relative;
    display: inline-block; }
    .link span:before, .back-link span:before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      width: calc(24px + 10px);
      height: 100%;
      background-image: url("../img/link.svg");
      background-repeat: no-repeat;
      background-position: right center; }
  .link:hover, .link:focus, .back-link:hover, .back-link:focus {
    color: #002C87;
    text-decoration: underline; }

.link span {
  padding-right: calc(24px + 10px); }
  .link span:before {
    right: 0; }

.back-link span {
  padding-left: calc(24px + 10px); }
  .back-link span:before {
    left: 0;
    transform: scaleX(-1); }

.file-link {
  background-color: #FFFFFF;
  border: 1px solid #002C87;
  color: #0054FF;
  padding: 13px 24px 12px 24px;
  transition: .25s ease-out all;
  padding-left: 50px;
  position: relative; }
  .file-link:before {
    content: '';
    display: block;
    width: 10px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 16px;
    background-image: url("../img/download.svg");
    background-position: center;
    background-size: 100% auto;
    background-repeat: no-repeat;
    -webkit-filter: invert(18%) sepia(82%) saturate(3931%) hue-rotate(221deg) brightness(105%) contrast(112%);
            filter: invert(18%) sepia(82%) saturate(3931%) hue-rotate(221deg) brightness(105%) contrast(112%); }
  .file-link:hover, .file-link:focus {
    background-color: #0054FF;
    color: #FFFFFF; }
    .file-link:hover:before, .file-link:focus:before {
      -webkit-filter: invert(94%) sepia(0%) saturate(7489%) hue-rotate(244deg) brightness(108%) contrast(103%);
              filter: invert(94%) sepia(0%) saturate(7489%) hue-rotate(244deg) brightness(108%) contrast(103%); }

.hamburger {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 32px;
  height: 24px;
  cursor: pointer; }
  .hamburger::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #0054FF;
    box-shadow: 0 11px 0 #0054FF, 0 22px 0 #0054FF;
    content: ''; }
  .hamburger:hover::after {
    background: #010021;
    box-shadow: 0 11px 0 #010021, 0 22px 0 #010021; }

.close {
  display: flex;
  justify-content: center;
  align-items: center; }
  .close span {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    position: relative;
    width: 15px;
    height: 15px; }
    .close span:before, .close span:after {
      content: '';
      position: absolute;
      top: 7px;
      left: 0;
      right: 0;
      height: 1px;
      background-color: #000000;
      border-radius: 1px;
      transition: .25s ease-out background-color; }
    .close span:before {
      transform: rotate(45deg); }
    .close span:after {
      transform: rotate(-45deg); }
  .close:hover span:before, .close:hover span:after, .close:focus span:before, .close:focus span:after {
    background-color: #0054FF; }

#block-toggle-off-canvas-right button,
#block-toggle-off-canvas-right-off-canvas button {
  width: 48px;
  height: 48px;
  cursor: pointer; }

.is-dropdown-submenu {
  z-index: 99; }

.region-header .menu a:not(.button), .region-header .menu span,
.region-footer .menu a:not(.button),
.region-footer .menu span,
.region-off-canvas-right .menu a:not(.button),
.region-off-canvas-right .menu span {
  font-weight: 700;
  font-size: 0.875rem;
  color: #000000;
  text-transform: lowercase;
  position: relative; }
  .region-header .menu a:not(.button):before, .region-header .menu span:before,
  .region-footer .menu a:not(.button):before,
  .region-footer .menu span:before,
  .region-off-canvas-right .menu a:not(.button):before,
  .region-off-canvas-right .menu span:before {
    content: '';
    display: block;
    position: absolute;
    bottom: 6px;
    left: 0;
    width: 17px;
    height: 2px;
    background-color: #0054FF;
    opacity: 0;
    transition: opacity .25s ease-out; }
  .region-header .menu a:not(.button):hover:before, .region-header .menu a:not(.button):focus:before, .region-header .menu span:hover:before, .region-header .menu span:focus:before,
  .region-footer .menu a:not(.button):hover:before,
  .region-footer .menu a:not(.button):focus:before,
  .region-footer .menu span:hover:before,
  .region-footer .menu span:focus:before,
  .region-off-canvas-right .menu a:not(.button):hover:before,
  .region-off-canvas-right .menu a:not(.button):focus:before,
  .region-off-canvas-right .menu span:hover:before,
  .region-off-canvas-right .menu span:focus:before {
    opacity: 1; }

.region-header .menu span,
.region-footer .menu span,
.region-off-canvas-right .menu span {
  padding-right: 12px;
  line-height: 38px; }
  .region-header .menu span::before,
  .region-footer .menu span::before,
  .region-off-canvas-right .menu span::before {
    bottom: -4px; }

.region-header nav > .menu > li.menu-item--active-trail > a,
.region-header .dropdown.menu > li > a.is-active,
.region-footer nav > .menu > li.menu-item--active-trail > a,
.region-footer .dropdown.menu > li > a.is-active,
.region-off-canvas-right nav > .menu > li.menu-item--active-trail > a,
.region-off-canvas-right .dropdown.menu > li > a.is-active {
  color: #0054FF; }

.dropdown.menu ul a:not(.is-active) {
  font-weight: 300; }

.menu a.button {
  font-size: 0.875rem;
  padding: 10px 16px; }

@media print, screen and (min-width: 48em) {
  .region-header [id*="main-menu"] .dropdown.menu {
    margin: 0 calc(-20px / 2); } }

@media screen and (min-width: 90em) {
  .region-header [id*="main-menu"] .dropdown.menu {
    margin: 0 calc(-30px / 2); } }

@media print, screen and (min-width: 48em) {
  .region-header [id*="main-menu"] .dropdown.menu > li {
    margin: 0 calc(20px / 2); } }

@media screen and (min-width: 90em) {
  .region-header [id*="main-menu"] .dropdown.menu > li {
    margin: 0 calc(30px / 2); } }

.region-header .dropdown.menu ul {
  padding: 18px 0; }
  .region-header .dropdown.menu ul li a {
    padding: 12px 20px; }
    .region-header .dropdown.menu ul li a:before {
      left: 20px; }

.region-header .dropdown.menu > li.is-dropdown-submenu-parent > a, .region-header .dropdown.menu > li.is-dropdown-submenu-parent > span {
  padding-right: 12px; }
  .region-header .dropdown.menu > li.is-dropdown-submenu-parent > a:after, .region-header .dropdown.menu > li.is-dropdown-submenu-parent > span:after {
    content: '';
    width: 4px;
    height: 100%;
    background-image: url("../img/drop.svg");
    background-repeat: no-repeat;
    background-position: right center;
    display: block;
    margin: 0;
    top: 0;
    right: 0; }

.region-header .dropdown.menu > li.is-dropdown-submenu-parent > span::after {
  position: absolute;
  left: auto; }

@media print, screen and (min-width: 48em) {
  .region-footer .menu:not(.horizontal) {
    display: block; } }

@media print, screen and (min-width: 48em) {
  .region-footer .dropdown.menu {
    -moz-column-count: 2;
         column-count: 2;
    margin: 0 -15px; } }

@media print, screen and (min-width: 48em) {
  .region-footer .dropdown.menu > li {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid-column;
    padding: 0 15px; } }

.region-footer .dropdown.menu a {
  font-size: 1rem; }

@media print, screen and (min-width: 48em) {
  .region-footer .dropdown.menu ul {
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid-column; } }

.region-footer .dropdown.menu ul a {
  font-size: 0.875rem;
  padding-left: 30px; }
  .region-footer .dropdown.menu ul a:before {
    left: 30px; }
  .region-footer .dropdown.menu ul a:after {
    content: '';
    border-top: 1px solid #FFFFFF;
    width: 14px;
    position: absolute;
    top: 18px;
    left: 0; }
  .region-footer .dropdown.menu ul a.is-active::after {
    border-color: #0054FF; }

[id*="main-menu-off-canvas"] .menu {
  text-align: center; }
  [id*="main-menu-off-canvas"] .menu a {
    display: inline-block;
    line-height: 24px; }
  [id*="main-menu-off-canvas"] .menu ul a {
    font-weight: 300; }

[id*="main-menu-off-canvas"] .has-submenu-toggle > a {
  margin: 0; }

[id*="main-menu-off-canvas"] .submenu-toggle {
  position: relative;
  width: 48px;
  height: 48px;
  margin-right: -48px; }
  [id*="main-menu-off-canvas"] .submenu-toggle:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("../img/drop.svg");
    background-repeat: no-repeat;
    background-position: 8px 17px;
    display: block; }
  [id*="main-menu-off-canvas"] .submenu-toggle:after {
    display: none; }

[id*="highlight-menu"] .menu {
  gap: 8px; }

[id*="highlight-menu"] > .menu > li.menu-item--active-trail > a.button,
[id*="highlight-menu"] a.button.is-active {
  background-color: #002C87;
  color: #FFFFFF; }
  [id*="highlight-menu"] > .menu > li.menu-item--active-trail > a.button:hover, [id*="highlight-menu"] > .menu > li.menu-item--active-trail > a.button:focus-visible,
  [id*="highlight-menu"] a.button.is-active:hover,
  [id*="highlight-menu"] a.button.is-active:focus-visible {
    background-color: transparent;
    color: #0054FF; }

nav#block-highlight-menu .menu li:nth-of-type(3), nav#block-highlight-menu .menu li:nth-of-type(4) {
  display: none !important; }

#offCanvasRight {
  padding-top: 65px;
  padding-bottom: 65px; }

.region-off-canvas-right .dropbutton-multiple .dropbutton-widget {
  display: inline-block;
  line-height: 1; }

#block-toggle-off-canvas-right-off-canvas button {
  margin: 0 auto 45px auto; }

[id*="main-menu-off-canvas"] {
  margin-bottom: 65px; }

#block-site-branding-off-canvas {
  margin-bottom: 30px; }
  #block-site-branding-off-canvas > a {
    display: block;
    margin: 0 auto;
    max-width: 190px; }

#block-highlight-menu-off-canvas {
  text-align: center;
  margin-bottom: 40px; }
  #block-highlight-menu-off-canvas .menu {
    justify-content: center; }

#block-dropdown-language-off-canvas {
  text-align: center; }

.tabs--primary,
.tabs--secondary {
  border-bottom: 2px solid #979797;
  margin: 1rem auto; }
  .tabs--primary a,
  .tabs--secondary a {
    margin-right: 0.5rem;
    background-color: #EDF3FF;
    padding: 12px; }
    .tabs--primary a.is-active,
    .tabs--secondary a.is-active {
      background-color: #002C87;
      color: #FFFFFF;
      font-weight: 700; }
    .tabs--primary a:hover, .tabs--primary a:focus,
    .tabs--secondary a:hover,
    .tabs--secondary a:focus {
      background-color: #0054FF;
      color: #FFFFFF; }

.tabs a {
  border-bottom: none;
  transition: .25s ease-out all; }
  .tabs a:hover, .tabs a:focus, .tabs a.is-active:hover, .tabs a.is-active:focus {
    color: #FFFFFF;
    background-color: #0054FF; }

.tabs li:first-child a.button {
  margin-left: 0.5rem; }

.tabs a.button.is-active {
  background-color: #FFFFFF; }

.tabs-content {
  border: none; }

.tabs-content h2,
.accordion-content h2 {
  color: #FFFFFF; }

.tabs-title {
  width: 100%; }
  @media print, screen and (min-width: 30em) {
    .tabs-title {
      width: auto; } }

.tabs-wrapper .tabs {
  margin: 0 auto;
  border: none;
  background-color: transparent;
  justify-content: flex-end; }
  .tabs-wrapper .tabs a {
    background-color: #EDF3FF; }
  .tabs-wrapper .tabs .is-active a {
    background-color: #0054FF; }
  .tabs-wrapper .tabs a:hover, .tabs-wrapper .tabs a:focus {
    background-color: #002C87; }

@media print, screen and (max-width: 47.99875em) {
  .tabs-wrapper .tabs-panel {
    padding-left: 0;
    padding-right: 0; } }

.page.full h1,
.home h2.sub-title,
.article.full h1,
.job.full h1,
.product-categories.full h1,
.paragraph--type--features h2,
.paragraph--type--list h2,
.paragraph--type--overview h2,
.paragraph--type--jobs h2,
.paragraph--type--references h2,
.product.full h1 {
  font-weight: 300;
  letter-spacing: 1.32px;
  line-height: 1; }

h3 {
  letter-spacing: .56px; }

.paragraph--type--features h2,
.paragraph--type--list h2,
.paragraph--type--overview h2,
.paragraph--type--jobs h2,
.paragraph--type--references h2 {
  font-size: 2.625rem; }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--features h2,
    .paragraph--type--list h2,
    .paragraph--type--overview h2,
    .paragraph--type--jobs h2,
    .paragraph--type--references h2 {
      font-size: 4.375rem; } }

.article.teaser h2,
.article.featured h2 {
  font-size: 1.3125rem; }
  @media print, screen and (min-width: 64em) {
    .article.teaser h2,
    .article.featured h2 {
      font-size: 1.875rem; } }

@media print, screen and (min-width: 64em) {
  header .titles h1, header .titles h2 {
    max-width: 580px; } }

[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 {
  margin-bottom: 0; }

label.form-required:after {
  content: '*'; }

form label {
  letter-spacing: .34px; }

form.webform-submission-form {
  display: flex;
  flex-wrap: wrap; }

form .form-item {
  margin-bottom: 18px; }
  form .form-item.medium-clear-right {
    margin-right: 50%; }

form .js-form-type-textfield > label,
form .js-form-type-textarea > label,
form .js-form-type-email > label,
form .js-form-type-tel > label,
form .js-form-type-managed-file > label,
form .js-form-type-select > label {
  margin-bottom: 8px; }

form .captcha {
  flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  margin-bottom: 25px; }
  @media print, screen and (min-width: 48em) {
    form .captcha {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.js-form-type-checkbox input[type='checkbox'],
.js-form-type-checkbox input[type="radio"],
.js-form-type-radio input[type='checkbox'],
.js-form-type-radio input[type="radio"] {
  position: absolute;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  margin: 0; }
  .js-form-type-checkbox input[type='checkbox'] + label,
  .js-form-type-checkbox input[type="radio"] + label,
  .js-form-type-radio input[type='checkbox'] + label,
  .js-form-type-radio input[type="radio"] + label {
    display: flex;
    position: relative;
    margin: 0; }
    .js-form-type-checkbox input[type='checkbox'] + label:before, .js-form-type-checkbox input[type='checkbox'] + label:after,
    .js-form-type-checkbox input[type="radio"] + label:before,
    .js-form-type-checkbox input[type="radio"] + label:after,
    .js-form-type-radio input[type='checkbox'] + label:before,
    .js-form-type-radio input[type='checkbox'] + label:after,
    .js-form-type-radio input[type="radio"] + label:before,
    .js-form-type-radio input[type="radio"] + label:after {
      content: '';
      position: relative;
      display: block; }
    .js-form-type-checkbox input[type='checkbox'] + label:before,
    .js-form-type-checkbox input[type="radio"] + label:before,
    .js-form-type-radio input[type='checkbox'] + label:before,
    .js-form-type-radio input[type="radio"] + label:before {
      flex: 0 0 14px;
      margin: 8px 20px 0 0;
      height: 14px;
      background: #EDF3FF; }
    .js-form-type-checkbox input[type='checkbox'] + label:after,
    .js-form-type-checkbox input[type="radio"] + label:after,
    .js-form-type-radio input[type='checkbox'] + label:after,
    .js-form-type-radio input[type="radio"] + label:after {
      width: 15px;
      height: 11px;
      position: absolute;
      left: 3px;
      top: 7px; }
  .js-form-type-checkbox input[type='checkbox']:checked + label::after,
  .js-form-type-checkbox input[type="radio"]:checked + label::after,
  .js-form-type-radio input[type='checkbox']:checked + label::after,
  .js-form-type-radio input[type="radio"]:checked + label::after {
    background-image: url("../img/check.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    -webkit-filter: invert(20%) sepia(43%) saturate(7241%) hue-rotate(219deg) brightness(99%) contrast(108%);
            filter: invert(20%) sepia(43%) saturate(7241%) hue-rotate(219deg) brightness(99%) contrast(108%); }
  .js-form-type-checkbox input[type='checkbox']:focus + label::before,
  .js-form-type-checkbox input[type="radio"]:focus + label::before,
  .js-form-type-radio input[type='checkbox']:focus + label::before,
  .js-form-type-radio input[type="radio"]:focus + label::before {
    outline: #0054FF solid 1px; }

.js-form-type-radio label::before {
  border-radius: 50%; }

@media print, screen and (min-width: 30em) {
  form .js-webform-radios {
    display: flex; } }

@media print, screen and (min-width: 30em) {
  form .js-webform-radios > div {
    margin-bottom: 0;
    margin-right: 60px; } }

form .js-webform-radios > div:last-of-type {
  margin: 0; }

form .webform-type-radios {
  margin-bottom: 22px; }

div[id*="edit-file-container"] {
  flex: 0 0 100%;
  margin-bottom: 10px; }
  div[id*="edit-file-container"] > div, div[id*="edit-file-container"] div[id*="ajax-wrapper"] {
    width: 100%; }

.form-managed-file label {
  background-color: #EDF3FF;
  background-image: url("../img/upload.svg");
  background-repeat: no-repeat;
  background-position: calc(100% - 20px) center;
  line-height: 1.4;
  padding: 0.5rem;
  font-size: 1rem;
  margin: 0;
  cursor: pointer;
  border: 1px solid #EDF3FF;
  transition: .25s ease-out all; }
  .form-managed-file label:hover {
    background-color: #0054FF;
    color: #FFFFFF; }

.js-form-type-managed-file {
  margin-bottom: 0; }
  .js-form-type-managed-file .description {
    font-size: 0.75rem;
    letter-spacing: .64px;
    margin-top: 8px;
    line-height: 1.2; }

.form-item + .form-item-contact-by-phone {
  margin-top: 4px; }

.form-item + .form-item-consent {
  margin-top: 14px; }

.form-item-consent label {
  font-size: 0.875rem;
  letter-spacing: .64px; }

.sliding-popup-bottom {
  width: 100%; }

.eu-cookie-compliance-banner {
  background-color: #010021;
  padding: 30px;
  border-top: 2px solid #0054FF; }
  .eu-cookie-compliance-banner, .eu-cookie-compliance-banner label, .eu-cookie-compliance-banner a {
    color: #FFFFFF; }
  .eu-cookie-compliance-banner a {
    text-decoration: underline;
    transition: color .25s ease-out; }
    .eu-cookie-compliance-banner a:hover, .eu-cookie-compliance-banner a:focus {
      color: #0054FF; }

.eu-cookie-compliance-categories {
  margin-bottom: 1rem; }

.eu-cookie-compliance-save-preferences-button {
  margin-bottom: 1rem; }

.eu-cookie-compliance-buttons {
  align-items: flex-start; }
  @media print, screen and (min-width: 64em) {
    .eu-cookie-compliance-buttons {
      justify-content: flex-end; } }
  .eu-cookie-compliance-buttons button:not(:last-of-type) {
    margin: 0 0.5rem 1rem 0; }

.eu-cookie-compliance-category {
  margin-bottom: 1rem; }
  .eu-cookie-compliance-category label {
    font-size: 1.125rem; }
  .eu-cookie-compliance-category [type="checkbox"] {
    margin: 0; }
  .eu-cookie-compliance-category .eu-cookie-compliance-category-description {
    font-size: 0.875rem; }

.region-header {
  padding-top: 40px;
  padding-bottom: 25px;
  align-items: center; }
  @media print, screen and (min-width: 64em) {
    .region-header {
      padding-top: 25px;
      padding-bottom: 30px; } }
  .region-header [id*="main-menu"] {
    margin-right: auto; }
    @media screen and (max-width: 74.99875em) {
      .region-header [id*="main-menu"] {
        display: none !important; } }
    @media screen and (min-width: 75em) {
      .region-header [id*="main-menu"] {
        margin-right: 25px; } }
    @media screen and (min-width: 90em) {
      .region-header [id*="main-menu"] {
        margin-right: 40px; } }

#block-sub-branding {
  margin-right: auto; }
  @media print, screen and (min-width: 64em) {
    #block-sub-branding {
      flex: 0 0 auto;
      padding-right: 0.625rem;
      padding-left: 0.625rem; } }
  @media print, screen and (min-width: 64em) and (min-width: 48em) {
    #block-sub-branding {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  #block-sub-branding a {
    display: block; }
  #block-sub-branding img {
    width: 190px; }
    @media print, screen and (min-width: 48em) {
      #block-sub-branding img {
        width: 210px; } }

@media screen and (min-width: 75em) {
  #block-toggle-off-canvas-right {
    display: none !important; } }

[id^="block-domain-custom-navigation"] + [id^="block-dropdown-language"] {
  margin-left: 30px; }

#footer-wrapper {
  background-color: #010021; }

.region-footer, .region-footer .contact a, .region-footer .menu a:not(.button), .region-footer nav a, .region-footer .menu span {
  color: #FFFFFF; }

.region-footer a.is-active {
  color: #0054FF; }

.region-footer .menu:not(.horizontal) {
  flex-direction: column; }

#block-sub-footer ul:not(.contextual-links) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  list-style-type: none;
  margin: 0;
  padding: 0; }
  @media print, screen and (min-width: 48em) {
    #block-sub-footer ul:not(.contextual-links) {
      justify-content: flex-start; } }
  #block-sub-footer ul:not(.contextual-links) li {
    display: flex;
    align-items: center; }
    #block-sub-footer ul:not(.contextual-links) li:not(:last-of-type):after {
      content: '|';
      margin: auto 5px; }
  #block-sub-footer ul:not(.contextual-links) a:not([href^="/admin/"]), #block-sub-footer ul:not(.contextual-links) span {
    font-size: 0.75rem;
    text-transform: uppercase; }
    #block-sub-footer ul:not(.contextual-links) a:not([href^="/admin/"]):hover, #block-sub-footer ul:not(.contextual-links) a:not([href^="/admin/"]):focus, #block-sub-footer ul:not(.contextual-links) span:hover, #block-sub-footer ul:not(.contextual-links) span:focus {
      text-decoration: underline; }
  #block-sub-footer ul:not(.contextual-links) span:hover {
    cursor: pointer; }

#block-site-branding-footer {
  padding-top: 45px;
  padding-bottom: 75px; }
  @media print, screen and (min-width: 48em) {
    #block-site-branding-footer {
      align-self: center; } }
  #block-site-branding-footer > a {
    display: block;
    max-width: 270px;
    width: 100%;
    margin: 0 auto; }
    @media print, screen and (min-width: 48em) {
      #block-site-branding-footer > a {
        margin: 0;
        max-width: calc(270px + (30px * 2)); } }
    @media print, screen and (min-width: 64em) {
      #block-site-branding-footer > a {
        max-width: calc(270px + (45px * 2)); } }

#block-footer-top {
  padding-top: 80px; }
  @media print, screen and (min-width: 64em) {
    #block-footer-top {
      display: flex;
      flex-wrap: wrap; } }

#block-footer-data {
  padding-top: 70px; }
  @media print, screen and (min-width: 48em) {
    #block-footer-data {
      padding-top: 80px; } }

@media print, screen and (min-width: 48em) {
  #block-footer-top,
  #block-footer-legal {
    border-right: 1px solid #2E2E2E; } }

#block-footer-top,
#block-footer-data {
  position: relative;
  padding-bottom: 70px; }
  #block-footer-top:before,
  #block-footer-data:before {
    content: '';
    border-top: 1px solid #2E2E2E;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw; }

@media print, screen and (min-width: 64em) {
  #block-highlight-menu-footer {
    align-self: flex-end; } }

#block-main-menu-footer + #block-highlight-menu-footer {
  margin-top: 45px; }

#block-sub-views-block-contact-data + #block-sub-views-block-social-media-links,
#block-fit, #block-auvergnerhonealpes {
  margin-top: 25px; }

#block-fit figure {
  border: 2px solid #0054FF; }
  #block-fit figure img {
    border: 5px solid white; }

#block-auvergnerhonealpes figure {
  margin-bottom: 25px; }

@media print, screen and (min-width: 48em) {
  #block-footer-data > div,
  #block-site-branding-footer > a {
    padding-left: 30px;
    padding-right: 30px; } }

@media print, screen and (min-width: 64em) {
  #block-footer-data > div,
  #block-site-branding-footer > a {
    padding-left: 45px;
    padding-right: 45px; } }

@media print, screen and (min-width: 48em) {
  #block-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse; } }

#block-footer-legal {
  position: relative;
  padding-top: 65px;
  padding-bottom: 65px; }
  @media print, screen and (min-width: 48em) {
    #block-footer-legal {
      display: flex;
      align-items: center; } }
  @media screen and (min-width: 90em) {
    #block-footer-legal {
      padding-top: 90px;
      padding-bottom: 90px; } }
  #block-footer-legal nav {
    position: relative;
    z-index: 1; }
  #block-footer-legal:after {
    content: '';
    display: block;
    width: 100vw;
    height: 100%;
    top: 0;
    left: -40px;
    position: absolute;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-image: url("../img/default/default_title.jpg");
    background-color: #002C87;
    background-blend-mode: color-burn; }
    @media print, screen and (min-width: 30em) {
      #block-footer-legal:after {
        background-image: url("../img/default/default_title_s.jpg"); } }
    @media print, screen and (min-width: 48em) {
      #block-footer-legal:after {
        background-image: url("../img/default/default_title_m.jpg"); } }
    @media print, screen and (min-width: 64em) {
      #block-footer-legal:after {
        background-image: url("../img/default/default_title_l.jpg"); } }
    @media screen and (min-width: 75em) {
      #block-footer-legal:after {
        background-image: url("../img/default/default_title_xl.jpg"); } }
    @media screen and (min-width: 90em) {
      #block-footer-legal:after {
        background-image: url("../img/default/default_title_xxl.jpg"); } }
    @media print, screen and (min-width: 48em) {
      #block-footer-legal:after {
        left: auto;
        right: 0;
        width: calc(100% + 30px); } }
    @media print, screen and (min-width: 64em) {
      #block-footer-legal:after {
        width: calc(100vw - ((76.875rem / 12) * 4) + 60px + (30px /2)); } }
    @media screen and (min-width: 90em) {
      #block-footer-legal:after {
        width: calc(100vw - ((76.875rem / 12) * 4) - ((60px * 2) - (30px * 2))); } }

@media print, screen and (min-width: 64em) {
  #block-main-menu-fr-footer .menu-item--expanded {
    margin-bottom: 10px; } }

#block-highlight-menu-footer {
  margin-top: 20px; }
  @media print, screen and (min-width: 48em) {
    #block-highlight-menu-footer {
      margin-left: auto; } }
  @media print, screen and (min-width: 48em) {
    #block-highlight-menu-footer .menu {
      justify-content: flex-end; } }

.home.full > header {
  background-color: #EDF3FF;
  padding-top: 95px;
  padding-bottom: 95px; }
  @media print, screen and (min-width: 48em) {
    .home.full > header {
      padding-bottom: 75px; } }
  @media print, screen and (min-width: 64em) {
    .home.full > header {
      padding-top: 190px; } }
  .home.full > header.has-image {
    position: relative; }
    .home.full > header.has-image .content {
      position: relative;
      z-index: 2; }
  .home.full > header .bg__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    z-index: 1;
    opacity: .16; }
  .home.full > header .field-name-field-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
    .home.full > header .field-name-field-video div {
      width: 100%;
      height: 100%;
      max-width: 100%;
      max-height: 100%; }
    .home.full > header .field-name-field-video video {
      width: 100% !important;
      height: 100% !important;
      -o-object-fit: cover;
      object-fit: cover;
      opacity: .7; }
  .home.full > header h1 {
    font-size: 1.625rem;
    font-weight: 300;
    color: #000000;
    text-transform: uppercase;
    margin-bottom: 12px;
    letter-spacing: 3.49px; }
    @media print, screen and (min-width: 48em) {
      .home.full > header h1 {
        margin-bottom: 35px; } }
  .home.full > header h2.sub-title {
    margin-bottom: 0; }
    @media print, screen and (min-width: 64em) {
      .home.full > header h2.sub-title {
        font-size: 4.375rem; } }
  .home.full > header #scroll-content {
    margin-top: 45px;
    -webkit-animation: scroll-button 2s infinite;
            animation: scroll-button 2s infinite; }
    .home.full > header #scroll-content a {
      display: inline-block;
      padding: 0 11px;
      margin-left: -11px; }
      .home.full > header #scroll-content a g {
        transition: stroke .25s ease-out; }
      .home.full > header #scroll-content a:hover g, .home.full > header #scroll-content a:focus g {
        stroke: #010021; }

@-webkit-keyframes scroll-button {
  0% {
    opacity: 0;
    transform: translateY(-50%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

@keyframes scroll-button {
  0% {
    opacity: 0;
    transform: translateY(-50%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

.page.full header,
.article.full header,
.job.full header,
.partner.full header,
.product-categories.full header {
  margin-bottom: 40px; }
  @media print, screen and (min-width: 48em) {
    .page.full header,
    .article.full header,
    .job.full header,
    .partner.full header,
    .product-categories.full header {
      margin-bottom: 80px; } }
  .page.full header .wrapper-padding,
  .article.full header .wrapper-padding,
  .job.full header .wrapper-padding,
  .partner.full header .wrapper-padding,
  .product-categories.full header .wrapper-padding {
    background-color: #EDF3FF; }
  @media print, screen and (min-width: 64em) {
    .page.full header.term,
    .article.full header.term,
    .job.full header.term,
    .partner.full header.term,
    .product-categories.full header.term {
      margin-bottom: 180px; } }
  @media print, screen and (min-width: 48em) {
    .page.full header.has-image,
    .article.full header.has-image,
    .job.full header.has-image,
    .partner.full header.has-image,
    .product-categories.full header.has-image {
      padding-bottom: 65px; } }
  @media print, screen and (min-width: 64em) {
    .page.full header.has-image,
    .article.full header.has-image,
    .job.full header.has-image,
    .partner.full header.has-image,
    .product-categories.full header.has-image {
      padding-bottom: 130px; } }
  .page.full header.has-image .wrapper-padding,
  .article.full header.has-image .wrapper-padding,
  .job.full header.has-image .wrapper-padding,
  .partner.full header.has-image .wrapper-padding,
  .product-categories.full header.has-image .wrapper-padding {
    padding-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .page.full header.has-body,
    .article.full header.has-body,
    .job.full header.has-body,
    .partner.full header.has-body,
    .product-categories.full header.has-body {
      padding-bottom: 100px; } }
  @media print, screen and (min-width: 64em) {
    .page.full header.has-body,
    .article.full header.has-body,
    .job.full header.has-body,
    .partner.full header.has-body,
    .product-categories.full header.has-body {
      padding-bottom: 200px; } }
  .page.full header.has-no-extra-field .wrapper-padding,
  .article.full header.has-no-extra-field .wrapper-padding,
  .job.full header.has-no-extra-field .wrapper-padding,
  .partner.full header.has-no-extra-field .wrapper-padding,
  .product-categories.full header.has-no-extra-field .wrapper-padding {
    padding-bottom: 45px; }
    @media print, screen and (min-width: 48em) {
      .page.full header.has-no-extra-field .wrapper-padding,
      .article.full header.has-no-extra-field .wrapper-padding,
      .job.full header.has-no-extra-field .wrapper-padding,
      .partner.full header.has-no-extra-field .wrapper-padding,
      .product-categories.full header.has-no-extra-field .wrapper-padding {
        padding-bottom: 0; } }
  .page.full header.has-no-extra-field .content,
  .article.full header.has-no-extra-field .content,
  .job.full header.has-no-extra-field .content,
  .partner.full header.has-no-extra-field .content,
  .product-categories.full header.has-no-extra-field .content {
    align-self: flex-end; }
  .page.full header.has-extra-field .field-name-body,
  .page.full header.has-extra-field .field-name-field-body,
  .article.full header.has-extra-field .field-name-body,
  .article.full header.has-extra-field .field-name-field-body,
  .job.full header.has-extra-field .field-name-body,
  .job.full header.has-extra-field .field-name-field-body,
  .partner.full header.has-extra-field .field-name-body,
  .partner.full header.has-extra-field .field-name-field-body,
  .product-categories.full header.has-extra-field .field-name-body,
  .product-categories.full header.has-extra-field .field-name-field-body {
    position: relative; }
    .page.full header.has-extra-field .field-name-body:after,
    .page.full header.has-extra-field .field-name-field-body:after,
    .article.full header.has-extra-field .field-name-body:after,
    .article.full header.has-extra-field .field-name-field-body:after,
    .job.full header.has-extra-field .field-name-body:after,
    .job.full header.has-extra-field .field-name-field-body:after,
    .partner.full header.has-extra-field .field-name-body:after,
    .partner.full header.has-extra-field .field-name-field-body:after,
    .product-categories.full header.has-extra-field .field-name-body:after,
    .product-categories.full header.has-extra-field .field-name-field-body:after {
      content: '';
      display: block;
      position: absolute;
      height: 100%;
      width: 100vw;
      top: 0;
      right: -100vw;
      background-color: #FFFFFF;
      z-index: 1; }
  @media print, screen and (min-width: 48em) {
    .page.full header .row .row,
    .article.full header .row .row,
    .job.full header .row .row,
    .partner.full header .row .row,
    .product-categories.full header .row .row {
      flex-wrap: nowrap; } }
  .page.full header .titles,
  .article.full header .titles,
  .job.full header .titles,
  .partner.full header .titles,
  .product-categories.full header .titles {
    padding-top: 45px;
    padding-bottom: 45px; }
    @media print, screen and (min-width: 48em) {
      .page.full header .titles,
      .article.full header .titles,
      .job.full header .titles,
      .partner.full header .titles,
      .product-categories.full header .titles {
        min-height: 175px; } }
    @media print, screen and (min-width: 64em) {
      .page.full header .titles,
      .article.full header .titles,
      .job.full header .titles,
      .partner.full header .titles,
      .product-categories.full header .titles {
        padding-top: 200px;
        padding-bottom: 90px; } }
  .page.full header h1,
  .article.full header h1,
  .job.full header h1,
  .partner.full header h1,
  .product-categories.full header h1 {
    margin-bottom: 0; }
  .page.full header .field-name-body,
  .page.full header .field-name-field-body,
  .article.full header .field-name-body,
  .article.full header .field-name-field-body,
  .job.full header .field-name-body,
  .job.full header .field-name-field-body,
  .partner.full header .field-name-body,
  .partner.full header .field-name-field-body,
  .product-categories.full header .field-name-body,
  .product-categories.full header .field-name-field-body {
    margin-left: calc(-100px / 2);
    margin-right: calc(-100px / 2); }
    @media print, screen and (min-width: 48em) {
      .page.full header .field-name-body,
      .page.full header .field-name-field-body,
      .article.full header .field-name-body,
      .article.full header .field-name-field-body,
      .job.full header .field-name-body,
      .job.full header .field-name-field-body,
      .partner.full header .field-name-body,
      .partner.full header .field-name-field-body,
      .product-categories.full header .field-name-body,
      .product-categories.full header .field-name-field-body {
        margin: 0 0 -100px 0; } }
    @media print, screen and (min-width: 64em) {
      .page.full header .field-name-body,
      .page.full header .field-name-field-body,
      .article.full header .field-name-body,
      .article.full header .field-name-field-body,
      .job.full header .field-name-body,
      .job.full header .field-name-field-body,
      .partner.full header .field-name-body,
      .partner.full header .field-name-field-body,
      .product-categories.full header .field-name-body,
      .product-categories.full header .field-name-field-body {
        margin-bottom: -200px; } }
    .page.full header .field-name-body .field-items,
    .page.full header .field-name-field-body .field-items,
    .article.full header .field-name-body .field-items,
    .article.full header .field-name-field-body .field-items,
    .job.full header .field-name-body .field-items,
    .job.full header .field-name-field-body .field-items,
    .partner.full header .field-name-body .field-items,
    .partner.full header .field-name-field-body .field-items,
    .product-categories.full header .field-name-body .field-items,
    .product-categories.full header .field-name-field-body .field-items {
      background-color: #002C87;
      color: #FFFFFF;
      padding: 60px 35px 60px 50px; }
  .page.full header figure.page-image,
  .article.full header figure.page-image,
  .job.full header figure.page-image,
  .partner.full header figure.page-image,
  .product-categories.full header figure.page-image {
    background-color: #FFFFFF;
    position: relative;
    align-self: flex-start;
    margin-left: calc(-100px / 2);
    margin-right: calc(-100px / 2); }
    @media print, screen and (min-width: 48em) {
      .page.full header figure.page-image,
      .article.full header figure.page-image,
      .job.full header figure.page-image,
      .partner.full header figure.page-image,
      .product-categories.full header figure.page-image {
        margin: 0 0 -65px 0;
        flex: 0 0 58.33333%;
        max-width: 58.33333%;
        padding-right: 0;
        padding-left: 0; } }
    @media print, screen and (min-width: 64em) {
      .page.full header figure.page-image,
      .article.full header figure.page-image,
      .job.full header figure.page-image,
      .partner.full header figure.page-image,
      .product-categories.full header figure.page-image {
        margin-bottom: -130px; } }
    .page.full header figure.page-image:before,
    .article.full header figure.page-image:before,
    .job.full header figure.page-image:before,
    .partner.full header figure.page-image:before,
    .product-categories.full header figure.page-image:before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: #EDF3FF; }
    .page.full header figure.page-image .field-name-field-image,
    .article.full header figure.page-image .field-name-field-image,
    .job.full header figure.page-image .field-name-field-image,
    .partner.full header figure.page-image .field-name-field-image,
    .product-categories.full header figure.page-image .field-name-field-image {
      text-align: center; }
      @media print, screen and (min-width: 48em) {
        .page.full header figure.page-image .field-name-field-image,
        .article.full header figure.page-image .field-name-field-image,
        .job.full header figure.page-image .field-name-field-image,
        .partner.full header figure.page-image .field-name-field-image,
        .product-categories.full header figure.page-image .field-name-field-image {
          text-align: unset; } }
      .page.full header figure.page-image .field-name-field-image img,
      .article.full header figure.page-image .field-name-field-image img,
      .job.full header figure.page-image .field-name-field-image img,
      .partner.full header figure.page-image .field-name-field-image img,
      .product-categories.full header figure.page-image .field-name-field-image img {
        opacity: .2;
        position: relative;
        z-index: 1;
        width: 100%; }
    .page.full header figure.page-image .media-wrapper,
    .article.full header figure.page-image .media-wrapper,
    .job.full header figure.page-image .media-wrapper,
    .partner.full header figure.page-image .media-wrapper,
    .product-categories.full header figure.page-image .media-wrapper {
      position: relative; }
      .page.full header figure.page-image .media-wrapper .field-name-field-image img,
      .article.full header figure.page-image .media-wrapper .field-name-field-image img,
      .job.full header figure.page-image .media-wrapper .field-name-field-image img,
      .partner.full header figure.page-image .media-wrapper .field-name-field-image img,
      .product-categories.full header figure.page-image .media-wrapper .field-name-field-image img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        -o-object-fit: cover;
           object-fit: cover; }
    .page.full header figure.page-image .container-map, .page.full header figure.page-image .view-id-contact, .page.full header figure.page-image .geolocation-map-wrapper,
    .article.full header figure.page-image .container-map,
    .article.full header figure.page-image .view-id-contact,
    .article.full header figure.page-image .geolocation-map-wrapper,
    .job.full header figure.page-image .container-map,
    .job.full header figure.page-image .view-id-contact,
    .job.full header figure.page-image .geolocation-map-wrapper,
    .partner.full header figure.page-image .container-map,
    .partner.full header figure.page-image .view-id-contact,
    .partner.full header figure.page-image .geolocation-map-wrapper,
    .product-categories.full header figure.page-image .container-map,
    .product-categories.full header figure.page-image .view-id-contact,
    .product-categories.full header figure.page-image .geolocation-map-wrapper {
      height: 100%; }
  .page.full header .field-name-field-contact-data,
  .page.full header .field-name-field-highlighted-text,
  .page.full header .field-name-field-view,
  .page.full header .extra-field,
  .page.full header .action-wrapper,
  .article.full header .field-name-field-contact-data,
  .article.full header .field-name-field-highlighted-text,
  .article.full header .field-name-field-view,
  .article.full header .extra-field,
  .article.full header .action-wrapper,
  .job.full header .field-name-field-contact-data,
  .job.full header .field-name-field-highlighted-text,
  .job.full header .field-name-field-view,
  .job.full header .extra-field,
  .job.full header .action-wrapper,
  .partner.full header .field-name-field-contact-data,
  .partner.full header .field-name-field-highlighted-text,
  .partner.full header .field-name-field-view,
  .partner.full header .extra-field,
  .partner.full header .action-wrapper,
  .product-categories.full header .field-name-field-contact-data,
  .product-categories.full header .field-name-field-highlighted-text,
  .product-categories.full header .field-name-field-view,
  .product-categories.full header .extra-field,
  .product-categories.full header .action-wrapper {
    position: relative;
    z-index: 2;
    padding: 45px 50px;
    background-color: #FFFFFF; }
    @media print, screen and (min-width: 48em) {
      .page.full header .field-name-field-contact-data,
      .page.full header .field-name-field-highlighted-text,
      .page.full header .field-name-field-view,
      .page.full header .extra-field,
      .page.full header .action-wrapper,
      .article.full header .field-name-field-contact-data,
      .article.full header .field-name-field-highlighted-text,
      .article.full header .field-name-field-view,
      .article.full header .extra-field,
      .article.full header .action-wrapper,
      .job.full header .field-name-field-contact-data,
      .job.full header .field-name-field-highlighted-text,
      .job.full header .field-name-field-view,
      .job.full header .extra-field,
      .job.full header .action-wrapper,
      .partner.full header .field-name-field-contact-data,
      .partner.full header .field-name-field-highlighted-text,
      .partner.full header .field-name-field-view,
      .partner.full header .extra-field,
      .partner.full header .action-wrapper,
      .product-categories.full header .field-name-field-contact-data,
      .product-categories.full header .field-name-field-highlighted-text,
      .product-categories.full header .field-name-field-view,
      .product-categories.full header .extra-field,
      .product-categories.full header .action-wrapper {
        padding-right: 130px;
        position: relative; }
        .page.full header .field-name-field-contact-data:before,
        .page.full header .field-name-field-highlighted-text:before,
        .page.full header .field-name-field-view:before,
        .page.full header .extra-field:before,
        .page.full header .action-wrapper:before,
        .article.full header .field-name-field-contact-data:before,
        .article.full header .field-name-field-highlighted-text:before,
        .article.full header .field-name-field-view:before,
        .article.full header .extra-field:before,
        .article.full header .action-wrapper:before,
        .job.full header .field-name-field-contact-data:before,
        .job.full header .field-name-field-highlighted-text:before,
        .job.full header .field-name-field-view:before,
        .job.full header .extra-field:before,
        .job.full header .action-wrapper:before,
        .partner.full header .field-name-field-contact-data:before,
        .partner.full header .field-name-field-highlighted-text:before,
        .partner.full header .field-name-field-view:before,
        .partner.full header .extra-field:before,
        .partner.full header .action-wrapper:before,
        .product-categories.full header .field-name-field-contact-data:before,
        .product-categories.full header .field-name-field-highlighted-text:before,
        .product-categories.full header .field-name-field-view:before,
        .product-categories.full header .extra-field:before,
        .product-categories.full header .action-wrapper:before {
          content: '';
          display: block;
          width: 16px;
          background-position: center;
          background-repeat: no-repeat;
          position: absolute;
          height: 149px;
          background-image: url("../img/pseudo_right.svg"); }
        .page.full header .field-name-field-contact-data:before,
        .page.full header .field-name-field-highlighted-text:before,
        .page.full header .field-name-field-view:before,
        .page.full header .extra-field:before,
        .page.full header .action-wrapper:before,
        .article.full header .field-name-field-contact-data:before,
        .article.full header .field-name-field-highlighted-text:before,
        .article.full header .field-name-field-view:before,
        .article.full header .extra-field:before,
        .article.full header .action-wrapper:before,
        .job.full header .field-name-field-contact-data:before,
        .job.full header .field-name-field-highlighted-text:before,
        .job.full header .field-name-field-view:before,
        .job.full header .extra-field:before,
        .job.full header .action-wrapper:before,
        .partner.full header .field-name-field-contact-data:before,
        .partner.full header .field-name-field-highlighted-text:before,
        .partner.full header .field-name-field-view:before,
        .partner.full header .extra-field:before,
        .partner.full header .action-wrapper:before,
        .product-categories.full header .field-name-field-contact-data:before,
        .product-categories.full header .field-name-field-highlighted-text:before,
        .product-categories.full header .field-name-field-view:before,
        .product-categories.full header .extra-field:before,
        .product-categories.full header .action-wrapper:before {
          bottom: 0;
          right: calc(130px - 16px);
          transform: translateY(65px); } }
    @media screen and (min-width: 90em) {
      .page.full header .field-name-field-contact-data,
      .page.full header .field-name-field-highlighted-text,
      .page.full header .field-name-field-view,
      .page.full header .extra-field,
      .page.full header .action-wrapper,
      .article.full header .field-name-field-contact-data,
      .article.full header .field-name-field-highlighted-text,
      .article.full header .field-name-field-view,
      .article.full header .extra-field,
      .article.full header .action-wrapper,
      .job.full header .field-name-field-contact-data,
      .job.full header .field-name-field-highlighted-text,
      .job.full header .field-name-field-view,
      .job.full header .extra-field,
      .job.full header .action-wrapper,
      .partner.full header .field-name-field-contact-data,
      .partner.full header .field-name-field-highlighted-text,
      .partner.full header .field-name-field-view,
      .partner.full header .extra-field,
      .partner.full header .action-wrapper,
      .product-categories.full header .field-name-field-contact-data,
      .product-categories.full header .field-name-field-highlighted-text,
      .product-categories.full header .field-name-field-view,
      .product-categories.full header .extra-field,
      .product-categories.full header .action-wrapper {
        padding-left: 100px; }
        .page.full header .field-name-field-contact-data:before,
        .page.full header .field-name-field-highlighted-text:before,
        .page.full header .field-name-field-view:before,
        .page.full header .extra-field:before,
        .page.full header .action-wrapper:before,
        .article.full header .field-name-field-contact-data:before,
        .article.full header .field-name-field-highlighted-text:before,
        .article.full header .field-name-field-view:before,
        .article.full header .extra-field:before,
        .article.full header .action-wrapper:before,
        .job.full header .field-name-field-contact-data:before,
        .job.full header .field-name-field-highlighted-text:before,
        .job.full header .field-name-field-view:before,
        .job.full header .extra-field:before,
        .job.full header .action-wrapper:before,
        .partner.full header .field-name-field-contact-data:before,
        .partner.full header .field-name-field-highlighted-text:before,
        .partner.full header .field-name-field-view:before,
        .partner.full header .extra-field:before,
        .partner.full header .action-wrapper:before,
        .product-categories.full header .field-name-field-contact-data:before,
        .product-categories.full header .field-name-field-highlighted-text:before,
        .product-categories.full header .field-name-field-view:before,
        .product-categories.full header .extra-field:before,
        .product-categories.full header .action-wrapper:before {
          transform: translateY(0); } }
  @media screen and (max-width: 63.99875em) {
    .page.full header .extra-field,
    .article.full header .extra-field,
    .job.full header .extra-field,
    .partner.full header .extra-field,
    .product-categories.full header .extra-field {
      display: none !important; } }
  @media print, screen and (min-width: 64em) {
    .page.full header .extra-field,
    .article.full header .extra-field,
    .job.full header .extra-field,
    .partner.full header .extra-field,
    .product-categories.full header .extra-field {
      top: 200px;
      bottom: auto;
      padding-top: 0;
      padding-bottom: 0;
      background-color: transparent; }
      .page.full header .extra-field.child-term,
      .article.full header .extra-field.child-term,
      .job.full header .extra-field.child-term,
      .partner.full header .extra-field.child-term,
      .product-categories.full header .extra-field.child-term {
        top: 280px; } }
  .page.full header .field-name-field-contact-data,
  .page.full header .field-name-field-highlighted-text,
  .article.full header .field-name-field-contact-data,
  .article.full header .field-name-field-highlighted-text,
  .job.full header .field-name-field-contact-data,
  .job.full header .field-name-field-highlighted-text,
  .partner.full header .field-name-field-contact-data,
  .partner.full header .field-name-field-highlighted-text,
  .product-categories.full header .field-name-field-contact-data,
  .product-categories.full header .field-name-field-highlighted-text {
    color: #0054FF;
    font-size: 1.3125rem;
    letter-spacing: .4px; }
    @media print, screen and (min-width: 48em) {
      .page.full header .field-name-field-contact-data,
      .page.full header .field-name-field-highlighted-text,
      .article.full header .field-name-field-contact-data,
      .article.full header .field-name-field-highlighted-text,
      .job.full header .field-name-field-contact-data,
      .job.full header .field-name-field-highlighted-text,
      .partner.full header .field-name-field-contact-data,
      .partner.full header .field-name-field-highlighted-text,
      .product-categories.full header .field-name-field-contact-data,
      .product-categories.full header .field-name-field-highlighted-text {
        padding-top: 90px; } }
  @media screen and (min-width: 75em) {
    .page.full header .field-name-field-contact-data .address-information,
    .page.full header .field-name-field-contact-data .contact-information,
    .article.full header .field-name-field-contact-data .address-information,
    .article.full header .field-name-field-contact-data .contact-information,
    .job.full header .field-name-field-contact-data .address-information,
    .job.full header .field-name-field-contact-data .contact-information,
    .partner.full header .field-name-field-contact-data .address-information,
    .partner.full header .field-name-field-contact-data .contact-information,
    .product-categories.full header .field-name-field-contact-data .address-information,
    .product-categories.full header .field-name-field-contact-data .contact-information {
      display: flex;
      flex-wrap: wrap; } }
  @media screen and (min-width: 75em) {
    .page.full header .field-name-field-contact-data .address-information .address-information--street + .address-information--place:before,
    .page.full header .field-name-field-contact-data .contact-information .address-information--street + .address-information--place:before,
    .article.full header .field-name-field-contact-data .address-information .address-information--street + .address-information--place:before,
    .article.full header .field-name-field-contact-data .contact-information .address-information--street + .address-information--place:before,
    .job.full header .field-name-field-contact-data .address-information .address-information--street + .address-information--place:before,
    .job.full header .field-name-field-contact-data .contact-information .address-information--street + .address-information--place:before,
    .partner.full header .field-name-field-contact-data .address-information .address-information--street + .address-information--place:before,
    .partner.full header .field-name-field-contact-data .contact-information .address-information--street + .address-information--place:before,
    .product-categories.full header .field-name-field-contact-data .address-information .address-information--street + .address-information--place:before,
    .product-categories.full header .field-name-field-contact-data .contact-information .address-information--street + .address-information--place:before {
      content: ',';
      margin-right: 6px; } }
  @media screen and (min-width: 75em) {
    .page.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone,
    .page.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone,
    .article.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone,
    .article.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone,
    .job.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone,
    .job.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone,
    .partner.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone,
    .partner.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone,
    .product-categories.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone,
    .product-categories.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone {
      display: flex; }
      .page.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone:before,
      .page.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone:before,
      .article.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone:before,
      .article.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone:before,
      .job.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone:before,
      .job.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone:before,
      .partner.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone:before,
      .partner.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone:before,
      .product-categories.full header .field-name-field-contact-data .address-information .field-name-field-email + .field-name-field-phone:before,
      .product-categories.full header .field-name-field-contact-data .contact-information .field-name-field-email + .field-name-field-phone:before {
        content: '|';
        margin: auto 10px; } }
  @media screen and (min-width: 75em) {
    .page.full header .field-name-field-contact-data .address-information .field-name-field-company-number,
    .page.full header .field-name-field-contact-data .contact-information .field-name-field-company-number,
    .article.full header .field-name-field-contact-data .address-information .field-name-field-company-number,
    .article.full header .field-name-field-contact-data .contact-information .field-name-field-company-number,
    .job.full header .field-name-field-contact-data .address-information .field-name-field-company-number,
    .job.full header .field-name-field-contact-data .contact-information .field-name-field-company-number,
    .partner.full header .field-name-field-contact-data .address-information .field-name-field-company-number,
    .partner.full header .field-name-field-contact-data .contact-information .field-name-field-company-number,
    .product-categories.full header .field-name-field-contact-data .address-information .field-name-field-company-number,
    .product-categories.full header .field-name-field-contact-data .contact-information .field-name-field-company-number {
      flex: 0 0 100%; } }
  @media print, screen and (min-width: 64em) {
    .page.full header .field-name-field-highlighted-text,
    .article.full header .field-name-field-highlighted-text,
    .job.full header .field-name-field-highlighted-text,
    .partner.full header .field-name-field-highlighted-text,
    .product-categories.full header .field-name-field-highlighted-text {
      font-size: 1.875rem;
      letter-spacing: .56px;
      line-height: 1.4; } }
  @media print, screen and (min-width: 48em) {
    .page.full header .field-name-field-view,
    .article.full header .field-name-field-view,
    .job.full header .field-name-field-view,
    .partner.full header .field-name-field-view,
    .product-categories.full header .field-name-field-view {
      padding-top: 60px; } }

.view-id-articles.view-display-teasers .views-infinite-scroll-content-wrapper .views-row {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 30em) {
    .view-id-articles.view-display-teasers .views-infinite-scroll-content-wrapper .views-row {
      display: flex; } }
  @media print, screen and (min-width: 64em) {
    .view-id-articles.view-display-teasers .views-infinite-scroll-content-wrapper .views-row {
      margin-bottom: 90px; } }

.view-id-articles.view-display-teasers ul[data-drupal-views-infinite-scroll-pager] {
  margin-top: 10px; }

@media print, screen and (min-width: 30em) {
  .view-id-articles.view-display-teasers .article.teaser {
    display: flex;
    flex-direction: column; } }

.article.teaser h2,
.article.featured h2 {
  margin-bottom: 0; }
  .article.teaser h2 a:hover, .article.teaser h2 a:focus, .article.featured h2 a:hover, .article.featured h2 a:focus {
    text-decoration: underline; }

.article.teaser .actions-wrapper, .article.featured .actions-wrapper {
  padding-top: 28px;
  margin-top: auto; }

.article.teaser .date, .article.featured .date {
  margin-bottom: 10px; }

.article.teaser figure {
  margin-bottom: 28px; }
  .article.teaser figure.overlay img {
    opacity: .2;
    transition: .25s ease-out opacity;
    z-index: 1;
    position: relative; }
  .article.teaser figure a {
    display: block; }
    .article.teaser figure a:hover img, .article.teaser figure a:focus img {
      opacity: 1; }

.article.featured {
  max-width: 340px; }

.article .date {
  font-size: 1.125rem;
  letter-spacing: .4px;
  color: #979797; }
  @media print, screen and (min-width: 64em) {
    .article .date {
      font-size: 1.3125rem; } }

.partner.teaser .field-name-field-image {
  margin-bottom: 60px;
  max-width: 220px; }
  .partner.teaser .field-name-field-image a {
    display: block;
    transition: .25s ease-out filter;
    -webkit-filter: unset;
            filter: unset; }
    .partner.teaser .field-name-field-image a:hover, .partner.teaser .field-name-field-image a:focus {
      -webkit-filter: grayscale(1);
              filter: grayscale(1); }
  .partner.teaser .field-name-field-image img {
    max-width: 220px;
    max-height: 100px;
    width: auto; }

.partner.teaser .actions-wrapper {
  margin-top: auto; }

.partner.full header figure.page-image .media-wrapper {
  background-color: #FFFFFF; }
  .partner.full header figure.page-image .media-wrapper .field-name-field-image img {
    width: auto;
    height: auto;
    top: 50%;
    left: 50%;
    -o-object-fit: none;
       object-fit: none;
    transform: translate(-50%, -50%);
    opacity: 1; }

.product.full .product-header {
  padding-bottom: calc(45px + 45px); }
  @media print, screen and (min-width: 48em) {
    .product.full .product-header {
      padding-bottom: calc(90px + 45px); } }
  @media screen and (min-width: 90em) {
    .product.full .product-header {
      padding-bottom: calc(130px + 45px); } }
  .product.full .product-header .wrapper-padding {
    padding-top: 45px;
    background-color: #EDF3FF; }
    @media print, screen and (min-width: 48em) {
      .product.full .product-header .wrapper-padding {
        padding-top: 90px; } }
    @media print, screen and (min-width: 64em) {
      .product.full .product-header .wrapper-padding {
        padding-top: 130px; } }
    @media screen and (min-width: 90em) {
      .product.full .product-header .wrapper-padding {
        padding-top: 230px; } }

.product.full h1 {
  margin-bottom: 0; }

.product.full .actions-wrapper {
  margin-bottom: 30px; }
  @media print, screen and (min-width: 48em) {
    .product.full .actions-wrapper {
      text-align: right; } }

@media print, screen and (min-width: 48em) {
  .product.full .titles, .product.full .actions-wrapper {
    margin-bottom: 45px; } }

@media print, screen and (min-width: 64em) {
  .product.full .titles, .product.full .actions-wrapper {
    margin-bottom: 60px; } }

.product.full figure.product-image {
  margin-bottom: -45px; }
  @media print, screen and (min-width: 64em) {
    .product.full figure.product-image {
      margin-bottom: -90px; } }

.product.full .full-content > .field-name-body,
.product.full .full-content > .field-name-field-specs {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .product.full .full-content > .field-name-body,
    .product.full .full-content > .field-name-field-specs {
      margin-bottom: 90px; } }
  @media print, screen and (min-width: 64em) {
    .product.full .full-content > .field-name-body,
    .product.full .full-content > .field-name-field-specs {
      margin-bottom: 130px; } }
  @media screen and (min-width: 90em) {
    .product.full .full-content > .field-name-body,
    .product.full .full-content > .field-name-field-specs {
      margin-bottom: 230px; } }

@media print, screen and (min-width: 64em) {
  .product.full .full-content > .field-name-body > .row {
    position: relative; }
    .product.full .full-content > .field-name-body > .row:before {
      content: '';
      display: block;
      width: 16px;
      background-position: center;
      background-repeat: no-repeat;
      position: absolute;
      height: 149px;
      background-image: url("../img/pseudo_right.svg"); }
    .product.full .full-content > .field-name-body > .row:before {
      top: 10px;
      right: 0; } }

.product.full .full-content > .field-name-body + .field-name-field-specs {
  margin-top: -15px; }
  @media print, screen and (min-width: 48em) {
    .product.full .full-content > .field-name-body + .field-name-field-specs {
      margin-top: calc(45px - 90px); } }
  @media print, screen and (min-width: 64em) {
    .product.full .full-content > .field-name-body + .field-name-field-specs {
      margin-top: calc(45px - 130px); } }
  @media screen and (min-width: 90em) {
    .product.full .full-content > .field-name-body + .field-name-field-specs {
      margin-top: calc(45px - 230px); } }

@media print, screen and (min-width: 64em) {
  .product.full.has-description-fields > .full-content > .field-name-field-paragraphs {
    margin-top: calc(90px - 130px); } }

@media screen and (min-width: 90em) {
  .product.full.has-description-fields > .full-content > .field-name-field-paragraphs {
    margin-top: calc(90px - 230px); } }

.field-name-field-related-products {
  background-color: #EDF3FF;
  padding-top: 45px;
  padding-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .field-name-field-related-products {
      padding-bottom: 90px; } }
  @media print, screen and (min-width: 64em) {
    .field-name-field-related-products {
      padding-top: 90px;
      padding-bottom: 130px; } }
  .field-name-field-related-products h2 {
    margin-bottom: 45px;
    text-align: center; }
    @media print, screen and (min-width: 64em) {
      .field-name-field-related-products h2 {
        margin-bottom: 90px; } }

.field-name-field-product-varations + .field-name-field-related-products {
  padding-top: 0; }

.product-categories.full .links-wrapper {
  margin-top: 45px;
  margin-bottom: 45px; }

.address-information--street,
.address-information--place {
  display: flex; }
  .address-information--street > div:not(:last-of-type),
  .address-information--place > div:not(:last-of-type) {
    margin-right: 5px; }

.contact .field-name-field-name {
  font-weight: 700;
  color: #0054FF; }

footer .contact .address-information,
footer .contact .contact-information {
  font-size: 0.9375rem;
  line-height: 1.66; }

.paragraph--type--call-to-action figure.p-image,
.paragraph--type--features figure.p-image,
.paragraph--type--jobs figure.p-image,
.paragraph--type--list figure.p-image,
.paragraph--type--overview figure.p-image,
.paragraph--type--products figure.p-image,
.container-product-categories.container-by-term figure.p-image,
.container-products.container-teasers figure.p-image,
.paragraph--type--partners.selected-view-id--partners-nodes.selected-view-display--teasers figure.p-image,
.field-name-field-product-varations figure.p-image {
  background-color: #EDF3FF; }

.paragraph--type--call-to-action .bg__image,
.paragraph--type--features .bg__image,
.paragraph--type--jobs .bg__image,
.paragraph--type--list .bg__image,
.paragraph--type--overview .bg__image,
.paragraph--type--products .bg__image,
.container-product-categories.container-by-term .bg__image,
.container-products.container-teasers .bg__image,
.paragraph--type--partners.selected-view-id--partners-nodes.selected-view-display--teasers .bg__image,
.field-name-field-product-varations .bg__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: .16; }

.paragraph--type--features h2,
.paragraph--type--jobs h2,
.paragraph--type--references h2,
.paragraph--type--list h2,
.paragraph--type--overview h2 {
  margin-bottom: 0;
  text-align: center;
  padding-top: 30px;
  padding-bottom: 30px;
  position: relative;
  z-index: 2;
  color: #FFFFFF;
  width: 100%; }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--features h2,
    .paragraph--type--jobs h2,
    .paragraph--type--references h2,
    .paragraph--type--list h2,
    .paragraph--type--overview h2 {
      padding-top: 45px;
      padding-bottom: 45px; } }

.paragraph--type--features .titles,
.paragraph--type--jobs .titles,
.paragraph--type--references .titles,
.paragraph--type--list .titles,
.paragraph--type--overview .titles {
  position: relative;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../img/default/default_title.jpg");
  background-color: #002C87;
  background-blend-mode: color-burn; }
  @media print, screen and (min-width: 30em) {
    .paragraph--type--features .titles,
    .paragraph--type--jobs .titles,
    .paragraph--type--references .titles,
    .paragraph--type--list .titles,
    .paragraph--type--overview .titles {
      background-image: url("../img/default/default_title_s.jpg"); } }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--features .titles,
    .paragraph--type--jobs .titles,
    .paragraph--type--references .titles,
    .paragraph--type--list .titles,
    .paragraph--type--overview .titles {
      background-image: url("../img/default/default_title_m.jpg"); } }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--features .titles,
    .paragraph--type--jobs .titles,
    .paragraph--type--references .titles,
    .paragraph--type--list .titles,
    .paragraph--type--overview .titles {
      background-image: url("../img/default/default_title_l.jpg"); } }
  @media screen and (min-width: 75em) {
    .paragraph--type--features .titles,
    .paragraph--type--jobs .titles,
    .paragraph--type--references .titles,
    .paragraph--type--list .titles,
    .paragraph--type--overview .titles {
      background-image: url("../img/default/default_title_xl.jpg"); } }
  @media screen and (min-width: 90em) {
    .paragraph--type--features .titles,
    .paragraph--type--jobs .titles,
    .paragraph--type--references .titles,
    .paragraph--type--list .titles,
    .paragraph--type--overview .titles {
      background-image: url("../img/default/default_title_xxl.jpg"); } }

.paragraph--type--features .content,
.paragraph--type--jobs .content,
.paragraph--type--references .content,
.paragraph--type--list .content,
.paragraph--type--overview .content,
.paragraph--type--products .content,
.container-product-categories.container-by-term .content,
.container-products.container-teasers .content,
.field-name-field-product-varations .content {
  background-color: #002C87;
  position: relative;
  padding-top: 45px;
  padding-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--features .content,
    .paragraph--type--jobs .content,
    .paragraph--type--references .content,
    .paragraph--type--list .content,
    .paragraph--type--overview .content,
    .paragraph--type--products .content,
    .container-product-categories.container-by-term .content,
    .container-products.container-teasers .content,
    .field-name-field-product-varations .content {
      padding-top: 65px;
      padding-bottom: 65px; } }
  .paragraph--type--features .content:after,
  .paragraph--type--jobs .content:after,
  .paragraph--type--references .content:after,
  .paragraph--type--list .content:after,
  .paragraph--type--overview .content:after,
  .paragraph--type--products .content:after,
  .container-product-categories.container-by-term .content:after,
  .container-products.container-teasers .content:after,
  .field-name-field-product-varations .content:after {
    content: '';
    display: block;
    width: 100%;
    padding-bottom: calc((232% / 1488) * 100);
    background-image: url("../img/after_features.svg");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100%;
    position: absolute;
    left: 0;
    bottom: 0;
    transform: translateY(calc(100% - 1px));
    z-index: 1; }

.paragraph--type--features figure.p-image,
.paragraph--type--jobs figure.p-image,
.paragraph--type--references figure.p-image,
.paragraph--type--list figure.p-image,
.paragraph--type--overview figure.p-image,
.paragraph--type--products figure.p-image,
.container-product-categories.container-by-term figure.p-image,
.container-products.container-teasers figure.p-image,
.field-name-field-product-varations figure.p-image {
  position: relative;
  padding-bottom: calc((340% / 1440) * 100); }
  @media screen and (min-width: 90em) {
    .paragraph--type--features figure.p-image,
    .paragraph--type--jobs figure.p-image,
    .paragraph--type--references figure.p-image,
    .paragraph--type--list figure.p-image,
    .paragraph--type--overview figure.p-image,
    .paragraph--type--products figure.p-image,
    .container-product-categories.container-by-term figure.p-image,
    .container-products.container-teasers figure.p-image,
    .field-name-field-product-varations figure.p-image {
      padding-bottom: calc((280% / 1440) * 100); } }

.paragraph--type--features .content > .field-name-field-text,
.paragraph--type--overview .content > .field-name-field-text {
  color: #FFFFFF;
  text-align: center;
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--features .content > .field-name-field-text,
    .paragraph--type--overview .content > .field-name-field-text {
      margin-bottom: 65px;
      margin-top: -15px; } }
  @media screen and (min-width: 90em) {
    .paragraph--type--features .content > .field-name-field-text,
    .paragraph--type--overview .content > .field-name-field-text {
      margin-top: -30px; } }
  .paragraph--type--features .content > .field-name-field-text .columns,
  .paragraph--type--overview .content > .field-name-field-text .columns {
    margin: 0 auto; }

.paragraph--type--features .field-name-field-text .field-item *:last-child,
.paragraph--type--overview .field-name-field-text .field-item *:last-child,
.paragraph--type--text-image .field-name-field-text .field-item *:last-child {
  margin-bottom: 0; }

@media print, screen and (min-width: 30em) {
  .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block,
  .paragraph--type--text-image.option-image-right .content {
    position: relative;
    padding-left: 45px; }
    .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block:before,
    .paragraph--type--text-image.option-image-right .content:before {
      content: '';
      display: block;
      width: 16px;
      background-position: center;
      background-repeat: no-repeat;
      position: absolute;
      height: 144px;
      background-image: url("../img/pseudo_left.svg"); }
    .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block:before,
    .paragraph--type--text-image.option-image-right .content:before {
      top: 50%;
      left: 0;
      transform: translateY(-50%); } }

@media print, screen and (min-width: 30em) {
  .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .field-name-field-text,
  .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .actions-wrapper,
  .paragraph--type--text-image.option-image-right .content .field-name-field-text,
  .paragraph--type--text-image.option-image-right .content .actions-wrapper {
    padding-left: 15px; } }

@media print, screen and (min-width: 64em) {
  .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .field-name-field-text,
  .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .actions-wrapper,
  .paragraph--type--text-image.option-image-right .content .field-name-field-text,
  .paragraph--type--text-image.option-image-right .content .actions-wrapper {
    padding-left: 45px; } }

.field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .field-name-field-text > .field-items > .field-item > h2, .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block > h3, .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block > h4,
.paragraph--type--text-image.option-image-right .content .field-name-field-text > .field-items > .field-item > h2,
.paragraph--type--text-image.option-image-right .content > h3,
.paragraph--type--text-image.option-image-right .content > h4 {
  padding-left: 0; }

.product-variation .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block,
.product-variation .paragraph--type--text-image.option-image-right .content {
  padding-left: 0; }
  .product-variation .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block:before,
  .product-variation .paragraph--type--text-image.option-image-right .content:before {
    display: none; }
  .product-variation .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .field-name-field-text,
  .product-variation .field-name-field-text-blocks.field-view-mode-col-2 .paragraph--type--text-block .actions-wrapper,
  .product-variation .paragraph--type--text-image.option-image-right .content .field-name-field-text,
  .product-variation .paragraph--type--text-image.option-image-right .content .actions-wrapper {
    padding-left: 0; }

.product-variation .paragraph--type--text-image .field-type-text-long,
.product-variation .paragraph--type--text-block {
  color: #FFFFFF; }

.paragraph--type--features + .paragraph--type--text-blocks,
.paragraph--type--features + .paragraph--type--text-block,
.paragraph--type--jobs + .paragraph--type--text-blocks,
.paragraph--type--jobs + .paragraph--type--text-block,
.paragraph--type--list + .paragraph--type--text-blocks,
.paragraph--type--list + .paragraph--type--text-block,
.paragraph--type--overview + .paragraph--type--text-blocks,
.paragraph--type--overview + .paragraph--type--text-block,
.paragraph--type--products + .paragraph--type--text-blocks,
.paragraph--type--products + .paragraph--type--text-block {
  background-color: #EDF3FF;
  padding-bottom: 45px; }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--features + .paragraph--type--text-blocks,
    .paragraph--type--features + .paragraph--type--text-block,
    .paragraph--type--jobs + .paragraph--type--text-blocks,
    .paragraph--type--jobs + .paragraph--type--text-block,
    .paragraph--type--list + .paragraph--type--text-blocks,
    .paragraph--type--list + .paragraph--type--text-block,
    .paragraph--type--overview + .paragraph--type--text-blocks,
    .paragraph--type--overview + .paragraph--type--text-block,
    .paragraph--type--products + .paragraph--type--text-blocks,
    .paragraph--type--products + .paragraph--type--text-block {
      padding-bottom: 90px; } }
  @media screen and (min-width: 90em) {
    .paragraph--type--features + .paragraph--type--text-blocks,
    .paragraph--type--features + .paragraph--type--text-block,
    .paragraph--type--jobs + .paragraph--type--text-blocks,
    .paragraph--type--jobs + .paragraph--type--text-block,
    .paragraph--type--list + .paragraph--type--text-blocks,
    .paragraph--type--list + .paragraph--type--text-block,
    .paragraph--type--overview + .paragraph--type--text-blocks,
    .paragraph--type--overview + .paragraph--type--text-block,
    .paragraph--type--products + .paragraph--type--text-blocks,
    .paragraph--type--products + .paragraph--type--text-block {
      padding-bottom: 130px; } }

.paragraph--type--text-blocks {
  margin-bottom: 90px; }

.field-name-field-text-blocks.field-view-mode-col-2 > .field-items > div:not(:last-of-type) {
  margin-bottom: 45px; }

.field-name-field-text-blocks.field-view-mode-col-2 h3 {
  margin-bottom: 30px; }
  @media screen and (min-width: 90em) {
    .field-name-field-text-blocks.field-view-mode-col-2 h3 {
      margin-bottom: 65px; } }

.paragraph--type--text-block {
  color: #0054FF; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--text-block {
      display: flex;
      flex-direction: column; } }
  .paragraph--type--text-block .field-name-field-text {
    margin-bottom: auto; }
  .paragraph--type--text-block .actions-wrapper {
    margin-top: 45px; }
    @media print, screen and (min-width: 64em) {
      .paragraph--type--text-block .actions-wrapper {
        margin-top: 60px; } }

.paragraph-items > .paragraph--type--text-block {
  padding-bottom: 90px; }
  @media print, screen and (min-width: 64em) {
    .paragraph-items > .paragraph--type--text-block {
      padding-bottom: 140px; } }
  @media print, screen and (min-width: 30em) {
    .paragraph-items > .paragraph--type--text-block > .row {
      position: relative;
      padding-left: 45px; }
      .paragraph-items > .paragraph--type--text-block > .row:before {
        content: '';
        display: block;
        width: 16px;
        background-position: center;
        background-repeat: no-repeat;
        position: absolute;
        height: 144px;
        background-image: url("../img/pseudo_left.svg"); }
      .paragraph-items > .paragraph--type--text-block > .row:before {
        left: 0;
        top: -30px; } }
  @media print, screen and (min-width: 64em) {
    .paragraph-items > .paragraph--type--text-block > .row {
      padding-left: 0; } }
  @media print, screen and (min-width: 30em) {
    .paragraph-items > .paragraph--type--text-block.has-title > .row:before {
      top: calc(50px + 45px); } }
  @media print, screen and (min-width: 64em) {
    .paragraph-items > .paragraph--type--text-block.has-title > .row:before {
      top: calc(50px + 65px); } }
  .paragraph-items > .paragraph--type--text-block .title h2 {
    margin-bottom: 45px; }
    @media print, screen and (min-width: 64em) {
      .paragraph-items > .paragraph--type--text-block .title h2 {
        margin-bottom: 65px; } }

.home.full .paragraph-items > .paragraph--type--text-block,
.page.full .paragraph-items > .paragraph--type--text-block {
  color: #0054FF; }

.home.full .paragraph--type--text-block.delta-0 {
  background-color: #EDF3FF;
  padding-top: 90px;
  padding-bottom: 130px; }
  @media print, screen and (min-width: 64em) {
    .home.full .paragraph--type--text-block.delta-0 {
      padding-top: 165px; } }
  @media print, screen and (min-width: 30em) {
    .home.full .paragraph--type--text-block.delta-0 > .row:before {
      top: -70px; } }
  @media print, screen and (min-width: 64em) {
    .home.full .paragraph--type--text-block.delta-0 .column, .home.full .paragraph--type--text-block.delta-0 .columns {
      margin-left: 8.33333%; } }

@media print, screen and (min-width: 48em) {
  .swiper-slidesperview-auto .swiper-slide {
    width: auto; } }

.paragraph--type--images.paragraph--view-mode--slideshow {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--images.paragraph--view-mode--slideshow {
      margin-bottom: 90px; } }

.paragraph--type--call-to-action {
  position: relative;
  margin-bottom: 45px; }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--call-to-action {
      margin-bottom: 90px; } }
  @media screen and (min-width: 90em) {
    .paragraph--type--call-to-action {
      margin-bottom: 130px; } }
  .paragraph--type--call-to-action h2 {
    margin-bottom: 0; }
  .paragraph--type--call-to-action h2 + .button {
    margin-top: 50px; }
  .paragraph--type--call-to-action .button {
    margin-bottom: 0; }
  .paragraph--type--call-to-action .content {
    position: relative;
    z-index: 1;
    padding-top: 45px;
    padding-bottom: 45px; }
    @media print, screen and (min-width: 48em) {
      .paragraph--type--call-to-action .content {
        padding-top: 90px;
        padding-bottom: 90px; } }
    @media print, screen and (min-width: 64em) {
      .paragraph--type--call-to-action .content {
        padding-top: 200px;
        padding-bottom: 160px; } }
    @media screen and (min-width: 90em) {
      .paragraph--type--call-to-action .content {
        padding-top: 260px;
        padding-bottom: 230px; } }
    .paragraph--type--call-to-action .content .container {
      position: relative;
      padding-left: 45px; }
      .paragraph--type--call-to-action .content .container:before {
        content: '';
        display: block;
        width: 16px;
        background-position: center;
        background-repeat: no-repeat;
        position: absolute;
        height: 144px;
        background-image: url("../img/pseudo_left.svg"); }
      .paragraph--type--call-to-action .content .container:before {
        bottom: 50%;
        left: 0;
        transform: translateY(50%); }
        @media print, screen and (min-width: 64em) {
          .paragraph--type--call-to-action .content .container:before {
            bottom: -80px;
            transform: translateY(0); } }
  .paragraph--type--call-to-action figure {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .paragraph--type--call-to-action.delta-last {
    margin-bottom: 0; }

.paragraph--type--features + .paragraph--type--call-to-action .content,
.paragraph--type--jobs + .paragraph--type--call-to-action .content,
.paragraph--type--list + .paragraph--type--call-to-action .content,
.paragraph--type--overview + .paragraph--type--call-to-action .content,
.paragraph--type--products + .paragraph--type--call-to-action .content {
  padding-top: 120px; }
  @media print, screen and (min-width: 30em) {
    .paragraph--type--features + .paragraph--type--call-to-action .content,
    .paragraph--type--jobs + .paragraph--type--call-to-action .content,
    .paragraph--type--list + .paragraph--type--call-to-action .content,
    .paragraph--type--overview + .paragraph--type--call-to-action .content,
    .paragraph--type--products + .paragraph--type--call-to-action .content {
      padding-top: 160px; } }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--features + .paragraph--type--call-to-action .content,
    .paragraph--type--jobs + .paragraph--type--call-to-action .content,
    .paragraph--type--list + .paragraph--type--call-to-action .content,
    .paragraph--type--overview + .paragraph--type--call-to-action .content,
    .paragraph--type--products + .paragraph--type--call-to-action .content {
      padding-top: 240px; } }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--features + .paragraph--type--call-to-action .content,
    .paragraph--type--jobs + .paragraph--type--call-to-action .content,
    .paragraph--type--list + .paragraph--type--call-to-action .content,
    .paragraph--type--overview + .paragraph--type--call-to-action .content,
    .paragraph--type--products + .paragraph--type--call-to-action .content {
      padding-top: 320px; } }
  @media screen and (min-width: 90em) {
    .paragraph--type--features + .paragraph--type--call-to-action .content,
    .paragraph--type--jobs + .paragraph--type--call-to-action .content,
    .paragraph--type--list + .paragraph--type--call-to-action .content,
    .paragraph--type--overview + .paragraph--type--call-to-action .content,
    .paragraph--type--products + .paragraph--type--call-to-action .content {
      padding-top: 420px; } }

.paragraph--type--form {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--form {
      margin-bottom: 90px; } }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--form {
      margin-bottom: 130px; } }

.paragraph--type--partners {
  margin-bottom: 45px; }
  .paragraph--type--partners .field-name-field-view {
    width: 100%; }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--partners {
      margin-bottom: 90px; } }
  .paragraph--type--partners h2 {
    margin-bottom: 45px; }
  .paragraph--type--partners .item-list li {
    display: flex;
    align-items: center;
    margin-bottom: 30px; }
  .paragraph--type--partners a {
    display: block;
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
    @media print, screen and (min-width: 48em) {
      .paragraph--type--partners a {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
    .paragraph--type--partners a img {
      transition: .25s ease-out filter;
      -webkit-filter: grayscale(1) brightness(260%);
              filter: grayscale(1) brightness(260%); }
    .paragraph--type--partners a:hover img, .paragraph--type--partners a:focus img {
      -webkit-filter: none;
              filter: none; }

.paragraph--type--articles {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--articles {
      margin-bottom: 90px; } }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--articles {
      margin-bottom: 130px; } }
  @media screen and (min-width: 90em) {
    .paragraph--type--articles {
      margin-bottom: 160px; } }

.paragraph--type--list .field-name-field-list ul {
  margin-bottom: 0;
  list-style-type: none; }
  .paragraph--type--list .field-name-field-list ul li {
    position: relative;
    padding-left: 40px;
    color: #FFFFFF;
    margin-bottom: 18px;
    letter-spacing: .4px; }
    @media print, screen and (min-width: 64em) {
      .paragraph--type--list .field-name-field-list ul li {
        font-size: 1.3125rem;
        margin-bottom: 21px; } }
    .paragraph--type--list .field-name-field-list ul li:before {
      content: '';
      position: absolute;
      top: 8px;
      left: 0;
      width: 17px;
      height: 13px;
      display: block;
      background-image: url("../img/check.svg");
      background-repeat: no-repeat;
      background-position: center;
      background-size: cover;
      -webkit-filter: invert(96%) sepia(96%) saturate(18%) hue-rotate(259deg) brightness(103%) contrast(106%);
              filter: invert(96%) sepia(96%) saturate(18%) hue-rotate(259deg) brightness(103%) contrast(106%); }
    @media print, screen and (min-width: 48em) {
      .paragraph--type--list .field-name-field-list ul li:nth-of-type(odd) {
        padding-right: 50px; } }

.product-variation .paragraph--type--video-embed {
  margin-top: 45px; }
  @media print, screen and (min-width: 64em) {
    .product-variation .paragraph--type--video-embed {
      margin-top: 90px; } }

.field-name-field-videos {
  max-width: 960px;
  margin: 0 auto; }
  .field-name-field-videos .field-items > div:not(:last-of-type) {
    margin-bottom: 45px; }

.paragraph-items .paragraph--type--video-embed {
  padding-right: 3.125rem;
  padding-left: 3.125rem;
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .paragraph-items .paragraph--type--video-embed {
      padding-right: 1.875rem;
      padding-left: 1.875rem; } }
  @media print, screen and (min-width: 48em) {
    .paragraph-items .paragraph--type--video-embed {
      margin-bottom: 90px; } }
  .paragraph-items .paragraph--type--video-embed .field-type-video-embed-field {
    max-width: 76.875rem;
    margin-right: auto;
    margin-left: auto; }
    .paragraph-items .paragraph--type--video-embed .field-type-video-embed-field::before, .paragraph-items .paragraph--type--video-embed .field-type-video-embed-field::after {
      display: table;
      content: ' ';
      flex-basis: 0;
      order: 1; }
    .paragraph-items .paragraph--type--video-embed .field-type-video-embed-field::after {
      clear: both; }

.product-variation .paragraph--type--video-embed {
  padding: 0; }

.paragraph--type--text-image {
  color: #0054FF;
  margin-bottom: 45px; }
  @media print, screen and (min-width: 64em) {
    .paragraph--type--text-image {
      margin-bottom: 90px; } }
  @media screen and (min-width: 90em) {
    .paragraph--type--text-image {
      margin-bottom: 130px; } }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--text-image.option-image-left .row {
      flex-direction: row-reverse;
      justify-content: flex-end; } }
  @media print, screen and (min-width: 48em) {
    .paragraph--type--text-image .row {
      align-items: center; } }
  .paragraph--type--text-image figure {
    margin-top: 45px; }
    @media print, screen and (min-width: 48em) {
      .paragraph--type--text-image figure {
        margin-top: 0; } }

.product-variation ul.links-wrapper {
  margin: 45px 0 0 0; }
  @media screen and (min-width: 90em) {
    .product-variation ul.links-wrapper {
      margin-top: 90px; } }

.product-variation .intro-row {
  margin-bottom: 45px; }
  @media print, screen and (min-width: 48em) {
    .product-variation .intro-row {
      flex-direction: row-reverse;
      justify-content: flex-end; } }

.product-variation .gallery-top .swiper-slide {
  display: flex;
  justify-content: center; }

.product-variation > div > .field-name-field-text + .field-name-field-paragraphs {
  margin-top: 45px; }
  @media print, screen and (min-width: 30em) {
    .product-variation > div > .field-name-field-text + .field-name-field-paragraphs {
      margin-top: 90px; } }

.field-name-field-product-varations .content {
  padding-top: 0;
  padding-bottom: 0; }

@media print, screen and (min-width: 48em) {
  .variation-content > h2 {
    display: none; } }

.has-no-images .variation-content > h2 {
  display: block; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3pvb20uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIl9jb21tb24uc2NzcyIsImNvbXBvbmVudHMvX2Jsb2NrLnNjc3MiLCJjb21wb25lbnRzL19idXR0b24uc2NzcyIsIl9taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvX25hdmlnYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX29mZl9jYW52YXMuc2NzcyIsImNvbXBvbmVudHMvX3RhYnMuc2NzcyIsImNvbXBvbmVudHMvX3RpdGxlcy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiY29tcG9uZW50cy9fZXVfY29va2llX2NvbXBsaWFuY2Uuc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ob21lLnNjc3MiLCJjb21wb25lbnRzL19wYWdlLnNjc3MiLCJjb21wb25lbnRzL19hcnRpY2xlLnNjc3MiLCJjb21wb25lbnRzL19wYXJ0bmVycy5zY3NzIiwiY29tcG9uZW50cy9fcHJvZHVjdC5zY3NzIiwiY29tcG9uZW50cy9fY29udGFjdC5zY3NzIiwiY29tcG9uZW50cy9wYXJhZ3JhcGhzL19wYXJhZ3JhcGhzLnNjc3MiLCJjb21wb25lbnRzL3BhcmFncmFwaHMvX3RleHRfYmxvY2tzLnNjc3MiLCJjb21wb25lbnRzL19zbGlkZXNob3cuc2NzcyIsImNvbXBvbmVudHMvcGFyYWdyYXBocy9faW1hZ2VzX3NsaWRlc2hvdy5zY3NzIiwiY29tcG9uZW50cy9wYXJhZ3JhcGhzL19jYWxsX3RvX2FjdGlvbi5zY3NzIiwiY29tcG9uZW50cy9wYXJhZ3JhcGhzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL3BhcmFncmFwaHMvX3BhcnRuZXJzLnNjc3MiLCJjb21wb25lbnRzL3BhcmFncmFwaHMvX2FydGljbGUuc2NzcyIsImNvbXBvbmVudHMvcGFyYWdyYXBocy9fbGlzdC5zY3NzIiwiY29tcG9uZW50cy9wYXJhZ3JhcGhzL192aWRlby5zY3NzIiwiY29tcG9uZW50cy9wYXJhZ3JhcGhzL190ZXh0X2ltYWdlLnNjc3MiLCJjb21wb25lbnRzL19wcm9kdWN0X3ZhcmlhdGlvbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7O0VETUU7QUVMQSwyRUFBQTtBQVFBO0VBQ0UsaUJBQWlCO0VBQ2pCLDhCQUE4QixFQUFBOztBQVFoQztFQUNFLFNBQVMsRUFBQTs7QUFNWDtFQUNFLGNBQWM7RUFDZCxnQkFBZ0IsRUFBQTs7QUFTbEI7RUFDRSx1QkFBdUI7RUFDdkIsU0FBUztFQUNULGlCQUFpQixFQUFBOztBQU1uQjtFQUNFLGlDQUFpQztFQUNqQyxjQUFjLEVBQUE7O0FBUWhCO0VBQ0UsNkJBQTZCLEVBQUE7O0FBTS9CO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQix5Q0FBaUM7VUFBakMsaUNBQWlDLEVBQUE7O0FBS25DOztFQUVFLG1CQUFtQixFQUFBOztBQU1yQjs7O0VBR0UsaUNB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LEVBQUE7O0FXdUpyQjtFQUlJLGVSM042QztFUXVPN0MsaUJYeEtZO0VXZ0xaLGFBQWE7RUFPYixxQlh0TGlCLEVBQUE7O0FZd0JyQjtFRCtIQTtJQUlJLG1CUjNONkMsRUFBQTtFUXVOakQ7SUFJSSxrQlIzTjZDLEVBQUE7RVF1TmpEO0lBSUksbUJSM042QyxFQUFBO0VRdU5qRDtJQUlJLGVSM042QyxFQUFBLEVRd1BoRDs7QWJ4UlA7RWErUkUsb0JBQW9CO0VBQ3BCLGNYNVFjO0VXNlFkLHFCWHpLeUI7RVcyS3pCLGVBQWUsRUFBQTtFQUxqQjtJQVNJLGNYaEwyRCxFQUFBO0VXdUsvRDtJQWdCSSxTQUFTLEVBQUE7O0FialViO0VhdVVFLFdBQVc7RUFFWCxvQlJ0UnFEO0VRdVJyRCxTQUFTO0VBQ1Qsb0JYNUx5QjtFVzhMekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ1hqU2lCO0VXa1NqQixjQUFjLEVBQUE7O0FBSWhCOzs7RUFHRSxtQlhqTjBCO0VXa04xQiw0QlhyTXlCO0VXc016QixnQlhwTnNCLEVBQUE7O0FXd054QjtFQUNFLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLG9CWC9Nc0I7RVdnTnRCLHFCWGxOa0IsRUFBQTs7QVdzTnBCO0VBQ0Usb0JYck5zQixFQUFBOztBV3lOeEI7RUFFSSxvQlgxTjJCO0VXMk4zQixnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxtQlhoT3lCLEVBQUE7RVcrTjNCO0lBSUkscUJYak84QjtJV2tPOUIsZ0JYaFVrQixFQUFBOztBV3FVdEI7RUFDRSxnQlgxUDBCO0VXMlAxQixzQ1I5VXFEO0VRK1VyRCw4QlhwVmlCLEVBQUE7RVdpVm5CO0lBTUksZ0JYaFFvQjtJV2lRcEIsY1h2VmEsRUFBQTs7QVdxV2pCO0VBQ0UsaUNYcldXO0VXc1dYLFlBQVk7RUFDWixxQkFBcUIsRUFBQTs7QUFJdkI7RUFDRSxTQUFTLEVBQUE7O0FBV1g7RUFDRSxTQUFTO0VBQ1QsMkJSalhTO0VRbVhULHlCWDlYZ0I7RVdnWWhCLDREWDdUbUU7RVc4VG5FLGNYOVhXLEVBQUE7O0FhZ0RiO0VB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SGlEckQsbUJHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixlRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxtQkdoRHFEO0lIaURyRCxvQkdqRHFELEVBQUE7RUh1RHZEO0lJdElKLHFCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxhR2hEcUQ7SUhpRHJELGNHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixzQkQrRTJELEVBQUE7RUgrQ3ZEO0lBQ0UsbUJHaERxRDtJSGlEckQsb0JHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixnQkQrRTJELEVBQUE7RUgrQ3ZEO0lBQ0UsbUJHaERxRDtJSGlEckQsb0JHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixzQkQrRTJELEVBQUE7RUgrQ3ZEO0lBQ0UsYUdoRHFEO0lIaURyRCxjR2pEcUQsRUFBQTtFSHVEdkQ7SUl0SUosc0JEK0UyRCxFQUFBO0VIK0N2RDtJQUNFLG1CR2hEcUQ7SUhpRHJELG9CR2pEcUQsRUFBQTtFSHVEdkQ7SUl0SUosZ0JEK0UyRCxFQUFBO0VIK0N2RDtJQUNFLG1CR2hEcUQ7SUhpRHJELG9CR2pEcUQsRUFBQTtFSHVEdkQ7SUl0SUosc0JEK0UyRCxFQUFBO0VIK0N2RDtJQUNFLGFHaERxRDtJSGlEckQsY0dqRHFELEVBQUE7RUh1RHZEO0lJdElKLHNCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxtQkdoRHFEO0lIaURyRCxvQkdqRHFELEVBQUE7RUh1RHZEO0lJdElKLGdCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxtQkdoRHFEO0lIaURyRCxvQkdqRHFELEVBQUE7RUh1RHZEO0lJdElKLHNCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxjR2hEcUQ7SUhpRHJELGVHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixzQkQrRTJELEVBQUE7RUg4RHZEO0lBMUdKLGVBQWUsRUFBQTtJQUVmO01BR0UsY0FGc0I7TUFHdEIsZUFIc0IsRUFBQTtFQXVHcEI7SUExR0osZUFBZSxFQUFBO0lBRWY7TUFHRSxhQUZzQjtNQUd0QixjQUhzQixFQUFBO0VBdUdwQjtJQTFHSixlQUFlLEVBQUE7SUFF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Y0cvRWlELEVBQUE7RVArQnJEO0lJOENBO01BS00sYUF2S0UsRUFBQSxFQXlLTDs7QUpyREg7RUkyREo7SUVyTkEsZ0JmdUVTO0lldEVULGVmc0VTLEVBQUE7RWFrSlQ7SUV6TkEsd0JBRnFDO0lBR3JDLHVCQUhxQyxFQUFBLEVGNE5nQjs7QUpoRWpEO0VJZ0JGO0lBQ0Usa0JHaERxRDtJSGlEckQsbUJHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixlRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxtQkdoRHFEO0lIaURyRCxvQkdqRHFELEVBQUE7RUh1RHZEO0lJdElKLHFCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxhR2hEcUQ7SUhpRHJELGNHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixzQkQrRTJELEVBQUE7RUgrQ3ZEO0lBQ0UsbUJHaERxRDtJSGlEckQsb0JHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixnQkQrRTJELEVBQUE7RUgrQ3ZEO0lBQ0UsbUJHaERxRDtJSGlEckQsb0JHakRxRCxFQUFBO0VIdUR2RDtJSXRJSixzQkQrRTJELEVBQUE7RUgrQ3ZEO0lBQ0UsYUdoRHFEO0lIaURyRCxjR2pEcUQsRUFBQTtFSHVEdkQ7SUl0SUosc0JEK0UyRCxFQUFBO0VIK0N2RDtJQUNFLG1CR2hEcUQ7SUhpRHJELG9CR2pEcUQsRUFBQTtFSHVEdkQ7SUl0SUosZ0JEK0UyRCxFQUFBO0VIK0N2RDtJQUNFLG1CR2hEcUQ7SUhpRHJELG9CR2pEcUQsRUFBQTtFSHVEdkQ7SUl0SUosc0JEK0UyRCxFQUFBO0VIK0N2RDtJQUNFLGFHaERxRDtJSGlEckQsY0dqRHFELEVBQUE7RUh1RHZEO0lJdElKLHNCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxtQkdoRHFEO0lIaURyRCxvQkdqRHFELEVBQUE7RUh1RHZEO0lJdElKLGdCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxtQkdoRHFEO0lIaURyRCxvQkdqRHFELEVBQUE7RUh1RHZEO0lJdElKLHNCRCtFMkQsRUFBQTtFSCtDdkQ7SUFDRSxjR2hEcUQ7SUhpRHJELGVHakRxRCxFQUFBO0VI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QTs7QUpDM0I7RUdvQkEsMkJBRnlCLEVBQUE7O0FIOUJ6QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLHdCQUZ5QjtFQ3RCdkIsdUNBQXVDO0VBR3pDLG1DQUEyQjtVQUEzQiwyQkFBMkIsRUFBQTs7QUpDM0I7RUdvQkEsMkJBRnlCLEVBQUE7O0FIOUJ6QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLHdCQUZ5QjtFQ3RCdkIsdUNBQXVDO0VBR3pDLG1DQUEyQjtVQUEzQiwyQkFBMkIsRUFBQTs7QUpDM0I7RUdvQkEsNEJBRnlCLEVBQUE7O0FIOUJ6QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLHdCQUZ5QjtFQ3RCdkIsdUNBQXVDO0VBR3pDLG1DQUEyQjtVQUEzQiwyQkFBMkIsRUFBQTs7QUpDM0I7RUdvQkEsNEJBRnlCLEVBQUE7O0FIOUJ6QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLFVGaENrQztFSUVsQyw0QkFBNEIsRUFBQTs7QUxVNUI7RUdvQkEsVUZoQ3FDLEVBQUE7O0FEQXJDO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsVUYvQmtDO0VJQ2xDLDRCQUE0QixFQUFBOztBTFU1QjtFR29CQSxVRi9CcUMsRUFBQTs7QUREckM7RUNsQkYsMEJDa0JjO0VEakJkLGtDQ2lDZTtFQ2dCYiw4Q0dyQ21DO0VIcUNuQyxxQkY1Qm1EO0VNSWpELHVDQUF1QztFQUN2QyxVQUEyQixFQUFBOztBUEc3QjtFR29CQSwyQ0dUNEM7RUNKMUMsVUFBMkIsRUFBQTs7QVBuQjdCO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsOENHcENxQztFSG9DckMsdUJGM0JxRDtFTUduRCx1Q0FBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsMkNHVDRDO0VDSjFDLFVBQTJCLEVBQUE7O0FQbkI3QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLDZDR25DaUM7RUhtQ2pDLHdCRjFCc0Q7RU1FcEQsdUNBQXVDO0VBQ3ZDLFVBQTJCLEVBQUE7O0FQRzdCO0VHb0JBLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsMEJDa0JjO0VEakJkLGtDQ2lDZTtFQ2dCYiw2Q0dsQytCO0VIa0MvQixzQkZ6Qm9EO0VNQ2xELHVDQUF1QztFQUN2QyxVQUEyQixFQUFBOztBUEc3QjtFR29CQSwyQ0dUNEM7RUNKMUMsVUFBMkIsRUFBQTs7QVBuQjdCO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsOENHckNtQztFSHFDbkMsd0JHRWU7RUMxQmIsdUNBQXVDO0VBQ3ZDLFVBQTJCLEVBQUE7O0FQRzdCO0VHb0JBLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsMEJDa0JjO0VEakJkLGtDQ2lDZTtFQ2dCYiw4Q0dwQ3FDO0VIb0NyQyx3QkdFZTtFQzFCYix1Q0FBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsMkNHVDRDO0VDSjFDLFVBQTJCLEVBQUE7O0FQbkI3QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLDJDR1A4QztFSE85QyxxQkZ0Qm1EO0VNRmpELHVDQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSw2Q0cvQjhCO0VDa0I1QixVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsMEJDa0JjO0VEakJkLGtDQ2lDZTtFQ2dCYiwyQ0dQOEM7RUhPOUMsdUJGckJxRDtFTUhuRCx1Q0FBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEsNkNHOUJnQztFQ2lCOUIsVUFBOEIsRUFBQTs7QVBuQmhDO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsMkNHUDhDO0VITzlDLHdCRnBCc0Q7RU1KcEQsdUNBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FQR2hDO0VHb0JBLDhDRzdCc0M7RUNnQnBDLFVBQThCLEVBQUE7O0FQbkJoQztFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLDJDR1A4QztFSE85QyxzQkZuQm9EO0VNTGxELHVDQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSw4Q0c1Qm9DO0VDZWxDLFVBQThCLEVBQUE7O0FQbkJoQztFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLDJDR1A4QztFSE85Qyx3QkdFZTtFQzFCYix1Q0FBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEsNkNHL0I4QjtFQ2tCNUIsVUFBOEIsRUFBQTs7QVBuQmhDO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsMkNHUDhDO0VITzlDLHdCR0VlO0VDMUJiLHVDQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSw2Q0c5QmdDO0VDaUI5QixVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsMEJDa0JjO0VEakJkLGtDQ2lDZTtFQ2dCYixxQkFGeUI7RUt6QnZCLHVDQUF1QztFQUN2QyxVQUEyQixFQUFBOztBUk03QjtFR29CQSxtQkFGeUI7RUtkdkIsVUFBMkIsRUFBQTs7QVJoQjdCO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIscUJBRnlCO0VLekJ2Qix1Q0FBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVJNN0I7RUdvQkEsbUJBRnlCO0VLZHZCLFVBQTJCLEVBQUE7O0FSaEI3QjtFQ2xCRiwwQkNrQmM7RURqQmQsa0NDaUNlO0VDZ0JiLG1CQUZ5QjtFS3pCdkIsdUNBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FSTWhDO0VHb0JBLHFCQUZ5QjtFS2R2QixVQUE4QixFQUFBOztBUmhCaEM7RUNsQkYsMEJDa0JjO0VEakJkLGtDQ2lDZTtFQ2dCYixtQkFGeUI7RUt6QnZCLHVDQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUk1oQztFR29CQSxxQkFGeUI7RUtkdkIsVUFBOEIsRUFBQTs7QVJoQmhDO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsNEJBRnlCO0VNMUJ2Qix1Q0FBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVRPN0I7RUdvQkEsb0JBRnlCO0VNZnZCLFVBQTJCLEVBQUE7O0FUZjdCO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsb0JBRnlCO0VNMUJ2Qix1Q0FBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVRPaEM7RUdvQkEsMkJBRnlCO0VNZnZCLFVBQThCLEVBQUE7O0FUZmhDO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsMkJBRnlCO0VNMUJ2Qix1Q0FBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVRPN0I7RUdvQkEsb0JBRnlCO0VNZnZCLFVBQTJCLEVBQUE7O0FUZjdCO0VDbEJGLDBCQ2tCYztFRGpCZCxrQ0NpQ2U7RUNnQmIsb0JBRnlCO0VNMUJ2Qix1Q0FBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVRPaEM7RUdvQkEsNEJBRnlCO0VNZnZCLFVBQThCLEVBQUE7O0FSbUI5QjtFQUFZLHFDQUFzQyxFQUFBOztBQUFsRDtFQUFZLHFDQUFzQyxFQUFBOztBQU1sRDtFQUFZLDZDQUE2QyxFQUFBOztBQUF6RDtFQUFZLDJDQUE2QyxFQUFBOztBQUF6RDtFQUFZLDhDQUE2QyxFQUFBOztBQUF6RDtFQUFZLCtDQUE2QyxFQUFBOztBQUF6RDtFQUFZLGtEQUE2QyxFQUFBOztBQUF6RDtFQUFZLDhFQUE2QyxFQUFBOztBQUF6RDtFQUFZLCtFQUE2QyxFQUFBOztBQUF6RDtFQUFZLDhFQUE2QyxFQUFBOztBQU16RDtFQUFrQixrQ0FBbUMsRUFBQTs7QUFBckQ7RUFBa0Isa0NBQW1DLEVBQUE7O0FBUXpEO0VTdEVBLCtCQUE4QjtVQUE5Qix1QkFBOEIsRUFBQTs7QVBLOUI7RUFHSTtJQUdJLHlCQUFVLEVBQUE7RUFIZDtJQUdJLDBCQUFVLEVBQUEsRUFBQTs7QUFObEI7RUFHSTtJQUdJLHlCQUFVLEVBQUE7RUFIZDtJQUdJLDBCQUFVLEVBQUEsRUFBQTs7QUY0RGxCO0VTdkVBLHFDQUE4QjtVQUE5Qiw2QkFBOEIsRUFBQTs7QVBLOUI7RUFHSTtJQUdJLHlCQUFVLEVBQUE7RUFIZDtJQUdJLG9CQUFVLEVBQUEsRUFBQTs7QUFObEI7RUFHSTtJQUdJLHlCQUFVLEVBQUE7RUFIZDtJQUdJLG9CQUFVLEVBQUEsRUFBQTs7QUY2RGxCO0VTeEVBLHNDQUE4QjtVQUE5Qiw4QkFBOEIsRUFBQTs7QVBLOUI7RUFHSTtJQUdJLG9CQUFVLEVBQUE7RUFIZDtJQUdJLHlCQUFVLEVBQUEsRUFBQTs7QUFObEI7RUFHSTtJQUdJLG9CQUFVLEVBQUE7RUFIZDtJQUdJLHlCQUFVLEVBQUEsRUFBQTs7QUY4RGxCO0VTekVBLG1DQUE4QjtVQUE5QiwyQkFBOEIsRUFBQTs7QVBLOUI7RUFHSTtJQUdJLHVCQUFVLEVBQUE7RUFIZDtJQUdJLHdCQUFVLEVBQUE7RUFIZDtJQUdJLG9CQUFVLEVBQUEsRUFBQTs7QUFObEI7RUFHSTtJQUdJLHVCQUFVLEVBQUE7RUFIZDtJQUdJLHdCQUFVLEVBQUE7RUFIZDtJQUdJLG9CQUFVLEVBQUEsRUFBQTs7QUZnRWxCOzs7O0VBSUUsaUNDL0RZO1VEK0RaLHlCQy9EWSxFQUFBOztBRG9FZDtFQUFZLDJDQUFtQztVQUFuQyxtQ0FBbUMsRUFBQTs7QUFsQzNDO0VBc0NZLDRDQUFxQztVQUFyQyxvQ0FBcUMsRUFBQTs7QUF0Q2pEO0VBc0NZLDRDQUFxQztVQUFyQyxvQ0FBcUMsRUFBQTs7QUFoQ2pEO0VBc0NZLG9EQUE0QztVQUE1Qyw0Q0FBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLGtEQUE0QztVQUE1QywwQ0FBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLHFEQUE0QztVQUE1Qyw2Q0FBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLHNEQUE0QztVQUE1Qyw4Q0FBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLHlEQUE0QztVQUE1QyxpREFBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLHFGQUE0QztVQUE1Qyw2RUFBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLHNGQUE0QztVQUE1Qyw4RUFBNEMsRUFBQTs7QUF0Q3hEO0VBc0NZLHFGQUE0QztVQUE1Qyw2RUFBNEMsRUFBQTs7QUFoQ3hEO0VBc0NrQix5Q0FBa0M7VUFBbEMsaUNBQWtDLEVBQUE7O0FBdENwRDtFQXNDa0IseUNBQWtDO1VBQWxDLGlDQUFrQyxFQUFBOztBdEN0RnhEO0VnRGxCQSxtQjNDdUZ1RCxFQUFBOztBMkNwRnpEO0VBQ0UsbUJBQW1CLEVBQUE7RWxDMktiO0lrQzVLUjtNQUdJLG1CQUFtQixFQUFBLEVBRXRCOztBQUVEO0VBRUksZUFBZSxFQUFBOztBQUZuQjtFQUtJLFlBQVk7RUFDWixZQUFZO0VBQUUsV0FBVyxFQUFBO0VBTjdCO0lBUU0sZ0JBQWdCO0lBQ2hCLFdBQVc7SUFBRSxZQUFZO0lBQ3pCLFlBQVk7SUFDWixZQUFZO0lBQ1osd0NBQXdDO0lBQ3hDLDRCQUE0QjtJQUM1Qiw4QkFBOEI7SUFDOUIsY0FBYyxFQUFBOztBQWZwQjtFQW1CSSxTQUFTO0VBQ1QsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixTQUFTO0VBQUUsT0FBTztFQUNsQiwyQkFBMkI7RUFDM0IseUI5Q2dDeUIsRUFBQTtFOEN4RDdCO0lBNEJRLGlCQUFpQjtJQUNqQixjOUM2Q08sRUFBQTtFOEMxRWY7SUFnQ1Esa0JBQWtCLEVBQUE7SUFoQzFCO01Ba0NVLFdBQVc7TUFDWCxjQUFjO01BQ2Qsa0JBQWtCO01BQ2xCLFdBQVk7TUFBRSxVQUFVO01BQ3hCLFdBQVc7TUFBRSxXQUFXO01BQ3hCLHlCOUMwQlE7TThDekJSLFVBQVU7TUFDVixpQ0FBaUMsRUFBQTtJQXpDM0M7TUE2Q1ksVUFBVSxFQUFBO0VBN0N0QjtJQW1ETSxnQjlDaUNrQixFQUFBOztBOEM1QnhCO0VBQ0UsbUIzQ29CdUQsRUFBQTs7QTJDakJ6RDtFQUVJLGFBQWE7RUFDYixtQkFBbUIsRUFBQTs7QWxEK3NHdkI7RWtEM3NHRSw0QkFBNEI7RUFDNUIsc0JBQXNCO0VBQ3RCLDJCQUEyQjtFQUMzQixXQUFXO0VBQUUsWUFBWTtFQUN6QixjQUFjO0VBQ2QsaUJBQWlCLEVBQUE7O0FBR25CO0VBRUksV0FBVztFQUFFLFlBQVksRUFBQTs7QWxEOHNHN0I7RWtEenNHRSw4Q0FBOEMsRUFBQTs7QWxENHNHaEQ7RWtEeHNHRSw2Q0FBNkMsRUFBQTs7QWxEMnNHL0M7RWtEdnNHRSw2Q0FBNkMsRUFBQTs7QWxEMHNHL0M7RWtEdHNHRSw2Q0FBNkMsRUFBQTs7QUFHL0M7RTVCdEZJLHVCQUZxQztFQUdyQyxzQkFIcUMsRUFBQTtFTjRKakM7SWtDcEVSO001QnRGSSx1QkFGcUM7TUFHckMsc0JBSHFDLEVBQUEsRTRCMEZ4Qzs7QTlCaUJDO0U4QmRBLE9BQU8sRUFBQTs7QWxDK0REO0VrQzVEUjtJQUVJLGVBQWU7SUFDZixnQkFBZ0IsRUFBQSxFQUVuQjs7QWxDdURPO0VrQ3JEUjtJQUVJLGdCQUFnQixFQUFBLEVBRW5COztBQUVEOztFQUtRLGdCQUFnQixFQUFBOztBQUx4Qjs7RUFVSSwwQkFBMEIsRUFBQTs7QUFJOUI7Ozs7Ozs7Ozs7Ozs7RUFhRSxvQkFBb0I7RUFDcEIsY0FBYztFQUNkLG9CM0N0RXVELEVBQUE7O0EyQ3lFekQ7RUFDRSxjOUN0RmdCLEVBQUE7O0E4Q3lGbEI7O0VBRUUsZ0I5Q3hFc0IsRUFBQTs7QThDMkV4QjtFQUNFLFNBQVM7RUFDVCxxQkFBcUIsRUFBQTs7QUFHdkI7RUFDRSxhQUFhO0VBQ2IscUJBQXFCO0VBQ3JCLDZCQUE2QixFQUFBO0VBSC9CO0lBS0ksZ0JBQWdCLEVBQUE7RUFMcEI7SUFRSSxlQUFlO0lBQ2YsWUFBWTtJQUNaLGNBQWMsRUFBQTtJQVZsQjtNQVlNLGFBQWE7TUFDYix1QkFBdUI7TUFDdkIsbUJBQW1CO01BQ25CLFdBQVc7TUFBRSxZQUFZO01BQ3pCLGtCQUFrQixFQUFBO0lBaEJ4QjtNQW9CUSwwQ0FBMEM7TUFDMUMsYzlDaEhXO004Q2lIWCx5QjlDekhVLEVBQUE7SThDbUdsQjtNQTBCVSx5QjlDbkhLLEVBQUE7RThDeUZmO0lBZ0NJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsNkJBQTZCO0lBQzdCLGM5Q3RJYztJOEN1SWQsK0JBQStCLEVBQUE7SUFwQ25DO01Bc0NNLGM5Qy9IUyxFQUFBOztBOENvSWY7RTdDRkUsNkJBQWdDO0VBQ2hDLHFCQUF3QjtFQUN4QixzQkFBeUI7RUFDekIscUJBQXdCO0VBQ3hCLDJCQUE4QjtFQUM5QixpQ0FBaUM7RUFDakMsOEJBQWlDO0VBQ2pDLG9CQUF1QixFQUFBOztBNkNEekI7RUFDRSxTQUFTO0VBQ1QsVUFBVTtFQUNWLHFCQUFxQjtFQUNyQixXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7O0FBR3BCO0VBRUksa0JBQXNDO0VBQ3RDLFVBQVU7RUFDVixxQkFBcUIsRUFBQTtFQUp6QjtJQU1NLGtCQUFrQjtJQUNsQixrQkFBa0IsRUFBQTtJQVB4QjtNQVNRLFlBQVk7TUFDWixrQkFBa0I7TUFDbEIsTUFBTTtNQUFFLE9BQU8sRUFBQTs7QUFNdkI7RUFDRSxrQkFBa0IsRUFBQTtFQURwQjtJQUdJLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsTUFBTTtJQUFFLE9BQU87SUFDZixjQUFjO0lBQ2QsV0FBVztJQUFFLFlBQVk7SUFDekIseUI5QzVMeUIsRUFBQTtFOENvTDdCO0lBV0ksa0JBQWtCO0lBQ2xCLFVBQVUsRUFBQTs7QUFJZDs7OztFQUlFLHlCOUNyTGE7RThDc0xiLGFBQWE7RUFDYixXQUFXLEVBQUE7RWxDN0ZMO0lrQ3VGUjs7OztNQVFJLGFBQWE7TUFDYixzQkFBc0IsRUFBQSxFQVd6QjtFbEMzR087SWtDdUZSOzs7O01BWUksNEJBQTRCLEVBQUEsRUFRL0I7RUFwQkQ7Ozs7SUFlSSxtQkFBbUIsRUFBQTtFQWZ2Qjs7OztJQWtCSSxnQkFBZ0IsRUFBQTs7QUFJcEI7O0VBRUUsbUJBQW1CLEVBQUE7O0FBR3JCOzs7OztFQUtFLG9CQUFvQixFQUFBOztBQUV0Qjs7Ozs7RUFLRSxhQUFhO0VBQ2IsbUJBQW1CLEVBQUE7O0FBR3JCOzs7RUFJSSxhQUFhLEVBQUE7O0FBSmpCOzs7RUFRSSxnQkFBZ0I7RUFDaEIsbUNBQW1DLEVBQUE7O0FBVHZDOzs7RUFhSSxXQUFXO0VBQ1gsaUNBQWlDLEVBQUE7O0FBZHJDOzs7RUFpQkkseUI5QzdPVztFOEM4T1gsMENBQTBDO0VBQzFDLGNBQWMsRUFBQTtFQW5CbEI7Ozs7O0lBcUJNLHlCOUMzUFksRUFBQTtJOENzT2xCOzs7OztNQXVCUSxVQUFVLEVBQUE7SUF2QmxCOzs7OztNQTBCUSxjOUN0UE8sRUFBQTs7QThDNFBmO0VBQ0UsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBRUksbUJBQW1CLEVBQUE7O0FBSXZCO0VBQ0UsV0FBVztFQUFFLFlBQVk7RUFDekIsd0NBQXdDO0VBQ3hDLGtDQUFrQztFQUNsQyw0QkFBNEI7RUFDNUIsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixVQUFVO0VBQ1YseUI5Q2pTMkI7RThDa1MzQixlQUFlO0VBQ2YsaUNBQWlDO0VBQ2pDLFdBQVcsRUFBQTtFQVhiO0lBYUksVUFBVSxFQUFBOztBQUdkO0VBQ0UsU0FBUztFQUNULHFDQUFxQyxFQUFBOztBQUV2QztFQUNFLFVBQVU7RUFDViwyQkFBMkIsRUFBQTs7QUFHN0I7RUFFSSxlQUFlLEVBQUE7O0FBSW5CO0VBQ0UsVUFBVTtFQUNWLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsU0FBUyxFQUFBO0VBSlg7SUFNSSxpQkFBaUIsRUFBQTs7QUMvWHJCO0V2QmdERSxrQkFBa0I7RUFDbEIsa0J4QjBSeUI7RXdCelJ6QixheEI0UmE7RXdCMVJiLHFDeEIrQmE7RXdCOUJiLGdCeEJ5Q2U7RXdCeEJmLHlCQUZzRTtFQUd0RSxjeEJZYSxFQUFBO0V3QjNCYjtJQUNFLGFBQWEsRUFBQTtFQUdmO0lBQ0UsZ0JBQWdCLEVBQUE7O0FINlFsQjtFMkIzVUEseUJBQXlCO0VBQ3pCLG9CQUFvQjtFQUNwQixnQkFBZ0IsRUFBQTtFM0IwTWhCO0kyQnhNRSxjaER1RWMsRUFBQTs7QWdEbEVsQjs7RUFFRSxrQjdDNEV1RDtFNkMzRXZELG1CQUFtQjtFQUNuQix5QkFBeUIsRUFBQTs7QUFHM0I7O0VBRUUsbUI3Q3FFdUQ7RTZDcEV2RCxnQmhEK0hzQixFQUFBO0VZNkJoQjtJb0MvSlI7O01BS0ksZWhEK1JXLEVBQUEsRWdEN1JkOztBQUVEO0VBQ0UseUJBQXlCO0VBQ3pCLCtCQUErQixFQUFBO0VBRmpDO0lBSUksa0JBQWtCO0lBQ2xCLHFCQUFxQixFQUFBO0lBTHpCO01BT00sV0FBVztNQUNYLGNBQWM7TUFDZCxrQkFBa0I7TUFDbEIsTUFBTTtNQUNOLHdCQUF3QjtNQUFFLFlBQVk7TUFDdEMsd0NBQXdDO01BQ3hDLDRCQUE0QjtNQUM1QixpQ0FBaUMsRUFBQTtFQWR2QztJQWtCSSxjaER3QndCO0lnRHZCeEIsMEJBQTBCLEVBQUE7O0FBSTlCO0VBRUksZ0NBQWdDLEVBQUE7RUFGcEM7SUFJTSxRQUFRLEVBQUE7O0FBS2Q7RUFFSSwrQkFBK0IsRUFBQTtFQUZuQztJQUlNLE9BQU87SUFDUCxxQkFBcUIsRUFBQTs7QUFLM0I7RUFDRSx5QmhEaUJhO0VnRGhCYix5QmhERjBCO0VnREcxQixjaERLZ0I7RWdESmhCLDRCaERrT2tDO0VnRGpPbEMsNkJBQTZCO0VBQzdCLGtCQUFrQjtFQUNsQixrQkFBa0IsRUFBQTtFQVBwQjtJQVNJLFdBQVc7SUFDWCxjQUFjO0lBQ2QsV0FBVztJQUFFLFlBQVk7SUFDekIsa0JBQWtCO0lBQ2xCLE1BQU07SUFBRSxVQUFVO0lBQ2xCLDRDQUE0QztJQUM1QywyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDRCQUE0QjtJQUM1Qix5R0FBaUc7WUFBakcsaUdBQWlHLEVBQUE7RUFsQnJHO0lBcUJJLHlCaERiYztJZ0RjZCxjaERKVyxFQUFBO0lnRGxCZjtNQXdCTSx3R0FBZ0c7Y0FBaEcsZ0dBQWdHLEVBQUE7O0FBS3RHO0UvQ1FFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLFcrQ1ZtRDtFL0NXbkQsWStDWHlEO0UvQ1l6RCxlQUFlLEVBQUE7RUFHZjtJQUNFLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUVQLGNBQWM7SUFDZCxXQUFXO0lBQ1gsVytDdEI0RDtJL0N3QjVELG1CRDlDYztJQytDZCw4Q0QvQ2M7SUNpRGQsV0FBVyxFQUFBO0VBV1g7SUFDRSxtQkRyRGE7SUNzRGIsOENEdERhLEVBQUE7O0FnRGlCbkI7RUMxQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixtQkFBbUIsRUFBQTtFQUNuQjtJQUNFLGNBQWM7SUFDZCxTQUFTO0lBQ1QsVUFBVTtJQUNWLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFdEaUN5QztJQ2hDekMsWURnQ3lDLEVBQUE7SUM5QnpDO01BRUUsV0FBVztNQUNYLGtCQUFrQjtNQUNsQixRQUEwQjtNQUMxQixPQUFPO01BQ1AsUUFBUTtNQUNSLFdEdUI0QztNQ3RCNUMseUJqREtTO01pREpULGtCRHFCNEM7TUNwQjVDLDBDQUEwQyxFQUFBO0lBRzVDO01BQ0Usd0JBQXdCLEVBQUE7SUFHMUI7TUFDRSx5QkFBeUIsRUFBQTtFQU16QjtJQUNFLHlCakRyQlUsRUFBQTs7QWdENkJsQjs7RUFHSSxXQUFXO0VBQUUsWUFBWTtFQUN6QixlQUFlLEVBQUE7O0FsQm1JakI7RW9CL09BLFdBQVcsRUFBQTs7QUFHYjs7Ozs7RUFLTSxnQmxEc0ZrQjtFa0RyRmxCLG1CL0M4RW1EO0UrQzdFbkQsY2xEMEVTO0VrRHpFVCx5QkFBeUI7RUFDekIsa0JBQWtCLEVBQUE7RUFUeEI7Ozs7O0lBV1EsV0FBVztJQUNYLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsV0FBWTtJQUFFLE9BQU87SUFDckIsV0FBVztJQUFFLFdBQVc7SUFDeEIseUJsRHdEVTtJa0R2RFYsVUFBVTtJQUNWLGlDQUFpQyxFQUFBO0VBbEJ6Qzs7Ozs7Ozs7O0lBc0JVLFVBQVUsRUFBQTs7QUF0QnBCOzs7RUEyQk0sbUJBQW1CO0VBQ25CLGlCQUFpQixFQUFBO0VBNUJ2Qjs7O0lBOEJRLFlBQVksRUFBQTs7QUE5QnBCOzs7Ozs7RUFvQ0ksY2xEb0NjLEVBQUE7O0FrRGhDbEI7RUFHTSxnQmxEK0NvQixFQUFBOztBa0QxQzFCO0VBRUksbUIvQ2tDcUQ7RStDakNyRCxrQkFBa0IsRUFBQTs7QXRDeUhkO0VzQ25IUjtJQUlRLHlCQUF5QixFQUFBLEVBYTVCOztBdEN1R0c7RXNDeEhSO0lBT1EseUJBQXlCLEVBQUEsRUFVNUI7O0F0Q2tHRztFc0NuSFI7SUFXVSx3QkFBd0IsRUFBQSxFQUszQjs7QXRDd0dDO0VzQ3hIUjtJQWNVLHdCQUF3QixFQUFBLEVBRTNCOztBQWhCUDtFQXFCTSxlQUFlLEVBQUE7RUFyQnJCO0lBd0JVLGtCQUFrQixFQUFBO0lBeEI1QjtNQTBCWSxVQUFVLEVBQUE7O0FBMUJ0QjtFQWlDSSxtQkFBbUIsRUFBQTtFQWpDdkI7SUFtQ00sV0FBVztJQUNYLFVBQVU7SUFBRSxZQUFZO0lBQ3hCLHdDQUF3QztJQUN4Qyw0QkFBNEI7SUFDNUIsaUNBQWlDO0lBQ2pDLGNBQWM7SUFDZCxTQUFTO0lBQ1QsTUFBTTtJQUFFLFFBQVEsRUFBQTs7QUExQ3RCO0VBK0NNLGtCQUFrQjtFQUNsQixVQUFVLEVBQUE7O0F0Q21FUjtFc0M5RFI7SUFHTSxjQUFjLEVBQUEsRUFFakI7O0F0Q3lESztFc0M5RFI7SUFRTSxvQkFBZTtTQUFmLGVBQWU7SUFDZixlQUFlLEVBQUEsRUFtQ2xCOztBdENrQks7RXNDOURSO0lBYVEsd0JBQXdCO0lBQ3hCLCtCQUEwQjtTQUExQiwwQkFBMEI7SUFDMUIsZUFBZSxFQUFBLEVBRWxCOztBQWpCTDtFQW1CTSxlL0M3Q21ELEVBQUE7O0FTd0ZqRDtFc0M5RFI7SUF1QlEsd0JBQXdCO0lBQ3hCLCtCQUEwQjtTQUExQiwwQkFBMEIsRUFBQSxFQW1CN0I7O0FBM0NMO0VBMkJRLG1CL0NyRGlEO0UrQ3NEakQsa0JBQWtCLEVBQUE7RUE1QjFCO0lBOEJVLFVBQVUsRUFBQTtFQTlCcEI7SUFpQ1UsV0FBVztJQUNYLDZCbEQ5REs7SWtEK0RMLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsU0FBUztJQUFFLE9BQU8sRUFBQTtFQXJDNUI7SUF3Q1UscUJsRDlFUSxFQUFBOztBSnF4SGxCO0VzRDlySEksa0JBQWtCLEVBQUE7RXREZ3NIcEI7SXNEOXJISSxxQkFBcUI7SUFDckIsaUJBQWlCLEVBQUE7RXREZ3NIckI7SXNEN3JISSxnQmxEM0VvQixFQUFBOztBSjJ3SDFCO0VzRDNySEksU0FBUyxFQUFBOztBdEQ4ckhiO0VzRDNySEksa0JBQWtCO0VBQ2xCLFdBQVc7RUFBRSxZQUFZO0VBQ3pCLG1CQUFtQixFQUFBO0V0RDhySHJCO0lzRDVySEksV0FBVztJQUNYLGtCQUFrQjtJQUNsQixNQUFNO0lBQUUsT0FBTztJQUNmLFdBQVc7SUFBRSxZQUFZO0lBQ3pCLHdDQUF3QztJQUN4Qyw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBQzdCLGNBQWMsRUFBQTtFdERnc0hsQjtJc0Q3ckhJLGFBQWEsRUFBQTs7QXREZ3NIbkI7RXNEeHJISSxRQUFRLEVBQUE7O0F0RDJySFo7O0VzRHZySEkseUJsRHZJd0I7RWtEd0l4QixjbER0SFcsRUFBQTtFSmd6SGI7OztJc0R4ckhJLDZCbERnRytCO0lrRC9GL0IsY2xEbklZLEVBQUE7O0FrRHdJbEI7RUFDQSx3QkFBdUIsRUFBQTs7QUNyTnZCO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQixFQUFBOztBQUd0QjtFQUVJLHFCQUFxQjtFQUNyQixjQUFjLEVBQUE7O0FBSWxCO0VBRUksd0JBQXdCLEVBQUE7O0F2RDQ0SDVCO0V1RHY0SEUsbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsbUJBQW1CLEVBQUE7RUFEckI7SUFHSSxjQUFjO0lBQ2QsY0FBYztJQUNkLGdCQUFnQixFQUFBOztBQUtwQjtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUIsRUFBQTtFQUZyQjtJQUlJLHVCQUF1QixFQUFBOztBQUkzQjtFQUNFLGtCQUFrQixFQUFBOztBQ3ZDcEI7O0VBRUUsZ0NwRDhFa0I7RW9EN0VsQixpQkFBaUIsRUFBQTtFQUhuQjs7SUFNSSxvQkFBb0I7SUFDcEIseUJwRDBEeUI7SW9EekR6QixhQUFhLEVBQUE7SUFSakI7O01BVU0seUJwRHdEc0I7TW9EdkR0QixjcER5RVM7TW9EeEVULGdCcERpRmtCLEVBQUE7SW9EN0Z4Qjs7O01BZU0seUJwRDJEWTtNb0QxRFosY3BEb0VTLEVBQUE7O0FvRDlEZjtFQUVJLG1CQUFtQjtFQUNuQiw2QkFBNkIsRUFBQTtFQUhqQztJQUtNLGNwRHlEUztJb0R4RFQseUJwRDhDWSxFQUFBOztBb0RwRGxCO0VBV0ksbUJBQW1CLEVBQUE7O0FBWHZCO0VBZUkseUJwRCtDVyxFQUFBOztBMEIrRmI7RTBCeklBLFlBQVksRUFBQTs7QUFHZDs7RUFHSSxjcERvQ1csRUFBQTs7QTBCMkZiO0UwQjFIQSxXQUFXLEVBQUE7RXhDeUhMO0ljQ047TTBCeEhFLFdBQVcsRUFBQSxFQUVkOztBQUdEO0VBRUksY0FBYztFQUNkLFlBQVk7RUFDWiw2QkFBNkI7RUFDN0IseUJBQXlCLEVBQUE7RUFMN0I7SUFPTSx5QnBERnVCLEVBQUE7RW9ETDdCO0lBV1EseUJwREdVLEVBQUE7RW9EZGxCO0lBZ0JRLHlCcERWb0IsRUFBQTs7QVk0R3BCO0V3Q2xIUjtJQXNCTSxlQUFlO0lBQUUsZ0JBQWdCLEVBQUEsRUFFcEM7O0FDdEZIOzs7Ozs7Ozs7OztFQVdFLGdCckRtRndCO0VxRGxGeEIsc0JBQXNCO0VBQ3RCLGNBQWMsRUFBQTs7QUFHaEI7RUFDRSxxQkFBcUIsRUFBQTs7QUFHdkI7Ozs7O0VBS0UsbUJsRCtEdUQsRUFBQTtFU3dGakQ7SXlDNUpSOzs7OztNQU9JLG1CbEQ2RHFELEVBQUEsRWtEM0R4RDs7QUFFRDs7RUFFRSxvQmxEdUR1RCxFQUFBO0VTd0ZqRDtJeUNqSlI7O01BSUksbUJsRHFEcUQsRUFBQSxFa0RuRHhEOztBekMySU87RXlDeklSO0lBR00sZ0JBQWdCLEVBQUEsRUFFbkI7O0F6RDQrSEg7O0UwRHZoSUUsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBRUksWUFBWSxFQUFBOztBQUloQjtFQUVJLHFCQUFxQixFQUFBOztBQUZ6QjtFQUtJLGFBQWE7RUFDYixlQUFlLEVBQUE7O0FBTm5CO0VBU0ksbUJBQW1CLEVBQUE7RUFUdkI7SUFXTSxpQkFBaUIsRUFBQTs7QUFYdkI7Ozs7OztFQXFCTSxrQkFBa0IsRUFBQTs7QUFyQnhCO0V0QzBHRSxjRzZCMkQ7RUh6QnpELGVHeUJ5RDtFRDNIekQsdUJBRnFDO0VBR3JDLHNCQUhxQztFb0NnQnJDLG1CQUFtQixFQUFBO0UxQzRJZjtJMEN0S1I7TXBDWUksd0JBRnFDO01BR3JDLHVCQUhxQyxFQUFBLEVvQ2lCdEM7O0FBR0g7Ozs7RUFJSSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFVBQVU7RUFDVixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLFNBQVMsRUFBQTtFQVRiOzs7O0lBV00sYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixTQUFTLEVBQUE7SUFiZjs7Ozs7OztNQWVRLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsY0FBYyxFQUFBO0lBakJ0Qjs7OztNQW9CUSxjQUFjO01BQ2Qsb0JBQW9CO01BQ3BCLFlBQVk7TUFDWixtQnRESXFCLEVBQUE7SXNEM0I3Qjs7OztNQTBCUSxXQUFXO01BQUUsWUFBWTtNQUN6QixrQkFBa0I7TUFDbEIsU0FBUztNQUFFLFFBQVEsRUFBQTtFQTVCM0I7Ozs7SUFnQ00seUNBQXlDO0lBQ3pDLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLHdHQUFnRztZQUFoRyxnR0FBZ0csRUFBQTtFQXBDdEc7Ozs7SUF1Q00sMEJBQWlDLEVBQUE7O0FBS3ZDO0VBQ0Usa0JBQWtCLEVBQUE7O0ExQzJGWjtFMEN4RlI7SUFFSSxhQUFhLEVBQUEsRUFXaEI7O0ExQzJFTztFMEN4RlI7SUFNTSxnQkFBZ0I7SUFDaEIsa0JBQWtCLEVBQUEsRUFLckI7O0FBWkg7RUFVTSxTQUFTLEVBQUE7O0FBS2Y7RUFDRSxtQkFBbUIsRUFBQTs7QUFJckI7RUFDRSxjQUFjO0VBQ2QsbUJBQW1CLEVBQUE7RUFGckI7SUFJSSxXQUFXLEVBQUE7O0FBSWY7RUFFSSx5QnREbkR5QjtFc0RvRHpCLDBDQUEwQztFQUMxQyw0QkFBNEI7RUFDNUIsNkNBQTZDO0VBQzdDLGdCdEQ4VW1CO0VzRDdVbkIsZXREbVY2QjtFc0RsVjdCLGVuRHBDcUQ7RW1EcUNyRCxTQUFTO0VBQ1QsZUFBZTtFQUNmLHlCdEQ1RHlCO0VzRDZEekIsNkJBQTZCLEVBQUE7RUFaakM7SUFjTSx5QnREdERZO0lzRHVEWixjdEQ3Q1MsRUFBQTs7QXNEa0RmO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7SUFHSSxrQm5EbkRxRDtJbURvRHJELHFCQUFxQjtJQUNyQixlQUFlO0lBQ2YsZ0JBQWdCLEVBQUE7O0FBS3BCO0VBRUksZUFBZSxFQUFBOztBQUZuQjtFQUtJLGdCQUFnQixFQUFBOztBQUlwQjtFQUVJLG1CbkR0RXFEO0VtRHVFckQscUJBQXFCLEVBQUE7O0FDL0p6QjtFQUNFLFdBQVcsRUFBQTs7QUFHYjtFQUNFLHlCdkQrRWlCO0V1RDlFakIsYUFBYTtFQUNiLDZCdkRxRWdCLEVBQUE7RXVEeEVsQjtJQUtJLGN2RDZFVyxFQUFBO0V1RGxGZjtJQVFJLDBCQUEwQjtJQUMxQiwrQkFBK0IsRUFBQTtJQVRuQztNQVdNLGN2RDZEWSxFQUFBOztBdUR4RGxCO0VBQ0UsbUJ2RHNFa0IsRUFBQTs7QXVEbkVwQjtFQUNFLG1CdkRrRWtCLEVBQUE7O0F1RC9EcEI7RUFDRSx1QkFBdUIsRUFBQTtFM0NtSmpCO0kyQ3BKUjtNQUdJLHlCQUF5QixFQUFBLEVBSzVCO0VBUkQ7SUFNSSx1QkFBMkMsRUFBQTs7QUFJL0M7RUFDRSxtQnZEb0RrQixFQUFBO0V1RHJEcEI7SUFHSSxtQnBEK0NxRCxFQUFBO0VvRGxEekQ7SUFNSSxTQUFTLEVBQUE7RUFOYjtJQVNJLG1CcER5Q3FELEVBQUE7O0FxRHhGekQ7RUFDRSxpQkFBaUI7RUFDakIsb0JBQW9CO0VBS3BCLG1CQUFtQixFQUFBO0U1Q3lLYjtJNENoTFI7TUFJSSxpQkFBaUI7TUFDakIsb0JBQW9CLEVBQUEsRUFjdkI7RUFuQkQ7SUFVSSxrQkFBa0IsRUFBQTtJNUMyS2Q7TTRDckxSO1F0QmNJLHdCQUF3QixFQUFBLEVzQkl6QjtJNUNtS0s7TTRDckxSO1FBYU0sa0JBQWtCLEVBQUEsRUFLckI7STVDbUtLO000Q3JMUjtRQWdCTSxrQkFBa0IsRUFBQSxFQUVyQjs7QUFJSDtFQUNFLGtCQUFrQixFQUFBO0U1Q3lKWjtJNEMxSlI7TXhDOEZFLGNBckRpQjtNRXpDZix1QkFGcUM7TUFHckMsc0JBSHFDLEVBQUEsRXNDZ0J4QztFNUM0SU87STRDMUpSO010Q0FJLHdCQUZxQztNQUdyQyx1QkFIcUMsRUFBQSxFc0NnQnhDO0VBZEQ7SUFNSSxjQUFjLEVBQUE7RUFObEI7SUFTSSxZQUFZLEVBQUE7STVDaUpSO000QzFKUjtRQVdNLFlBQVksRUFBQSxFQUVmOztBNUNrSks7RTRDL0lSO0l0QllJLHdCQUF3QixFQUFBLEVzQlYzQjs7QTVENHRJRDtFNER6dElFLGlCQUFpQixFQUFBOztBQzNDbkI7RUFDRSx5QnpEbUZpQixFQUFBOztBeURqRm5CO0VBRUksY3pEaUZXLEVBQUE7O0F5RG5GZjtFQUtJLGN6RG9FYyxFQUFBOztBa0RzQ2xCO0VPdkdJLHNCQUFzQixFQUFBOztBQUkxQjtFQUVJLGFBQWE7RUFDYixlQUFlO0VBQ2YsdUJBQXVCO0VBQ3ZCLHFCQUFxQjtFQUNyQixTQUFTO0VBQ1QsVUFBVSxFQUFBO0U3QzBKTjtJNkNqS1I7TUFTTSwyQkFBMkIsRUFBQSxFQXdCOUI7RUFqQ0g7SUFZTSxhQUFhO0lBQ2IsbUJBQW1CLEVBQUE7SUFiekI7TUFnQlUsWUFBWTtNQUNaLGdCQUFnQixFQUFBO0VBakIxQjtJQXNCTSxrQnREbURtRDtJc0RsRG5ELHlCQUF5QixFQUFBO0lBdkIvQjtNQXlCUSwwQkFBMEIsRUFBQTtFQXpCbEM7SUE4QlEsZUFBZSxFQUFBOztBQU12QjtFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0IsRUFBQTtFN0MySGQ7STZDN0hSO01BSUksa0JBQWtCLEVBQUEsRUFlckI7RUFuQkQ7SUFPSSxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxjQUFjLEVBQUE7STdDbUhWO002QzdIUjtRQVlNLFNBQVM7UUFDVCxtQ0FBbUMsRUFBQSxFQUt0QztJN0MyR0s7TTZDN0hSO1FBZ0JNLG1DQUFtQyxFQUFBLEVBRXRDOztBQUdIO0VBQ0UsaUJBQWlCLEVBQUE7RTdDdUdYO0k2Q3hHUjtNQUdJLGFBQWE7TUFDYixlQUFlLEVBQUEsRUFFbEI7O0FBQ0Q7RUFDRSxpQkFBaUIsRUFBQTtFN0NnR1g7STZDakdSO01BR0ksaUJBQWlCLEVBQUEsRUFFcEI7O0E3QzRGTztFNkMxRlI7O0lBR0ksK0J6RE5pQixFQUFBLEV5RFFwQjs7QUFFRDs7RUFFRSxrQkFBa0I7RUFDbEIsb0JBQW9CLEVBQUE7RUFIdEI7O0lBS0ksV0FBVztJQUNYLDZCekRoQmlCO0l5RGlCakIsa0JBQWtCO0lBQ2xCLFNBQVM7SUFBRSxTQUFTO0lBQ3BCLDJCQUEyQjtJQUMzQixZQUFZLEVBQUE7O0E3Q3lFUjtFNkNyRVI7SUFFSSxvQkFBb0IsRUFBQSxFQUV2Qjs7QUFFRDtFQUNFLGdCQUFnQixFQUFBOztBQUdsQjs7RUFFRSxnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSx5QnpEL0NnQixFQUFBO0V5RDhDbEI7SUFHSSx1QkFBdUIsRUFBQTs7QUFJM0I7RUFDRSxtQkFBbUIsRUFBQTs7QTdDOENiO0U2QzNDUjs7SUFHSSxrQkFBa0I7SUFDbEIsbUJBQW1CLEVBQUEsRUFNdEI7O0E3Q2lDTztFNkMzQ1I7O0lBT0ksa0JBQWtCO0lBQ2xCLG1CQUFtQixFQUFBLEVBRXRCOztBN0NpQ087RTZDL0JSO0lBRUksYUFBYTtJQUNiLGVBQWU7SUFDZiwyQkFBMkIsRUFBQSxFQUU5Qjs7QUFFRDtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsb0JBQW9CLEVBQUE7RTdDb0JkO0k2Q3ZCUjtNQUtJLGFBQWE7TUFDYixtQkFBbUIsRUFBQSxFQTZCdEI7RTdDUE87STZDNUJSO01BU0ksaUJBQWlCO01BQ2pCLG9CQUFvQixFQUFBLEVBeUJ2QjtFQW5DRDtJQWFJLGtCQUFrQjtJQUNsQixVQUFVLEVBQUE7RUFkZDtJQWlCSSxXQUFXO0lBQ1gsY0FBYztJQUNkLFlBQVk7SUFBRSxZQUFZO0lBQzFCLE1BQU07SUFBRSxXQUFXO0lBQ25CLGtCQUFrQjtJUjNJcEIsNEJBQTRCO0lBQzVCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIseURBQXlEO0lBQ3pELHlCakQ2QjBCO0lpRDVCMUIsaUNBQWlDLEVBQUE7SXJDd0kzQjtNNkN2QlI7UVIvR0ksMkRBQTJELEVBQUEsRVFpSjVEO0k3Q1hLO002Q3ZCUjtRUjVHSSwyREFBMkQsRUFBQSxFUThJNUQ7STdDWEs7TTZDdkJSO1FSekdJLDJEQUEyRCxFQUFBLEVRMkk1RDtJN0NOSztNNkM1QlI7UVJ0R0ksNERBQTRELEVBQUEsRVF3STdEO0k3Q05LO002QzVCUjtRUm5HSSw2REFBNkQsRUFBQSxFUXFJOUQ7STdDWEs7TTZDdkJSO1FBd0JNLFVBQVU7UUFBRSxRQUFRO1FBQ3BCLHdCQUFrRSxFQUFBLEVBU3JFO0k3Q1hLO002Q3ZCUjtRQTRCTSw4REFBcUksRUFBQSxFQU14STtJN0NOSztNNkM1QlI7UUFnQ00sdUVBQThJLEVBQUEsRUFFako7O0E3Q1hLO0U2Q2NSO0lBR00sbUJBQW1CLEVBQUEsRUFFdEI7O0FBeEZIO0VBNkZFLGdCQUFnQixFQUFBO0U3Q3hCVjtJNkNyRVI7TUErRkksaUJBQWlCLEVBQUEsRUFPcEI7RTdDakNPO0k2Q3VCUjtNQU9NLHlCQUF5QixFQUFBLEVBRTVCOztBQ2hOSDtFQUNFLHlCMURrRTJCO0UwRGpFM0IsaUJBQWlCO0VBQ2pCLG9CQUFvQixFQUFBO0U5QzZLZDtJOENoTFI7TUFLSSxvQkFBb0IsRUFBQSxFQThFdkI7RTlDNkZPO0k4Q2hMUjtNQVFJLGtCQUFrQixFQUFBLEVBMkVyQjtFQW5GRDtJQVdJLGtCQUFrQixFQUFBO0lBWHRCO01BYU0sa0JBQWtCO01BQ2xCLFVBQVUsRUFBQTtFQWRoQjtJQWtCSSxrQkFBa0I7SUFDbEIsTUFBTTtJQUFFLE9BQU87SUFDZixXQUFXO0lBQUUsWUFBWTtJQUN6Qiw0QkFBNEI7SUFDNUIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixVQUFVO0lBQ1YsWUFBWSxFQUFBO0VBekJoQjtJQTRCSSxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsWUFBWSxFQUFBO0lBaENoQjtNQW1DTSxXQUFXO01BQ1gsWUFBWTtNQUNaLGVBQWU7TUFDZixnQkFBZ0IsRUFBQTtJQXRDdEI7TUEwQ00sc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2QixvQkFBb0I7TUFDcEIsaUJBQWlCO01BQ2pCLFdBQVcsRUFBQTtFQTlDakI7SUFrREksbUJ2RHNDcUQ7SXVEckNyRCxnQjFEMkNzQjtJMEQxQ3RCLGMxRGlDVztJMERoQ1gseUJBQXlCO0lBQ3pCLG1CQUFtQjtJQUNuQixzQkFBc0IsRUFBQTtJOUN5SGxCO004Q2hMUjtRQXlETSxtQkFBbUIsRUFBQSxFQUV0QjtFQTNESDtJQTZESSxnQkFBZ0IsRUFBQTtJOUNtSFo7TThDaExSO1FBK0RNLG1CdkR5Qm1ELEVBQUEsRXVEdkJ0RDtFQWpFSDtJQW1FSSxnQkFBZ0I7SUFDaEIsNENBQW9DO1lBQXBDLG9DQUFvQyxFQUFBO0lBcEV4QztNQXNFTSxxQkFBcUI7TUFDckIsZUFBZTtNQUNmLGtCQUFrQixFQUFBO01BeEV4QjtRQTBFUSxnQ0FBZ0MsRUFBQTtNQTFFeEM7UUE4RVUsZTFETVMsRUFBQTs7QTBERW5CO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsMkJBQTJCLEVBQUE7RUFFN0I7SUFDRSxVQUFVO0lBQ1Ysd0JBQXdCLEVBQUEsRUFBQTs7QUFQNUI7RUFDRTtJQUNFLFVBQVU7SUFDViwyQkFBMkIsRUFBQTtFQUU3QjtJQUNFLFVBQVU7SUFDVix3QkFBd0IsRUFBQSxFQUFBOztBQzdGNUI7Ozs7O0VBTUksbUJBQW1CLEVBQUE7RS9DMEtmO0krQ2hMUjs7Ozs7TUFRTSxtQkFBbUIsRUFBQSxFQWdQdEI7RUF4UEg7Ozs7O0lBV00seUIzRHdEdUIsRUFBQTtFWTZHckI7SStDaExSOzs7OztNQWVRLG9CQUFvQixFQUFBLEVBRXZCO0UvQytKRztJK0NoTFI7Ozs7O01Bb0JRLG9CQUFvQixFQUFBLEVBUXZCO0UvQ29KRztJK0NoTFI7Ozs7O01BdUJRLHFCQUFxQixFQUFBLEVBS3hCO0VBNUJMOzs7OztJQTBCUSxpQkFBaUIsRUFBQTtFL0NzSmpCO0krQ2hMUjs7Ozs7TUErQlEscUJBQXFCLEVBQUEsRUFLeEI7RS9DNElHO0krQ2hMUjs7Ozs7TUFrQ1EscUJBQXFCLEVBQUEsRUFFeEI7RUFwQ0w7Ozs7O0lBdUNRLG9CQUFvQixFQUFBO0kvQ3lJcEI7TStDaExSOzs7OztRQXlDVSxpQkFBaUIsRUFBQSxFQUVwQjtFQTNDUDs7Ozs7SUE2Q1Esb0JBQW9CLEVBQUE7RUE3QzVCOzs7Ozs7Ozs7O0lBbURRLGtCQUFrQixFQUFBO0lBbkQxQjs7Ozs7Ozs7OztNQXFEVSxXQUFXO01BQ1gsY0FBYztNQUNkLGtCQUFrQjtNQUNsQixZQUFZO01BQUUsWUFBWTtNQUMxQixNQUFNO01BQUUsYUFBYTtNQUNyQix5QjNENEJLO00yRDNCTCxVQUFVLEVBQUE7RS9DcUhaO0krQ2hMUjs7Ozs7TUFrRVEsaUJBQWlCLEVBQUEsRUFFcEI7RUFwRUw7Ozs7O0lBd0VNLGlCQUFpQjtJQUNqQixvQkFBb0IsRUFBQTtJL0N1R2xCO00rQ2hMUjs7Ozs7UUEyRVEsaUJBQWlCLEVBQUEsRUFNcEI7SS9DK0ZHO00rQ2hMUjs7Ozs7UUE4RVEsa0JBQWtCO1FBQ2xCLG9CQUFvQixFQUFBLEVBRXZCO0VBakZMOzs7OztJQW1GTSxnQkFBZ0IsRUFBQTtFQW5GdEI7Ozs7Ozs7Ozs7SUF3Rk0sNkJBQTBEO0lBQzFELDhCQUEyRCxFQUFBO0kvQ3VGekQ7TStDaExSOzs7Ozs7Ozs7O1FBMkZRLG9CQUFvQixFQUFBLEVBVXZCO0kvQzJFRztNK0NoTFI7Ozs7Ozs7Ozs7UUE4RlEscUJBQXFCLEVBQUEsRUFPeEI7SUFyR0w7Ozs7Ozs7Ozs7TUFpR1EseUIzRDdCb0I7TTJEOEJwQixjM0RaTztNMkRhUCw0QkFBNEIsRUFBQTtFQW5HcEM7Ozs7O0lBeUdNLHlCM0RuQlM7STJEb0JULGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsNkJBQTBEO0lBQzFELDhCQUEyRCxFQUFBO0kvQ21FekQ7TStDaExSOzs7OztRQStHUSxtQkFBbUI7UTNDS3pCLG1CRzZCMkQ7UUh6QnpELG9CR3lCeUQ7UUQzSHpELGdCZnVFUztRZXRFVCxlZnNFUyxFQUFBLEV3RDBEUjtJL0N5Qkc7TStDaExSOzs7OztRQW1IUSxxQkFBcUIsRUFBQSxFQW9DeEI7SUF2Skw7Ozs7O01Bc0hRLFdBQVc7TUFDWCxjQUFjO01BQ2Qsa0JBQWtCO01BQ2xCLE1BQU07TUFBRSxPQUFPO01BQ2YsV0FBVztNQUFFLFlBQVk7TUFDekIseUIzRHhEcUIsRUFBQTtJMkRuRTdCOzs7OztNQThIUSxrQkFBa0IsRUFBQTtNL0NrRGxCO1ErQ2hMUjs7Ozs7VUFnSVUsaUJBQWlCLEVBQUEsRUFRcEI7TUF4SVA7Ozs7O1FBbUlVLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsVUFBVTtRQUNWLFdBQVcsRUFBQTtJQXRJckI7Ozs7O01BMklRLGtCQUFrQixFQUFBO01BM0kxQjs7Ozs7UUE2SVUsa0JBQWtCO1FBQ2xCLE1BQU07UUFBRSxPQUFPO1FBQ2YsV0FBVztRQUFFLFlBQVk7UUFDekIsb0JBQWlCO1dBQWpCLGlCQUFpQixFQUFBO0lBaEozQjs7Ozs7Ozs7Ozs7OztNQXFKUSxZQUFZLEVBQUE7RUFySnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0tNLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1Ysa0JBQThDO0lBQzlDLHlCM0Q3RVMsRUFBQTtJWTBGUDtNK0NoTFI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFxS1Esb0JBQW9CO1FWdEp4QixrQkFBa0IsRUFBQTtRQUVwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQUNFLFdBQVc7VUFDWCxjQUFjO1VBQ2QsV0FBVztVQUNYLDJCQUEyQjtVQUMzQiw0QkFBNEI7VUFDNUIsa0JBQWtCO1VBS2hCLGFBQWE7VUFDYixnREFBZ0QsRUFBQTtRQVpwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVVXVKUSxTQUFTO1VBQUUseUJBQXlCO1VBQ3BDLDJCQUEyQixFQUFBLEVBQzVCO0kvQ1dEO00rQ3JMUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQTZLUSxtQlYzSzZCLEVBQUE7UUFlbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VVU4SlEsd0JBQXdCLEVBQUEsRUFDekI7RS9DS0Q7SStDckxSOzs7OztNekJjSSx3QkFBd0IsRUFBQSxFeUJnTHZCO0UvQ2RHO0krQ2hMUjs7Ozs7TUF1TFEsVUFBVTtNQUFFLFlBQVk7TUFDeEIsY0FBYztNQUFFLGlCQUFpQjtNQUNqQyw2QkFBNkIsRUFBQTtNQXpMckM7Ozs7O1FBMkxVLFVBQVUsRUFBQSxFQUNYO0VBNUxUOzs7Ozs7Ozs7O0lBa01NLGMzRHRIWTtJMkR1SFosb0J4RDNHbUQ7SXdENEduRCxvQkFBb0IsRUFBQTtJL0NwQmxCO00rQ2hMUjs7Ozs7Ozs7OztRQXNNUSxpQkFBaUIsRUFBQSxFQUVwQjtFL0NuQkc7SStDckxSOzs7Ozs7Ozs7O01BK01VLGFBQWE7TUFDYixlQUFlLEVBQUEsRUF3QmxCO0UvQ25EQztJK0NyTFI7Ozs7Ozs7Ozs7TUFxTmMsWUFBWTtNQUNaLGlCQUFpQixFQUFBLEVBQ2xCO0UvQ2xDTDtJK0NyTFI7Ozs7Ozs7Ozs7TUE0TlksYUFBYSxFQUFBO01BNU56Qjs7Ozs7Ozs7OztRQThOYyxZQUFZO1FBQ1osaUJBQWlCLEVBQUEsRUFDbEI7RS9DM0NMO0krQ3JMUjs7Ozs7Ozs7OztNQXFPWSxjQUFjLEVBQUEsRUFFakI7RS9DdkREO0krQ2hMUjs7Ozs7TUE2T1EsbUJ4RHJKaUQ7TXdEc0pqRCxxQkFBcUI7TUFDckIsZ0JBQWdCLEVBQUEsRUFFbkI7RS9DakVHO0krQ2hMUjs7Ozs7TUFxUFEsaUJBQWlCLEVBQUEsRUFFcEI7O0FDdlBMO0VBR00sbUJBQW1CLEVBQUE7RWhENktqQjtJZ0RoTFI7TUFLUSxhQUFhLEVBQUEsRUFLaEI7RWhEc0tHO0lnRGhMUjtNQVFRLG1CQUFtQixFQUFBLEVBRXRCOztBQVZMO0VBYUksZ0JBQWdCLEVBQUE7O0FoRG1LWjtFZ0RoTFI7SUFrQk0sYUFBYTtJQUNiLHNCQUFzQixFQUFBLEVBRXpCOztBUFVIOztFT0hNLGdCQUFnQixFQUFBO0VBSnRCO0lBUVUsMEJBQTBCLEVBQUE7O0FBUnBDO0VBY00saUJBQWlCO0VBQ2pCLGdCQUFnQixFQUFBOztBQWZ0QjtFQW1CTSxtQkFBbUIsRUFBQTs7QUFuQnpCO0VBeUJNLG1CQUFtQixFQUFBO0VBekJ6QjtJQTJCUSxXQUFXO0lBQ1gsaUNBQWlDO0lBQ2pDLFVBQVU7SUFDVixrQkFBa0IsRUFBQTtFQTlCMUI7SUFpQ1EsY0FBYyxFQUFBO0lBakN0QjtNQW9DWSxVQUFVLEVBQUE7O0FBcEN0QjtFQTRDSSxnQkFBZ0IsRUFBQTs7QUE1Q3BCO0VBZ0RJLG1CekRnQnFEO0V5RGZyRCxvQkFBb0I7RUFDcEIsYzVEUWdCLEVBQUE7RVk4Rlo7SWdEeEpSO01Bb0RNLG9CekRZbUQsRUFBQSxFeURWdEQ7O0FDOUVIO0VBRUksbUJBQW1CO0VBQ25CLGdCQUFnQixFQUFBO0VBSHBCO0lBS00sY0FBYztJQUNkLGdDQUFnQztJQUNoQyxxQkFBYTtZQUFiLGFBQWEsRUFBQTtJQVBuQjtNQVNRLDRCQUFvQjtjQUFwQixvQkFBb0IsRUFBQTtFQVQ1QjtJQWFNLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsV0FBVyxFQUFBOztBQWZqQjtFQW1CSSxnQkFBZ0IsRUFBQTs7QUFJcEI7RUFFSSx5QjdENkRXLEVBQUE7RTZEL0RmO0lBSU0sV0FBVztJQUFFLFlBQVk7SUFDekIsUUFBUTtJQUFFLFNBQVM7SUFDbkIsbUJBQWdCO09BQWhCLGdCQUFnQjtJQUNoQixnQ0FBZ0M7SUFDaEMsVUFBVSxFQUFBOztBQy9CaEI7RUFHSSxpQ0FBaUMsRUFBQTtFbEQ2SzdCO0lrRGhMUjtNQUtNLGlDQUFpQyxFQUFBLEVBbUJwQztFbEQ2Sks7SWtEckxSO01BU00sa0NBQWtDLEVBQUEsRUFlckM7RUF4Qkg7SUFZTSxpQkFBaUI7SUFDakIseUI5RHNEdUIsRUFBQTtJWTZHckI7TWtEaExSO1FBZVEsaUJBQWlCLEVBQUEsRUFRcEI7SWxEeUpHO01rRGhMUjtRQWtCUSxrQkFBa0IsRUFBQSxFQUtyQjtJbEQ4Skc7TWtEckxSO1FBcUJRLGtCQUFrQixFQUFBLEVBRXJCOztBQXZCTDtFQTBCSSxnQkFBZ0IsRUFBQTs7QUExQnBCO0VBNkJJLG1CQUFtQixFQUFBO0VsRG1KZjtJa0RoTFI7TUErQk0saUJBQWlCLEVBQUEsRUFFcEI7O0FsRCtJSztFa0RoTFI7SUFvQ00sbUJBQW1CLEVBQUEsRUFLdEI7O0FsRHVJSztFa0RoTFI7SUF1Q00sbUJBQW1CLEVBQUEsRUFFdEI7O0FBekNIO0VBMkNJLG9CQUFvQixFQUFBO0VsRHFJaEI7SWtEaExSO01BNkNNLG9CQUFvQixFQUFBLEVBRXZCOztBQS9DSDs7RUFzRE0sbUJBQW1CLEVBQUE7RWxEMEhqQjtJa0RoTFI7O01Bd0RRLG1CQUFtQixFQUFBLEVBUXRCO0VsRGdIRztJa0RoTFI7O01BMkRRLG9CQUFvQixFQUFBLEVBS3ZCO0VsRHFIRztJa0RyTFI7O01BOERRLG9CQUFvQixFQUFBLEVBRXZCOztBbERnSEc7RWtEaExSO0liZUksa0JBQWtCLEVBQUE7SUFFcEI7TUFDRSxXQUFXO01BQ1gsY0FBYztNQUNkLFdBQVc7TUFDWCwyQkFBMkI7TUFDM0IsNEJBQTRCO01BQzVCLGtCQUFrQjtNQUtoQixhQUFhO01BQ2IsZ0RBQWdELEVBQUE7SUFacEQ7TWFxRFUsU0FBUztNQUFFLFFBQVEsRUFBQSxFQUNwQjs7QUF2RVg7RUE0RU0saUJBQWlCLEVBQUE7RWxEb0dmO0lrRGhMUjtNQThFUSw2QkFBNkIsRUFBQSxFQVFoQztFbEQwRkc7SWtEaExSO01BaUZRLDhCQUE4QixFQUFBLEVBS2pDO0VsRCtGRztJa0RyTFI7TUFvRlEsOEJBQThCLEVBQUEsRUFFakM7O0FsRDBGRztFa0RoTFI7SUEyRlEsOEJBQThCLEVBQUEsRUFLakM7O0FsRHFGRztFa0RyTFI7SUE4RlEsOEJBQThCLEVBQUEsRUFFakM7O0FBSUw7RUFDRSx5QjlEbEMyQjtFOERtQzNCLGlCQUFpQjtFQUNqQixvQkFBb0IsRUFBQTtFbER5RWQ7SWtENUVSO01BS0ksb0JBQW9CLEVBQUEsRUFhdkI7RWxEMERPO0lrRDVFUjtNQVFJLGlCQUFpQjtNQUNqQixxQkFBcUIsRUFBQSxFQVN4QjtFQWxCRDtJQVlJLG1CQUFtQjtJQUNuQixrQkFBa0IsRUFBQTtJbEQrRGQ7TWtENUVSO1FBZU0sbUJBQW1CLEVBQUEsRUFFdEI7O0FBR0g7RUFDRSxjQUFjLEVBQUE7O0FBR2hCO0VBRUksZ0JBQWdCO0VBQ2hCLG1CQUFtQixFQUFBOztBQy9IdkI7O0VBRUUsYUFBYSxFQUFBO0VBRmY7O0lBSUksaUJBQWlCLEVBQUE7O0FBSXJCO0VBRUksZ0IvRHFGb0I7RStEcEZwQixjL0RpRWMsRUFBQTs7QStEN0RsQjs7RUFHSSxvQjVEc0VxRDtFNERyRXJELGlCQUFpQixFQUFBOztBQ25CckI7Ozs7Ozs7Ozs7RUFXSSx5QmhFd0R5QixFQUFBOztBZ0VuRTdCOzs7Ozs7Ozs7O0VBY0ksa0JBQWtCO0VBQ2xCLE1BQU07RUFBRSxPQUFPO0VBQ2YsV0FBVztFQUFFLFlBQVk7RUFDekIsc0JBQXNCO0VBQ3RCLDJCQUEyQjtFQUMzQixZQUFZLEVBQUE7O0FBSWhCOzs7OztFQU1JLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLGNoRW1EVztFZ0VsRFgsV0FBVyxFQUFBO0VwRDRJUDtJb0R6SlI7Ozs7O01BZU0saUJBQWlCO01BQ2pCLG9CQUFvQixFQUFBLEVBRXZCOztBQWxCSDs7Ozs7RUFxQkksa0JBQWtCO0VmVHBCLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0Isc0JBQXNCO0VBQ3RCLHlEQUF5RDtFQUN6RCx5QmpENkIwQjtFaUQ1QjFCLGlDQUFpQyxFQUFBO0VyQ3dJM0I7SW9EekpSOzs7OztNZm1CSSwyREFBMkQsRUFBQSxFZUk1RDtFcERrSUs7SW9EekpSOzs7OztNZnNCSSwyREFBMkQsRUFBQSxFZUM1RDtFcERrSUs7SW9EekpSOzs7OztNZnlCSSwyREFBMkQsRUFBQSxFZUY1RDtFcER1SUs7SW9EOUpSOzs7OztNZjRCSSw0REFBNEQsRUFBQSxFZUw3RDtFcER1SUs7SW9EOUpSOzs7OztNZitCSSw2REFBNkQsRUFBQSxFZVI5RDs7QUFHSDs7Ozs7Ozs7O0VBVUkseUJoRVN3QjtFZ0VSeEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixvQkFBb0IsRUFBQTtFcERrSGhCO0lvRC9IUjs7Ozs7Ozs7O01BZU0saUJBQWlCO01BQ2pCLG9CQUFvQixFQUFBLEVBaUJ2QjtFQWpDSDs7Ozs7Ozs7O0lBbUJNLFdBQVc7SUFDWCxjQUFjO0lBQ2QsV0FBVztJQUNYLHlDQUF5QztJQUN6QyxrREFBa0Q7SUFDbEQsNEJBQTRCO0lBQzVCLCtCQUErQjtJQUMvQixxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxTQUFTO0lBQ1QsdUNBQXVDO0lBQ3ZDLFVBQVUsRUFBQTs7QUEvQmhCOzs7Ozs7Ozs7RUFvQ0ksa0JBQWtCO0VBQ2xCLHlDQUF5QyxFQUFBO0VwRCtGckM7SW9EcElSOzs7Ozs7Ozs7TUF1Q00seUNBQXlDLEVBQUEsRUFFNUM7O0FBR0g7O0VBSU0sY2hFWFM7RWdFWVQsa0JBQWtCO0VBQ2xCLG1CQUFtQixFQUFBO0VwRDZFakI7SW9EbkZSOztNQVFRLG1CQUFtQjtNQUNuQixpQkFBaUIsRUFBQSxFQVFwQjtFcER1RUc7SW9EeEZSOztNQVlRLGlCQUFpQixFQUFBLEVBS3BCO0VBakJMOztJQWVRLGNBQWMsRUFBQTs7QUFNdEI7OztFQUlJLGdCQUFnQixFQUFBOztBcEQwRFo7RW9EdERSOztJZjNHSSxrQkFBa0I7SWUrR2xCLGtCQUFrQixFQUFBO0lmN0dwQjs7TUFDRSxXQUFXO01BQ1gsY0FBYztNQUNkLFdBQVc7TUFDWCwyQkFBMkI7TUFDM0IsNEJBQTRCO01BQzVCLGtCQUFrQjtNQUVoQixhQUFhO01BQ2IsK0NBQStDLEVBQUE7SUFUbkQ7O01lK0dJLFFBQVE7TUFBRSxPQUFPO01BQ2pCLDJCQUEyQixFQUFBLEVBQzVCOztBcEQ4Q0c7RW9EdERSOzs7O0lBYU0sa0JBQWtCLEVBQUEsRUFLckI7O0FwRG9DSztFb0R0RFI7Ozs7SUFnQk0sa0JBQWtCLEVBQUEsRUFFckI7O0FBbEJIOzs7O0VBb0JJLGVBQWUsRUFBQTs7QUFJbkI7O0VBR0ksZUFBZSxFQUFBO0VBSG5COztJQUtNLGFBQWEsRUFBQTtFQUxuQjs7OztJQVNNLGVBQWUsRUFBQTs7QUFUckI7O0VBY0ksY2hFMUVXLEVBQUE7O0FpRXRGZjs7Ozs7Ozs7OztFQU9JLHlCakU0RHlCO0VpRTNEekIsb0JBQW9CLEVBQUE7RXJEd0toQjtJcURoTFI7Ozs7Ozs7Ozs7TUFVTSxvQkFBb0IsRUFBQSxFQUt2QjtFckRzS0s7SXFEckxSOzs7Ozs7Ozs7O01BYU0scUJBQXFCLEVBQUEsRUFFeEI7O0FBR0g7RUFDRSxtQkFBbUIsRUFBQTs7QUFHckI7RUFFSSxtQkFBbUIsRUFBQTs7QUFGdkI7RUFLSSxtQkFBbUIsRUFBQTtFckQwSmY7SXFEL0pSO01BT00sbUJBQW1CLEVBQUEsRUFFdEI7O0FBR0g7RUFDRSxjakV5Q2dCLEVBQUE7RVlvR1Y7SXFEOUlSO01BR0ksYUFBYTtNQUNiLHNCQUFzQixFQUFBLEVBV3pCO0VBZkQ7SUFPSSxtQkFBbUIsRUFBQTtFQVB2QjtJQVVJLGdCQUFnQixFQUFBO0lyRG9JWjtNcUQ5SVI7UUFZTSxnQkFBZ0IsRUFBQSxFQUVuQjs7QUFHSDtFQUNFLG9CQUFvQixFQUFBO0VyRDRIZDtJcUQ3SFI7TUFHSSxxQkFBcUIsRUFBQSxFQWdDeEI7RXJEMEZPO0lxRDdIUjtNaEJwQ0ksa0JBQWtCO01nQjRDaEIsa0JBQWtCLEVBQUE7TWhCMUN0QjtRQUNFLFdBQVc7UUFDWCxjQUFjO1FBQ2QsV0FBVztRQUNYLDJCQUEyQjtRQUMzQiw0QkFBNEI7UUFDNUIsa0JBQWtCO1FBRWhCLGFBQWE7UUFDYiwrQ0FBK0MsRUFBQTtNQVRuRDtRZ0I0Q00sT0FBTztRQUFFLFVBQVUsRUFBQSxFQUNwQjtFckRrSEM7SXFEN0hSO01BY00sZUFBZSxFQUFBLEVBRWxCO0VyRDZHSztJcUQ3SFI7TUFxQlUsc0JBQXNCLEVBQUEsRUFLekI7RXJEbUdDO0lxRDdIUjtNQXdCVSxzQkFBc0IsRUFBQSxFQUV6QjtFQTFCUDtJQThCSSxtQkFBbUIsRUFBQTtJckQrRmY7TXFEN0hSO1FBZ0NNLG1CQUFtQixFQUFBLEVBRXRCOztBQUdIOztFQUdJLGNqRWZjLEVBQUE7O0FpRW1CbEI7RUFDRSx5QmpFN0IyQjtFaUU4QjNCLGlCQUFpQjtFQUNqQixxQkFBcUIsRUFBQTtFckQ4RWY7SXFEakZSO01BS0ksa0JBQWtCLEVBQUEsRUFjckI7RXJEOERPO0lxRGpGUjtNQVVRLFVBQVUsRUFBQSxFQUNYO0VyRHNFQztJcURqRlI7TTdDN0JFLHFCRCtFMkQsRUFBQSxFOENoQzFEOztBckQrREs7RXNEaExSO0lBR00sV0FBVyxFQUFBLEVBRWQ7O0FDSEg7RUFDRSxtQkFBbUIsRUFBQTtFdkQ2S2I7SXVEOUtSO01BR0ksbUJBQW1CLEVBQUEsRUFFdEI7O0FDUEQ7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CLEVBQUE7RXhEOEtiO0l3RGhMUjtNQUlJLG1CQUFtQixFQUFBLEVBdUR0QjtFeEQwSE87SXdEckxSO01BT0ksb0JBQW9CLEVBQUEsRUFvRHZCO0VBM0REO0lBV0ksZ0JBQWdCLEVBQUE7RUFYcEI7SUFjSSxnQkFBZ0IsRUFBQTtFQWRwQjtJQWtCSSxnQkFBZ0IsRUFBQTtFQWxCcEI7SUFzQkksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsb0JBQW9CLEVBQUE7SXhEdUpoQjtNd0RoTFI7UUEyQk0saUJBQWlCO1FBQ2pCLG9CQUFvQixFQUFBLEVBc0J2QjtJeEQ4SEs7TXdEaExSO1FBK0JNLGtCQUFrQjtRQUNsQixxQkFBcUIsRUFBQSxFQWtCeEI7SXhEbUlLO013RHJMUjtRQW1DTSxrQkFBa0I7UUFDbEIscUJBQXFCLEVBQUEsRUFjeEI7SUFsREg7TW5CZUksa0JBQWtCO01tQnlCaEIsa0JBQWtCLEVBQUE7TW5CdkJ0QjtRQUNFLFdBQVc7UUFDWCxjQUFjO1FBQ2QsV0FBVztRQUNYLDJCQUEyQjtRQUMzQiw0QkFBNEI7UUFDNUIsa0JBQWtCO1FBRWhCLGFBQWE7UUFDYiwrQ0FBK0MsRUFBQTtNQVRuRDtRbUJ5Qk0sV0FBVztRQUFFLE9BQU87UUFDcEIsMEJBQTBCLEVBQUE7UXhEcUkxQjtVcUMvSk47WW1CNEJRLGFBQWE7WUFDYix3QkFBd0IsRUFBQSxFQUUzQjtFQWhEUDtJQW9ESSxrQkFBa0I7SUFDbEIsTUFBTTtJQUFFLE9BQU87SUFDZixXQUFXO0lBQUUsWUFBWSxFQUFBO0VBdEQ3QjtJQXlESSxnQkFBZ0IsRUFBQTs7QUFJcEI7Ozs7O0VBT00sa0JBQWtCLEVBQUE7RXhENEdoQjtJd0RuSFI7Ozs7O01BU1Esa0JBQWtCLEVBQUEsRUFXckI7RXhEK0ZHO0l3RG5IUjs7Ozs7TUFZUSxrQkFBa0IsRUFBQSxFQVFyQjtFeEQrRkc7SXdEbkhSOzs7OztNQWVRLGtCQUFrQixFQUFBLEVBS3JCO0V4RG9HRztJd0R4SFI7Ozs7O01Ba0JRLGtCQUFrQixFQUFBLEVBRXJCOztBQ2pGTDtFQUNFLG1CQUFtQixFQUFBO0V6RCtLYjtJeURoTFI7TUFHSSxtQkFBbUIsRUFBQSxFQUt0QjtFekR3S087SXlEaExSO01BTUksb0JBQW9CLEVBQUEsRUFFdkI7O0FDUkQ7RUFJRSxtQkFBbUIsRUFBQTtFQUpyQjtJQUVJLFdBQVcsRUFBQTtFMUQ4S1A7STBEaExSO01BTUksbUJBQW1CLEVBQUEsRUF1QnRCO0VBN0JEO0lBU0ksbUJBQW1CLEVBQUE7RUFUdkI7SUFZSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLG1CQUFtQixFQUFBO0VBZHZCO0lBaUJJLGNBQWM7SXBES2QsdUJBRnFDO0lBR3JDLHNCQUhxQyxFQUFBO0lONEpqQztNMERoTFI7UXBEc0JJLHdCQUZxQztRQUdyQyx1QkFIcUMsRUFBQSxFb0RRdEM7SUE1Qkg7TUFvQk0sZ0NBQWdDO01BQ2hDLDZDQUFxQztjQUFyQyxxQ0FBcUMsRUFBQTtJQXJCM0M7TUF5QlEsb0JBQVk7Y0FBWixZQUFZLEVBQUE7O0FDekJwQjtFQUNFLG1CQUFtQixFQUFBO0UzRCtLYjtJMkRoTFI7TUFHSSxtQkFBbUIsRUFBQSxFQVF0QjtFM0RxS087STJEaExSO01BTUksb0JBQW9CLEVBQUEsRUFLdkI7RTNEMEtPO0kyRHJMUjtNQVNJLG9CQUFvQixFQUFBLEVBRXZCOztBQ1hEO0VBR00sZ0JBQWdCO0VBQ2hCLHFCQUFxQixFQUFBO0VBSjNCO0lBTVEsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixjeEU4RU87SXdFN0VQLG1CQUFtQjtJQUNuQixvQkFBb0IsRUFBQTtJNURzS3BCO000RGhMUjtRQVlVLG9CckU0RStDO1FxRTNFL0MsbUJBQW1CLEVBQUEsRUFtQnRCO0lBaENQO01BZ0JVLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsUUFBUTtNQUFFLE9BQU87TUFDakIsV0FBVztNQUFFLFlBQVk7TUFDekIsY0FBYztNQUNkLHlDQUF5QztNQUN6Qyw0QkFBNEI7TUFDNUIsMkJBQTJCO01BQzNCLHNCQUFzQjtNQUN0Qix1R0FBK0Y7Y0FBL0YsK0ZBQStGLEVBQUE7STVEdUpqRztNNERoTFI7UUE2QlksbUJBQW1CLEVBQUEsRUFFdEI7O0FDL0JUO0VBQ0UsZ0JBQWdCLEVBQUE7RTdEK0tWO0k2RGhMUjtNQUdJLGdCQUFnQixFQUFBLEVBRW5COztBQUVEO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTtFQUZoQjtJQUlJLG1CQUFtQixFQUFBOztBQUl2QjtFdkRPSSx1QkFGcUM7RUFHckMsc0JBSHFDO0V1REh2QyxtQkFBbUIsRUFBQTtFN0QrSmI7STZEaktSO012RE9JLHVCQUZxQztNQUdyQyxzQkFIcUMsRUFBQSxFdURJeEM7RTdEd0pPO0k2RGpLUjtNQUlJLG1CQUFtQixFQUFBLEVBS3RCO0VBVEQ7SXhEa0ZFLG9CZFR1RDtJYzFCckQsa0JBQWtCO0lBQ2xCLGlCQUFpQixFQUFBO0loQjBHbkI7TUFFRSxjQUFjO01BQ2QsWUFBWTtNQUdWLGFBQWE7TUFDYixRQUFRLEVBQUE7SUFJWjtNQUNFLFdBQVcsRUFBQTs7QXdFckxmO0VBMkJJLFVBQVUsRUFBQTs7QUMzQmQ7RUFDRSxjMUUyRWdCO0UwRTFFaEIsbUJBQW1CLEVBQUE7RTlEOEtiO0k4RGhMUjtNQUlJLG1CQUFtQixFQUFBLEVBd0J0QjtFOUR5Sk87SThEckxSO01BT0ksb0JBQW9CLEVBQUEsRUFxQnZCO0U5RG9KTztJOERoTFI7TUFZUSwyQkFBMkI7TUFDM0IseUJBQXlCLEVBQUEsRUFFNUI7RTlEaUtHO0k4RGhMUjtNQW1CTSxtQkFBbUIsRUFBQSxFQUV0QjtFQXJCSDtJQXVCSSxnQkFBZ0IsRUFBQTtJOUR5Slo7TThEaExSO1FBeUJNLGFBQWEsRUFBQSxFQUVoQjs7QUMzQkg7RUFFSSxrQkFBa0IsRUFBQTtFL0RtTGQ7SStEckxSO01BS00sZ0JBQWdCLEVBQUEsRUFFbkI7O0FBUEg7RUFTSSxtQkFBbUIsRUFBQTtFL0R1S2Y7SStEaExSO01BV00sMkJBQTJCO01BQzNCLHlCQUF5QixFQUFBLEVBRTVCOztBQWRIO0VBZ0JJLGFBQWE7RUFDYix1QkFBdUIsRUFBQTs7QUFqQjNCO0VBb0JJLGdCQUFnQixFQUFBO0UvRDRKWjtJK0RoTFI7TUFzQk0sZ0JBQWdCLEVBQUEsRUFFbkI7O0FBR0g7RUFDRSxjQUFjO0VBQ2QsaUJBQWlCLEVBQUE7O0EvRG1KWDtFK0RoSlI7SUFFSSxhQUFhLEVBQUEsRUFFaEI7O0FBQ0Q7RUFFSSxjQUFjLEVBQUEiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXNcbiAqIFZlcnNpb24gNi42LjNcbiAqIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IH1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDA7IH1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtOyB9XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwOyB9XG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0OyB9XG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJ0aW55PTBlbSZzbWFsbD0zMGVtJm1lZGl1bT00OGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGZvbnQtZmFtaWx5OiBwYXJhbHVjZW50LCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNzU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBhdXRvOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi4zMzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFREYzRkY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREYzRkY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgW3R5cGU9J3RleHQnXTpmb2N1cywgW3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMsIFt0eXBlPSdkYXRlJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTpmb2N1cywgW3R5cGU9J21vbnRoJ106Zm9jdXMsIFt0eXBlPSd3ZWVrJ106Zm9jdXMsIFt0eXBlPSdlbWFpbCddOmZvY3VzLCBbdHlwZT0nbnVtYmVyJ106Zm9jdXMsIFt0eXBlPSdzZWFyY2gnXTpmb2N1cywgW3R5cGU9J3RlbCddOmZvY3VzLCBbdHlwZT0ndGltZSddOmZvY3VzLCBbdHlwZT0ndXJsJ106Zm9jdXMsIFt0eXBlPSdjb2xvciddOmZvY3VzLFxuICB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA1NEZGO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFREYzRkY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc5Nzk3O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cblt0eXBlPSdzdWJtaXQnXSxcblt0eXBlPSdidXR0b24nXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbjo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzJFMkUyRTsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWxbZm9yXSxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbFtmb3JdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG5bdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQsIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkLCAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJFMkUyRTtcbiAgYmFja2dyb3VuZDogIzk3OTc5NztcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJFMkUyRTsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjMzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VERjNGRjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERjNGRjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogcmdiJTI4MCwgODQsIDI1NSUyOSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09XCIpOyB9IH1cbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDU0RkY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VERjNGRjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgc2VsZWN0Om5vdChbbXVsdGlwbGVdKSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWVkZWI7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogI2NjNGIzNzsgfVxuICAuZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IHBhcmFsdWNlbnQsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjMDA1NEZGO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLCAuaDIgc21hbGwsXG4gIGgzIHNtYWxsLCAuaDMgc21hbGwsXG4gIGg0IHNtYWxsLCAuaDQgc21hbGwsXG4gIGg1IHNtYWxsLCAuaDUgc21hbGwsXG4gIGg2IHNtYWxsLCAuaDYgc21hbGwge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjMkUyRTJFOyB9XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDIuNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDIuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDQuMzc1cmVtOyB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMi43NXJlbTsgfVxuICBoMywgLmgzIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtOyB9XG4gIGg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDU0RkY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMDA0OGRiOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3Ni44NzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyRTJFMkU7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMkUyRTJFOyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzAxMDAyMTsgfVxuXG5hYmJyLCBhYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwMDAwMDtcbiAgY3Vyc29yOiBoZWxwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc5Nzk3O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzAxMDAyMTsgfVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbnVsLm5vLWJ1bGxldCwgb2wubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLmNpdGUtYmxvY2ssIGNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMwMTAwMjE7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtOyB9XG4gIC5jaXRlLWJsb2NrOmJlZm9yZSwgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbi5jb2RlLWlubGluZSwgY29kZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTsgfVxuXG4uY29kZS1ibG9jayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyRTJFMkU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Nzk3OTc7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnNtYWxsLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuc21hbGwtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnNtYWxsLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnNtYWxsLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMTAwMjE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyB9IH1cblxuLnJvdyB7XG4gIG1heC13aWR0aDogNzYuODc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgLnJvdy5leHBhbmRlZCAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5yb3cuaXMtY29sbGFwc2UtY2hpbGQsXG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyxcbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW5zID4gLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgZmxleDogMSAxIDBweDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1pbi13aWR0aDogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnRpbnktMSB7XG4gIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuXG4udGlueS1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4udGlueS0yIHtcbiAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnRpbnktb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnRpbnktMyB7XG4gIGZsZXg6IDAgMCAyNSU7XG4gIG1heC13aWR0aDogMjUlOyB9XG5cbi50aW55LW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4udGlueS00IHtcbiAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnRpbnktb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi50aW55LTUge1xuICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4udGlueS1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnRpbnktNiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlOyB9XG5cbi50aW55LW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4udGlueS03IHtcbiAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLnRpbnktb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi50aW55LTgge1xuICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4udGlueS1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnRpbnktOSB7XG4gIGZsZXg6IDAgMCA3NSU7XG4gIG1heC13aWR0aDogNzUlOyB9XG5cbi50aW55LW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4udGlueS0xMCB7XG4gIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG5cbi50aW55LW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4udGlueS0xMSB7XG4gIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG5cbi50aW55LW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLnRpbnktMTIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi50aW55LW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnRpbnktdXAtMSB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAudGlueS11cC0xID4gLmNvbHVtbiwgLnRpbnktdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnRpbnktdXAtMiB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAudGlueS11cC0yID4gLmNvbHVtbiwgLnRpbnktdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG5cbi50aW55LXVwLTMge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnRpbnktdXAtMyA+IC5jb2x1bW4sIC50aW55LXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4udGlueS11cC00IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50aW55LXVwLTQgPiAuY29sdW1uLCAudGlueS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnRpbnktdXAtNSB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAudGlueS11cC01ID4gLmNvbHVtbiwgLnRpbnktdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG5cbi50aW55LXVwLTYge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnRpbnktdXAtNiA+IC5jb2x1bW4sIC50aW55LXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4udGlueS11cC03IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50aW55LXVwLTcgPiAuY29sdW1uLCAudGlueS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnRpbnktdXAtOCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAudGlueS11cC04ID4gLmNvbHVtbiwgLnRpbnktdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTsgfVxuXG4udGlueS1jb2xsYXBzZSA+IC5jb2x1bW4sIC50aW55LWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnRpbnktdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC50aW55LXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5zbWFsbC0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAuc21hbGwtb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuc21hbGwtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAuc21hbGwtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAuc21hbGwtb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnNtYWxsLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnNtYWxsLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5zbWFsbC01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5zbWFsbC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAuc21hbGwtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAuc21hbGwtb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnNtYWxsLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLnNtYWxsLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5zbWFsbC04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5zbWFsbC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAuc21hbGwtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAuc21hbGwtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnNtYWxsLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5zbWFsbC1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAuc21hbGwtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLnNtYWxsLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuc21hbGwtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuc21hbGwtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5zbWFsbC11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuc21hbGwtdXAtMSA+IC5jb2x1bW4sIC5zbWFsbC11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnNtYWxsLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC0yID4gLmNvbHVtbiwgLnNtYWxsLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnNtYWxsLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnNtYWxsLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLnNtYWxsLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC01ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLnNtYWxsLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnNtYWxsLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLnNtYWxsLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWFsbC11cC04ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5zbWFsbC1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG4ucm93LnNtYWxsLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LnNtYWxsLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnJvdy5zbWFsbC11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5zbWFsbC11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5tZWRpdW0tdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC5tZWRpdW0tdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEyLjUlO1xuICAgICAgbWF4LXdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDsgfSB9XG5cbi5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5sYXJnZS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC5sYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5sYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC5sYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5sYXJnZS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC5sYXJnZS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC5sYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEyLjUlO1xuICAgICAgbWF4LXdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc2hyaW5rIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY29sdW1uLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gICAgICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAxM3B4IDI0cHggMTJweCAyNHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDA1NEZGO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbi5leHBhbmRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5idXR0b24sIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NEZGO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0M2NjO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5LCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLnN1Y2Nlc3MsIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi53YXJuaW5nLCAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMDA1NEZGOyB9XG4gIC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgIGNvbG9yOiAjMDA1NEZGOyB9XG4gIC5idXR0b24uYWxlcnQsIC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbi5hbGVydDpob3ZlciwgLmJ1dHRvbi5hbGVydDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwNTRGRjtcbiAgICBjb2xvcjogIzAwNTRGRjsgfVxuICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmE4MDtcbiAgICBjb2xvcjogIzAwMmE4MDsgfVxuICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA1NEZGO1xuICAgIGNvbG9yOiAjMDA1NEZGOyB9XG4gIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmE4MDtcbiAgICBjb2xvcjogIzAwMmE4MDsgfVxuICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnksIC5idXR0b24uaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzNiM2IzYjtcbiAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93Lndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAuYnV0dG9uLmhvbGxvdy5hbGVydCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAuYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjMDA1NEZGOyB9XG4gIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICAgIGNvbG9yOiAjMDAyYTgwOyB9XG4gIC5idXR0b24uY2xlYXIucHJpbWFyeSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMDAyYTgwOyB9XG4gIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogIzc2NzY3NjsgfVxuICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjM2IzYjNiOyB9XG4gIC5idXR0b24uY2xlYXIuc3VjY2VzcywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gIC5idXR0b24uY2xlYXIud2FybmluZywgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMge1xuICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gIC5idXR0b24uY2xlYXIuYWxlcnQsIC5idXR0b24uY2xlYXIuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNGVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjRkZGRkZGIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3c6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwNTRGRjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5wcmltYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwNTRGRjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLnNlY29uZGFyeTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Njc2NzY7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc3VjY2Vzczo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIuc3VjY2Vzczo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cud2FybmluZzo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIud2FybmluZzo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuYWxlcnQ6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLmFsZXJ0OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICB0b3A6IC0wLjFlbTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG5hLmJ1dHRvbjpob3ZlciwgYS5idXR0b246Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtZ3JvdzogMTsgfVxuICAuYnV0dG9uLWdyb3VwOjpiZWZvcmUsIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0M2NjO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzAwNTRGRjsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgIGNvbG9yOiAjMDA1NEZGOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA1NEZGO1xuICAgIGNvbG9yOiAjMDA1NEZGOyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmE4MDtcbiAgICBjb2xvcjogIzAwMmE4MDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwNTRGRjtcbiAgICBjb2xvcjogIzAwNTRGRjsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmE4MDtcbiAgICBjb2xvcjogIzAwMmE4MDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzNiM2IzYjtcbiAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2VzcywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0LCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMDAyYTgwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMDAyYTgwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjM2IzYjNiOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2VzcywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gIC5idXR0b24tZ3JvdXAubm8tZ2FwcyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjA2MjVyZW07IH1cbiAgICAuYnV0dG9uLWdyb3VwLm5vLWdhcHMgLmJ1dHRvbiArIC5idXR0b24ge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgICAgZmxleDogMCAwIDEwMCU7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLmV4cGFuZGVkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkgYW5kIChtYXgtd2lkdGg6IDQ3Ljk5ODc1ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uYnJlYWRjcnVtYnMge1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmJyZWFkY3J1bWJzOjpiZWZvcmUsIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5icmVhZGNydW1icyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICBjb2xvcjogIzJFMkUyRTsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogIzJFMkUyRTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5jYWxsb3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY2FsbG91dCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYWxsb3V0LnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWU1ZmY7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5jYWxsb3V0LnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWZhZWE7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhbGxvdXQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZTRlMTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2FsbG91dC50aW55IHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5jYWxsb3V0LmxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNFREYzRkY7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAuYWNjb3JkaW9uW2Rpc2FibGVkXSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMi41cmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzAwNTRGRjsgfVxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmFjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGNvbnRlbnQ6IFwiK1wiOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCTXCI7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogM3JlbSAyLjVyZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMkM4NztcbiAgY29sb3I6ICNGRkZGRkY7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk3OTc5NztcbiAgYmFja2dyb3VuZDogI0VERjNGRjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRhYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4udGFicy52ZXJ0aWNhbCA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogYXV0bzsgfVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwOyB9XG4gIC50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLnRhYnMucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMwMDU0RkY7IH1cbiAgLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLCAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDUwZjI7IH1cblxuLnRhYnMtdGl0bGUge1xuICBmbG9hdDogbGVmdDsgfVxuICAudGFicy10aXRsZSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMzBweCA0cHg7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cbiAgICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnRhYnMtdGl0bGUgPiBhIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAudGFicy10aXRsZSA+IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICAgIGNvbG9yOiAjMDA0OGRiOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmZvY3VzLCAudGFicy10aXRsZSA+IGFbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDU0RkY7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4udGFicy1jb250ZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk3OTc5NztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogIzAwMkM4NztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7IH1cblxuLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi50YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogM3JlbSAyLjVyZW07IH1cbiAgLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51IGxpIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5tZW51IGEsXG4gIC5tZW51IC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMnB4IDA7IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IHNlbGVjdCxcbiAgLm1lbnUgYSxcbiAgLm1lbnUgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZW51IGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLm1lbnUsIC5tZW51Lmhvcml6b250YWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5tZW51LnZlcnRpY2FsIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5tZW51LmV4cGFuZGVkIGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG4gIC5tZW51LnNpbXBsZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5tZW51LnNpbXBsZSBsaSArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgLm1lbnUuc2ltcGxlIGEge1xuICAgICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5tZW51LnNtYWxsLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51LnNtYWxsLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51LnNtYWxsLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS5zbWFsbC1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuaWNvbnMgYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS5pY29uLXRvcCBhLCAubWVudS5pY29uLXJpZ2h0IGEsIC5tZW51Lmljb24tYm90dG9tIGEsIC5tZW51Lmljb24tbGVmdCBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51Lmljb24tbGVmdCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tcmlnaHQgbGkgYSB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tdG9wIGxpIGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS5pY29uLXRvcCBsaSBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMwMDU0RkY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMwMDU0RkY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLm1lbnUuYWxpZ24tbGVmdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodCBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZW51LmFsaWduLWNlbnRlciBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LmFsaWduLWNlbnRlciBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUgLm1lbnUtdGV4dCB7XG4gICAgcGFkZGluZzogMTJweCAwO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5hY2NvcmRpb24tbWVudSBsaSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5hY2NvcmRpb24tbWVudSBhIHtcbiAgcGFkZGluZzogMTJweCAwOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDEycHggMDsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDQwcHg7IH1cblxuLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnN1Ym1lbnUtdG9nZ2xlOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDA1NEZGIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG5cbi5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyB9XG5cbi5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gIG91dGxpbmU6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAxMnB4IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMDA1NEZGOyB9XG5cbi5uby1qcyAuZHJvcGRvd24ubWVudSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmRyb3Bkb3duLm1lbnUgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAwO1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuZHJvcGRvd24ubWVudS5zbWFsbC1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5zbWFsbC1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUuc21hbGwtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LnNtYWxsLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5zbWFsbC12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfSB9XG5cbi5kcm9wZG93bi5tZW51LmFsaWduLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICB3aWR0aDogMTAwcHg7IH1cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC02cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRURGM0ZGOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAxMnB4IDA7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgPiBsaSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDExO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZSwgdmlzaWJpbGl0eSAwLjVzIGVhc2U7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLWNsb3NhYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ub2ZmLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI0VERjNGRjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI0VERjNGRjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ucG9zaXRpb24tbGVmdCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMTAwdnc7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwdncpOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBvc2l0aW9uLWxlZnQge1xuICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00ODBweCk7IH0gfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWxlZnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwdncpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDgwcHgpOyB9IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWxlZnQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLWxlZnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHZ3KTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ4MHB4KTsgfSB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMCBub25lOyB9XG5cbi5wb3NpdGlvbi1yaWdodCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDEwMHZ3O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwdncpOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiA0ODBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0ODBweCk7IH0gfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwdncpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDgwcHgpOyB9IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1yaWdodC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHZ3KTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tcmlnaHQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDgwcHgpOyB9IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMCBub25lOyB9XG5cbi5wb3NpdGlvbi10b3Age1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tdG9wLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDAgbm9uZTsgfVxuXG4ucG9zaXRpb24tYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgaGVpZ2h0OiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tYm90dG9tLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1ib3R0b20uaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDAgbm9uZTsgfVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtdHJhbnNpdGlvbi1vdmVybGFwLCAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3Itc21hbGwge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXNtYWxsIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1zbWFsbCB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXNtYWxsIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3Itc21hbGwge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1zbWFsbCAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXNtYWxsIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3Itc21hbGwgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwdnc7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXNtYWxsIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXNtYWxsIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXNtYWxsIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMTAwdnc7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3Itc21hbGwgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHZ3OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1zbWFsbCB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1zbWFsbCAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1zbWFsbCB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZ3OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLXNtYWxsIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDB2dzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogNDgwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDQ4MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0ODBweDsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0ODBweDsgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXRvcCB7XG4gICAgICBtYXJnaW4tdG9wOiA0ODBweDsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDQ4MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQ4MHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDgwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDQ4MHB4OyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDQ4MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0ODBweDsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDQ4MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDQ4MHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiA0ODBweDsgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0ODBweDsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDgwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXNtYWxsIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3Itc21hbGwucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1zbWFsbC5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1zbWFsbC5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3Itc21hbGwucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLXNtYWxsIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uYWxpZ24tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmFsaWduLWxlZnQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnRpbnktb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi50aW55LW9yZGVyLTIge1xuICBvcmRlcjogMjsgfVxuXG4udGlueS1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnRpbnktb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi50aW55LW9yZGVyLTUge1xuICBvcmRlcjogNTsgfVxuXG4udGlueS1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnNtYWxsLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5zbWFsbC1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAuc21hbGwtb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLnNtYWxsLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5zbWFsbC1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAuc21hbGwtb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWVkaXVtLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5sYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uZmxleC1jaGlsZC1hdXRvIHtcbiAgZmxleDogMSAxIGF1dG87IH1cblxuLmZsZXgtY2hpbGQtZ3JvdyB7XG4gIGZsZXg6IDEgMCBhdXRvOyB9XG5cbi5mbGV4LWNoaWxkLXNocmluayB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG5cbi5mbGV4LWRpci1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi5mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4uZmxleC1kaXItY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4uZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnNtYWxsLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5zbWFsbC1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5zbWFsbC1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC5zbWFsbC1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLnNtYWxsLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAuc21hbGwtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAuc21hbGwtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5zbWFsbC1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm1lZGl1bS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5tZWRpdW0tZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAubWVkaXVtLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubWVkaXVtLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyOS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci10aW55LW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuc2hvdy1mb3ItdGlueS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuaGlkZS1mb3Itc21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkgYW5kIChtYXgtd2lkdGg6IDQ3Ljk5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI5Ljk5ODc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50OyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNsb3cge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4ubG9uZy1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLnNoYWtlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlLTc7IH1cblxuQGtleWZyYW1lcyBzaGFrZS03IHtcbiAgMCUsIDEwJSwgMjAlLCAzMCUsIDQwJSwgNTAlLCA2MCUsIDcwJSwgODAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7IH1cbiAgNSUsIDE1JSwgMjUlLCAzNSUsIDQ1JSwgNTUlLCA2NSUsIDc1JSwgODUlLCA5NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpOyB9IH1cblxuLnNwaW4tY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zcGluLWNjdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWNjdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY2N3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH0gfVxuXG4ud2lnZ2xlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHdpZ2dsZS03ZGVnOyB9XG5cbkBrZXlmcmFtZXMgd2lnZ2xlLTdkZWcge1xuICA0MCUsIDUwJSwgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3ZGVnKTsgfVxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC03ZGVnKTsgfVxuICAwJSwgMzAlLCA3MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNoYWtlLFxuLnNwaW4tY3csXG4uc3Bpbi1jY3csXG4ud2lnZ2xlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsgfVxuXG4uaW5maW5pdGUge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4uc2xvdyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4ubG9uZy1kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG5ib2R5IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuXG4ucGF0aC11c2VyLnVzZXItbm90LWxvZ2dlZC1pbiBmb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXRoLXVzZXIudXNlci1ub3QtbG9nZ2VkLWluIGZvcm0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDsgfSB9XG5cbi5kcm9wYnV0dG9uID4gLmRyb3BidXR0b24tYWN0aW9uID4gc3BhbiB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uZHJvcGJ1dHRvbiAuZHJvcGJ1dHRvbi10b2dnbGUge1xuICBib3R0b206IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmRyb3BidXR0b24gLmRyb3BidXR0b24tdG9nZ2xlIC5kcm9wYnV0dG9uLWFycm93IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kcm9wLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDE4cHggMTNweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZHJvcGJ1dHRvbiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREYzRkY7IH1cbiAgLmRyb3BidXR0b24gdWwgLmRyb3BidXR0b24tYWN0aW9uIGEsIC5kcm9wYnV0dG9uIHVsIC5kcm9wYnV0dG9uLWFjdGlvbiBzcGFuIHtcbiAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuZHJvcGJ1dHRvbiB1bCAuZHJvcGJ1dHRvbi1hY3Rpb24gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmRyb3BidXR0b24gdWwgLmRyb3BidXR0b24tYWN0aW9uIGE6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogNnB4O1xuICAgICAgbGVmdDogMTVweDtcbiAgICAgIHdpZHRoOiAxN3B4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NEZGO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjI1cyBlYXNlLW91dDsgfVxuICAgIC5kcm9wYnV0dG9uIHVsIC5kcm9wYnV0dG9uLWFjdGlvbiBhOmhvdmVyOmFmdGVyLCAuZHJvcGJ1dHRvbiB1bCAuZHJvcGJ1dHRvbi1hY3Rpb24gYTpmb2N1czphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5kcm9wYnV0dG9uIHVsIC5hY3RpdmUtbGFuZ3VhZ2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLmxhbmd1YWdlLWxpbmsge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi5kb21haW4tY3VzdG9tLW5hdi1ibG9jayB1bCBsaSBhLCAuZG9tYWluLWN1c3RvbS1uYXYtYmxvY2sgdWwgbGkgc3BhbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuW2RhdGEtZG9tYWluLWlkXSB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogOHB4OyB9XG5cbnVsIGxpIHVsIFtkYXRhLWRvbWFpbi1pZF0ge1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4OyB9XG5cbltkYXRhLWRvbWFpbi1pZD0naHVwaWNvX2V1J10ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaHVwaWNvX2NvbS5zdmdcIik7IH1cblxuW2RhdGEtZG9tYWluLWlkPSdodXBpY29fYmUnXSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9odXBpY29fYmUuc3ZnXCIpOyB9XG5cbltkYXRhLWRvbWFpbi1pZD0naHVwaWNvX2ZyJ10ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaHVwaWNvX2ZyLnN2Z1wiKTsgfVxuXG5bZGF0YS1kb21haW4taWQ9J2h1cGljb19ubCddIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2h1cGljb19ubC5zdmdcIik7IH1cblxuLndyYXBwZXItcGFkZGluZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDMuMTI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDMuMTI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLndyYXBwZXItcGFkZGluZyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjg3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS44NzVyZW07IH0gfVxuXG4ucm93IC5yb3cge1xuICBmbGV4OiAxOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tbm8tY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLW5vLXBhZGRpbmctcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG4uZmllbGQtbmFtZS1ib2R5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAqOmxhc3QtY2hpbGQsXG4uZmllbGQtdHlwZS10ZXh0LWxvbmcgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZpZWxkLW5hbWUtYm9keSBhLFxuLmZpZWxkLXR5cGUtdGV4dC1sb25nIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uaW50cm8sXG4uZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbi5wYXJhZ3JhcGgtaXRlbXMgPiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLFxuLmZpZWxkLWxhYmVsLFxuLnRhYnMtd3JhcHBlciAudGFicyBhLFxuLnRhYnMtd3JhcHBlciAuYWNjb3JkaW9uIGEsXG4ucHJvZHVjdC12YXJpYXRpb24gaDIsXG4ucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgLmNvbnRlbnQgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzID4gLmNvbnRlbnQgPiAuZmllbGQtdHlwZS10ZXh0LWxvbmcsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0ID4gLmNvbnRlbnQgPiAuZmllbGQtdHlwZS10ZXh0LWxvbmcsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyA+IC5jb250ZW50ID4gLmZpZWxkLXR5cGUtdGV4dC1sb25nLFxuLnBhcmFncmFwaC0tdHlwZS0tam9icyA+IC5jb250ZW50ID4gLmZpZWxkLXR5cGUtdGV4dC1sb25nLFxuLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZSAuZmllbGQtdHlwZS10ZXh0LWxvbmcge1xuICBsZXR0ZXItc3BhY2luZzogLjRweDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtc2l6ZTogMS4zMTI1cmVtOyB9XG5cbi5maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjMDA1NEZGOyB9XG5cbi5maWVsZC1sYWJlbCxcbi50YWJzLXdyYXBwZXIgLnRhYnMgLmlzLWFjdGl2ZSBhIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uaXRlbS1saXN0ID4gdWwge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG4uaXRlbS1saXN0ID4gLmxpbmtpY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IGF1dG8gY2FsYygtNHB4IC0gOHB4KTsgfVxuICAuaXRlbS1saXN0ID4gLmxpbmtpY29uID4gbGkge1xuICAgIG1hcmdpbjogYXV0byA0cHg7IH1cbiAgLml0ZW0tbGlzdCA+IC5saW5raWNvbiBhIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLml0ZW0tbGlzdCA+IC5saW5raWNvbiBhIC5pY29uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgIC5pdGVtLWxpc3QgPiAubGlua2ljb24gYTpub3QoW2hyZWYqPVwiZmFjZWJvb2tcIl0pIC5pY29uIHtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjI1cyBlYXNlLW91dDtcbiAgICAgIGNvbG9yOiAjMDEwMDIxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTRGRjsgfVxuICAgIC5pdGVtLWxpc3QgPiAubGlua2ljb24gYTpub3QoW2hyZWYqPVwiZmFjZWJvb2tcIl0pOmhvdmVyIC5pY29uLCAuaXRlbS1saXN0ID4gLmxpbmtpY29uIGE6bm90KFtocmVmKj1cImZhY2Vib29rXCJdKTpmb2N1cyAuaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB9XG4gIC5pdGVtLWxpc3QgPiAubGlua2ljb24gYVtocmVmKj1cImZhY2Vib29rXCJdIHtcbiAgICBmb250LXNpemU6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzAwNTRGRjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2Utb3V0OyB9XG4gICAgLml0ZW0tbGlzdCA+IC5saW5raWNvbiBhW2hyZWYqPVwiZmFjZWJvb2tcIl06aG92ZXIsIC5pdGVtLWxpc3QgPiAubGlua2ljb24gYVtocmVmKj1cImZhY2Vib29rXCJdOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5saW5raWNvbl9fdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cblxudWxbZGF0YS1kcnVwYWwtdmlld3MtaW5maW5pdGUtc2Nyb2xsLXBhZ2VyXSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbmRpdltjbGFzcyo9XCJmaWVsZC10eXBlLXRleHRcIl0gdWwge1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICBkaXZbY2xhc3MqPVwiZmllbGQtdHlwZS10ZXh0XCJdIHVsIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgZGl2W2NsYXNzKj1cImZpZWxkLXR5cGUtdGV4dFwiXSB1bCBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogJy0nO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDsgfVxuXG5maWd1cmUub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBmaWd1cmUub3ZlcmxheTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGM0ZGOyB9XG4gIGZpZ3VyZS5vdmVybGF5ID4gaW1nLCBmaWd1cmUub3ZlcmxheSA+IHBpY3R1cmUgaW1nLCBmaWd1cmUub3ZlcmxheSAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxOyB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmUsXG4ucGFnZS50ZWFzZXIsXG4ucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0xLFxuLnBhcnRuZXIudGVhc2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgcGFkZGluZzogMzBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlLFxuICAgIC5wYWdlLnRlYXNlcixcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0xLFxuICAgIC5wYXJ0bmVyLnRlYXNlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZSxcbiAgICAucGFnZS50ZWFzZXIsXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy50ZWFzZXIubGV2ZWwtMSxcbiAgICAucGFydG5lci50ZWFzZXIge1xuICAgICAgcGFkZGluZzogNDBweCA2OXB4IDU4cHggNjlweDsgfSB9XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmUgaDMsXG4gIC5wYWdlLnRlYXNlciBoMyxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy50ZWFzZXIubGV2ZWwtMSBoMyxcbiAgLnBhcnRuZXIudGVhc2VyIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmUgYS5saW5rLFxuICAucGFnZS50ZWFzZXIgYS5saW5rLFxuICAucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0xIGEubGluayxcbiAgLnBhcnRuZXIudGVhc2VyIGEubGluayB7XG4gICAgbWFyZ2luLXRvcDogYXV0bzsgfVxuXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlIC5maWVsZC1uYW1lLWZpZWxkLXRleHQsXG4ucGFnZS50ZWFzZXIgLmZpZWxkLW5hbWUtYm9keSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgLmZlYXR1cmVzLWl0ZW1zLFxuLnZpZXctaWQtam9icy52aWV3LWRpc3BsYXktdGVhc2VycyA+IC5yb3cgPiAucm93LFxuLnZpZXctaWQtcGFydG5lcnMtbm9kZXMudmlldy1kaXNwbGF5LXRlYXNlcnMgPiAucm93ID4gLnJvdyxcbi52aWV3LWlkLXByb2R1Y3QtY2F0ZWdvcmllcyA+IC5yb3cgPiAucm93LFxuLnZpZXctaWQtcHJvZHVjdHMudmlldy1kaXNwbGF5LXRlYXNlcnMgPiAucm93ID4gLnJvdyB7XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4OyB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIC5mZWF0dXJlcy1pdGVtcyA+IGRpdixcbi52aWV3LWlkLWpvYnMudmlldy1kaXNwbGF5LXRlYXNlcnMgLnZpZXdzLXJvdyxcbi52aWV3LWlkLXBhcnRuZXJzLW5vZGVzLnZpZXctZGlzcGxheS10ZWFzZXJzIC52aWV3cy1yb3csXG4udmlldy1pZC1wcm9kdWN0cy52aWV3LWRpc3BsYXktdGVhc2VycyAudmlld3Mtcm93LFxuLnZpZXctaWQtcHJvZHVjdC1jYXRlZ29yaWVzIC52aWV3cy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5qb2IudGVhc2VyIC50ZWFzZXItY29udGVudCxcbi5wcm9kdWN0LnRlYXNlciAudGVhc2VyLWNvbnRlbnQsXG4ucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0yIC50ZWFzZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDMwcHg7IH1cblxuLmpvYi50ZWFzZXIgaDMsXG4ucHJvZHVjdC50ZWFzZXIgaDMsXG4ucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0yIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBmb250LXNpemU7IH1cblxuLmpvYi50ZWFzZXIgZmlndXJlLm92ZXJsYXkgaW1nLFxuLnByb2R1Y3QudGVhc2VyIGZpZ3VyZS5vdmVybGF5IGltZyxcbi5wcm9kdWN0LWNhdGVnb3JpZXMudGVhc2VyLmxldmVsLTIgZmlndXJlLm92ZXJsYXkgaW1nIHtcbiAgb3BhY2l0eTogLjI7XG4gIHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgb3BhY2l0eTsgfVxuXG4uam9iLnRlYXNlciBhLFxuLnByb2R1Y3QudGVhc2VyIGEsXG4ucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0yIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGJhY2tncm91bmQtY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5qb2IudGVhc2VyIGE6aG92ZXIsIC5qb2IudGVhc2VyIGE6Zm9jdXMsXG4gIC5wcm9kdWN0LnRlYXNlciBhOmhvdmVyLFxuICAucHJvZHVjdC50ZWFzZXIgYTpmb2N1cyxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy50ZWFzZXIubGV2ZWwtMiBhOmhvdmVyLFxuICAucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0yIGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7IH1cbiAgICAuam9iLnRlYXNlciBhOmhvdmVyIGZpZ3VyZS5vdmVybGF5IGltZywgLmpvYi50ZWFzZXIgYTpmb2N1cyBmaWd1cmUub3ZlcmxheSBpbWcsXG4gICAgLnByb2R1Y3QudGVhc2VyIGE6aG92ZXIgZmlndXJlLm92ZXJsYXkgaW1nLFxuICAgIC5wcm9kdWN0LnRlYXNlciBhOmZvY3VzIGZpZ3VyZS5vdmVybGF5IGltZyxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0yIGE6aG92ZXIgZmlndXJlLm92ZXJsYXkgaW1nLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMudGVhc2VyLmxldmVsLTIgYTpmb2N1cyBmaWd1cmUub3ZlcmxheSBpbWcge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5qb2IudGVhc2VyIGE6aG92ZXIgaDMsIC5qb2IudGVhc2VyIGE6Zm9jdXMgaDMsXG4gICAgLnByb2R1Y3QudGVhc2VyIGE6aG92ZXIgaDMsXG4gICAgLnByb2R1Y3QudGVhc2VyIGE6Zm9jdXMgaDMsXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy50ZWFzZXIubGV2ZWwtMiBhOmhvdmVyIGgzLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMudGVhc2VyLmxldmVsLTIgYTpmb2N1cyBoMyB7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4uZ2FsbGVyeS10aHVtYnMge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi5nYWxsZXJ5LXRvcCAuc3dpcGVyLXdyYXBwZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5zd2lwZXItYnV0dG9uLWN1c3RvbSB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9saW5rLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERjNGRjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IG9wYWNpdHk7XG4gIG9wYWNpdHk6IC41OyB9XG4gIC5zd2lwZXItYnV0dG9uLWN1c3RvbTpob3ZlciwgLnN3aXBlci1idXR0b24tY3VzdG9tOmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5zd2lwZXItYnV0dG9uLWN1c3RvbS1wcmV2IHtcbiAgbGVmdDogNXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoLTEpOyB9XG5cbi5zd2lwZXItYnV0dG9uLWN1c3RvbS1uZXh0IHtcbiAgcmlnaHQ6IDVweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5nYWxsZXJ5LXRodW1icyAuc3dpcGVyLXNsaWRlIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbnVsLmxpbmtzLXdyYXBwZXIge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDsgfVxuICB1bC5saW5rcy13cmFwcGVyIGxpOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuLmNvbnRlbnRfX3NpZGViYXIgLmJsb2NrX193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2Y4ZmY7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5jb250ZW50X19zaWRlYmFyIC5ibG9ja19fd3JhcHBlciA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY29udGVudF9fc2lkZWJhciAuYmxvY2tfX3dyYXBwZXIgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYnV0dG9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IC40cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cblxuLmJ1dHRvbi11cHBlcixcbi5idXR0b24tZ3JvdXAgLmJ1dHRvbi11cHBlciB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubGluaywgLmJhY2stbGluayxcbi5maWxlLWxpbmsge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNjAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmxpbmssIC5iYWNrLWxpbmssXG4gICAgLmZpbGUtbGluayB7XG4gICAgICBmb250LXNpemU6IDIxcHg7IH0gfVxuXG4ubGluaywgLmJhY2stbGluayB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1vdXQ7IH1cbiAgLmxpbmsgc3BhbiwgLmJhY2stbGluayBzcGFuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmxpbmsgc3BhbjpiZWZvcmUsIC5iYWNrLWxpbmsgc3BhbjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiBjYWxjKDI0cHggKyAxMHB4KTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9saW5rLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7IH1cbiAgLmxpbms6aG92ZXIsIC5saW5rOmZvY3VzLCAuYmFjay1saW5rOmhvdmVyLCAuYmFjay1saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMkM4NztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4ubGluayBzcGFuIHtcbiAgcGFkZGluZy1yaWdodDogY2FsYygyNHB4ICsgMTBweCk7IH1cbiAgLmxpbmsgc3BhbjpiZWZvcmUge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5iYWNrLWxpbmsgc3BhbiB7XG4gIHBhZGRpbmctbGVmdDogY2FsYygyNHB4ICsgMTBweCk7IH1cbiAgLmJhY2stbGluayBzcGFuOmJlZm9yZSB7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cblxuLmZpbGUtbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDJDODc7XG4gIGNvbG9yOiAjMDA1NEZGO1xuICBwYWRkaW5nOiAxM3B4IDI0cHggMTJweCAyNHB4O1xuICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGFsbDtcbiAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmZpbGUtbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2Rvd25sb2FkLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGludmVydCgxOCUpIHNlcGlhKDgyJSkgc2F0dXJhdGUoMzkzMSUpIGh1ZS1yb3RhdGUoMjIxZGVnKSBicmlnaHRuZXNzKDEwNSUpIGNvbnRyYXN0KDExMiUpOyB9XG4gIC5maWxlLWxpbms6aG92ZXIsIC5maWxlLWxpbms6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuZmlsZS1saW5rOmhvdmVyOmJlZm9yZSwgLmZpbGUtbGluazpmb2N1czpiZWZvcmUge1xuICAgICAgZmlsdGVyOiBpbnZlcnQoOTQlKSBzZXBpYSgwJSkgc2F0dXJhdGUoNzQ4OSUpIGh1ZS1yb3RhdGUoMjQ0ZGVnKSBicmlnaHRuZXNzKDEwOCUpIGNvbnRyYXN0KDEwMyUpOyB9XG5cbi5oYW1idXJnZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMjRweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5oYW1idXJnZXI6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzAwNTRGRjtcbiAgICBib3gtc2hhZG93OiAwIDExcHggMCAjMDA1NEZGLCAwIDIycHggMCAjMDA1NEZGO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5oYW1idXJnZXI6aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDEwMDIxO1xuICAgIGJveC1zaGFkb3c6IDAgMTFweCAwICMwMTAwMjEsIDAgMjJweCAwICMwMTAwMjE7IH1cblxuLmNsb3NlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNsb3NlIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7IH1cbiAgICAuY2xvc2Ugc3BhbjpiZWZvcmUsIC5jbG9zZSBzcGFuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA3cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGJhY2tncm91bmQtY29sb3I7IH1cbiAgICAuY2xvc2Ugc3BhbjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgLmNsb3NlIHNwYW46YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAuY2xvc2U6aG92ZXIgc3BhbjpiZWZvcmUsIC5jbG9zZTpob3ZlciBzcGFuOmFmdGVyLCAuY2xvc2U6Zm9jdXMgc3BhbjpiZWZvcmUsIC5jbG9zZTpmb2N1cyBzcGFuOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1NEZGOyB9XG5cbiNibG9jay10b2dnbGUtb2ZmLWNhbnZhcy1yaWdodCBidXR0b24sXG4jYmxvY2stdG9nZ2xlLW9mZi1jYW52YXMtcmlnaHQtb2ZmLWNhbnZhcyBidXR0b24ge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB6LWluZGV4OiA5OTsgfVxuXG4ucmVnaW9uLWhlYWRlciAubWVudSBhOm5vdCguYnV0dG9uKSwgLnJlZ2lvbi1oZWFkZXIgLm1lbnUgc3Bhbixcbi5yZWdpb24tZm9vdGVyIC5tZW51IGE6bm90KC5idXR0b24pLFxuLnJlZ2lvbi1mb290ZXIgLm1lbnUgc3Bhbixcbi5yZWdpb24tb2ZmLWNhbnZhcy1yaWdodCAubWVudSBhOm5vdCguYnV0dG9uKSxcbi5yZWdpb24tb2ZmLWNhbnZhcy1yaWdodCAubWVudSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucmVnaW9uLWhlYWRlciAubWVudSBhOm5vdCguYnV0dG9uKTpiZWZvcmUsIC5yZWdpb24taGVhZGVyIC5tZW51IHNwYW46YmVmb3JlLFxuICAucmVnaW9uLWZvb3RlciAubWVudSBhOm5vdCguYnV0dG9uKTpiZWZvcmUsXG4gIC5yZWdpb24tZm9vdGVyIC5tZW51IHNwYW46YmVmb3JlLFxuICAucmVnaW9uLW9mZi1jYW52YXMtcmlnaHQgLm1lbnUgYTpub3QoLmJ1dHRvbik6YmVmb3JlLFxuICAucmVnaW9uLW9mZi1jYW52YXMtcmlnaHQgLm1lbnUgc3BhbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDZweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxN3B4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXMgZWFzZS1vdXQ7IH1cbiAgLnJlZ2lvbi1oZWFkZXIgLm1lbnUgYTpub3QoLmJ1dHRvbik6aG92ZXI6YmVmb3JlLCAucmVnaW9uLWhlYWRlciAubWVudSBhOm5vdCguYnV0dG9uKTpmb2N1czpiZWZvcmUsIC5yZWdpb24taGVhZGVyIC5tZW51IHNwYW46aG92ZXI6YmVmb3JlLCAucmVnaW9uLWhlYWRlciAubWVudSBzcGFuOmZvY3VzOmJlZm9yZSxcbiAgLnJlZ2lvbi1mb290ZXIgLm1lbnUgYTpub3QoLmJ1dHRvbik6aG92ZXI6YmVmb3JlLFxuICAucmVnaW9uLWZvb3RlciAubWVudSBhOm5vdCguYnV0dG9uKTpmb2N1czpiZWZvcmUsXG4gIC5yZWdpb24tZm9vdGVyIC5tZW51IHNwYW46aG92ZXI6YmVmb3JlLFxuICAucmVnaW9uLWZvb3RlciAubWVudSBzcGFuOmZvY3VzOmJlZm9yZSxcbiAgLnJlZ2lvbi1vZmYtY2FudmFzLXJpZ2h0IC5tZW51IGE6bm90KC5idXR0b24pOmhvdmVyOmJlZm9yZSxcbiAgLnJlZ2lvbi1vZmYtY2FudmFzLXJpZ2h0IC5tZW51IGE6bm90KC5idXR0b24pOmZvY3VzOmJlZm9yZSxcbiAgLnJlZ2lvbi1vZmYtY2FudmFzLXJpZ2h0IC5tZW51IHNwYW46aG92ZXI6YmVmb3JlLFxuICAucmVnaW9uLW9mZi1jYW52YXMtcmlnaHQgLm1lbnUgc3Bhbjpmb2N1czpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLnJlZ2lvbi1oZWFkZXIgLm1lbnUgc3Bhbixcbi5yZWdpb24tZm9vdGVyIC5tZW51IHNwYW4sXG4ucmVnaW9uLW9mZi1jYW52YXMtcmlnaHQgLm1lbnUgc3BhbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAzOHB4OyB9XG4gIC5yZWdpb24taGVhZGVyIC5tZW51IHNwYW46OmJlZm9yZSxcbiAgLnJlZ2lvbi1mb290ZXIgLm1lbnUgc3Bhbjo6YmVmb3JlLFxuICAucmVnaW9uLW9mZi1jYW52YXMtcmlnaHQgLm1lbnUgc3Bhbjo6YmVmb3JlIHtcbiAgICBib3R0b206IC00cHg7IH1cblxuLnJlZ2lvbi1oZWFkZXIgbmF2ID4gLm1lbnUgPiBsaS5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbCA+IGEsXG4ucmVnaW9uLWhlYWRlciAuZHJvcGRvd24ubWVudSA+IGxpID4gYS5pcy1hY3RpdmUsXG4ucmVnaW9uLWZvb3RlciBuYXYgPiAubWVudSA+IGxpLm1lbnUtaXRlbS0tYWN0aXZlLXRyYWlsID4gYSxcbi5yZWdpb24tZm9vdGVyIC5kcm9wZG93bi5tZW51ID4gbGkgPiBhLmlzLWFjdGl2ZSxcbi5yZWdpb24tb2ZmLWNhbnZhcy1yaWdodCBuYXYgPiAubWVudSA+IGxpLm1lbnUtaXRlbS0tYWN0aXZlLXRyYWlsID4gYSxcbi5yZWdpb24tb2ZmLWNhbnZhcy1yaWdodCAuZHJvcGRvd24ubWVudSA+IGxpID4gYS5pcy1hY3RpdmUge1xuICBjb2xvcjogIzAwNTRGRjsgfVxuXG4uZHJvcGRvd24ubWVudSB1bCBhOm5vdCguaXMtYWN0aXZlKSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLm1lbnUgYS5idXR0b24ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnJlZ2lvbi1oZWFkZXIgW2lkKj1cIm1haW4tbWVudVwiXSAuZHJvcGRvd24ubWVudSB7XG4gICAgbWFyZ2luOiAwIGNhbGMoLTIwcHggLyAyKTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnJlZ2lvbi1oZWFkZXIgW2lkKj1cIm1haW4tbWVudVwiXSAuZHJvcGRvd24ubWVudSB7XG4gICAgbWFyZ2luOiAwIGNhbGMoLTMwcHggLyAyKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5yZWdpb24taGVhZGVyIFtpZCo9XCJtYWluLW1lbnVcIl0gLmRyb3Bkb3duLm1lbnUgPiBsaSB7XG4gICAgbWFyZ2luOiAwIGNhbGMoMjBweCAvIDIpOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAucmVnaW9uLWhlYWRlciBbaWQqPVwibWFpbi1tZW51XCJdIC5kcm9wZG93bi5tZW51ID4gbGkge1xuICAgIG1hcmdpbjogMCBjYWxjKDMwcHggLyAyKTsgfSB9XG5cbi5yZWdpb24taGVhZGVyIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgcGFkZGluZzogMThweCAwOyB9XG4gIC5yZWdpb24taGVhZGVyIC5kcm9wZG93bi5tZW51IHVsIGxpIGEge1xuICAgIHBhZGRpbmc6IDEycHggMjBweDsgfVxuICAgIC5yZWdpb24taGVhZGVyIC5kcm9wZG93bi5tZW51IHVsIGxpIGE6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDIwcHg7IH1cblxuLnJlZ2lvbi1oZWFkZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEsIC5yZWdpb24taGVhZGVyIC5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBzcGFuIHtcbiAgcGFkZGluZy1yaWdodDogMTJweDsgfVxuICAucmVnaW9uLWhlYWRlciAuZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTphZnRlciwgLnJlZ2lvbi1oZWFkZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IHNwYW46YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kcm9wLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5yZWdpb24taGVhZGVyIC5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBzcGFuOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogYXV0bzsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAucmVnaW9uLWZvb3RlciAubWVudTpub3QoLmhvcml6b250YWwpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5yZWdpb24tZm9vdGVyIC5kcm9wZG93bi5tZW51IHtcbiAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgbWFyZ2luOiAwIC0xNXB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnJlZ2lvbi1mb290ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgIHBhZGRpbmc6IDAgMTVweDsgfSB9XG5cbi5yZWdpb24tZm9vdGVyIC5kcm9wZG93bi5tZW51IGEge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnJlZ2lvbi1mb290ZXIgLmRyb3Bkb3duLm1lbnUgdWwge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjsgfSB9XG5cbi5yZWdpb24tZm9vdGVyIC5kcm9wZG93bi5tZW51IHVsIGEge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cbiAgLnJlZ2lvbi1mb290ZXIgLmRyb3Bkb3duLm1lbnUgdWwgYTpiZWZvcmUge1xuICAgIGxlZnQ6IDMwcHg7IH1cbiAgLnJlZ2lvbi1mb290ZXIgLmRyb3Bkb3duLm1lbnUgdWwgYTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGRkZGRkY7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMThweDtcbiAgICBsZWZ0OiAwOyB9XG4gIC5yZWdpb24tZm9vdGVyIC5kcm9wZG93bi5tZW51IHVsIGEuaXMtYWN0aXZlOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDA1NEZGOyB9XG5cbltpZCo9XCJtYWluLW1lbnUtb2ZmLWNhbnZhc1wiXSAubWVudSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBbaWQqPVwibWFpbi1tZW51LW9mZi1jYW52YXNcIl0gLm1lbnUgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIFtpZCo9XCJtYWluLW1lbnUtb2ZmLWNhbnZhc1wiXSAubWVudSB1bCBhIHtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG5cbltpZCo9XCJtYWluLW1lbnUtb2ZmLWNhbnZhc1wiXSAuaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gIG1hcmdpbjogMDsgfVxuXG5baWQqPVwibWFpbi1tZW51LW9mZi1jYW52YXNcIl0gLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW4tcmlnaHQ6IC00OHB4OyB9XG4gIFtpZCo9XCJtYWluLW1lbnUtb2ZmLWNhbnZhc1wiXSAuc3VibWVudS10b2dnbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kcm9wLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDhweCAxN3B4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIFtpZCo9XCJtYWluLW1lbnUtb2ZmLWNhbnZhc1wiXSAuc3VibWVudS10b2dnbGU6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuW2lkKj1cImhpZ2hsaWdodC1tZW51XCJdIC5tZW51IHtcbiAgZ2FwOiA4cHg7IH1cblxuW2lkKj1cImhpZ2hsaWdodC1tZW51XCJdID4gLm1lbnUgPiBsaS5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbCA+IGEuYnV0dG9uLFxuW2lkKj1cImhpZ2hsaWdodC1tZW51XCJdIGEuYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDJDODc7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG4gIFtpZCo9XCJoaWdobGlnaHQtbWVudVwiXSA+IC5tZW51ID4gbGkubWVudS1pdGVtLS1hY3RpdmUtdHJhaWwgPiBhLmJ1dHRvbjpob3ZlciwgW2lkKj1cImhpZ2hsaWdodC1tZW51XCJdID4gLm1lbnUgPiBsaS5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbCA+IGEuYnV0dG9uOmZvY3VzLXZpc2libGUsXG4gIFtpZCo9XCJoaWdobGlnaHQtbWVudVwiXSBhLmJ1dHRvbi5pcy1hY3RpdmU6aG92ZXIsXG4gIFtpZCo9XCJoaWdobGlnaHQtbWVudVwiXSBhLmJ1dHRvbi5pcy1hY3RpdmU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMwMDU0RkY7IH1cblxubmF2I2Jsb2NrLWhpZ2hsaWdodC1tZW51IC5tZW51IGxpOm50aC1vZi10eXBlKDMpLCBuYXYjYmxvY2staGlnaGxpZ2h0LW1lbnUgLm1lbnUgbGk6bnRoLW9mLXR5cGUoNCkge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuI29mZkNhbnZhc1JpZ2h0IHtcbiAgcGFkZGluZy10b3A6IDY1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2NXB4OyB9XG5cbi5yZWdpb24tb2ZmLWNhbnZhcy1yaWdodCAuZHJvcGJ1dHRvbi1tdWx0aXBsZSAuZHJvcGJ1dHRvbi13aWRnZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbiNibG9jay10b2dnbGUtb2ZmLWNhbnZhcy1yaWdodC1vZmYtY2FudmFzIGJ1dHRvbiB7XG4gIG1hcmdpbjogMCBhdXRvIDQ1cHggYXV0bzsgfVxuXG5baWQqPVwibWFpbi1tZW51LW9mZi1jYW52YXNcIl0ge1xuICBtYXJnaW4tYm90dG9tOiA2NXB4OyB9XG5cbiNibG9jay1zaXRlLWJyYW5kaW5nLW9mZi1jYW52YXMge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gICNibG9jay1zaXRlLWJyYW5kaW5nLW9mZi1jYW52YXMgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDE5MHB4OyB9XG5cbiNibG9jay1oaWdobGlnaHQtbWVudS1vZmYtY2FudmFzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG4gICNibG9jay1oaWdobGlnaHQtbWVudS1vZmYtY2FudmFzIC5tZW51IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4jYmxvY2stZHJvcGRvd24tbGFuZ3VhZ2Utb2ZmLWNhbnZhcyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGFicy0tcHJpbWFyeSxcbi50YWJzLS1zZWNvbmRhcnkge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzk3OTc5NztcbiAgbWFyZ2luOiAxcmVtIGF1dG87IH1cbiAgLnRhYnMtLXByaW1hcnkgYSxcbiAgLnRhYnMtLXNlY29uZGFyeSBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGM0ZGO1xuICAgIHBhZGRpbmc6IDEycHg7IH1cbiAgICAudGFicy0tcHJpbWFyeSBhLmlzLWFjdGl2ZSxcbiAgICAudGFicy0tc2Vjb25kYXJ5IGEuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDJDODc7XG4gICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAudGFicy0tcHJpbWFyeSBhOmhvdmVyLCAudGFicy0tcHJpbWFyeSBhOmZvY3VzLFxuICAgIC50YWJzLS1zZWNvbmRhcnkgYTpob3ZlcixcbiAgICAudGFicy0tc2Vjb25kYXJ5IGE6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTRGRjtcbiAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi50YWJzIGEge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGFsbDsgfVxuICAudGFicyBhOmhvdmVyLCAudGFicyBhOmZvY3VzLCAudGFicyBhLmlzLWFjdGl2ZTpob3ZlciwgLnRhYnMgYS5pcy1hY3RpdmU6Zm9jdXMge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7IH1cblxuLnRhYnMgbGk6Zmlyc3QtY2hpbGQgYS5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG5cbi50YWJzIGEuYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4udGFicy1jb250ZW50IGgyLFxuLmFjY29yZGlvbi1jb250ZW50IGgyIHtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuLnRhYnMtdGl0bGUge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC50YWJzLXRpdGxlIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cblxuLnRhYnMtd3JhcHBlciAudGFicyB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC50YWJzLXdyYXBwZXIgLnRhYnMgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VERjNGRjsgfVxuICAudGFicy13cmFwcGVyIC50YWJzIC5pcy1hY3RpdmUgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTRGRjsgfVxuICAudGFicy13cmFwcGVyIC50YWJzIGE6aG92ZXIsIC50YWJzLXdyYXBwZXIgLnRhYnMgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMkM4NzsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTk4NzVlbSkge1xuICAudGFicy13cmFwcGVyIC50YWJzLXBhbmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi5wYWdlLmZ1bGwgaDEsXG4uaG9tZSBoMi5zdWItdGl0bGUsXG4uYXJ0aWNsZS5mdWxsIGgxLFxuLmpvYi5mdWxsIGgxLFxuLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGgxLFxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0IGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzIGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyBoMixcbi5wcm9kdWN0LmZ1bGwgaDEge1xuICBmb250LXdlaWdodDogMzAwO1xuICBsZXR0ZXItc3BhY2luZzogMS4zMnB4O1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG5oMyB7XG4gIGxldHRlci1zcGFjaW5nOiAuNTZweDsgfVxuXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyBoMixcbi5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyBoMixcbi5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1yZWZlcmVuY2VzIGgyIHtcbiAgZm9udC1zaXplOiAyLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIGgyLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgaDIsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgaDIsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tam9icyBoMixcbiAgICAucGFyYWdyYXBoLS10eXBlLS1yZWZlcmVuY2VzIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogNC4zNzVyZW07IH0gfVxuXG4uYXJ0aWNsZS50ZWFzZXIgaDIsXG4uYXJ0aWNsZS5mZWF0dXJlZCBoMiB7XG4gIGZvbnQtc2l6ZTogMS4zMTI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmFydGljbGUudGVhc2VyIGgyLFxuICAgIC5hcnRpY2xlLmZlYXR1cmVkIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICBoZWFkZXIgLnRpdGxlcyBoMSwgaGVhZGVyIC50aXRsZXMgaDIge1xuICAgIG1heC13aWR0aDogNTgwcHg7IH0gfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxubGFiZWwuZm9ybS1yZXF1aXJlZDphZnRlciB7XG4gIGNvbnRlbnQ6ICcqJzsgfVxuXG5mb3JtIGxhYmVsIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC4zNHB4OyB9XG5cbmZvcm0ud2ViZm9ybS1zdWJtaXNzaW9uLWZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuZm9ybSAuZm9ybS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICBmb3JtIC5mb3JtLWl0ZW0ubWVkaXVtLWNsZWFyLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDUwJTsgfVxuXG5mb3JtIC5qcy1mb3JtLXR5cGUtdGV4dGZpZWxkID4gbGFiZWwsXG5mb3JtIC5qcy1mb3JtLXR5cGUtdGV4dGFyZWEgPiBsYWJlbCxcbmZvcm0gLmpzLWZvcm0tdHlwZS1lbWFpbCA+IGxhYmVsLFxuZm9ybSAuanMtZm9ybS10eXBlLXRlbCA+IGxhYmVsLFxuZm9ybSAuanMtZm9ybS10eXBlLW1hbmFnZWQtZmlsZSA+IGxhYmVsLFxuZm9ybSAuanMtZm9ybS10eXBlLXNlbGVjdCA+IGxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG5cbmZvcm0gLmNhcHRjaGEge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIGZvcm0gLmNhcHRjaGEge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4uanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5qcy1mb3JtLXR5cGUtcmFkaW8gaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbi5qcy1mb3JtLXR5cGUtcmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgbWFyZ2luOiAwOyB9XG4gIC5qcy1mb3JtLXR5cGUtY2hlY2tib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICAuanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsLFxuICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgLmpzLWZvcm0tdHlwZS1yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmpzLWZvcm0tdHlwZS1jaGVja2JveCBpbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWw6YmVmb3JlLCAuanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDphZnRlcixcbiAgICAuanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSxcbiAgICAuanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyLFxuICAgIC5qcy1mb3JtLXR5cGUtcmFkaW8gaW5wdXRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsOmJlZm9yZSxcbiAgICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDphZnRlcixcbiAgICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSxcbiAgICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuanMtZm9ybS10eXBlLWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDpiZWZvcmUsXG4gICAgLmpzLWZvcm0tdHlwZS1jaGVja2JveCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUsXG4gICAgLmpzLWZvcm0tdHlwZS1yYWRpbyBpbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWw6YmVmb3JlLFxuICAgIC5qcy1mb3JtLXR5cGUtcmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgIGZsZXg6IDAgMCAxNHB4O1xuICAgICAgbWFyZ2luOiA4cHggMjBweCAwIDA7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjRURGM0ZGOyB9XG4gICAgLmpzLWZvcm0tdHlwZS1jaGVja2JveCBpbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWw6YWZ0ZXIsXG4gICAgLmpzLWZvcm0tdHlwZS1jaGVja2JveCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlcixcbiAgICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDphZnRlcixcbiAgICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogM3B4O1xuICAgICAgdG9wOiA3cHg7IH1cbiAgLmpzLWZvcm0tdHlwZS1jaGVja2JveCBpbnB1dFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDo6YWZ0ZXIsXG4gIC5qcy1mb3JtLXR5cGUtY2hlY2tib3ggaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDo6YWZ0ZXIsXG4gIC5qcy1mb3JtLXR5cGUtcmFkaW8gaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWw6OmFmdGVyLFxuICAuanMtZm9ybS10eXBlLXJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvY2hlY2suc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgZmlsdGVyOiBpbnZlcnQoMjAlKSBzZXBpYSg0MyUpIHNhdHVyYXRlKDcyNDElKSBodWUtcm90YXRlKDIxOWRlZykgYnJpZ2h0bmVzcyg5OSUpIGNvbnRyYXN0KDEwOCUpOyB9XG4gIC5qcy1mb3JtLXR5cGUtY2hlY2tib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUsXG4gIC5qcy1mb3JtLXR5cGUtY2hlY2tib3ggaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzICsgbGFiZWw6OmJlZm9yZSxcbiAgLmpzLWZvcm0tdHlwZS1yYWRpbyBpbnB1dFt0eXBlPSdjaGVja2JveCddOmZvY3VzICsgbGFiZWw6OmJlZm9yZSxcbiAgLmpzLWZvcm0tdHlwZS1yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgICBvdXRsaW5lOiAjMDA1NEZGIHNvbGlkIDFweDsgfVxuXG4uanMtZm9ybS10eXBlLXJhZGlvIGxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgZm9ybSAuanMtd2ViZm9ybS1yYWRpb3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICBmb3JtIC5qcy13ZWJmb3JtLXJhZGlvcyA+IGRpdiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDYwcHg7IH0gfVxuXG5mb3JtIC5qcy13ZWJmb3JtLXJhZGlvcyA+IGRpdjpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW46IDA7IH1cblxuZm9ybSAud2ViZm9ybS10eXBlLXJhZGlvcyB7XG4gIG1hcmdpbi1ib3R0b206IDIycHg7IH1cblxuZGl2W2lkKj1cImVkaXQtZmlsZS1jb250YWluZXJcIl0ge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICBkaXZbaWQqPVwiZWRpdC1maWxlLWNvbnRhaW5lclwiXSA+IGRpdiwgZGl2W2lkKj1cImVkaXQtZmlsZS1jb250YWluZXJcIl0gZGl2W2lkKj1cImFqYXgtd3JhcHBlclwiXSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLmZvcm0tbWFuYWdlZC1maWxlIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERjNGRjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3VwbG9hZC5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDIwcHgpIGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgcGFkZGluZzogMC41cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRURGM0ZGO1xuICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGFsbDsgfVxuICAuZm9ybS1tYW5hZ2VkLWZpbGUgbGFiZWw6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU0RkY7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cblxuLmpzLWZvcm0tdHlwZS1tYW5hZ2VkLWZpbGUge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5qcy1mb3JtLXR5cGUtbWFuYWdlZC1maWxlIC5kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAuNjRweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG4uZm9ybS1pdGVtICsgLmZvcm0taXRlbS1jb250YWN0LWJ5LXBob25lIHtcbiAgbWFyZ2luLXRvcDogNHB4OyB9XG5cbi5mb3JtLWl0ZW0gKyAuZm9ybS1pdGVtLWNvbnNlbnQge1xuICBtYXJnaW4tdG9wOiAxNHB4OyB9XG5cbi5mb3JtLWl0ZW0tY29uc2VudCBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAuNjRweDsgfVxuXG4uc2xpZGluZy1wb3B1cC1ib3R0b20ge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZXUtY29va2llLWNvbXBsaWFuY2UtYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxMDAyMTtcbiAgcGFkZGluZzogMzBweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMwMDU0RkY7IH1cbiAgLmV1LWNvb2tpZS1jb21wbGlhbmNlLWJhbm5lciwgLmV1LWNvb2tpZS1jb21wbGlhbmNlLWJhbm5lciBsYWJlbCwgLmV1LWNvb2tpZS1jb21wbGlhbmNlLWJhbm5lciBhIHtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuZXUtY29va2llLWNvbXBsaWFuY2UtYmFubmVyIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1vdXQ7IH1cbiAgICAuZXUtY29va2llLWNvbXBsaWFuY2UtYmFubmVyIGE6aG92ZXIsIC5ldS1jb29raWUtY29tcGxpYW5jZS1iYW5uZXIgYTpmb2N1cyB7XG4gICAgICBjb2xvcjogIzAwNTRGRjsgfVxuXG4uZXUtY29va2llLWNvbXBsaWFuY2UtY2F0ZWdvcmllcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuLmV1LWNvb2tpZS1jb21wbGlhbmNlLXNhdmUtcHJlZmVyZW5jZXMtYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuXG4uZXUtY29va2llLWNvbXBsaWFuY2UtYnV0dG9ucyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmV1LWNvb2tpZS1jb21wbGlhbmNlLWJ1dHRvbnMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfSB9XG4gIC5ldS1jb29raWUtY29tcGxpYW5jZS1idXR0b25zIGJ1dHRvbjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbSAwOyB9XG5cbi5ldS1jb29raWUtY29tcGxpYW5jZS1jYXRlZ29yeSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmV1LWNvb2tpZS1jb21wbGlhbmNlLWNhdGVnb3J5IGxhYmVsIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG4gIC5ldS1jb29raWUtY29tcGxpYW5jZS1jYXRlZ29yeSBbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmV1LWNvb2tpZS1jb21wbGlhbmNlLWNhdGVnb3J5IC5ldS1jb29raWUtY29tcGxpYW5jZS1jYXRlZ29yeS1kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4ucmVnaW9uLWhlYWRlciB7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjVweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5yZWdpb24taGVhZGVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7IH0gfVxuICAucmVnaW9uLWhlYWRlciBbaWQqPVwibWFpbi1tZW51XCJdIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gICAgICAucmVnaW9uLWhlYWRlciBbaWQqPVwibWFpbi1tZW51XCJdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucmVnaW9uLWhlYWRlciBbaWQqPVwibWFpbi1tZW51XCJdIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNXB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAucmVnaW9uLWhlYWRlciBbaWQqPVwibWFpbi1tZW51XCJdIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4OyB9IH1cblxuI2Jsb2NrLXN1Yi1icmFuZGluZyB7XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICNibG9jay1zdWItYnJhbmRpbmcge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAjYmxvY2stc3ViLWJyYW5kaW5nIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgI2Jsb2NrLXN1Yi1icmFuZGluZyBhIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAjYmxvY2stc3ViLWJyYW5kaW5nIGltZyB7XG4gICAgd2lkdGg6IDE5MHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICNibG9jay1zdWItYnJhbmRpbmcgaW1nIHtcbiAgICAgICAgd2lkdGg6IDIxMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAjYmxvY2stdG9nZ2xlLW9mZi1jYW52YXMtcmlnaHQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbltpZF49XCJibG9jay1kb21haW4tY3VzdG9tLW5hdmlnYXRpb25cIl0gKyBbaWRePVwiYmxvY2stZHJvcGRvd24tbGFuZ3VhZ2VcIl0ge1xuICBtYXJnaW4tbGVmdDogMzBweDsgfVxuXG4jZm9vdGVyLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwMDIxOyB9XG5cbi5yZWdpb24tZm9vdGVyLCAucmVnaW9uLWZvb3RlciAuY29udGFjdCBhLCAucmVnaW9uLWZvb3RlciAubWVudSBhOm5vdCguYnV0dG9uKSwgLnJlZ2lvbi1mb290ZXIgbmF2IGEsIC5yZWdpb24tZm9vdGVyIC5tZW51IHNwYW4ge1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4ucmVnaW9uLWZvb3RlciBhLmlzLWFjdGl2ZSB7XG4gIGNvbG9yOiAjMDA1NEZGOyB9XG5cbi5yZWdpb24tZm9vdGVyIC5tZW51Om5vdCguaG9yaXpvbnRhbCkge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbiNibG9jay1zdWItZm9vdGVyIHVsOm5vdCguY29udGV4dHVhbC1saW5rcykge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICNibG9jay1zdWItZm9vdGVyIHVsOm5vdCguY29udGV4dHVhbC1saW5rcykge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cbiAgI2Jsb2NrLXN1Yi1mb290ZXIgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgI2Jsb2NrLXN1Yi1mb290ZXIgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSBsaTpub3QoOmxhc3Qtb2YtdHlwZSk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ3wnO1xuICAgICAgbWFyZ2luOiBhdXRvIDVweDsgfVxuICAjYmxvY2stc3ViLWZvb3RlciB1bDpub3QoLmNvbnRleHR1YWwtbGlua3MpIGE6bm90KFtocmVmXj1cIi9hZG1pbi9cIl0pLCAjYmxvY2stc3ViLWZvb3RlciB1bDpub3QoLmNvbnRleHR1YWwtbGlua3MpIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgI2Jsb2NrLXN1Yi1mb290ZXIgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSBhOm5vdChbaHJlZl49XCIvYWRtaW4vXCJdKTpob3ZlciwgI2Jsb2NrLXN1Yi1mb290ZXIgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSBhOm5vdChbaHJlZl49XCIvYWRtaW4vXCJdKTpmb2N1cywgI2Jsb2NrLXN1Yi1mb290ZXIgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSBzcGFuOmhvdmVyLCAjYmxvY2stc3ViLWZvb3RlciB1bDpub3QoLmNvbnRleHR1YWwtbGlua3MpIHNwYW46Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgI2Jsb2NrLXN1Yi1mb290ZXIgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSBzcGFuOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuI2Jsb2NrLXNpdGUtYnJhbmRpbmctZm9vdGVyIHtcbiAgcGFkZGluZy10b3A6IDQ1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA3NXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgI2Jsb2NrLXNpdGUtYnJhbmRpbmctZm9vdGVyIHtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsgfSB9XG4gICNibG9jay1zaXRlLWJyYW5kaW5nLWZvb3RlciA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgI2Jsb2NrLXNpdGUtYnJhbmRpbmctZm9vdGVyID4gYSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDI3MHB4ICsgKDMwcHggKiAyKSk7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjYmxvY2stc2l0ZS1icmFuZGluZy1mb290ZXIgPiBhIHtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDI3MHB4ICsgKDQ1cHggKiAyKSk7IH0gfVxuXG4jYmxvY2stZm9vdGVyLXRvcCB7XG4gIHBhZGRpbmctdG9wOiA4MHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgI2Jsb2NrLWZvb3Rlci10b3Age1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG5cbiNibG9jay1mb290ZXItZGF0YSB7XG4gIHBhZGRpbmctdG9wOiA3MHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgI2Jsb2NrLWZvb3Rlci1kYXRhIHtcbiAgICAgIHBhZGRpbmctdG9wOiA4MHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgI2Jsb2NrLWZvb3Rlci10b3AsXG4gICNibG9jay1mb290ZXItbGVnYWwge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMyRTJFMkU7IH0gfVxuXG4jYmxvY2stZm9vdGVyLXRvcCxcbiNibG9jay1mb290ZXItZGF0YSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDcwcHg7IH1cbiAgI2Jsb2NrLWZvb3Rlci10b3A6YmVmb3JlLFxuICAjYmxvY2stZm9vdGVyLWRhdGE6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzJFMkUyRTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IDEwMHZ3OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICNibG9jay1oaWdobGlnaHQtbWVudS1mb290ZXIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9IH1cblxuI2Jsb2NrLW1haW4tbWVudS1mb290ZXIgKyAjYmxvY2staGlnaGxpZ2h0LW1lbnUtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogNDVweDsgfVxuXG4jYmxvY2stc3ViLXZpZXdzLWJsb2NrLWNvbnRhY3QtZGF0YSArICNibG9jay1zdWItdmlld3MtYmxvY2stc29jaWFsLW1lZGlhLWxpbmtzLFxuI2Jsb2NrLWZpdCwgI2Jsb2NrLWF1dmVyZ25lcmhvbmVhbHBlcyB7XG4gIG1hcmdpbi10b3A6IDI1cHg7IH1cblxuI2Jsb2NrLWZpdCBmaWd1cmUge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDA1NEZGOyB9XG4gICNibG9jay1maXQgZmlndXJlIGltZyB7XG4gICAgYm9yZGVyOiA1cHggc29saWQgd2hpdGU7IH1cblxuI2Jsb2NrLWF1dmVyZ25lcmhvbmVhbHBlcyBmaWd1cmUge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICNibG9jay1mb290ZXItZGF0YSA+IGRpdixcbiAgI2Jsb2NrLXNpdGUtYnJhbmRpbmctZm9vdGVyID4gYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAjYmxvY2stZm9vdGVyLWRhdGEgPiBkaXYsXG4gICNibG9jay1zaXRlLWJyYW5kaW5nLWZvb3RlciA+IGEge1xuICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgI2Jsb2NrLWZvb3Rlci1ib3R0b20ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG5cbiNibG9jay1mb290ZXItbGVnYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA2NXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICNibG9jay1mb290ZXItbGVnYWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgI2Jsb2NrLWZvb3Rlci1sZWdhbCB7XG4gICAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9IH1cbiAgI2Jsb2NrLWZvb3Rlci1sZWdhbCBuYXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICNibG9jay1mb290ZXItbGVnYWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC00MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGUuanBnXCIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDJDODc7XG4gICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1idXJuOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICNibG9jay1mb290ZXItbGVnYWw6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZGVmYXVsdC9kZWZhdWx0X3RpdGxlX3MuanBnXCIpOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgI2Jsb2NrLWZvb3Rlci1sZWdhbDphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGVfbS5qcGdcIik7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjYmxvY2stZm9vdGVyLWxlZ2FsOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2RlZmF1bHQvZGVmYXVsdF90aXRsZV9sLmpwZ1wiKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgI2Jsb2NrLWZvb3Rlci1sZWdhbDphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGVfeGwuanBnXCIpOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAjYmxvY2stZm9vdGVyLWxlZ2FsOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2RlZmF1bHQvZGVmYXVsdF90aXRsZV94eGwuanBnXCIpOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgI2Jsb2NrLWZvb3Rlci1sZWdhbDphZnRlciB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAjYmxvY2stZm9vdGVyLWxlZ2FsOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoKDc2Ljg3NXJlbSAvIDEyKSAqIDQpICsgNjBweCArICgzMHB4IC8yKSk7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgICNibG9jay1mb290ZXItbGVnYWw6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICgoNzYuODc1cmVtIC8gMTIpICogNCkgLSAoKDYwcHggKiAyKSAtICgzMHB4ICogMikpKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICNibG9jay1tYWluLW1lbnUtZnItZm9vdGVyIC5tZW51LWl0ZW0tLWV4cGFuZGVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cblxuI2Jsb2NrLWhpZ2hsaWdodC1tZW51LWZvb3RlciB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAjYmxvY2staGlnaGxpZ2h0LW1lbnUtZm9vdGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAjYmxvY2staGlnaGxpZ2h0LW1lbnUtZm9vdGVyIC5tZW51IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0gfVxuXG4uaG9tZS5mdWxsID4gaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERjNGRjtcbiAgcGFkZGluZy10b3A6IDk1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA5NXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmhvbWUuZnVsbCA+IGhlYWRlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNzVweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvbWUuZnVsbCA+IGhlYWRlciB7XG4gICAgICBwYWRkaW5nLXRvcDogMTkwcHg7IH0gfVxuICAuaG9tZS5mdWxsID4gaGVhZGVyLmhhcy1pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmhvbWUuZnVsbCA+IGhlYWRlci5oYXMtaW1hZ2UgLmNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjsgfVxuICAuaG9tZS5mdWxsID4gaGVhZGVyIC5iZ19faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIG9wYWNpdHk6IC4xNjsgfVxuICAuaG9tZS5mdWxsID4gaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmhvbWUuZnVsbCA+IGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWRlbyBkaXYge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmhvbWUuZnVsbCA+IGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWRlbyB2aWRlbyB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAtby1vYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgb3BhY2l0eTogLjc7IH1cbiAgLmhvbWUuZnVsbCA+IGhlYWRlciBoMSB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMy40OXB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5ob21lLmZ1bGwgPiBoZWFkZXIgaDEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9IH1cbiAgLmhvbWUuZnVsbCA+IGhlYWRlciBoMi5zdWItdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhvbWUuZnVsbCA+IGhlYWRlciBoMi5zdWItdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDQuMzc1cmVtOyB9IH1cbiAgLmhvbWUuZnVsbCA+IGhlYWRlciAjc2Nyb2xsLWNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gICAgYW5pbWF0aW9uOiBzY3JvbGwtYnV0dG9uIDJzIGluZmluaXRlOyB9XG4gICAgLmhvbWUuZnVsbCA+IGhlYWRlciAjc2Nyb2xsLWNvbnRlbnQgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDExcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTExcHg7IH1cbiAgICAgIC5ob21lLmZ1bGwgPiBoZWFkZXIgI3Njcm9sbC1jb250ZW50IGEgZyB7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZSAuMjVzIGVhc2Utb3V0OyB9XG4gICAgICAuaG9tZS5mdWxsID4gaGVhZGVyICNzY3JvbGwtY29udGVudCBhOmhvdmVyIGcsIC5ob21lLmZ1bGwgPiBoZWFkZXIgI3Njcm9sbC1jb250ZW50IGE6Zm9jdXMgZyB7XG4gICAgICAgIHN0cm9rZTogIzAxMDAyMTsgfVxuXG5Aa2V5ZnJhbWVzIHNjcm9sbC1idXR0b24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4ucGFnZS5mdWxsIGhlYWRlcixcbi5hcnRpY2xlLmZ1bGwgaGVhZGVyLFxuLmpvYi5mdWxsIGhlYWRlcixcbi5wYXJ0bmVyLmZ1bGwgaGVhZGVyLFxuLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS5mdWxsIGhlYWRlcixcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlcixcbiAgICAuam9iLmZ1bGwgaGVhZGVyLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogODBweDsgfSB9XG4gIC5wYWdlLmZ1bGwgaGVhZGVyIC53cmFwcGVyLXBhZGRpbmcsXG4gIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC53cmFwcGVyLXBhZGRpbmcsXG4gIC5qb2IuZnVsbCBoZWFkZXIgLndyYXBwZXItcGFkZGluZyxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLndyYXBwZXItcGFkZGluZyxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAud3JhcHBlci1wYWRkaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGM0ZGOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIudGVybSxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlci50ZXJtLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIudGVybSxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlci50ZXJtLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIudGVybSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxODBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIuaGFzLWltYWdlLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyLmhhcy1pbWFnZSxcbiAgICAuam9iLmZ1bGwgaGVhZGVyLmhhcy1pbWFnZSxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlci5oYXMtaW1hZ2UsXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlci5oYXMtaW1hZ2Uge1xuICAgICAgcGFkZGluZy1ib3R0b206IDY1cHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1pbWFnZSxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlci5oYXMtaW1hZ2UsXG4gICAgLmpvYi5mdWxsIGhlYWRlci5oYXMtaW1hZ2UsXG4gICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIuaGFzLWltYWdlLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIuaGFzLWltYWdlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMzBweDsgfSB9XG4gIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1pbWFnZSAud3JhcHBlci1wYWRkaW5nLFxuICAuYXJ0aWNsZS5mdWxsIGhlYWRlci5oYXMtaW1hZ2UgLndyYXBwZXItcGFkZGluZyxcbiAgLmpvYi5mdWxsIGhlYWRlci5oYXMtaW1hZ2UgLndyYXBwZXItcGFkZGluZyxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIuaGFzLWltYWdlIC53cmFwcGVyLXBhZGRpbmcsXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIuaGFzLWltYWdlIC53cmFwcGVyLXBhZGRpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIuaGFzLWJvZHksXG4gICAgLmFydGljbGUuZnVsbCBoZWFkZXIuaGFzLWJvZHksXG4gICAgLmpvYi5mdWxsIGhlYWRlci5oYXMtYm9keSxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlci5oYXMtYm9keSxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyLmhhcy1ib2R5IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIuaGFzLWJvZHksXG4gICAgLmFydGljbGUuZnVsbCBoZWFkZXIuaGFzLWJvZHksXG4gICAgLmpvYi5mdWxsIGhlYWRlci5oYXMtYm9keSxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlci5oYXMtYm9keSxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyLmhhcy1ib2R5IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMDBweDsgfSB9XG4gIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1uby1leHRyYS1maWVsZCAud3JhcHBlci1wYWRkaW5nLFxuICAuYXJ0aWNsZS5mdWxsIGhlYWRlci5oYXMtbm8tZXh0cmEtZmllbGQgLndyYXBwZXItcGFkZGluZyxcbiAgLmpvYi5mdWxsIGhlYWRlci5oYXMtbm8tZXh0cmEtZmllbGQgLndyYXBwZXItcGFkZGluZyxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIuaGFzLW5vLWV4dHJhLWZpZWxkIC53cmFwcGVyLXBhZGRpbmcsXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIuaGFzLW5vLWV4dHJhLWZpZWxkIC53cmFwcGVyLXBhZGRpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiA0NXB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1uby1leHRyYS1maWVsZCAud3JhcHBlci1wYWRkaW5nLFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIuaGFzLW5vLWV4dHJhLWZpZWxkIC53cmFwcGVyLXBhZGRpbmcsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyLmhhcy1uby1leHRyYS1maWVsZCAud3JhcHBlci1wYWRkaW5nLFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIuaGFzLW5vLWV4dHJhLWZpZWxkIC53cmFwcGVyLXBhZGRpbmcsXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyLmhhcy1uby1leHRyYS1maWVsZCAud3JhcHBlci1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuICAucGFnZS5mdWxsIGhlYWRlci5oYXMtbm8tZXh0cmEtZmllbGQgLmNvbnRlbnQsXG4gIC5hcnRpY2xlLmZ1bGwgaGVhZGVyLmhhcy1uby1leHRyYS1maWVsZCAuY29udGVudCxcbiAgLmpvYi5mdWxsIGhlYWRlci5oYXMtbm8tZXh0cmEtZmllbGQgLmNvbnRlbnQsXG4gIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyLmhhcy1uby1leHRyYS1maWVsZCAuY29udGVudCxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlci5oYXMtbm8tZXh0cmEtZmllbGQgLmNvbnRlbnQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG4gIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1ib2R5LFxuICAucGFnZS5mdWxsIGhlYWRlci5oYXMtZXh0cmEtZmllbGQgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIuaGFzLWV4dHJhLWZpZWxkIC5maWVsZC1uYW1lLWJvZHksXG4gIC5hcnRpY2xlLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1maWVsZC1ib2R5LFxuICAuam9iLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1ib2R5LFxuICAuam9iLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1maWVsZC1ib2R5LFxuICAucGFydG5lci5mdWxsIGhlYWRlci5oYXMtZXh0cmEtZmllbGQgLmZpZWxkLW5hbWUtYm9keSxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIuaGFzLWV4dHJhLWZpZWxkIC5maWVsZC1uYW1lLWZpZWxkLWJvZHksXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIuaGFzLWV4dHJhLWZpZWxkIC5maWVsZC1uYW1lLWJvZHksXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIuaGFzLWV4dHJhLWZpZWxkIC5maWVsZC1uYW1lLWZpZWxkLWJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1ib2R5OmFmdGVyLFxuICAgIC5wYWdlLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1maWVsZC1ib2R5OmFmdGVyLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1ib2R5OmFmdGVyLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1maWVsZC1ib2R5OmFmdGVyLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIuaGFzLWV4dHJhLWZpZWxkIC5maWVsZC1uYW1lLWJvZHk6YWZ0ZXIsXG4gICAgLmpvYi5mdWxsIGhlYWRlci5oYXMtZXh0cmEtZmllbGQgLmZpZWxkLW5hbWUtZmllbGQtYm9keTphZnRlcixcbiAgICAucGFydG5lci5mdWxsIGhlYWRlci5oYXMtZXh0cmEtZmllbGQgLmZpZWxkLW5hbWUtYm9keTphZnRlcixcbiAgICAucGFydG5lci5mdWxsIGhlYWRlci5oYXMtZXh0cmEtZmllbGQgLmZpZWxkLW5hbWUtZmllbGQtYm9keTphZnRlcixcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyLmhhcy1leHRyYS1maWVsZCAuZmllbGQtbmFtZS1ib2R5OmFmdGVyLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIuaGFzLWV4dHJhLWZpZWxkIC5maWVsZC1uYW1lLWZpZWxkLWJvZHk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAtMTAwdnc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgei1pbmRleDogMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5yb3cgLnJvdyxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAucm93IC5yb3csXG4gICAgLmpvYi5mdWxsIGhlYWRlciAucm93IC5yb3csXG4gICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLnJvdyAucm93LFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLnJvdyAucm93IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgLnBhZ2UuZnVsbCBoZWFkZXIgLnRpdGxlcyxcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIgLnRpdGxlcyxcbiAgLmpvYi5mdWxsIGhlYWRlciAudGl0bGVzLFxuICAucGFydG5lci5mdWxsIGhlYWRlciAudGl0bGVzLFxuICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC50aXRsZXMge1xuICAgIHBhZGRpbmctdG9wOiA0NXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0NXB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC50aXRsZXMsXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAudGl0bGVzLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAudGl0bGVzLFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLnRpdGxlcyxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLnRpdGxlcyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE3NXB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLnRpdGxlcyxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC50aXRsZXMsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIC50aXRsZXMsXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAudGl0bGVzLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAudGl0bGVzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsgfSB9XG4gIC5wYWdlLmZ1bGwgaGVhZGVyIGgxLFxuICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBoMSxcbiAgLmpvYi5mdWxsIGhlYWRlciBoMSxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgaDEsXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSxcbiAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSxcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1ib2R5LFxuICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHksXG4gIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHksXG4gIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHksXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMTAwcHggLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTEwMHB4IC8gMik7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSxcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHksXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1ib2R5LFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSxcbiAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHksXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5LFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1ib2R5LFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgLTEwMHB4IDA7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1ib2R5LFxuICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtYm9keSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHksXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5LFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1ib2R5LFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5LFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHksXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHksXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjAwcHg7IH0gfVxuICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHkgLmZpZWxkLWl0ZW1zLFxuICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHkgLmZpZWxkLWl0ZW1zLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHkgLmZpZWxkLWl0ZW1zLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWJvZHkgLmZpZWxkLWl0ZW1zLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtYm9keSAuZmllbGQtaXRlbXMsXG4gICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5IC5maWVsZC1pdGVtcyxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1ib2R5IC5maWVsZC1pdGVtcyxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1ib2R5IC5maWVsZC1pdGVtcyxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWJvZHkgLmZpZWxkLWl0ZW1zLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtYm9keSAuZmllbGQtaXRlbXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMkM4NztcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgcGFkZGluZzogNjBweCAzNXB4IDYwcHggNTBweDsgfVxuICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSxcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UsXG4gIC5qb2IuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UsXG4gIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlLFxuICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xMDBweCAvIDIpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygtMTAwcHggLyAyKTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC02NXB4IDA7XG4gICAgICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgICAgIG1heC13aWR0aDogNTguMzMzMzMlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xMzBweDsgfSB9XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2U6YmVmb3JlLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlOmJlZm9yZSxcbiAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlOmJlZm9yZSxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZTpiZWZvcmUsXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFREYzRkY7IH1cbiAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSxcbiAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2UsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2UsXG4gICAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlLFxuICAgICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiB1bnNldDsgfSB9XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcsXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGltZyxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGltZyxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2UgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogLjI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAubWVkaWEtd3JhcHBlcixcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAubWVkaWEtd3JhcHBlcixcbiAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5tZWRpYS13cmFwcGVyLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5tZWRpYS13cmFwcGVyLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLm1lZGlhLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAubWVkaWEtd3JhcHBlciAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcsXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAubWVkaWEtd3JhcHBlciAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5tZWRpYS13cmFwcGVyIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGltZyxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5tZWRpYS13cmFwcGVyIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGltZyxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLm1lZGlhLXdyYXBwZXIgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2UgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOyB9XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLmNvbnRhaW5lci1tYXAsIC5wYWdlLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC52aWV3LWlkLWNvbnRhY3QsIC5wYWdlLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5nZW9sb2NhdGlvbi1tYXAtd3JhcHBlcixcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuY29udGFpbmVyLW1hcCxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAudmlldy1pZC1jb250YWN0LFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5nZW9sb2NhdGlvbi1tYXAtd3JhcHBlcixcbiAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5jb250YWluZXItbWFwLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLnZpZXctaWQtY29udGFjdCxcbiAgICAuam9iLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5nZW9sb2NhdGlvbi1tYXAtd3JhcHBlcixcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAuY29udGFpbmVyLW1hcCxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAudmlldy1pZC1jb250YWN0LFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5nZW9sb2NhdGlvbi1tYXAtd3JhcHBlcixcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5jb250YWluZXItbWFwLFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgZmlndXJlLnBhZ2UtaW1hZ2UgLnZpZXctaWQtY29udGFjdCxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5nZW9sb2NhdGlvbi1tYXAtd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAucGFnZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gIC5wYWdlLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcixcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcixcbiAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAuam9iLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgLmpvYi5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXIsXG4gIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAucGFydG5lci5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXIsXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQsXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBwYWRkaW5nOiA0NXB4IDUwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcixcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQsXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXcsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyLFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXcsXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXIsXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMzBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YTpiZWZvcmUsXG4gICAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQ6YmVmb3JlLFxuICAgICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3OmJlZm9yZSxcbiAgICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkOmJlZm9yZSxcbiAgICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyOmJlZm9yZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhOmJlZm9yZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dDpiZWZvcmUsXG4gICAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXc6YmVmb3JlLFxuICAgICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQ6YmVmb3JlLFxuICAgICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXI6YmVmb3JlLFxuICAgICAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YTpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dDpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldzpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkOmJlZm9yZSxcbiAgICAgICAgLmpvYi5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXI6YmVmb3JlLFxuICAgICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGE6YmVmb3JlLFxuICAgICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0OmJlZm9yZSxcbiAgICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldzpiZWZvcmUsXG4gICAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZDpiZWZvcmUsXG4gICAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcjpiZWZvcmUsXG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhOmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0OmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3OmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQ6YmVmb3JlLFxuICAgICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDE0OXB4O1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9wc2V1ZG9fcmlnaHQuc3ZnXCIpOyB9XG4gICAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YTpiZWZvcmUsXG4gICAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQ6YmVmb3JlLFxuICAgICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3OmJlZm9yZSxcbiAgICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkOmJlZm9yZSxcbiAgICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyOmJlZm9yZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhOmJlZm9yZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dDpiZWZvcmUsXG4gICAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXc6YmVmb3JlLFxuICAgICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQ6YmVmb3JlLFxuICAgICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXI6YmVmb3JlLFxuICAgICAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YTpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dDpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldzpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkOmJlZm9yZSxcbiAgICAgICAgLmpvYi5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXI6YmVmb3JlLFxuICAgICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGE6YmVmb3JlLFxuICAgICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0OmJlZm9yZSxcbiAgICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldzpiZWZvcmUsXG4gICAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZDpiZWZvcmUsXG4gICAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcjpiZWZvcmUsXG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhOmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0OmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3OmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQ6YmVmb3JlLFxuICAgICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcjpiZWZvcmUge1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICByaWdodDogY2FsYygxMzBweCAtIDE2cHgpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2NXB4KTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXcsXG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXIsXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcixcbiAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gICAgICAuam9iLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcixcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQsXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQsXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXcsXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMDBweDsgfVxuICAgICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGE6YmVmb3JlLFxuICAgICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0OmJlZm9yZSxcbiAgICAgICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldzpiZWZvcmUsXG4gICAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZDpiZWZvcmUsXG4gICAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5hY3Rpb24td3JhcHBlcjpiZWZvcmUsXG4gICAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YTpiZWZvcmUsXG4gICAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQ6YmVmb3JlLFxuICAgICAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3OmJlZm9yZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkOmJlZm9yZSxcbiAgICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyOmJlZm9yZSxcbiAgICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGE6YmVmb3JlLFxuICAgICAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQ6YmVmb3JlLFxuICAgICAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXc6YmVmb3JlLFxuICAgICAgICAuam9iLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZDpiZWZvcmUsXG4gICAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmFjdGlvbi13cmFwcGVyOmJlZm9yZSxcbiAgICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhOmJlZm9yZSxcbiAgICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dDpiZWZvcmUsXG4gICAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLXZpZXc6YmVmb3JlLFxuICAgICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQ6YmVmb3JlLFxuICAgICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXI6YmVmb3JlLFxuICAgICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YTpiZWZvcmUsXG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dDpiZWZvcmUsXG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldzpiZWZvcmUsXG4gICAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkOmJlZm9yZSxcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuYWN0aW9uLXdyYXBwZXI6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAuam9iLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFnZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQsXG4gICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmV4dHJhLWZpZWxkLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZCB7XG4gICAgICB0b3A6IDIwMHB4O1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQuY2hpbGQtdGVybSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZC5jaGlsZC10ZXJtLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQuY2hpbGQtdGVybSxcbiAgICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5leHRyYS1maWVsZC5jaGlsZC10ZXJtLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZXh0cmEtZmllbGQuY2hpbGQtdGVybSB7XG4gICAgICAgIHRvcDogMjgwcHg7IH0gfVxuICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQsXG4gIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0IHtcbiAgICBjb2xvcjogIzAwNTRGRjtcbiAgICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjRweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEsXG4gICAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDkwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5hZGRyZXNzLWluZm9ybWF0aW9uLFxuICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbixcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24sXG4gICAgLmFydGljbGUuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5hZGRyZXNzLWluZm9ybWF0aW9uLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbixcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24sXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24sXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmFkZHJlc3MtaW5mb3JtYXRpb24tLXN0cmVldCArIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1wbGFjZTpiZWZvcmUsXG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1zdHJlZXQgKyAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tcGxhY2U6YmVmb3JlLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tc3RyZWV0ICsgLmFkZHJlc3MtaW5mb3JtYXRpb24tLXBsYWNlOmJlZm9yZSxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmFkZHJlc3MtaW5mb3JtYXRpb24tLXN0cmVldCArIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1wbGFjZTpiZWZvcmUsXG4gICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmFkZHJlc3MtaW5mb3JtYXRpb24tLXN0cmVldCArIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1wbGFjZTpiZWZvcmUsXG4gICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmFkZHJlc3MtaW5mb3JtYXRpb24tLXN0cmVldCArIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1wbGFjZTpiZWZvcmUsXG4gICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5hZGRyZXNzLWluZm9ybWF0aW9uIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1zdHJlZXQgKyAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tcGxhY2U6YmVmb3JlLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tc3RyZWV0ICsgLmFkZHJlc3MtaW5mb3JtYXRpb24tLXBsYWNlOmJlZm9yZSxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tc3RyZWV0ICsgLmFkZHJlc3MtaW5mb3JtYXRpb24tLXBsYWNlOmJlZm9yZSxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tc3RyZWV0ICsgLmFkZHJlc3MtaW5mb3JtYXRpb24tLXBsYWNlOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnLCc7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZSxcbiAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZSxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZSxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZSxcbiAgICAuam9iLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lLFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWVtYWlsICsgLmZpZWxkLW5hbWUtZmllbGQtcGhvbmUsXG4gICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5hZGRyZXNzLWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWVtYWlsICsgLmZpZWxkLW5hbWUtZmllbGQtcGhvbmUsXG4gICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWVtYWlsICsgLmZpZWxkLW5hbWUtZmllbGQtcGhvbmUsXG4gICAgLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZSxcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lOmJlZm9yZSxcbiAgICAgIC5wYWdlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lOmJlZm9yZSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lOmJlZm9yZSxcbiAgICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lOmJlZm9yZSxcbiAgICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5hZGRyZXNzLWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWVtYWlsICsgLmZpZWxkLW5hbWUtZmllbGQtcGhvbmU6YmVmb3JlLFxuICAgICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZTpiZWZvcmUsXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZTpiZWZvcmUsXG4gICAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZTpiZWZvcmUsXG4gICAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1lbWFpbCArIC5maWVsZC1uYW1lLWZpZWxkLXBob25lOmJlZm9yZSxcbiAgICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWVtYWlsICsgLmZpZWxkLW5hbWUtZmllbGQtcGhvbmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICBtYXJnaW46IGF1dG8gMTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucGFnZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtY29tcGFueS1udW1iZXIsXG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5jb250YWN0LWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWNvbXBhbnktbnVtYmVyLFxuICAgIC5hcnRpY2xlLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1jb21wYW55LW51bWJlcixcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtY29tcGFueS1udW1iZXIsXG4gICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmFkZHJlc3MtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtY29tcGFueS1udW1iZXIsXG4gICAgLmpvYi5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEgLmNvbnRhY3QtaW5mb3JtYXRpb24gLmZpZWxkLW5hbWUtZmllbGQtY29tcGFueS1udW1iZXIsXG4gICAgLnBhcnRuZXIuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhIC5hZGRyZXNzLWluZm9ybWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLWNvbXBhbnktbnVtYmVyLFxuICAgIC5wYXJ0bmVyLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1jb21wYW55LW51bWJlcixcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuYWRkcmVzcy1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1jb21wYW55LW51bWJlcixcbiAgICAucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgaGVhZGVyIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSAuY29udGFjdC1pbmZvcm1hdGlvbiAuZmllbGQtbmFtZS1maWVsZC1jb21wYW55LW51bWJlciB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtaGlnaGxpZ2h0ZWQtdGV4dCB7XG4gICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC41NnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgICAuYXJ0aWNsZS5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAgIC5qb2IuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyxcbiAgICAucGFydG5lci5mdWxsIGhlYWRlciAuZmllbGQtbmFtZS1maWVsZC12aWV3LFxuICAgIC5wcm9kdWN0LWNhdGVnb3JpZXMuZnVsbCBoZWFkZXIgLmZpZWxkLW5hbWUtZmllbGQtdmlldyB7XG4gICAgICBwYWRkaW5nLXRvcDogNjBweDsgfSB9XG5cbi52aWV3LWlkLWFydGljbGVzLnZpZXctZGlzcGxheS10ZWFzZXJzIC52aWV3cy1pbmZpbml0ZS1zY3JvbGwtY29udGVudC13cmFwcGVyIC52aWV3cy1yb3cge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnZpZXctaWQtYXJ0aWNsZXMudmlldy1kaXNwbGF5LXRlYXNlcnMgLnZpZXdzLWluZmluaXRlLXNjcm9sbC1jb250ZW50LXdyYXBwZXIgLnZpZXdzLXJvdyB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAudmlldy1pZC1hcnRpY2xlcy52aWV3LWRpc3BsYXktdGVhc2VycyAudmlld3MtaW5maW5pdGUtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciAudmlld3Mtcm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuXG4udmlldy1pZC1hcnRpY2xlcy52aWV3LWRpc3BsYXktdGVhc2VycyB1bFtkYXRhLWRydXBhbC12aWV3cy1pbmZpbml0ZS1zY3JvbGwtcGFnZXJdIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAudmlldy1pZC1hcnRpY2xlcy52aWV3LWRpc3BsYXktdGVhc2VycyAuYXJ0aWNsZS50ZWFzZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5hcnRpY2xlLnRlYXNlciBoMixcbi5hcnRpY2xlLmZlYXR1cmVkIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuYXJ0aWNsZS50ZWFzZXIgaDIgYTpob3ZlciwgLmFydGljbGUudGVhc2VyIGgyIGE6Zm9jdXMsIC5hcnRpY2xlLmZlYXR1cmVkIGgyIGE6aG92ZXIsIC5hcnRpY2xlLmZlYXR1cmVkIGgyIGE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5hcnRpY2xlLnRlYXNlciAuYWN0aW9ucy13cmFwcGVyLCAuYXJ0aWNsZS5mZWF0dXJlZCAuYWN0aW9ucy13cmFwcGVyIHtcbiAgcGFkZGluZy10b3A6IDI4cHg7XG4gIG1hcmdpbi10b3A6IGF1dG87IH1cblxuLmFydGljbGUudGVhc2VyIC5kYXRlLCAuYXJ0aWNsZS5mZWF0dXJlZCAuZGF0ZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmFydGljbGUudGVhc2VyIGZpZ3VyZSB7XG4gIG1hcmdpbi1ib3R0b206IDI4cHg7IH1cbiAgLmFydGljbGUudGVhc2VyIGZpZ3VyZS5vdmVybGF5IGltZyB7XG4gICAgb3BhY2l0eTogLjI7XG4gICAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBvcGFjaXR5O1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hcnRpY2xlLnRlYXNlciBmaWd1cmUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYXJ0aWNsZS50ZWFzZXIgZmlndXJlIGE6aG92ZXIgaW1nLCAuYXJ0aWNsZS50ZWFzZXIgZmlndXJlIGE6Zm9jdXMgaW1nIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cblxuLmFydGljbGUuZmVhdHVyZWQge1xuICBtYXgtd2lkdGg6IDM0MHB4OyB9XG5cbi5hcnRpY2xlIC5kYXRlIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IC40cHg7XG4gIGNvbG9yOiAjOTc5Nzk3OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmFydGljbGUgLmRhdGUge1xuICAgICAgZm9udC1zaXplOiAxLjMxMjVyZW07IH0gfVxuXG4ucGFydG5lci50ZWFzZXIgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICBtYXgtd2lkdGg6IDIyMHB4OyB9XG4gIC5wYXJ0bmVyLnRlYXNlciAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGZpbHRlcjtcbiAgICBmaWx0ZXI6IHVuc2V0OyB9XG4gICAgLnBhcnRuZXIudGVhc2VyIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGE6aG92ZXIsIC5wYXJ0bmVyLnRlYXNlciAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBhOmZvY3VzIHtcbiAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpOyB9XG4gIC5wYXJ0bmVyLnRlYXNlciAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLnBhcnRuZXIudGVhc2VyIC5hY3Rpb25zLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiBhdXRvOyB9XG5cbi5wYXJ0bmVyLmZ1bGwgaGVhZGVyIGZpZ3VyZS5wYWdlLWltYWdlIC5tZWRpYS13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfVxuICAucGFydG5lci5mdWxsIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAubWVkaWEtd3JhcHBlciAuZmllbGQtbmFtZS1maWVsZC1pbWFnZSBpbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgb2JqZWN0LWZpdDogbm9uZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5wcm9kdWN0LmZ1bGwgLnByb2R1Y3QtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoNDVweCArIDQ1cHgpOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnByb2R1Y3QuZnVsbCAucHJvZHVjdC1oZWFkZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoOTBweCArIDQ1cHgpOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5wcm9kdWN0LmZ1bGwgLnByb2R1Y3QtaGVhZGVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEzMHB4ICsgNDVweCk7IH0gfVxuICAucHJvZHVjdC5mdWxsIC5wcm9kdWN0LWhlYWRlciAud3JhcHBlci1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogNDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGM0ZGOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wcm9kdWN0LmZ1bGwgLnByb2R1Y3QtaGVhZGVyIC53cmFwcGVyLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogOTBweDsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wcm9kdWN0LmZ1bGwgLnByb2R1Y3QtaGVhZGVyIC53cmFwcGVyLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTMwcHg7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5wcm9kdWN0LmZ1bGwgLnByb2R1Y3QtaGVhZGVyIC53cmFwcGVyLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjMwcHg7IH0gfVxuXG4ucHJvZHVjdC5mdWxsIGgxIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucHJvZHVjdC5mdWxsIC5hY3Rpb25zLXdyYXBwZXIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnByb2R1Y3QuZnVsbCAuYWN0aW9ucy13cmFwcGVyIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnByb2R1Y3QuZnVsbCAudGl0bGVzLCAucHJvZHVjdC5mdWxsIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucHJvZHVjdC5mdWxsIC50aXRsZXMsIC5wcm9kdWN0LmZ1bGwgLmFjdGlvbnMtd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDsgfSB9XG5cbi5wcm9kdWN0LmZ1bGwgZmlndXJlLnByb2R1Y3QtaW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAtNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wcm9kdWN0LmZ1bGwgZmlndXJlLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTkwcHg7IH0gfVxuXG4ucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1ib2R5LFxuLnByb2R1Y3QuZnVsbCAuZnVsbC1jb250ZW50ID4gLmZpZWxkLW5hbWUtZmllbGQtc3BlY3Mge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnByb2R1Y3QuZnVsbCAuZnVsbC1jb250ZW50ID4gLmZpZWxkLW5hbWUtYm9keSxcbiAgICAucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1maWVsZC1zcGVjcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1ib2R5LFxuICAgIC5wcm9kdWN0LmZ1bGwgLmZ1bGwtY29udGVudCA+IC5maWVsZC1uYW1lLWZpZWxkLXNwZWNzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEzMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5wcm9kdWN0LmZ1bGwgLmZ1bGwtY29udGVudCA+IC5maWVsZC1uYW1lLWJvZHksXG4gICAgLnByb2R1Y3QuZnVsbCAuZnVsbC1jb250ZW50ID4gLmZpZWxkLW5hbWUtZmllbGQtc3BlY3Mge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjMwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1ib2R5ID4gLnJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnByb2R1Y3QuZnVsbCAuZnVsbC1jb250ZW50ID4gLmZpZWxkLW5hbWUtYm9keSA+IC5yb3c6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDE0OXB4O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3BzZXVkb19yaWdodC5zdmdcIik7IH1cbiAgICAucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1ib2R5ID4gLnJvdzpiZWZvcmUge1xuICAgICAgdG9wOiAxMHB4O1xuICAgICAgcmlnaHQ6IDA7IH0gfVxuXG4ucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1ib2R5ICsgLmZpZWxkLW5hbWUtZmllbGQtc3BlY3Mge1xuICBtYXJnaW4tdG9wOiAtMTVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wcm9kdWN0LmZ1bGwgLmZ1bGwtY29udGVudCA+IC5maWVsZC1uYW1lLWJvZHkgKyAuZmllbGQtbmFtZS1maWVsZC1zcGVjcyB7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKDQ1cHggLSA5MHB4KTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnByb2R1Y3QuZnVsbCAuZnVsbC1jb250ZW50ID4gLmZpZWxkLW5hbWUtYm9keSArIC5maWVsZC1uYW1lLWZpZWxkLXNwZWNzIHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoNDVweCAtIDEzMHB4KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAucHJvZHVjdC5mdWxsIC5mdWxsLWNvbnRlbnQgPiAuZmllbGQtbmFtZS1ib2R5ICsgLmZpZWxkLW5hbWUtZmllbGQtc3BlY3Mge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyg0NXB4IC0gMjMwcHgpOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnByb2R1Y3QuZnVsbC5oYXMtZGVzY3JpcHRpb24tZmllbGRzID4gLmZ1bGwtY29udGVudCA+IC5maWVsZC1uYW1lLWZpZWxkLXBhcmFncmFwaHMge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoOTBweCAtIDEzMHB4KTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnByb2R1Y3QuZnVsbC5oYXMtZGVzY3JpcHRpb24tZmllbGRzID4gLmZ1bGwtY29udGVudCA+IC5maWVsZC1uYW1lLWZpZWxkLXBhcmFncmFwaHMge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoOTBweCAtIDIzMHB4KTsgfSB9XG5cbi5maWVsZC1uYW1lLWZpZWxkLXJlbGF0ZWQtcHJvZHVjdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGM0ZGO1xuICBwYWRkaW5nLXRvcDogNDVweDtcbiAgcGFkZGluZy1ib3R0b206IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmllbGQtbmFtZS1maWVsZC1yZWxhdGVkLXByb2R1Y3RzIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZmllbGQtbmFtZS1maWVsZC1yZWxhdGVkLXByb2R1Y3RzIHtcbiAgICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEzMHB4OyB9IH1cbiAgLmZpZWxkLW5hbWUtZmllbGQtcmVsYXRlZC1wcm9kdWN0cyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtcmVsYXRlZC1wcm9kdWN0cyBoMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuXG4uZmllbGQtbmFtZS1maWVsZC1wcm9kdWN0LXZhcmF0aW9ucyArIC5maWVsZC1uYW1lLWZpZWxkLXJlbGF0ZWQtcHJvZHVjdHMge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4ucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwgLmxpbmtzLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xuICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG5cbi5hZGRyZXNzLWluZm9ybWF0aW9uLS1zdHJlZXQsXG4uYWRkcmVzcy1pbmZvcm1hdGlvbi0tcGxhY2Uge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1zdHJlZXQgPiBkaXY6bm90KDpsYXN0LW9mLXR5cGUpLFxuICAuYWRkcmVzcy1pbmZvcm1hdGlvbi0tcGxhY2UgPiBkaXY6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG4uY29udGFjdCAuZmllbGQtbmFtZS1maWVsZC1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMwMDU0RkY7IH1cblxuZm9vdGVyIC5jb250YWN0IC5hZGRyZXNzLWluZm9ybWF0aW9uLFxuZm9vdGVyIC5jb250YWN0IC5jb250YWN0LWluZm9ybWF0aW9uIHtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY2OyB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIGZpZ3VyZS5wLWltYWdlLFxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgZmlndXJlLnAtaW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzIGZpZ3VyZS5wLWltYWdlLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCBmaWd1cmUucC1pbWFnZSxcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3IGZpZ3VyZS5wLWltYWdlLFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMgZmlndXJlLnAtaW1hZ2UsXG4uY29udGFpbmVyLXByb2R1Y3QtY2F0ZWdvcmllcy5jb250YWluZXItYnktdGVybSBmaWd1cmUucC1pbWFnZSxcbi5jb250YWluZXItcHJvZHVjdHMuY29udGFpbmVyLXRlYXNlcnMgZmlndXJlLnAtaW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycy5zZWxlY3RlZC12aWV3LWlkLS1wYXJ0bmVycy1ub2Rlcy5zZWxlY3RlZC12aWV3LWRpc3BsYXktLXRlYXNlcnMgZmlndXJlLnAtaW1hZ2UsXG4uZmllbGQtbmFtZS1maWVsZC1wcm9kdWN0LXZhcmF0aW9ucyBmaWd1cmUucC1pbWFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREYzRkY7IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmJnX19pbWFnZSxcbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIC5iZ19faW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzIC5iZ19faW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0IC5iZ19faW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAuYmdfX2ltYWdlLFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMgLmJnX19pbWFnZSxcbi5jb250YWluZXItcHJvZHVjdC1jYXRlZ29yaWVzLmNvbnRhaW5lci1ieS10ZXJtIC5iZ19faW1hZ2UsXG4uY29udGFpbmVyLXByb2R1Y3RzLmNvbnRhaW5lci10ZWFzZXJzIC5iZ19faW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycy5zZWxlY3RlZC12aWV3LWlkLS1wYXJ0bmVycy1ub2Rlcy5zZWxlY3RlZC12aWV3LWRpc3BsYXktLXRlYXNlcnMgLmJnX19pbWFnZSxcbi5maWVsZC1uYW1lLWZpZWxkLXByb2R1Y3QtdmFyYXRpb25zIC5iZ19faW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBvcGFjaXR5OiAuMTY7IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzIGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyBoMixcbi5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyBoMiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIGgyLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgaDIsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyBoMixcbiAgICAucGFyYWdyYXBoLS10eXBlLS1saXN0IGgyLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3IGgyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0NXB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQ1cHg7IH0gfVxuXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAudGl0bGVzLFxuLnBhcmFncmFwaC0tdHlwZS0tam9icyAudGl0bGVzLFxuLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyAudGl0bGVzLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCAudGl0bGVzLFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgLnRpdGxlcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZGVmYXVsdC9kZWZhdWx0X3RpdGxlLmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMkM4NztcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1idXJuOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzIC50aXRsZXMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAudGl0bGVzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGVfcy5qcGdcIik7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIC50aXRsZXMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tam9icyAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXJlZmVyZW5jZXMgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1saXN0IC50aXRsZXMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgLnRpdGxlcyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZGVmYXVsdC9kZWZhdWx0X3RpdGxlX20uanBnXCIpOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1yZWZlcmVuY2VzIC50aXRsZXMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3IC50aXRsZXMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2RlZmF1bHQvZGVmYXVsdF90aXRsZV9sLmpwZ1wiKTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1yZWZlcmVuY2VzIC50aXRsZXMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3IC50aXRsZXMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2RlZmF1bHQvZGVmYXVsdF90aXRsZV94bC5qcGdcIik7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzIC50aXRsZXMsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyAudGl0bGVzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgLnRpdGxlcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAudGl0bGVzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGVfeHhsLmpwZ1wiKTsgfSB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIC5jb250ZW50LFxuLnBhcmFncmFwaC0tdHlwZS0tam9icyAuY29udGVudCxcbi5wYXJhZ3JhcGgtLXR5cGUtLXJlZmVyZW5jZXMgLmNvbnRlbnQsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0IC5jb250ZW50LFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgLmNvbnRlbnQsXG4ucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyAuY29udGVudCxcbi5jb250YWluZXItcHJvZHVjdC1jYXRlZ29yaWVzLmNvbnRhaW5lci1ieS10ZXJtIC5jb250ZW50LFxuLmNvbnRhaW5lci1wcm9kdWN0cy5jb250YWluZXItdGVhc2VycyAuY29udGVudCxcbi5maWVsZC1uYW1lLWZpZWxkLXByb2R1Y3QtdmFyYXRpb25zIC5jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMkM4NztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogNDVweDtcbiAgcGFkZGluZy1ib3R0b206IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzIC5jb250ZW50LFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXJlZmVyZW5jZXMgLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyAuY29udGVudCxcbiAgICAuY29udGFpbmVyLXByb2R1Y3QtY2F0ZWdvcmllcy5jb250YWluZXItYnktdGVybSAuY29udGVudCxcbiAgICAuY29udGFpbmVyLXByb2R1Y3RzLmNvbnRhaW5lci10ZWFzZXJzIC5jb250ZW50LFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXByb2R1Y3QtdmFyYXRpb25zIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiA2NXB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDY1cHg7IH0gfVxuICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAuY29udGVudDphZnRlcixcbiAgLnBhcmFncmFwaC0tdHlwZS0tam9icyAuY29udGVudDphZnRlcixcbiAgLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyAuY29udGVudDphZnRlcixcbiAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCAuY29udGVudDphZnRlcixcbiAgLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgLmNvbnRlbnQ6YWZ0ZXIsXG4gIC5wYXJhZ3JhcGgtLXR5cGUtLXByb2R1Y3RzIC5jb250ZW50OmFmdGVyLFxuICAuY29udGFpbmVyLXByb2R1Y3QtY2F0ZWdvcmllcy5jb250YWluZXItYnktdGVybSAuY29udGVudDphZnRlcixcbiAgLmNvbnRhaW5lci1wcm9kdWN0cy5jb250YWluZXItdGVhc2VycyAuY29udGVudDphZnRlcixcbiAgLmZpZWxkLW5hbWUtZmllbGQtcHJvZHVjdC12YXJhdGlvbnMgLmNvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKCgyMzIlIC8gMTQ4OCkgKiAxMDApO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hZnRlcl9mZWF0dXJlcy5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoMTAwJSAtIDFweCkpO1xuICAgIHotaW5kZXg6IDE7IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgZmlndXJlLnAtaW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzIGZpZ3VyZS5wLWltYWdlLFxuLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyBmaWd1cmUucC1pbWFnZSxcbi5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgZmlndXJlLnAtaW1hZ2UsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyBmaWd1cmUucC1pbWFnZSxcbi5wYXJhZ3JhcGgtLXR5cGUtLXByb2R1Y3RzIGZpZ3VyZS5wLWltYWdlLFxuLmNvbnRhaW5lci1wcm9kdWN0LWNhdGVnb3JpZXMuY29udGFpbmVyLWJ5LXRlcm0gZmlndXJlLnAtaW1hZ2UsXG4uY29udGFpbmVyLXByb2R1Y3RzLmNvbnRhaW5lci10ZWFzZXJzIGZpZ3VyZS5wLWltYWdlLFxuLmZpZWxkLW5hbWUtZmllbGQtcHJvZHVjdC12YXJhdGlvbnMgZmlndXJlLnAtaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKCgzNDAlIC8gMTQ0MCkgKiAxMDApOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyBmaWd1cmUucC1pbWFnZSxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzIGZpZ3VyZS5wLWltYWdlLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXJlZmVyZW5jZXMgZmlndXJlLnAtaW1hZ2UsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCBmaWd1cmUucC1pbWFnZSxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyBmaWd1cmUucC1pbWFnZSxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyBmaWd1cmUucC1pbWFnZSxcbiAgICAuY29udGFpbmVyLXByb2R1Y3QtY2F0ZWdvcmllcy5jb250YWluZXItYnktdGVybSBmaWd1cmUucC1pbWFnZSxcbiAgICAuY29udGFpbmVyLXByb2R1Y3RzLmNvbnRhaW5lci10ZWFzZXJzIGZpZ3VyZS5wLWltYWdlLFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXByb2R1Y3QtdmFyYXRpb25zIGZpZ3VyZS5wLWltYWdlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKCgyODAlIC8gMTQ0MCkgKiAxMDApOyB9IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgLmNvbnRlbnQgPiAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgLmNvbnRlbnQgPiAuZmllbGQtbmFtZS1maWVsZC10ZXh0IHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIC5jb250ZW50ID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAuY29udGVudCA+IC5maWVsZC1uYW1lLWZpZWxkLXRleHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNjVweDtcbiAgICAgIG1hcmdpbi10b3A6IC0xNXB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIC5jb250ZW50ID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAuY29udGVudCA+IC5maWVsZC1uYW1lLWZpZWxkLXRleHQge1xuICAgICAgbWFyZ2luLXRvcDogLTMwcHg7IH0gfVxuICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAuY29udGVudCA+IC5maWVsZC1uYW1lLWZpZWxkLXRleHQgLmNvbHVtbnMsXG4gIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3IC5jb250ZW50ID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCAuY29sdW1ucyB7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgLmZpZWxkLW5hbWUtZmllbGQtdGV4dCAuZmllbGQtaXRlbSAqOmxhc3QtY2hpbGQsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyAuZmllbGQtbmFtZS1maWVsZC10ZXh0IC5maWVsZC1pdGVtICo6bGFzdC1jaGlsZCxcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2UgLmZpZWxkLW5hbWUtZmllbGQtdGV4dCAuZmllbGQtaXRlbSAqOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5maWVsZC1uYW1lLWZpZWxkLXRleHQtYmxvY2tzLmZpZWxkLXZpZXctbW9kZS1jb2wtMiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLFxuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogNDVweDsgfVxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXRleHQtYmxvY2tzLmZpZWxkLXZpZXctbW9kZS1jb2wtMiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrOmJlZm9yZSxcbiAgICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudDpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMTQ0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcHNldWRvX2xlZnQuc3ZnXCIpOyB9XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2s6YmVmb3JlLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uub3B0aW9uLWltYWdlLXJpZ2h0IC5jb250ZW50OmJlZm9yZSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuYWN0aW9ucy13cmFwcGVyLFxuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudCAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudCAuYWN0aW9ucy13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuYWN0aW9ucy13cmFwcGVyLFxuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudCAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudCAuYWN0aW9ucy13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7IH0gfVxuXG4uZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuZmllbGQtbmFtZS1maWVsZC10ZXh0ID4gLmZpZWxkLWl0ZW1zID4gLmZpZWxkLWl0ZW0gPiBoMiwgLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sgPiBoMywgLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sgPiBoNCxcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uub3B0aW9uLWltYWdlLXJpZ2h0IC5jb250ZW50IC5maWVsZC1uYW1lLWZpZWxkLXRleHQgPiAuZmllbGQtaXRlbXMgPiAuZmllbGQtaXRlbSA+IGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZS5vcHRpb24taW1hZ2UtcmlnaHQgLmNvbnRlbnQgPiBoMyxcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uub3B0aW9uLWltYWdlLXJpZ2h0IC5jb250ZW50ID4gaDQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnByb2R1Y3QtdmFyaWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLXRleHQtYmxvY2tzLmZpZWxkLXZpZXctbW9kZS1jb2wtMiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLFxuLnByb2R1Y3QtdmFyaWF0aW9uIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uub3B0aW9uLWltYWdlLXJpZ2h0IC5jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5wcm9kdWN0LXZhcmlhdGlvbiAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jazpiZWZvcmUsXG4gIC5wcm9kdWN0LXZhcmlhdGlvbiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlLm9wdGlvbi1pbWFnZS1yaWdodCAuY29udGVudDpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByb2R1Y3QtdmFyaWF0aW9uIC5maWVsZC1uYW1lLWZpZWxkLXRleHQtYmxvY2tzLmZpZWxkLXZpZXctbW9kZS1jb2wtMiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIC5maWVsZC1uYW1lLWZpZWxkLXRleHQsXG4gIC5wcm9kdWN0LXZhcmlhdGlvbiAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuYWN0aW9ucy13cmFwcGVyLFxuICAucHJvZHVjdC12YXJpYXRpb24gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZS5vcHRpb24taW1hZ2UtcmlnaHQgLmNvbnRlbnQgLmZpZWxkLW5hbWUtZmllbGQtdGV4dCxcbiAgLnByb2R1Y3QtdmFyaWF0aW9uIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uub3B0aW9uLWltYWdlLXJpZ2h0IC5jb250ZW50IC5hY3Rpb25zLXdyYXBwZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuXG4ucHJvZHVjdC12YXJpYXRpb24gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZSAuZmllbGQtdHlwZS10ZXh0LWxvbmcsXG4ucHJvZHVjdC12YXJpYXRpb24gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9ja3MsXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2ssXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9ja3MsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbi5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2Nrcyxcbi5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2Nrcyxcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3ICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbi5wYXJhZ3JhcGgtLXR5cGUtLXByb2R1Y3RzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9ja3MsXG4ucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURGM0ZGO1xuICBwYWRkaW5nLWJvdHRvbTogNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9ja3MsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1saXN0ICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9ja3MsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2ssXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2ssXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sge1xuICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2ssXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tam9icyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2tzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrcyxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1saXN0ICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2tzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3ICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyArIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2tzLFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXByb2R1Y3RzICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7IH0gfVxuXG4ucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrcyB7XG4gIG1hcmdpbi1ib3R0b206IDkwcHg7IH1cblxuLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yID4gLmZpZWxkLWl0ZW1zID4gZGl2Om5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cblxuLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDY1cHg7IH0gfVxuXG4ucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIHtcbiAgY29sb3I6ICMwMDU0RkY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAuZmllbGQtbmFtZS1maWVsZC10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvOyB9XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sgLmFjdGlvbnMtd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogNDVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4OyB9IH1cblxuLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sge1xuICBwYWRkaW5nLWJvdHRvbTogOTBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYXJhZ3JhcGgtaXRlbXMgPiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sgPiAucm93IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogNDVweDsgfVxuICAgICAgLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sgPiAucm93OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDE0NHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcHNldWRvX2xlZnQuc3ZnXCIpOyB9XG4gICAgICAucGFyYWdyYXBoLWl0ZW1zID4gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayA+IC5yb3c6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAtMzBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sgPiAucm93IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2suaGFzLXRpdGxlID4gLnJvdzpiZWZvcmUge1xuICAgICAgdG9wOiBjYWxjKDUwcHggKyA0NXB4KTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2suaGFzLXRpdGxlID4gLnJvdzpiZWZvcmUge1xuICAgICAgdG9wOiBjYWxjKDUwcHggKyA2NXB4KTsgfSB9XG4gIC5wYXJhZ3JhcGgtaXRlbXMgPiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIC50aXRsZSBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucGFyYWdyYXBoLWl0ZW1zID4gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayAudGl0bGUgaDIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2NXB4OyB9IH1cblxuLmhvbWUuZnVsbCAucGFyYWdyYXBoLWl0ZW1zID4gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbi5wYWdlLmZ1bGwgLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sge1xuICBjb2xvcjogIzAwNTRGRjsgfVxuXG4uaG9tZS5mdWxsIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2suZGVsdGEtMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREYzRkY7XG4gIHBhZGRpbmctdG9wOiA5MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuaG9tZS5mdWxsIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2suZGVsdGEtMCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTY1cHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5ob21lLmZ1bGwgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jay5kZWx0YS0wID4gLnJvdzpiZWZvcmUge1xuICAgICAgdG9wOiAtNzBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvbWUuZnVsbCAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLmRlbHRhLTAgLmNvbHVtbiwgLmhvbWUuZnVsbCAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLmRlbHRhLTAgLmNvbHVtbnMge1xuICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnN3aXBlci1zbGlkZXNwZXJ2aWV3LWF1dG8gLnN3aXBlci1zbGlkZSB7XG4gICAgd2lkdGg6IGF1dG87IH0gfVxuXG4ucGFyYWdyYXBoLS10eXBlLS1pbWFnZXMucGFyYWdyYXBoLS12aWV3LW1vZGUtLXNsaWRlc2hvdyB7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1pbWFnZXMucGFyYWdyYXBoLS12aWV3LW1vZGUtLXNsaWRlc2hvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEzMHB4OyB9IH1cbiAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gaDIgKyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmctdG9wOiA0NXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0NXB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDkwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjAwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNjBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjYwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMzBweDsgfSB9XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQgLmNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7IH1cbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50IC5jb250YWluZXI6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMTQ0cHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9wc2V1ZG9fbGVmdC5zdmdcIik7IH1cbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50IC5jb250YWluZXI6YmVmb3JlIHtcbiAgICAgICAgYm90dG9tOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQgLmNvbnRhaW5lcjpiZWZvcmUge1xuICAgICAgICAgICAgYm90dG9tOiAtODBweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIGZpZ3VyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbi5kZWx0YS1sYXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0ICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50LFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tam9icyArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50LFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50LFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXByb2R1Y3RzICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQge1xuICAgICAgcGFkZGluZy10b3A6IDE2MHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50LFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1saXN0ICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1wcm9kdWN0cyArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiAyNDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50LFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3ICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCB7XG4gICAgICBwYWRkaW5nLXRvcDogMzIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCxcbiAgICAucGFyYWdyYXBoLS10eXBlLS1qb2JzICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tbGlzdCArIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5jb250ZW50LFxuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3ICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24gLmNvbnRlbnQsXG4gICAgLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMgKyAucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAuY29udGVudCB7XG4gICAgICBwYWRkaW5nLXRvcDogNDIwcHg7IH0gfVxuXG4ucGFyYWdyYXBoLS10eXBlLS1mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWZvcm0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tZm9ybSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMzBweDsgfSB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLXBhcnRuZXJzIHtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICAucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycyAuZmllbGQtbmFtZS1maWVsZC12aWV3IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXBhcnRuZXJzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuICAucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICAucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycyAuaXRlbS1saXN0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICAucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycyBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXBhcnRuZXJzIGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycyBhIGltZyB7XG4gICAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGZpbHRlcjtcbiAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpIGJyaWdodG5lc3MoMjYwJSk7IH1cbiAgICAucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycyBhOmhvdmVyIGltZywgLnBhcmFncmFwaC0tdHlwZS0tcGFydG5lcnMgYTpmb2N1cyBpbWcge1xuICAgICAgZmlsdGVyOiBub25lOyB9XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWFydGljbGVzIHtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWFydGljbGVzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWFydGljbGVzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEzMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWFydGljbGVzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2MHB4OyB9IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCAuZmllbGQtbmFtZS1maWVsZC1saXN0IHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgLmZpZWxkLW5hbWUtZmllbGQtbGlzdCB1bCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAuNHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgLmZpZWxkLW5hbWUtZmllbGQtbGlzdCB1bCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMXB4OyB9IH1cbiAgICAucGFyYWdyYXBoLS10eXBlLS1saXN0IC5maWVsZC1uYW1lLWZpZWxkLWxpc3QgdWwgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA4cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDE3cHg7XG4gICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9jaGVjay5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGZpbHRlcjogaW52ZXJ0KDk2JSkgc2VwaWEoOTYlKSBzYXR1cmF0ZSgxOCUpIGh1ZS1yb3RhdGUoMjU5ZGVnKSBicmlnaHRuZXNzKDEwMyUpIGNvbnRyYXN0KDEwNiUpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5wYXJhZ3JhcGgtLXR5cGUtLWxpc3QgLmZpZWxkLW5hbWUtZmllbGQtbGlzdCB1bCBsaTpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNTBweDsgfSB9XG5cbi5wcm9kdWN0LXZhcmlhdGlvbiAucGFyYWdyYXBoLS10eXBlLS12aWRlby1lbWJlZCB7XG4gIG1hcmdpbi10b3A6IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHJvZHVjdC12YXJpYXRpb24gLnBhcmFncmFwaC0tdHlwZS0tdmlkZW8tZW1iZWQge1xuICAgICAgbWFyZ2luLXRvcDogOTBweDsgfSB9XG5cbi5maWVsZC1uYW1lLWZpZWxkLXZpZGVvcyB7XG4gIG1heC13aWR0aDogOTYwcHg7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5maWVsZC1uYW1lLWZpZWxkLXZpZGVvcyAuZmllbGQtaXRlbXMgPiBkaXY6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG5cbi5wYXJhZ3JhcGgtaXRlbXMgLnBhcmFncmFwaC0tdHlwZS0tdmlkZW8tZW1iZWQge1xuICBwYWRkaW5nLXJpZ2h0OiAzLjEyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAzLjEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXJhZ3JhcGgtaXRlbXMgLnBhcmFncmFwaC0tdHlwZS0tdmlkZW8tZW1iZWQge1xuICAgICAgcGFkZGluZy1yaWdodDogMS44NzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuODc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFyYWdyYXBoLWl0ZW1zIC5wYXJhZ3JhcGgtLXR5cGUtLXZpZGVvLWVtYmVkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuICAucGFyYWdyYXBoLWl0ZW1zIC5wYXJhZ3JhcGgtLXR5cGUtLXZpZGVvLWVtYmVkIC5maWVsZC10eXBlLXZpZGVvLWVtYmVkLWZpZWxkIHtcbiAgICBtYXgtd2lkdGg6IDc2Ljg3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAucGFyYWdyYXBoLWl0ZW1zIC5wYXJhZ3JhcGgtLXR5cGUtLXZpZGVvLWVtYmVkIC5maWVsZC10eXBlLXZpZGVvLWVtYmVkLWZpZWxkOjpiZWZvcmUsIC5wYXJhZ3JhcGgtaXRlbXMgLnBhcmFncmFwaC0tdHlwZS0tdmlkZW8tZW1iZWQgLmZpZWxkLXR5cGUtdmlkZW8tZW1iZWQtZmllbGQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxOyB9XG4gICAgLnBhcmFncmFwaC1pdGVtcyAucGFyYWdyYXBoLS10eXBlLS12aWRlby1lbWJlZCAuZmllbGQtdHlwZS12aWRlby1lbWJlZC1maWVsZDo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cblxuLnByb2R1Y3QtdmFyaWF0aW9uIC5wYXJhZ3JhcGgtLXR5cGUtLXZpZGVvLWVtYmVkIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlIHtcbiAgY29sb3I6ICMwMDU0RkY7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMzBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZS5vcHRpb24taW1hZ2UtbGVmdCAucm93IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2UgLnJvdyB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cbiAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZSBmaWd1cmUge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZSBmaWd1cmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuLnByb2R1Y3QtdmFyaWF0aW9uIHVsLmxpbmtzLXdyYXBwZXIge1xuICBtYXJnaW46IDQ1cHggMCAwIDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5wcm9kdWN0LXZhcmlhdGlvbiB1bC5saW5rcy13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDkwcHg7IH0gfVxuXG4ucHJvZHVjdC12YXJpYXRpb24gLmludHJvLXJvdyB7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucHJvZHVjdC12YXJpYXRpb24gLmludHJvLXJvdyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cblxuLnByb2R1Y3QtdmFyaWF0aW9uIC5nYWxsZXJ5LXRvcCAuc3dpcGVyLXNsaWRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLnByb2R1Y3QtdmFyaWF0aW9uID4gZGl2ID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCArIC5maWVsZC1uYW1lLWZpZWxkLXBhcmFncmFwaHMge1xuICBtYXJnaW4tdG9wOiA0NXB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnByb2R1Y3QtdmFyaWF0aW9uID4gZGl2ID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCArIC5maWVsZC1uYW1lLWZpZWxkLXBhcmFncmFwaHMge1xuICAgICAgbWFyZ2luLXRvcDogOTBweDsgfSB9XG5cbi5maWVsZC1uYW1lLWZpZWxkLXByb2R1Y3QtdmFyYXRpb25zIC5jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC52YXJpYXRpb24tY29udGVudCA+IGgyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmhhcy1uby1pbWFnZXMgLnZhcmlhdGlvbi1jb250ZW50ID4gaDIge1xuICBkaXNwbGF5OiBibG9jazsgfVxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjYuM1xuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW5vcm1hbGl6ZSgpIHtcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4gIC8vIERvY3VtZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cblxuICBodG1sIHtcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICB9XG5cbiAgLy8gU2VjdGlvbnNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAvLyBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xuICB9XG5cbiAgLy8gR3JvdXBpbmcgY29udGVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gIC8vIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuXG4gIGhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICAgIGhlaWdodDogMDsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyAyXG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgcHJlIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICAvLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuXG4gIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyAvLyAxXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8vIDJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vICAyMC4gRm9ybXNcbi8vICAyMS4gTGFiZWxcbi8vICAyMi4gTWVkaWEgT2JqZWN0XG4vLyAgMjMuIE1lbnVcbi8vICAyNC4gTWV0ZXJcbi8vICAyNS4gT2ZmLWNhbnZhc1xuLy8gIDI2LiBPcmJpdFxuLy8gIDI3LiBQYWdpbmF0aW9uXG4vLyAgMjguIFByb2dyZXNzIEJhclxuLy8gIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vICAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAgMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAgMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vICAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vICA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAgNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAgNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgNDcuIFJldmVhbFxuLy8gIDQ4LiBTbGlkZXJcbi8vICA0OS4gU3dpdGNoXG4vLyAgNTAuIFRhYmxlXG4vLyAgNTEuIFRhYnNcbi8vICA1Mi4gVGh1bWJuYWlsXG4vLyAgNTMuIFRpdGxlIEJhclxuLy8gIDU0LiBUb29sdGlwXG4vLyAgNTUuIFRvcCBCYXJcbi8vICA1Ni4gWHkgR3JpZFxuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kcHJpbWFyeS1saWdodC1jb2xvcjogI0VERjNGRjtcbiRwcmltYXJ5LWRhcmstY29sb3I6ICMwMDJDODc7XG4kbW9iaWxlLW5hdi1icmVha3BvaW50OiB4bGFyZ2U7XG5cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjMwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS43NTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzAwNTRGRixcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbik7XG4kbGlnaHQtZ3JheTogIzk3OTc5NztcbiRtZWRpdW0tZ3JheTogIzJFMkUyRTtcbiRkYXJrLWdyYXk6ICMwMTAwMjE7XG4kYmxhY2s6ICMwMDAwMDA7XG4kd2hpdGU6ICNGRkZGRkY7XG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2s7XG4kYm9keS1mb250LWZhbWlseTogcGFyYWx1Y2VudCwgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtcG9zaXRpb246IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IDMwMDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IDcwMDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDEycHggMDtcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcbiRwcmludC1ocmVmczogdHJ1ZTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gIHRpbnk6IDAsXG4gIHNtYWxsOiA0ODBweCxcbiAgbWVkaXVtOiA3NjhweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6ICh0aW55IHNtYWxsIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICB0aW55OiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJztcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiA2MDA7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlO1xuJGhlYWRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuMTU7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHRpbnk6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQyKSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDM1KSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDIxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbGFyZ2U6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDcwKSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQ0KSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbik7XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZTtcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kY29kZS1ibG9jay1wYWRkaW5nOiAxcmVtO1xuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1wbHVzLWNvbnRlbnQ6ICdcXDAwMkInO1xuJGFjY29yZGlvbi1taW51cy1jb250ZW50OiAnXFwyMDEzJztcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxMHB4IDIuNXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1kYXJrLWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogbm9uZTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDNyZW0gMi41cmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogZmFsc2U7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuJGJ1dHRvbi1wYWRkaW5nOiAxM3B4IDI0cHggMTJweCAyNHB4O1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1yYWRpdXM6IDI1cHg7XG4kYnV0dG9uLWJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHg7XG4kYnV0dG9uLXNpemVzOiAoXG4gIGRlZmF1bHQ6IDIxcHgsXG4pO1xuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlO1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtc2l6ZXM6IChcbiAgdGlueTogMC41cmVtLFxuICBkZWZhdWx0OiAxcmVtLFxuICBsYXJnZTogM3JlbSxcbik7XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMDtcbiRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemU6IG1lZGl1bTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICB0aW55OiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICB0aW55OiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHRpbnk6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiBmYWxzZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweDtcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtO1xuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiBudWxsO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICRwcmltYXJ5LWxpZ2h0LWNvbG9yO1xuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMDtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LWJvcmRlcjogbm9uZTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudDtcblxuLy8gMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2O1xuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZTtcblxuLy8gMjAuIEZvcm1zXG4vLyAtLS0tLS0tLS1cblxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrO1xuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGlucHV0LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAxLjQ7XG4kaW5wdXQtYmFja2dyb3VuZDogJHByaW1hcnktbGlnaHQtY29sb3I7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHByaW1hcnktbGlnaHQtY29sb3I7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktbGlnaHQtY29sb3I7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBub25lO1xuJGlucHV0LXNoYWRvdy1mb2N1czogbm9uZTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIyLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIzLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmU6ICRibGFjaztcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICB0aW55OiAxMDB2dyxcbiAgbWVkaXVtOiA0ODBweCxcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHRpbnk6IDI1MHB4LFxuKTtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJHByaW1hcnktbGlnaHQtY29sb3I7XG4kb2ZmY2FudmFzLXNoYWRvdzogbm9uZTtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDA7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogbm9uZTtcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMztcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG5cbi8vIDI2LiBPcmJpdFxuLy8gLS0tLS0tLS0tXG5cbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjcuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGU7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuJHBhZ2luYXRpb24tYXJyb3ctcHJldmlvdXM6ICdcXDAwQUInO1xuJHBhZ2luYXRpb24tYXJyb3ctbmV4dDogJ1xcMDBCQic7XG5cbi8vIDI4LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pO1xuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbi8vIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSk7XG4kcHJvdG90eXBlLWJvcmRlci10eXBlOiBzb2xpZDtcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKTtcblxuLy8gMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDQpO1xuJHByb3RvdHlwZS1mb250LW5vcm1hbDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKTtcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbik7XG5cbi8vIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLW92ZXJmbG93OiAoXG4gIHZpc2libGUsXG4gIGhpZGRlbixcbiAgc2Nyb2xsXG4pO1xuXG4vLyAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxuICBzdGF0aWMsXG4gIHJlbGF0aXZlLFxuICBhYnNvbHV0ZSxcbiAgZml4ZWRcbik7XG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NTtcblxuLy8gMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMyk7XG5cbi8vIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxuMCAycHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbik7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKTtcblxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcblxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pO1xuXG4vLyA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKTtcblxuLy8gNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXV0aWxpdGllcy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4vLyA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbik7XG5cbi8vIDQ3LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA2MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gNDguIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW07XG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDQ5LiBTd2l0Y2hcbi8vIC0tLS0tLS0tLS1cblxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW07XG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luO1xuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiRzd2l0Y2gtb3BhY2l0eS1kaXNhYmxlZDogLjU7XG4kc3dpdGNoLWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICRwcmltYXJ5LWxpZ2h0LWNvbG9yO1xuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItYWN0aXZlLWNvbG9yOiAkd2hpdGU7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEwcHggMzBweCA0cHg7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHByaW1hcnktZGFyay1jb2xvcjtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogM3JlbSAyLjVyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IDRweCBzb2xpZCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgdGlueTogMjBweCxcbiAgbWVkaXVtOiAzMHB4XG4pO1xuJGdyaWQtcGFkZGluZy1ndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycztcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItbWF4OiAkZ2xvYmFsLXdpZHRoO1xuJHh5LWJsb2NrLWdyaWQtbWF4OiA4O1xuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogaGlkZGVuICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCkgI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAjeyRpbXBvcnRhbnR9O1xuICBib3JkZXI6IDAgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZihcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogc3RhdGljICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiBhdXRvICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogdmlzaWJsZSAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiBhdXRvICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludChcbiAgJHNtYWxsOiB0cnVlLFxuICAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWVcbikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKGF1dG8sIC16Zi1ib29sKCRzbWFsbCksIC16Zi1ib29sKCRhdXRvLWluc2VydC1icmVha3BvaW50cykpIHtcbiAgICBAY29udGVudFxuICB9O1xufVxuXG4vLy8gSXRlcmF0ZXMgd2l0aCBgQGNvbnRlbnRgIHRocm91Z2ggdGhlIGdpdmVuIGxpc3Qgb2YgYnJlYWtwb2ludHMgYCRicmVha3BvaW50c2AuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYnJlYWtwb2ludHMgW2F1dG9dIC0gQnJlYWtwb2ludHMgdG8gaXRlcmF0ZXMgb24uIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58TnVsbH0gJHplcm8tYnJlYWtwb2ludCBbbnVsbF0gLSBXaGV0aGVyIHRoZSB6ZXJvLWJyZWFrcG9pbnQgKG9mdGVuIGBzbWFsbGApIG11c3QgYmUgaW5jbHVkZWQuIElmIGB0cnVlYCwgaXQgd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGxpc3QgaWYgbm90IGFscmVhZHkgdGhlcmUuIElmIGBmYWxzZWAsIGl0IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQuIERvZXMgbm90aGluZyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxLZXl3b3JkfSAkbWVkaWEtcXVlcmllcyBbdHJ1ZV0gLSBXaGV0aGVyIG1lZGlhLXF1ZXJpZXMgbXVzdCBiZSBnZW5lcmF0ZWQuIElmIGBmb3ItbGlzdHNgLCBvbmx5IGdlbmVyYXRlIG1lZGlhLXF1ZXJpZXMgd2hlbiBgJGJyZWFrcG9pbnRzYCBpcyBhIGxpc3QuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludC1pbihcbiAgJGJyZWFrcG9pbnRzOiBhdXRvLFxuICAkemVyby1icmVha3BvaW50OiBudWxsLFxuICAkbWVkaWEtcXVlcmllczogdHJ1ZVxuKSB7XG4gICQtbGlzdDogKCk7XG4gICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiB0cnVlO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnQocykgdG8gaXRlcmF0ZSBvbi5cbiAgQGlmICRicmVha3BvaW50cyA9PSBhdXRvIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdsaXN0JyB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludHM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdzdHJpbmcnIHtcbiAgICAkLWxpc3Q6ICgkYnJlYWtwb2ludHMpO1xuICAgICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiBmYWxzZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiJGJyZWFrcG9pbnRzXCIgaW4gXCItemYtZWFjaC1icmVha3BvaW50LWluKClcIi4gR290IFwiI3skYnJlYWtwb2ludHN9XCIgKCN7dHlwZS1vZigkYnJlYWtwb2ludHMpfSkuIEV4cGVjdGVkIGEgYnJlYWtwb2ludCBuYW1lLCBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgXCJhdXRvXCInO1xuICB9XG5cbiAgLy8gQWRkIG9yIHJlbW92ZSB0aGUgemVybyBicmVha3BvaW50IGFjY29yZGluZyB0byBgJHplcm8tYnJlYWtwb2ludGBcbiAgQGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gdHJ1ZSB7XG4gICAgJC1saXN0OiBqb2luKCgkLXpmLXplcm8tYnJlYWtwb2ludCksIHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KSk7XG4gIH1cbiAgQGVsc2UgaWYgJHplcm8tYnJlYWtwb2ludCA9PSBmYWxzZSB7XG4gICAgJC1saXN0OiBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBJdGVyYXRlIG9uIGJyZWFrcG9pbnQocylcbiAgQGVhY2ggJGJwIGluICQtbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkYnAgIWdsb2JhbDtcblxuICAgIEBpZiAoJG1lZGlhLXF1ZXJpZXMgPT0gdHJ1ZVxuICAgICAgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldCdzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlciB0aGFuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAmLCAmLmlucHV0LWdyb3VwLWJ1dHRvbiA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcblxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbiAgJjpub3QoW211bHRpcGxlXSkge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZTtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZTtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5saW5lIENpdGF0aW9uc1xuICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgY2l0ZSB7XG4gICAgICAvLyBFeHRlbmRpbmcgYSBjbGFzcyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgICAvLyBUT0RPOiBCcmVhayB0aGUgdHlwb2dyYXBoeS1iYXNlL3R5cG9ncmFwaHktaGVscGVycyBzZXBhcmF0aW9uXG4gICAgICBAZXh0ZW5kIC5jaXRlLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICBjb2RlIHtcbiAgICAgIEBleHRlbmQgLmNvZGUtaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIEhpRFBJIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzIGZvciByZXNvbHV0aW9ucy5cbi8vLyBWYWx1ZXMgbXVzdCByZXByZXNlbnQgdGhlIGRldmljZSBwaXhlbHMgLyB3ZWIgcGl4ZWxzIHJhdGlvbiBhbmQgYmUgdW5pdGxlc3Mgb3IgaW4gRFBQWC5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBoaWRwaS0xOiAxLFxuICBoaWRwaS0xLTU6IDEuNSxcbiAgaGlkcGktMjogMixcbiAgcmV0aW5hOiAyLFxuICBoaWRwaS0zOiAzXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFdlYiBzdGFuZGFyZCBQaXhlbHMgcGVyIGluY2guICgxZGRweCAvICRzdGQtd2ViLWRwaSkgPSAxZHBpXG4gIC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy0zLyNhYnNvbHV0ZS1sZW5ndGhzXG4gICRzdGQtd2ViLWRwaTogOTY7XG5cbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBvZiB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnRcbiAgJGJwLW5leHQ6IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWluOiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWluLXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogbnVsbDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIElmIG5hbWVkLCBuYW1lIG9mIHRoZSBicmVha3BvaW50XG4gICRuYW1lOiBudWxsO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIEhpRFBJIGJyZWFrcG9pbnRcbiAgJGhpZHBpOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cblxuICAvLyBJZiBhIGJyZWFrcG9pbnQgbmFtZSBpcyBnaXZlbiwgZ2V0IGl0cyB2YWx1ZSBmcm9tIHRoZSAkYnJlYWtwb2ludHMvJGJyZWFrcG9pbnRzLWhpZHBpIG1hcC5cbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLWhpZHBpLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0LW51bWJlcigkYnJlYWtwb2ludHMtaGlkcGksICRicCk7XG4gICAgICAkaGlkcGk6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgYCRicmVha3BvaW50c2Agb3IgYCRicmVha3BvaW50cy1oaWRwaWAgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJG5hbWUgYW5kICRkaXIgPT0gJ29ubHknIHtcbiAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gT25seSAnb25seScgYW5kICd1cCcgaGF2ZSBhIG1pbiBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ3VwJyB7XG4gICAgJGJwLW1pbjogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgfVxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ2Rvd24nIGhhdmUgYSBtYXggbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSB2YWx1ZSwgdXNlIGl0IGFzIG1heCBsaW1pdC5cbiAgICBAaWYgbm90ICRuYW1lIHtcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gICAgfVxuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIG5hbWVkLCB0aGUgbWF4IGxpbWl0IGlzIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCAtIDFweC5cbiAgICBAZWxzZSBpZiAkYnAtbmV4dCB7XG4gICAgICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gICAgICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCAkYnAtbmV4dCAtICgxLyRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0X251bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dF9udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0X251bWJlcikge1xuICAgICAgJG5leHRfbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0X251bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1ibG9jay1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIHVuZGVyIHRoZSBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b206IDEuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGNpdGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICRjaXRlLWNvbG9yO1xuICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZCBiYXNpYyBzdHlsZXMgZm9yIGEgY29kZSBoZWxwZXIuXG4vLy8gU2VlIGBjb2RlLWlubGluZWAgYW5kIGBjb2RlLWJsb2NrYCBtaXhpbnMuXG5AbWl4aW4gY29kZS1zdHlsZSB7XG4gIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGNvZGUtY29sb3I7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBpbmxpbmUuXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtaW5saW5lYFxuQG1peGluIGNvZGUtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gYSBibG9jay5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1ibG9ja2BcbkBtaXhpbiBjb2RlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuXG4gIHBhZGRpbmc6ICRjb2RlLWJsb2NrLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206ICRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b207XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5jaXRlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjaXRlLWJsb2NrO1xuICB9XG5cbiAgLmNvZGUtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNvZGUtc3R5bGU7XG4gICAgQGluY2x1ZGUgY29kZS1ibG9jaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheXMgbmV4dCB0byBhbGwgbGlua3MgdGhlaXIgXCJocmVmXCIgd2hlbiBwcmludGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgLy8gRW5zdXJlIGEgXCJibGFjay1vbi13aGl0ZVwiIHByaW50IGJ5IHJlbW92aW5nIGJhY2tncm91bmRzLFxuICAgICAgLy8gdXNpbmcgYmxhY2sgdGV4dCBldmVyeXdoZXJlIGFuZCBmb3JjaW5nIHRoZSBicm93c2VyIHRvIGVjb25vbWl6ZSBpbmsuXG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgICAgY29sb3ItYWRqdXN0OiBlY29ub215O1xuICAgICAgfVxuICAgICAgLy8gT3RoZXJ3aXNlLCBwcmV2ZW50IGFueSBlY29ub215IGJ5IHRoZSBicm93c2VyLlxuICAgICAgQGVsc2Uge1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgYmFzaWMgc3R5bGVzIGZyb20gYmVpbmcgb3V0cHV0LiBVc2VmdWwgaWYgeW91J3JlIGNhbGxpbmcgdGhpcyBtaXhpbiBvbiB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLCBhcyBpdCBwcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIG91dHB1dC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIGhhdmUgcm93IHdyYXBwaW5nIGJlaGF2aW9yIHNldCB0byBub3dyYXBcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGZsZXgtZ3JpZC1yb3coXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiYXNlOiB0cnVlLFxuICAkd3JhcDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkYmFzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyAkd3JhcDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMsICRiYXNlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGBmbGV4YCBwcm9wZXJ0eSBmb3IgYSBmbGV4IGdyaWQgY29sdW1uLiBJdCBhY2NlcHRzIGFsbCBvZiB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJhc2ljIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0d28gZXh0cmFzOlxuLy8vICAgLSBgZXhwYW5kYCAodGhlIGRlZmF1bHQpIHdpbGwgbWFrZSB0aGUgY29sdW1uIGV4cGFuZCB0byBmaWxsIHNwYWNlLlxuLy8vICAgLSBgc2hyaW5rYCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBjb250cmFjdCwgc28gaXQgb25seSB0YWtlcyB1cCB0aGUgaG9yaXpvbnRhbCBzcGFjZSBpdCBuZWVkcy5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi5cbkBmdW5jdGlvbiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zOiBleHBhbmQpIHtcbiAgJGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG5cbiAgQGlmICRjb2x1bW5zID09IHNocmluayB7XG4gICAgJGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICRjb2x1bW5zICE9IGV4cGFuZCB7XG4gICAgJGZsZXg6IDAgMCBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cblxuICBAcmV0dXJuICRmbGV4O1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbHVtbiBmb3IgYSBmbGV4IGdyaWQuIEJ5IGRlZmF1bHQsIHRoZSBjb2x1bW4gd2lsbCBzdHJldGNoIHRvIHRoZSBmdWxsIHdpZHRoIG9mIGl0cyBjb250YWluZXIsIGJ1dCB0aGlzIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggc2l6aW5nIGNsYXNzZXMsIG9yIGJ5IHVzaW5nIHRoZSBgdW5zdGFja2AgY2xhc3Mgb24gdGhlIHBhcmVudCBmbGV4IHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzIHdpZHRoLiBTZWUgdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXJgIG1peGluLlxuQG1peGluIGZsZXgtZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiBleHBhbmQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgLy8gQmFzZSBwcm9wZXJ0aWVzXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKCRjb2x1bW5zKTtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIGZpeGVzIHJlY2VudCBDaHJvbWUgdmVyc2lvbiBub3QgbGltaXRpbmcgY2hpbGQgd2lkdGhcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ5MzQ1ODYvd2hpdGUtc3BhY2Utbm93cmFwLWFuZC1mbGV4Ym94LWRpZC1ub3Qtd29yay1pbi1jaHJvbWVcbiAgQGlmICRjb2x1bW5zID09IGV4cGFuZCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgYmxvY2sgZ3JpZCBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gZGlzcGxheSBvbiBlYWNoIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIC0gU2VsZWN0b3IgdG8gdXNlIHRvIHRhcmdldCBjb2x1bW5zIHdpdGhpbiB0aGUgcm93LlxuQG1peGluIGZsZXgtZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJ1xuKSB7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgJHBjdDogcGVyY2VudGFnZSgxLyRuKTtcblxuICAgIGZsZXg6IDAgMCAkcGN0O1xuICAgIG1heC13aWR0aDogJHBjdDtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgd2lkdGggZmxleCBncmlkIGNvbHVtbi5cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGZsZXgtZ3JpZC1zaXplKCRjb2x1bW5zOiBudWxsKSB7XG4gICRjb2x1bW5zOiAkY29sdW1ucyBvciBleHBhbmQ7XG5cbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XG5cbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XG4gIEBpZiAkY29sdW1ucyAhPSBleHBhbmQgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xuICAvLyBSb3dcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcbiAgICAmIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCByb3dcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcblxuICAgICAgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVuZG8gbmVnYXRpdmUgbWFyZ2luc1xuICAgIC8vIEZyb20gY29sbGFwc2VkIGNoaWxkXG4gICAgJi5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgICAmLmNvbGxhcHNlID4gLmNvbHVtbiA+IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC5jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLmNvbHVtbi5yb3cucm93IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAucm93IC5jb2x1bW4ucm93LnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWxheW91dCgkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAvLyBTaXppbmcgKGV4cGFuZClcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXV0by1zdGFja2luZy91bnN0YWNraW5nXG4gICAgICBAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcbiAgICAgICAgLnJvdy4jeyQtemYtc2l6ZX0tdW5zdGFjayB7XG4gICAgICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LWNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS11bmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6aW5nIChzaHJpbmspXG4gIC5zaHJpbmsge1xuICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLmNvbHVtbi1ibG9jayB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgIEBleHRlbmQgLmNvbHVtbjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBwbGFjZWhvbGRlci1pbi1leHRlbmRcblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG5cbi8vLyBQYXJzZSB0aGUgZ2l2ZW4gYCRmcmFjdGlvbmAgdG8gbnVtZXJhdG9ycyBhbmQgZGVudW1lcmF0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byBwYXJzZS4gSXQgY2FuIGJlIGZvcm1hdHRlZCBhcyBgNTAlYCwgYDEgb2YgMmAsIGAxLzJgIG9yIGA1MGAgKG5vIGRlbm9taW5hdG9yIHdvdWxkIGJlIHJldHVybmVkKS5cbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IExpc3Qgb2YgcGFyc2VkIHZhbHVlcyB3aXRoIG51bWVyYXRvciBhdCBmaXJzdCBwb3NpdGlvbiBhbmQgZGVudW1lcmF0b3IgYXMgc2Vjb25kLiBUaGVzZSB2YWx1ZXMgbWF5IGJlIG51bGwuXG5AZnVuY3Rpb24gemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKSB7XG5cbiAgQGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gXCI1MCVcIlxuICAgIEBpZiB1bml0KCRmcmFjdGlvbikgPT0gJyUnIHtcbiAgICAgIEByZXR1cm4gKHN0cmlwLXVuaXQoJGZyYWN0aW9uKSwgMTAwKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKHVuaXQoJGZyYWN0aW9uKSA9PSAnJykge1xuICAgICAgLy8gXCIwLjVcIlxuICAgICAgQGlmICRmcmFjdGlvbiA8IDEge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24gKiAxMDAsIDEwMCk7XG4gICAgICB9XG4gICAgICAvLyBcIjUwXCJcbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uLCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ2xpc3QnIHtcbiAgICAvLyBcIjUwIG9mIDEwMFwiLCBcIjUwLzEwMFwiLi4uXG4gICAgQGlmIGxlbmd0aCgkZnJhY3Rpb24pID09IDNcbiAgICAgIGFuZCB0eXBlLW9mKG50aCgkZnJhY3Rpb24sIDEpID09ICdudW1iZXInKVxuICAgICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMykgPT0gJ251bWJlcicpIHtcbiAgICAgIEByZXR1cm4gKG50aCgkZnJhY3Rpb24sIDEpLCBudGgoJGZyYWN0aW9uLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAobnVsbCwgbnVsbCk7XG59XG5cbi8vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGAkdmFsdWVgIHJlcHJlc2VudHMgYSBmcmFjdGlvbi4gU3VwcG9ydHMgZm9ybWF0cyBsaWtlIGA1MCVgLCBgMSBvZiAyYCwgYDEgcGVyIDJgIG9yIGAxLzJgLlxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGFsbG93LW5vLWRlbm9taW5hdG9yIFtmYWxzZV0gLSBJZiBgdHJ1ZWAsIHNpbXBsZSBudW1iZXJzIHdpdGhvdXQgZGVub21pbmF0b3JzIGxpa2UgYDUwYCBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gYHRydWVgIGlmIGAkdmFsdWVgIHJlcHJlc2VudHMgYSBmcmFjdGlvbiwgYGZhbHNlYCBvdGhlcndpc2UuXG5AZnVuY3Rpb24gemYtaXMtZnJhY3Rpb24oJHZhbHVlLCAkYWxsb3ctbm8tZGVub21pbmF0b3I6IGZhbHNlKSB7XG4gICRwYXJzZWQ6IHpmLXBhcnNlLWZyYWN0aW9uKCR2YWx1ZSk7XG4gIEByZXR1cm4gbm90KG50aCgkcGFyc2VkLCAxKSA9PSBudWxsXG4gICAgb3IgKG50aCgkcGFyc2VkLCAyKSA9PSBudWxsIGFuZCAkYWxsb3ctbm8tZGVub21pbmF0b3IgPT0gZmFsc2UpKTtcbn1cblxuLy8vIENhbGN1bGF0ZSBhIHBlcmNlbnRhZ2UgZnJvbSBhIGdpdmVuIGZyYWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSwgZm9ybWF0dGVkIGFzIGA1MGAgKHJlbGF0aXZlIHRvIGAkZGVub21pbmF0b3JgKSwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRkZW5vbWluYXRvciAtIERlZmF1bHQgdmFsdWUgdG8gdXNlIGFzIGRlbm9taW5hdG9yIHdoZW4gYCRmcmFjdGlvbmAgcmVwcmVzZW50cyBhbiBhYnNvbHV0ZSB2YWx1ZS5cbkBmdW5jdGlvbiBmcmFjdGlvbi10by1wZXJjZW50YWdlKFxuICAkZnJhY3Rpb24sXG4gICRkZW5vbWluYXRvcjogbnVsbFxuKSB7XG4gICRwYXJzZWQ6IHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbik7XG4gICRwYXJzZWQtbm9taW5hdG9yOiBudGgoJHBhcnNlZCwgMSk7XG4gICRwYXJzZWQtZGVub21pbmF0b3I6IG50aCgkcGFyc2VkLCAyKTtcblxuICBAaWYgJHBhcnNlZC1ub21pbmF0b3IgPT0gbnVsbCB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgpXCIuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIiAvIFwibi9uXCIuJztcbiAgfVxuICBAaWYgJHBhcnNlZC1kZW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAaWYgdHlwZS1vZigkZGVub21pbmF0b3IpID09ICdudW1iZXInIHtcbiAgICAgICRwYXJzZWQtZGVub21pbmF0b3I6ICRkZW5vbWluYXRvcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGVycm9yICdFcnJvciB3aXRoIFwiZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgpXCIuIEEgZGVmYXVsdCBcIiRkZW5vbWluYXRvclwiIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgYWJzb2x1dGUgdmFsdWVzJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHBhcnNlZC1ub21pbmF0b3IgLyAkcGFyc2VkLWRlbm9taW5hdG9yKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gSXQgY2FuIGJlOlxuLy8vICAgKiBBIG51bWJlcjogVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnRcbi8vLyAgICAgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlXG4vLy8gICAgIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbi8vLyAgICogYGNlbnRlcmA6IENvbHVtbiB3aWxsIGJlIGNlbnRlcmVkXG4vLy8gICAqIGBhdXRvYDogQ29sdW1uIHdpbGwgYmUgcHVzaGVkIHRvIHRoZSBsZWZ0IChvciB0byB0aGUgcmlnaHQgZm9yIHRoZSBsYXN0IGNvbHVtbikuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIC8vIEF1dG8gcG9zaXRpb25pbmdcbiAgQGlmICRwb3NpdGlvbiA9PSBhdXRvIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQdXNoL3B1bGxcbiAgQGVsc2UgaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG5cbiAgLy8gQ2VudGVyIHBvc2l0aW9uaW5nXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIFwiY2VudGVyXCIgb3IgXCJhdXRvXCIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbihhdXRvKTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gSWdub3JlZCBpZiBudWxsIChkZWZhdWx0KVxuLy8vIEB0eXBlIEZvbnQtV2VpZ2h0XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBudWxsICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGJ1dHRvbnMsIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkaXRpb25hbCByZXNwb25zaXZlIGNsYXNzZXMgZm9yIC5leHBhbmRlZFxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IG9yIGNsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWZpbGwtc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLiBgc29saWRgIGhhcyBubyBlZmZlY3RzLlxuQG1peGluIGJ1dHRvbi1maWxsKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGVzIG9mIGEgc29saWQvaG9sbG93L2NsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbnMgYGJ1dHRvbi1zdHlsZWAsIGBidXR0b24taG9sbG93LXN0eWxlYCBhbmQgYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIGVmZmVjdHMgb2YgdmlzdWFsIHN0eWxpbmcgcGFyYW1ldGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIC1cbkBtaXhpbiBidXR0b24tZmlsbC1zdHlsZShcbiAgJGZpbGw6ICRidXR0b24tZmlsbCxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRmaWxsID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhci1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGFuZCBib3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRib3JkZXItd2lkdGggWyRidXR0b24taG9sbG93LWJvcmRlci13aWR0aF0gLSBCb3JkZXIgd2lkdGggb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1jbGVhciB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbkBtaXhpbiBidXR0b24tY2xlYXItc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3Ncbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQgYW5kIHJlc2V0aW5nIHRoZSBjdXJzb3IuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcGFjaXR5IFskYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRdIC0gT3BhY2l0eSBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZFxuKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbCgkc3R5bGUpO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkc3R5bGUsICRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24oJHN0eWxlOiBub25lKTtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgQGlmICRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZCB7XG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBvbmx5KSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1vbmx5LWV4cGFuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBkb3duKSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWRvd24tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNvbGlkLCBob2xsb3cgJiBjbGVhciBzdHlsZXNcbiAgICBAZWFjaCAkZmlsbGluZyBpbiAoc29saWQgaG9sbG93IGNsZWFyKSB7XG4gICAgICAkc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZyk7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93LCAmLmNsZWFyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuIChPbmx5IG5lZWRlZCB3aGVuICRnbG9iYWwtZmxleGJveDogZmFsc2U7KVxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmdcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNYWtlIGJ1dHRvbnMgYm9uZGVkIHdpdGhvdXQgZ2FwIGJldHdlZW4gdGhlbS4gQm9yZGVycyBiZXR3ZWVuIGJ1dHRvbnMgYXJlIG1lcmdlZFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1uby1nYXBzKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogcmVtLWNhbGMoLSRib3JkZXItd2lkdGgpO1xuXG4gICAgKyAjeyRzZWxlY3Rvcn0ge1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIERpc2FibGUgY2xlYXJmaXhcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skc3BhY2luZ30pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJGJhc2Utc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skYmFzZS1zZWxlY3Rvcn0ge1xuICAgICAgICAvLyBEbyBub3QgZ2VuZXJhdGUgYnV0dG9uIGJhc2Ugc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBmaWxsaW5nXG4gICAgICAgIEBpZigkYnV0dG9uLWZpbGwgIT0gJGZpbGxpbmcpIHtcbiAgICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAkaW5kaXZpZHVhbC1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfS4jeyRuYW1lfScpO1xuXG4gICAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0sICN7JGluZGl2aWR1YWwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5uby1nYXBzIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1uby1nYXBzO1xuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIENhbGxvdXQgcGFkZGluZ3MuXG4vLy8gQHR5cGUgTWFwXG4kY2FsbG91dC1zaXplczogKFxuICBzbWFsbDogMC41cmVtLFxuICBkZWZhdWx0OiAxcmVtLFxuICBsYXJnZTogM3JlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogbWFwLWdldCgkY2FsbG91dC1zaXplcywgZGVmYXVsdCk7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiBtYXAtcmVtb3ZlKCRjYWxsb3V0LXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKCRwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIHBsdXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLXBsdXMtY29udGVudDogJ1xcMDAyQicgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgbWludXMgaWNvbiB3aGVuIGAkYWNjb3JkaW9uLXBsdXNtaW51c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ6ICdcXDIwMTMnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgY29udGVudDogJGFjY29yZGlvbi1wbHVzLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkYWNjb3JkaW9uLW1pbnVzLWNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xuICB9XG5cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIChcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkbWFyZ2luO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIChcbiAgJHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplLFxuICAkY29sb3I6ICR0YWItY29sb3IsXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZVxuKSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzZWNvbmRhcnktY29sb3I6ICM3Njc2NzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJGFsZXJ0LWNvbG9yOiAjY2M0YjM3ICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIHRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS4uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZTogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlLCAoJG1lbnUtaXRlbS1jb2xvci1hY3RpdmUsICRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZSkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBMZWZ0XG4gICAgJi5pY29uLWxlZnQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEljb24gUmlnaHRcbiAgICAmLmljb24tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFRvcFxuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCb3R0b21cbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cbiAgICBcbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG59XG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG5cbiAgLmFjY29yZGlvbi1tZW51IHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luLCByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gIH1cblxuICAvLyBTdWJtZW51IHRvZ2dsZVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3Igc3ViLW1lbnUgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbVxuICAgID4gbGkgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbSBhY3RpdmUgc3RhdGVcbiAgICA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIEJpbmQgdG8gaGFzLXRyYW5zaXRpb24tWCBjbGFzcyB0byBwcmV2ZW50IHRyYW5zaXRpb24gZm9yIHRyYW5zZm9ybTpub25lXG4gICYuaGFzLXRyYW5zaXRpb24tb3ZlcmxhcCxcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIHNjb3BlIHVudGlsIHRoZSBlbGVtZW50IGlzIGNsb3NlZCAobWFrZXMgc3VyZSB0cmFuc2l0aW9uZW5kIGdldHMgdHJpZ2dlcmVkKVxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgZWxlbWVudCAmIGNvbnRlbnQsIG5lc3RlZCBpbiBhbm90aGVyIGNvbnRlbnRcbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4kcG9zaXRpb246IGxlZnQsXG4kemluZGV4OiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsXG4kY29udGVudDogJG1haW5jb250ZW50LWNsYXNzLFxuJGJyZWFrcG9pbnQ6IHNtYWxsXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBpbi1jYW52YXMgZm9yIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgaW4tY2FudmFzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICYubWVudSA+IGxpID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIkBmdW5jdGlvbiAtemYtZmxleC1qdXN0aWZ5KCR0ZXh0LWRpcmVjdGlvbil7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtIC4wMDEyNTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtIC4wMDEyNTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG5AbWl4aW4gLW1vdGlvbi11aS1kZWZhdWx0cyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLWVhc2luZ3MsIGRlZmF1bHQpO1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xuICAvLyBTbGlkZVxuICAuc2xpZGUtaW4tZG93biAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGRvd24pOyB9XG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XG4gIC5zbGlkZS1pbi11cCAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgdXApOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxuICAuc2xpZGUtb3V0LXJpZ2h0ICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHJpZ2h0KTsgfVxuICAuc2xpZGUtb3V0LXVwICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHVwKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAuc2hha2UsXG4gIC5zcGluLWN3LFxuICAuc3Bpbi1jY3csXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgcGF1c2UtcXVldWUtY2xhc3M6ICdpcy1wYXVzZWQnLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIFwiI3skb3V0cHV0fVwiO1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgLW11aS1pcy1mdW5jdGlvbigkbWFwKSB7XG4gICAgICAkbWFwOiAtbXVpLXNhZmUtY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgdHJhbnNpdGlvbiBieSB0cmFuc2xhdGluZyB0aGUgZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW251bGxdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuIEJ5IGRlZmF1bHQgYGxlZnRgIGFuZCBgcmlnaHRgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbnVsbCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gIT0gbnVsbCwgJGRpcmVjdGlvbiwgaWYoJHN0YXRlID09IGluLCBsZWZ0LCByaWdodCkpO1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFtudWxsXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLiBCeSBkZWZhdWx0IGAwYCBhbmQgYDFgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gW251bGxdIC0gT3BhY2l0eSB0byBlbmQgb24uIEJ5IGRlZmF1bHQgYDFgIGFuZCBgMGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IG51bGwsXG4gICR0bzogbnVsbCxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZnJvbTogaWYoJGZyb20gIT0gbnVsbCwgJGZyb20sIGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSkpO1xuICAkdG86IGlmKCR0byAhPSBudWxsLCAkdG8sIGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCkpO1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtudWxsXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuIEJ5IGRlZmF1bHQgYGZyb20tYmFja2AgYW5kIGBmcm9tLWZyb250YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogbnVsbFxuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICR0dXJuLW9yaWdpbjogaWYoJHR1cm4tb3JpZ2luICE9IG51bGwsICR0dXJuLW9yaWdpbiwgaWYoJHN0YXRlID09IGluLCBmcm9tLWJhY2ssIGZyb20tZnJvbnQpKTtcbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogLW11aS1zdHJpbmctc2FmZSgnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScpLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW251bGxdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC4gQnkgZGVmYXVsdCBgZnJvbS1iYWNrYCBhbmQgYGZyb20tZnJvbnRgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IG51bGwsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGhpbmdlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkdHVybi1vcmlnaW46IGlmKCR0dXJuLW9yaWdpbiAhPSBudWxsLCAkdHVybi1vcmlnaW4sIGlmKCRzdGF0ZSA9PSBpbiwgZnJvbS1iYWNrLCBmcm9tLWZyb250KSk7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbbnVsbF0gLSBTaXplIHRvIHN0YXJ0IGF0LiBCeSBkZWZhdWx0IGAwYCBhbmQgYDFgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gW251bGxdIC0gU2l6ZSB0byBlbmQgYXQuIEJ5IGRlZmF1bHQgYDFgIGFuZCBgMGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS16b29tKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbnVsbCxcbiAgJHRvOiBudWxsLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZyb206IGlmKCRmcm9tICE9IG51bGwsICRmcm9tLCBpZigkc3RhdGUgPT0gaW4sIDAsIDEpKTtcbiAgJHRvOiBpZigkdG8gIT0gbnVsbCwgJHRvLCBpZigkc3RhdGUgPT0gaW4sIDEsIDApKTtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW251bGxdIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS4gQnkgZGVmYXVsdCBgY3dgIGFuZCBgY2N3YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMC43NXR1cm5dIC0gQW1vdW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc3BpbihcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogY3csXG4gICRhbW91bnQ6IDAuNzV0dXJuLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzcGluLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uICE9IG51bGwsICRkaXJlY3Rpb24sIGlmKCRzdGF0ZSA9PSBpbiwgY3csIGNjdykpO1xuICAkc3Bpbjogc3Bpbigkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyBhbmQgYXNzaWducyBpdCB0byB0aGUgZWxlbWVudCBieSBhZGRpbmcgdGhlIGBhbmltYXRpb24tbmFtZWAgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xuICAkbmFtZTogbWFwLWdldCgtbXVpLXByb2Nlc3MtYXJncygkYXJncy4uLiksIG5hbWUpO1xuICBAaW5jbHVkZSBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkYXJncy4uLik7XG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcbn1cbiIsImJvZHkge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbn1cblxuLnBhdGgtdXNlci51c2VyLW5vdC1sb2dnZWQtaW4gZm9ybSB7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgfVxufVxuXG4uZHJvcGJ1dHRvbiB7XG4gICYgPiAuZHJvcGJ1dHRvbi1hY3Rpb24gPiBzcGFuIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLmRyb3BidXR0b24tdG9nZ2xlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcbiAgICAuZHJvcGJ1dHRvbi1hcnJvdyB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kcm9wLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxOHB4IDEzcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwOyBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcblxuICAgIC5kcm9wYnV0dG9uLWFjdGlvbiB7XG4gICAgICBhLCBzcGFuIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOiA2cHggOyBsZWZ0OiAxNXB4O1xuICAgICAgICAgIHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDJweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjI1cyBlYXNlLW91dDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5hY3RpdmUtbGFuZ3VhZ2Uge1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgfVxuICB9XG59XG5cbi5sYW5ndWFnZS1saW5rIHtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG59XG5cbi5kb21haW4tY3VzdG9tLW5hdi1ibG9jayB1bCBsaSB7XG4gIGEsIHNwYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuW2RhdGEtZG9tYWluLWlkXSB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG51bCBsaSB1bCB7XG4gIFtkYXRhLWRvbWFpbi1pZF0ge1xuICAgIHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7XG4gIH1cbn1cblxuW2RhdGEtZG9tYWluLWlkPSdodXBpY29fZXUnXSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9odXBpY29fY29tLnN2Z1wiKTtcbn1cblxuW2RhdGEtZG9tYWluLWlkPSdodXBpY29fYmUnXSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9odXBpY29fYmUuc3ZnXCIpO1xufVxuXG5bZGF0YS1kb21haW4taWQ9J2h1cGljb19mciddIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2h1cGljb19mci5zdmdcIik7XG59XG5cbltkYXRhLWRvbWFpbi1pZD0naHVwaWNvX25sJ10ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaHVwaWNvX25sLnN2Z1wiKTtcbn1cblxuLndyYXBwZXItcGFkZGluZyB7XG4gIEBpbmNsdWRlIHdyYXBwZXItcGFkZGluZztcbn1cblxuLnJvdyAucm93IHtcbiAgZmxleDogMTtcbn1cblxuLm1lZGl1bS1uby1jb2x1bW5zIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG4ubWVkaXVtLW5vLXBhZGRpbmctcmlnaHQge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmZpZWxkLW5hbWUtYm9keSxcbi5maWVsZC10eXBlLXRleHQtbG9uZyB7XG4gIC5maWVsZC1pdGVtcyB7XG4gICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLmludHJvLFxuLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2ssXG4ucGFyYWdyYXBoLWl0ZW1zID4gLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbi5maWVsZC1sYWJlbCxcbi50YWJzLXdyYXBwZXIgLnRhYnMgYSxcbi50YWJzLXdyYXBwZXIgLmFjY29yZGlvbiBhLFxuLnByb2R1Y3QtdmFyaWF0aW9uIGgyLFxuLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIC5jb250ZW50IC5maWVsZC1uYW1lLWZpZWxkLWJvZHksXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyA+IC5jb250ZW50ID4gLmZpZWxkLXR5cGUtdGV4dC1sb25nLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCA+IC5jb250ZW50ID4gLmZpZWxkLXR5cGUtdGV4dC1sb25nLFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgPiAuY29udGVudCA+IC5maWVsZC10eXBlLXRleHQtbG9uZyxcbi5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMgPiAuY29udGVudCA+IC5maWVsZC10eXBlLXRleHQtbG9uZyxcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2UgLmZpZWxkLXR5cGUtdGV4dC1sb25nIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC40cHg7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcbn1cblxuLmZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4uZmllbGQtbGFiZWwsXG4udGFicy13cmFwcGVyIC50YWJzIC5pcy1hY3RpdmUgYSB7XG4gIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xufVxuXG4uaXRlbS1saXN0ID4gdWwge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLml0ZW0tbGlzdCA+IC5saW5raWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiBhdXRvIGNhbGMoLTRweCAtIDhweCk7XG4gICYgPiBsaSB7XG4gICAgbWFyZ2luOiBhdXRvIDRweDtcbiAgfVxuICBhIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC5pY29uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgICAmOm5vdChbaHJlZio9XCJmYWNlYm9va1wiXSkge1xuICAgICAgLmljb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1vdXQ7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGFbaHJlZio9XCJmYWNlYm9va1wiXSB7XG4gICAgZm9udC1zaXplOiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1vdXQ7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG4ubGlua2ljb25fX3RleHQge1xuICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbn1cblxudWxbZGF0YS1kcnVwYWwtdmlld3MtaW5maW5pdGUtc2Nyb2xsLXBhZ2VyXSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5kaXZbY2xhc3MqPVwiZmllbGQtdHlwZS10ZXh0XCJdIHtcbiAgdWwge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGxpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTRweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJy0nO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDsgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZmlndXJlLm92ZXJsYXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgfVxuICAmID4gaW1nLCAmID4gcGljdHVyZSBpbWcsIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGltZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZSxcbi5wYWdlLnRlYXNlcixcbi5wcm9kdWN0LWNhdGVnb3JpZXMudGVhc2VyLmxldmVsLTEsXG4ucGFydG5lci50ZWFzZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZzogNDBweCA2OXB4IDU4cHggNjlweDtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxuICBhLmxpbmsge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZSAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuLnBhZ2UudGVhc2VyIC5maWVsZC1uYW1lLWJvZHkge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAuZmVhdHVyZXMtaXRlbXMsXG4udmlldy1pZC1qb2JzLnZpZXctZGlzcGxheS10ZWFzZXJzID4gLnJvdyA+IC5yb3csXG4udmlldy1pZC1wYXJ0bmVycy1ub2Rlcy52aWV3LWRpc3BsYXktdGVhc2VycyA+IC5yb3cgPiAucm93LFxuLnZpZXctaWQtcHJvZHVjdC1jYXRlZ29yaWVzID4gLnJvdyA+IC5yb3csXG4udmlldy1pZC1wcm9kdWN0cy52aWV3LWRpc3BsYXktdGVhc2VycyA+IC5yb3cgPiAucm93IHtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG59XG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyAuZmVhdHVyZXMtaXRlbXMgPiBkaXYsXG4udmlldy1pZC1qb2JzLnZpZXctZGlzcGxheS10ZWFzZXJzIC52aWV3cy1yb3csXG4udmlldy1pZC1wYXJ0bmVycy1ub2Rlcy52aWV3LWRpc3BsYXktdGVhc2VycyAudmlld3Mtcm93LFxuLnZpZXctaWQtcHJvZHVjdHMudmlldy1kaXNwbGF5LXRlYXNlcnMgLnZpZXdzLXJvdyxcbi52aWV3LWlkLXByb2R1Y3QtY2F0ZWdvcmllcyAudmlld3Mtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLmpvYi50ZWFzZXIsXG4ucHJvZHVjdC50ZWFzZXIsXG4ucHJvZHVjdC1jYXRlZ29yaWVzLnRlYXNlci5sZXZlbC0yIHtcbiAgLnRlYXNlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBmb250LXNpemU7XG4gIH1cblxuICBmaWd1cmUub3ZlcmxheSBpbWcge1xuICAgIG9wYWNpdHk6IC4yO1xuICAgIHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgb3BhY2l0eTtcbiAgfVxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246IC4yNXMgZWFzZS1vdXQgYmFja2dyb3VuZC1jb2xvcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZmlndXJlLm92ZXJsYXkgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmdhbGxlcnktdGh1bWJzIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLmdhbGxlcnktdG9wIHtcbiAgLnN3aXBlci13cmFwcGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi5zd2lwZXItYnV0dG9uLWN1c3RvbSB7XG4gIHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9saW5rLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktbGlnaHQtY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBvcGFjaXR5O1xuICBvcGFjaXR5OiAuNTtcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLnN3aXBlci1idXR0b24tY3VzdG9tLXByZXYge1xuICBsZWZ0OiA1cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgtMSk7XG59XG4uc3dpcGVyLWJ1dHRvbi1jdXN0b20tbmV4dCB7XG4gIHJpZ2h0OiA1cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmdhbGxlcnktdGh1bWJzIHtcbiAgLnN3aXBlci1zbGlkZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbnVsLmxpbmtzLXdyYXBwZXIge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDtcbiAgbGk6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxufVxuIiwiLy8gU3R5bGluZyBmb3IgYmxvY2tzLlxuXG4uY29udGVudF9fc2lkZWJhciAuYmxvY2tfX3dyYXBwZXIge1xuICBAaW5jbHVkZSBjYWxsb3V0KCM4MUNFRkYpO1xufSIsIi5idXR0b24ge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogLjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRidXR0b24tY29sb3ItYWx0O1xuICB9XG59XG5cblxuLmJ1dHRvbi11cHBlcixcbi5idXR0b24tZ3JvdXAgLmJ1dHRvbi11cHBlciB7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubGluaywgLmJhY2stbGluayxcbi5maWxlLWxpbmsge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IG1hcC1kZWVwLWdldCgkYnV0dG9uLXNpemVzLCBcImRlZmF1bHRcIik7XG4gIH1cbn1cblxuLmxpbmssIC5iYWNrLWxpbmsge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2Utb3V0O1xuICBzcGFuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogY2FsYygyNHB4ICsgMTBweCk7IGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9saW5rLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gICAgfVxuICB9XG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1kYXJrLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5cbi5saW5rIHtcbiAgc3BhbiB7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygyNHB4ICsgMTBweCk7IC8vIHN2ZyB3aWR0aCArIHNwYWNpbmdcbiAgICAmOmJlZm9yZSB7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmJhY2stbGluayB7XG4gIHNwYW4ge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygyNHB4ICsgMTBweCk7IC8vIHN2ZyB3aWR0aCArIHNwYWNpbmdcbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgIH1cbiAgfVxufVxuXG4uZmlsZS1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1kYXJrLWNvbG9yO1xuICBjb2xvcjogJGJ1dHRvbi1jb2xvci1hbHQ7XG4gIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBhbGw7XG4gIHBhZGRpbmctbGVmdDogNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwOyBsZWZ0OiAxNnB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kb3dubG9hZC5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBpbnZlcnQoMTglKSBzZXBpYSg4MiUpIHNhdHVyYXRlKDM5MzElKSBodWUtcm90YXRlKDIyMWRlZykgYnJpZ2h0bmVzcygxMDUlKSBjb250cmFzdCgxMTIlKTtcbiAgfVxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGZpbHRlcjogaW52ZXJ0KDk0JSkgc2VwaWEoMCUpIHNhdHVyYXRlKDc0ODklKSBodWUtcm90YXRlKDI0NGRlZykgYnJpZ2h0bmVzcygxMDglKSBjb250cmFzdCgxMDMlKTtcbiAgICB9XG4gIH1cbn1cblxuLmhhbWJ1cmdlciB7XG4gIEBpbmNsdWRlIGhhbWJ1cmdlcigkcHJpbWFyeS1jb2xvciwgJGRhcmstZ3JheSwgMzJweCwgMjRweCwgMnB4LCAzKTtcbn1cblxuLmNsb3NlIHtcbiAgQGluY2x1ZGUgY3Jvc3MoJGJsYWNrLCAkcHJpbWFyeS1jb2xvciwgMTVweCwgMXB4KTtcbn1cblxuI2Jsb2NrLXRvZ2dsZS1vZmYtY2FudmFzLXJpZ2h0LFxuI2Jsb2NrLXRvZ2dsZS1vZmYtY2FudmFzLXJpZ2h0LW9mZi1jYW52YXMge1xuICBidXR0b24ge1xuICAgIHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4iLCIvLyBAZmlsZVxuLy8gUGxhY2UgeW91ciBtaXhpbnMgaGVyZS4gRmVlbCBmcmVlIHRvIHJvbGwgeW91ciBvd24gbWl4aW5zLlxuJHdyYXBwZXItcGFkZGluZy1ndXR0ZXItbW9iaWxlOiAxMDBweDtcbiR3cmFwcGVyLXBhZGRpbmctZ3V0dGVyOiA2MHB4O1xuQG1peGluIHdyYXBwZXItcGFkZGluZygkbW9iaWxlLXBhZGRpbmc6IHRydWUpe1xuICBAaWYgJG1vYmlsZS1wYWRkaW5nIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJHdyYXBwZXItcGFkZGluZy1ndXR0ZXItbW9iaWxlKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCR3cmFwcGVyLXBhZGRpbmctZ3V0dGVyKTtcbiAgfVxufVxuXG5AbWl4aW4gcHNldWRvLWFzc2V0KCR0eXBlOiAnbGVmdCcsICRyZWxhdGl2ZTogdHJ1ZSkge1xuICBAaWYgJHJlbGF0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBAaWYgJHR5cGUgPT0gJ2xlZnQnIHtcbiAgICAgIGhlaWdodDogMTQ0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcHNldWRvX2xlZnQuc3ZnXCIpO1xuICAgIH0gQGVsc2UgaWYgJHR5cGUgPT0gJ3JpZ2h0JyB7XG4gICAgICBoZWlnaHQ6IDE0OXB4O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3BzZXVkb19yaWdodC5zdmdcIik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiZygpIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZGVmYXVsdC9kZWZhdWx0X3RpdGxlLmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktZGFyay1jb2xvcjtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1idXJuO1xuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2RlZmF1bHQvZGVmYXVsdF90aXRsZV9zLmpwZ1wiKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGVfbS5qcGdcIik7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kZWZhdWx0L2RlZmF1bHRfdGl0bGVfbC5qcGdcIik7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZGVmYXVsdC9kZWZhdWx0X3RpdGxlX3hsLmpwZ1wiKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZGVmYXVsdC9kZWZhdWx0X3RpdGxlX3h4bC5qcGdcIik7XG4gIH1cbn1cblxuQG1peGluIGNyb3NzKCRjb2xvcjogJGJsYWNrLCAkY29sb3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yLCAkc2l6ZTogMjBweCwgJHdlaWdodDogMXB4KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAoJHNpemUgLSAkd2VpZ2h0KSAvIDI7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAkd2VpZ2h0O1xuICAgICAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgc3BhbiB7XG4gICAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB6LWluZGV4OiA5OTtcbn1cblxuLnJlZ2lvbi1oZWFkZXIsXG4ucmVnaW9uLWZvb3Rlcixcbi5yZWdpb24tb2ZmLWNhbnZhcy1yaWdodCB7XG4gIC5tZW51IHtcbiAgICBhOm5vdCguYnV0dG9uKSxzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogNnB4IDsgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDE3cHg7IGhlaWdodDogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzIGVhc2Utb3V0O1xuICAgICAgfVxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHNwYW57XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgICAmOjpiZWZvcmV7XG4gICAgICAgIGJvdHRvbTogLTRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgbmF2ID4gLm1lbnUgPiBsaS5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbCA+IGEsXG4gIC5kcm9wZG93bi5tZW51ID4gbGkgPiBhLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG59XG5cbi5kcm9wZG93bi5tZW51IHtcbiAgdWwgYSB7XG4gICAgJjpub3QoLmlzLWFjdGl2ZSkge1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICB9XG4gIH1cbn1cblxuLm1lbnUge1xuICBhLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgcGFkZGluZzogMTBweCAxNnB4O1xuICB9XG59XG5cblxuXG4ucmVnaW9uLWhlYWRlciB7XG4gIFtpZCo9XCJtYWluLW1lbnVcIl0ge1xuICAgIC5kcm9wZG93bi5tZW51IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbjogMCBjYWxjKC0yMHB4IC8gMik7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luOiAwIGNhbGMoLTMwcHggLyAyKTtcbiAgICAgIH1cbiAgICAgICYgPiBsaSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgbWFyZ2luOiAwIGNhbGMoMjBweCAvIDIpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICAgIG1hcmdpbjogMCBjYWxjKDMwcHggLyAyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZHJvcGRvd24ubWVudSB7XG4gICAgdWwge1xuICAgICAgcGFkZGluZzogMThweCAwO1xuICAgICAgbGkge1xuICAgICAgICBhIHtcbiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEsLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IHNwYW4ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiA0cHg7IGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9kcm9wLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRvcDogMDsgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIC5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBzcGFue1xuICAgICY6OmFmdGVye1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLnJlZ2lvbi1mb290ZXIge1xuICAubWVudTpub3QoLmhvcml6b250YWwpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgbWFyZ2luOiAwIC0xNXB4O1xuICAgIH1cbiAgICAmID4gbGkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgfVxuICAgIH1cbiAgICBhIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIH1cbiAgICB1bCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgfVxuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMThweDsgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLWFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuW2lkKj1cIm1haW4tbWVudS1vZmYtY2FudmFzXCJdIHtcbiAgLm1lbnUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIH1cbiAgICB1bCBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDhweDsgaGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbi1yaWdodDogLTQ4cHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2Ryb3Auc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDhweCAxN3B4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuXG5baWQqPVwiaGlnaGxpZ2h0LW1lbnVcIl0ge1xuICAubWVudSB7XG4gICAgZ2FwOiA4cHg7XG4gIH1cbiAgJiA+IC5tZW51ID4gbGkubWVudS1pdGVtLS1hY3RpdmUtdHJhaWwgPiBhLmJ1dHRvbixcbiAgYS5idXR0b24uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1kYXJrLWNvbG9yO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgJjpob3ZlciwgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxubmF2I2Jsb2NrLWhpZ2hsaWdodC1tZW51IC5tZW51IGxpOm50aC1vZi10eXBlKDMpLG5hdiNibG9jay1oaWdobGlnaHQtbWVudSAubWVudSBsaTpudGgtb2YtdHlwZSg0KXtcbmRpc3BsYXk6IG5vbmUhaW1wb3J0YW50XG59IiwiI29mZkNhbnZhc1JpZ2h0IHtcbiAgcGFkZGluZy10b3A6IDY1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2NXB4O1xufVxuXG4ucmVnaW9uLW9mZi1jYW52YXMtcmlnaHQge1xuICAuZHJvcGJ1dHRvbi1tdWx0aXBsZSAuZHJvcGJ1dHRvbi13aWRnZXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxufVxuXG4jYmxvY2stdG9nZ2xlLW9mZi1jYW52YXMtcmlnaHQtb2ZmLWNhbnZhcyB7XG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwIGF1dG8gNDVweCBhdXRvO1xuICB9XG59XG5cbltpZCo9XCJtYWluLW1lbnUtb2ZmLWNhbnZhc1wiXSB7XG4gIG1hcmdpbi1ib3R0b206IDY1cHg7XG59XG5cbiNibG9jay1zaXRlLWJyYW5kaW5nLW9mZi1jYW52YXMge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAmID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxOTBweDtcbiAgfVxufVxuXG5cbiNibG9jay1oaWdobGlnaHQtbWVudS1vZmYtY2FudmFzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAubWVudSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuI2Jsb2NrLWRyb3Bkb3duLWxhbmd1YWdlLW9mZi1jYW52YXMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvLyBTdHlsaW5nIGZvciBEcnVwYWwgdGFicy5cblxuLnRhYnMtLXByaW1hcnksXG4udGFicy0tc2Vjb25kYXJ5IHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRsaWdodC1ncmF5O1xuICBtYXJnaW46IDFyZW0gYXV0bztcblxuICBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWRhcmstY29sb3I7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxuXG59XG5cbi50YWJzIHtcbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGFsbDtcbiAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmlzLWFjdGl2ZTpob3ZlciwgJi5pcy1hY3RpdmU6Zm9jdXMge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIGxpOmZpcnN0LWNoaWxkIGEuYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICB9XG5cbiAgYS5idXR0b24uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnMtY29udGVudCxcbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGgyIHtcbiAgICBjb2xvcjogJHRhYi1jb250ZW50LWNvbG9yO1xuICB9XG59XG5cbi50YWJzLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG5cbi50YWJzLXdyYXBwZXIge1xuICAudGFicyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiLWJhY2tncm91bmQ7XG4gICAgfVxuICAgIC5pcy1hY3RpdmUge1xuICAgICAgYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWItYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuICAgIGEge1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWRhcmstY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy91bC5hY2NvcmRpb24ge1xuLy8gIG1hcmdpbi1ib3R0b206IDA7XG4vL31cbi8vXG4vLy5hY2NvcmRpb24taXRlbSB7XG4vLyAgZmxleDogMCAwIDEwMCU7XG4vL31cbi8vXG4vLy5hY2NvcmRpb24tdGl0bGUge1xuLy8gICY6YmVmb3JlIHtcbi8vICAgIG1hcmdpbi10b3A6IC0xLjI1cmVtO1xuLy8gIH1cbi8vICAmOmhvdmVyLCAmOmZvY3VzIHtcbi8vICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuLy8gICAgY29sb3I6ICR3aGl0ZTtcbi8vICB9XG4vL31cbiIsIi5wYWdlLmZ1bGwgaDEsXG4uaG9tZSBoMi5zdWItdGl0bGUsXG4uYXJ0aWNsZS5mdWxsIGgxLFxuLmpvYi5mdWxsIGgxLFxuLnByb2R1Y3QtY2F0ZWdvcmllcy5mdWxsIGgxLFxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0IGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcgaDIsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzIGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tcmVmZXJlbmNlcyBoMixcbi5wcm9kdWN0LmZ1bGwgaDEge1xuICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogMS4zMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuaDMge1xuICBsZXR0ZXItc3BhY2luZzogLjU2cHg7XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzIGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCBoMixcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3IGgyLFxuLnBhcmFncmFwaC0tdHlwZS0tam9icyBoMixcbi5wYXJhZ3JhcGgtLXR5cGUtLXJlZmVyZW5jZXMgaDIge1xuICBmb250LXNpemU6IHJlbS1jYWxjKG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgXCJ0aW55XCIsIFwiaDFcIiwgXCJmb250LXNpemVcIikpO1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYyhtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIFwibGFyZ2VcIiwgXCJoMVwiLCBcImZvbnQtc2l6ZVwiKSk7XG4gIH1cbn1cblxuLmFydGljbGUudGVhc2VyIGgyLFxuLmFydGljbGUuZmVhdHVyZWQgaDIge1xuICBmb250LXNpemU6IHJlbS1jYWxjKG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgXCJ0aW55XCIsIFwiaDNcIiwgXCJmb250LXNpemVcIikpO1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYyhtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIFwibGFyZ2VcIiwgXCJoM1wiLCBcImZvbnQtc2l6ZVwiKSk7XG4gIH1cbn1cblxuaGVhZGVyIC50aXRsZXMge1xuICBoMSwgaDIge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIG1heC13aWR0aDogNTgwcHg7XG4gICAgfVxuICB9XG59XG4iLCJbdHlwZT1cInRleHRcIl0sIFt0eXBlPVwicGFzc3dvcmRcIl0sIFt0eXBlPVwiZGF0ZVwiXSwgW3R5cGU9XCJkYXRldGltZVwiXSwgW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSwgW3R5cGU9XCJtb250aFwiXSwgW3R5cGU9XCJ3ZWVrXCJdLCBbdHlwZT1cImVtYWlsXCJdLCBbdHlwZT1cIm51bWJlclwiXSwgW3R5cGU9XCJzZWFyY2hcIl0sIFt0eXBlPVwidGVsXCJdLCBbdHlwZT1cInRpbWVcIl0sIFt0eXBlPVwidXJsXCJdLCBbdHlwZT1cImNvbG9yXCJdLCB0ZXh0YXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmxhYmVsLmZvcm0tcmVxdWlyZWQge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnKic7XG4gIH1cbn1cblxuZm9ybSB7XG4gIGxhYmVsIHtcbiAgICBsZXR0ZXItc3BhY2luZzogLjM0cHg7XG4gIH1cbiAgJi53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmZvcm0taXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICAmLm1lZGl1bS1jbGVhci1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUwJTtcbiAgICB9XG4gIH1cbiAgLmpzLWZvcm0tdHlwZS10ZXh0ZmllbGQsXG4gIC5qcy1mb3JtLXR5cGUtdGV4dGFyZWEsXG4gIC5qcy1mb3JtLXR5cGUtZW1haWwsXG4gIC5qcy1mb3JtLXR5cGUtdGVsLFxuICAuanMtZm9ybS10eXBlLW1hbmFnZWQtZmlsZSxcbiAgLmpzLWZvcm0tdHlwZS1zZWxlY3Qge1xuICAgICYgPiBsYWJlbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG4gIC5jYXB0Y2hhIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEgb2YgMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxufVxuXG4uanMtZm9ybS10eXBlLWNoZWNrYm94LFxuLmpzLWZvcm0tdHlwZS1yYWRpbyB7XG4gIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIG1hcmdpbjogMDtcbiAgICAmICsgbGFiZWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZsZXg6IDAgMCAxNHB4O1xuICAgICAgICBtYXJnaW46IDhweCAyMHB4IDAgMDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMTVweDsgaGVpZ2h0OiAxMXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDNweDsgdG9wOiA3cHg7XG4gICAgICB9XG4gICAgfVxuICAgICY6Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvY2hlY2suc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBmaWx0ZXI6IGludmVydCgyMCUpIHNlcGlhKDQzJSkgc2F0dXJhdGUoNzI0MSUpIGh1ZS1yb3RhdGUoMjE5ZGVnKSBicmlnaHRuZXNzKDk5JSkgY29udHJhc3QoMTA4JSk7XG4gICAgfVxuICAgICY6Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgICAgIG91dGxpbmU6ICRwcmltYXJ5LWNvbG9yIHNvbGlkIDFweDtcbiAgICB9XG4gIH1cbn1cblxuLmpzLWZvcm0tdHlwZS1yYWRpbyBsYWJlbDo6YmVmb3JlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5mb3JtIC5qcy13ZWJmb3JtLXJhZGlvcyB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gICYgPiBkaXYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDYwcHg7XG4gICAgfVxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cblxuZm9ybSAud2ViZm9ybS10eXBlLXJhZGlvcyB7XG4gIG1hcmdpbi1ib3R0b206IDIycHg7XG59XG5cbi8vIEZpbGUgdXBsb2FkXG5kaXZbaWQqPVwiZWRpdC1maWxlLWNvbnRhaW5lclwiXSB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAmID4gZGl2LCBkaXZbaWQqPVwiYWpheC13cmFwcGVyXCJdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uZm9ybS1tYW5hZ2VkLWZpbGUge1xuICBsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktbGlnaHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3VwbG9hZC5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAyMHB4KSBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcbiAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gICAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBhbGw7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbi5qcy1mb3JtLXR5cGUtbWFuYWdlZC1maWxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLmRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjY0cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cblxuLy8gU3BlY2lmaWMgZmllbGRzXG4uZm9ybS1pdGVtIHtcbiAgJiArIC5mb3JtLWl0ZW0tY29udGFjdC1ieS1waG9uZSB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG4gICYgKyAuZm9ybS1pdGVtLWNvbnNlbnQge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gIH1cbn1cblxuLmZvcm0taXRlbS1jb25zZW50IHtcbiAgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIGxldHRlci1zcGFjaW5nOiAuNjRweDtcbiAgfVxufVxuIiwiLnNsaWRpbmctcG9wdXAtYm90dG9tIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5ldS1jb29raWUtY29tcGxpYW5jZS1iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xuICBwYWRkaW5nOiAzMHB4O1xuICBib3JkZXItdG9wOiAycHggc29saWQgJHByaW1hcnktY29sb3I7XG4gICYsIGxhYmVsLCBhIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1vdXQ7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5ldS1jb29raWUtY29tcGxpYW5jZS1jYXRlZ29yaWVzIHtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG59XG5cbi5ldS1jb29raWUtY29tcGxpYW5jZS1zYXZlLXByZWZlcmVuY2VzLWJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xufVxuXG4uZXUtY29va2llLWNvbXBsaWFuY2UtYnV0dG9ucyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICBidXR0b246bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBtYXJnaW46IDAgJGdsb2JhbC1tYXJnaW4vMiAkZ2xvYmFsLW1hcmdpbiAwO1xuICB9XG59XG5cbi5ldS1jb29raWUtY29tcGxpYW5jZS1jYXRlZ29yeSB7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBsYWJlbCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gIH1cbiAgW3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5ldS1jb29raWUtY29tcGxpYW5jZS1jYXRlZ29yeS1kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIH1cbn1cbiIsIi5yZWdpb24taGVhZGVyIHtcbiAgcGFkZGluZy10b3A6IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZy10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBbaWQqPVwibWFpbi1tZW51XCJdIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgc2hvdy1mb3IoJG1vYmlsZS1uYXYtYnJlYWtwb2ludCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG4gICAgfVxuICB9XG59XG5cblxuI2Jsb2NrLXN1Yi1icmFuZGluZyB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oJ3NocmluaycpO1xuICB9XG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGltZyB7XG4gICAgd2lkdGg6IDE5MHB4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICB3aWR0aDogMjEwcHg7XG4gICAgfVxuICB9XG59XG5cbiNibG9jay10b2dnbGUtb2ZmLWNhbnZhcy1yaWdodCB7XG4gIEBpbmNsdWRlIGhpZGUtZm9yKCRtb2JpbGUtbmF2LWJyZWFrcG9pbnQpO1xufVxuXG5baWRePVwiYmxvY2stZG9tYWluLWN1c3RvbS1uYXZpZ2F0aW9uXCJdICsgW2lkXj1cImJsb2NrLWRyb3Bkb3duLWxhbmd1YWdlXCJdIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG59XG4iLCIjZm9vdGVyLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmF5O1xufVxuLnJlZ2lvbi1mb290ZXIge1xuICAmLCAuY29udGFjdCBhLCAubWVudSBhOm5vdCguYnV0dG9uKSwgbmF2IGEsIC5tZW51IHNwYW4ge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbiAgYS5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxuICAubWVudTpub3QoLmhvcml6b250YWwpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbiNibG9jay1zdWItZm9vdGVyIHtcbiAgdWw6bm90KC5jb250ZXh0dWFsLWxpbmtzKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvIDVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBhOm5vdChbaHJlZl49XCIvYWRtaW4vXCJdKSwgc3BhbiB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI2Jsb2NrLXNpdGUtYnJhbmRpbmctZm9vdGVyIHtcbiAgcGFkZGluZy10b3A6IDQ1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA3NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuICAmID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDI3MHB4ICsgKDMwcHggKiAyKSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIG1heC13aWR0aDogY2FsYygyNzBweCArICg0NXB4ICogMikpO1xuICAgIH1cbiAgfVxufVxuXG4jYmxvY2stZm9vdGVyLXRvcCB7XG4gIHBhZGRpbmctdG9wOiA4MHB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cbiNibG9jay1mb290ZXItZGF0YSB7XG4gIHBhZGRpbmctdG9wOiA3MHB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICB9XG59XG5cbiNibG9jay1mb290ZXItdG9wLFxuI2Jsb2NrLWZvb3Rlci1sZWdhbCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICB9XG59XG5cbiNibG9jay1mb290ZXItdG9wLFxuI2Jsb2NrLWZvb3Rlci1kYXRhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNzBweDtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDsgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbn1cblxuI2Jsb2NrLWhpZ2hsaWdodC1tZW51LWZvb3RlciB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgfVxufVxuXG4jYmxvY2stbWFpbi1tZW51LWZvb3RlciArICNibG9jay1oaWdobGlnaHQtbWVudS1mb290ZXIge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuXG4jYmxvY2stc3ViLXZpZXdzLWJsb2NrLWNvbnRhY3QtZGF0YSArICNibG9jay1zdWItdmlld3MtYmxvY2stc29jaWFsLW1lZGlhLWxpbmtzLFxuI2Jsb2NrLWZpdCwgI2Jsb2NrLWF1dmVyZ25lcmhvbmVhbHBlcyB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG59XG5cbiNibG9jay1maXQgZmlndXJlIHtcbiAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3I7XG4gIGltZyB7XG4gICAgYm9yZGVyOiA1cHggc29saWQgd2hpdGU7XG4gIH1cbn1cblxuI2Jsb2NrLWF1dmVyZ25lcmhvbmVhbHBlcyBmaWd1cmUge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxuXG4jYmxvY2stZm9vdGVyLWRhdGEgPiBkaXYsXG4jYmxvY2stc2l0ZS1icmFuZGluZy1mb290ZXIgPiBhIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gIH1cbn1cblxuI2Jsb2NrLWZvb3Rlci1ib3R0b20ge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxufVxuXG4jYmxvY2stZm9vdGVyLWxlZ2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogNjVweDtcbiAgcGFkZGluZy1ib3R0b206IDY1cHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICB9XG4gIG5hdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMHZ3OyBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwOyBsZWZ0OiAtNDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgQGluY2x1ZGUgYmc7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGxlZnQ6IGF1dG87IHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7bWFwLWRlZXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIFwibWVkaXVtXCIpfSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCgjeyRnbG9iYWwtd2lkdGh9IC8gMTIpICogNCkgKyAjeyR3cmFwcGVyLXBhZGRpbmctZ3V0dGVyfSArICgje21hcC1kZWVwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBcIm1lZGl1bVwiKX0gLzIpKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICAvLyB2aWV3cG9ydCB3aWR0aCAtIHJlbWFpbmluZyBjb2x1bW4gLSBwYWRkaW5ncyBhbmQgZ3V0dGVyc1xuICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoKCN7JGdsb2JhbC13aWR0aH0gLyAxMikgKiA0KSAtICgoI3skd3JhcHBlci1wYWRkaW5nLWd1dHRlcn0gKiAyKSAtICgje21hcC1kZWVwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBcIm1lZGl1bVwiKX0gKiAyKSkpO1xuICAgIH1cbiAgfVxufVxuXG4jYmxvY2stbWFpbi1tZW51LWZyLWZvb3RlciB7XG4gIC5tZW51LWl0ZW0tLWV4cGFuZGVkIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbiNibG9jay1oaWdobGlnaHQtbWVudS1mb290ZXIge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cbn1cbiIsIi5ob21lLmZ1bGwgPiBoZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgcGFkZGluZy10b3A6IDk1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA5NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctYm90dG9tOiA3NXB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwYWRkaW5nLXRvcDogMTkwcHg7XG4gIH1cbiAgJi5oYXMtaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuICAuYmdfX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwOyBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIG9wYWNpdHk6IC4xNjtcbiAgfVxuICAuZmllbGQtbmFtZS1maWVsZC12aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGRpdiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgdmlkZW8ge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgLW8tb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9wYWNpdHk6IC43O1xuICAgIH1cbiAgfVxuICBoMSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNik7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMy40OXB4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgIH1cbiAgfVxuICBoMi5zdWItdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyhtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIFwibGFyZ2VcIiwgXCJoMVwiLCBcImZvbnQtc2l6ZVwiKSk7XG4gICAgfVxuICB9XG4gICNzY3JvbGwtY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogNDVweDtcbiAgICBhbmltYXRpb246IHNjcm9sbC1idXR0b24gMnMgaW5maW5pdGU7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDExcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTExcHg7XG4gICAgICBnIHtcbiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIC4yNXMgZWFzZS1vdXQ7XG4gICAgICB9XG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgZyB7XG4gICAgICAgICAgc3Ryb2tlOiAkZGFyay1ncmF5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQGtleWZyYW1lcyBzY3JvbGwtYnV0dG9uIHtcbiAgMCUgICB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbiIsIi5wYWdlLFxuLmFydGljbGUsXG4uam9iLFxuLnBhcnRuZXIsXG4ucHJvZHVjdC1jYXRlZ29yaWVzIHtcbiAgJi5mdWxsIGhlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogODBweDtcbiAgICB9XG4gICAgLndyYXBwZXItcGFkZGluZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgICB9XG4gICAgJi50ZXJtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTgwcHg7XG4gICAgICB9XG4gICAgfVxuICAgICYuaGFzLWltYWdlIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2NXB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7XG4gICAgICB9XG4gICAgICAud3JhcHBlci1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgICYuaGFzLWJvZHkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjAwcHg7XG4gICAgICB9XG4gICAgfVxuICAgICYuaGFzLW5vLWV4dHJhLWZpZWxkIHtcbiAgICAgIC53cmFwcGVyLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDVweDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNvbnRlbnQge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5oYXMtZXh0cmEtZmllbGQge1xuICAgICAgLmZpZWxkLW5hbWUtYm9keSxcbiAgICAgIC5maWVsZC1uYW1lLWZpZWxkLWJvZHkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDB2dztcbiAgICAgICAgICB0b3A6IDA7IHJpZ2h0OiAtMTAwdnc7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJvdyAucm93IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBDb250ZW50XG4gICAgLy8gVGl0bGVzXG4gICAgLnRpdGxlcyB7XG4gICAgICBwYWRkaW5nLXRvcDogNDVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0NXB4O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWluLWhlaWdodDogMTc1cHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMDBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIGgxIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC8vIEludHJvIGJvZHkgZmllbGRcbiAgICAuZmllbGQtbmFtZS1ib2R5LFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWJvZHkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLSN7JHdyYXBwZXItcGFkZGluZy1ndXR0ZXItbW9iaWxlfSAvIDIpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0jeyR3cmFwcGVyLXBhZGRpbmctZ3V0dGVyLW1vYmlsZX0gLyAyKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbjogMCAwIC0xMDBweCAwO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjAwcHg7XG4gICAgICB9XG4gICAgICAuZmllbGQtaXRlbXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1kYXJrLWNvbG9yO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiA2MHB4IDM1cHggNjBweCA1MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhZ2UgaW1hZ2VcbiAgICBmaWd1cmUucGFnZS1pbWFnZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0jeyR3cmFwcGVyLXBhZGRpbmctZ3V0dGVyLW1vYmlsZX0gLyAyKTtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygtI3skd3JhcHBlci1wYWRkaW5nLWd1dHRlci1tb2JpbGV9IC8gMik7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBtYXJnaW46IDAgMCAtNjVweCAwO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDcgb2YgMTIsIDApO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTMwcHg7XG4gICAgICB9XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWxpZ2h0LWNvbG9yO1xuICAgICAgfVxuICAgICAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBvcGFjaXR5OiAuMjtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWVkaWEtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2UgaW1nIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwO1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbnRhaW5lci1tYXAsIC52aWV3LWlkLWNvbnRhY3QsIC5nZW9sb2NhdGlvbi1tYXAtd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIEV4dHJhIGZpZWxkc1xuICAgIC5maWVsZC1uYW1lLWZpZWxkLWNvbnRhY3QtZGF0YSxcbiAgICAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0LFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLXZpZXcsXG4gICAgLmV4dHJhLWZpZWxkLFxuICAgIC5hY3Rpb24td3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgcGFkZGluZzogNDVweCAkd3JhcHBlci1wYWRkaW5nLWd1dHRlci1tb2JpbGUvMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMzBweDtcbiAgICAgICAgQGluY2x1ZGUgcHNldWRvLWFzc2V0KHJpZ2h0KTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJvdHRvbTogMDsgcmlnaHQ6IGNhbGMoMTMwcHggLSAxNnB4KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjVweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICR3cmFwcGVyLXBhZGRpbmctZ3V0dGVyLW1vYmlsZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5leHRyYS1maWVsZCB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvcihsYXJnZSk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHRvcDogMjAwcHg7IGJvdHRvbTogYXV0bztcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgJi5jaGlsZC10ZXJtIHtcbiAgICAgICAgICB0b3A6IDI4MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLW5hbWUtZmllbGQtY29udGFjdC1kYXRhLFxuICAgIC5maWVsZC1uYW1lLWZpZWxkLWhpZ2hsaWdodGVkLXRleHQge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjRweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbnRhY3QgZmllbGRcbiAgICAuZmllbGQtbmFtZS1maWVsZC1jb250YWN0LWRhdGEge1xuICAgICAgLmFkZHJlc3MtaW5mb3JtYXRpb24sXG4gICAgICAuY29udGFjdC1pbmZvcm1hdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgICAgLmFkZHJlc3MtaW5mb3JtYXRpb24tLXN0cmVldCArIC5hZGRyZXNzLWluZm9ybWF0aW9uLS1wbGFjZSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29udGVudDogJywnO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmZpZWxkLW5hbWUtZmllbGQtZW1haWwgKyAuZmllbGQtbmFtZS1maWVsZC1waG9uZSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5maWVsZC1uYW1lLWZpZWxkLWNvbXBhbnktbnVtYmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEhpZ2hsaWdodGVkIHRleHRcbiAgICAuZmllbGQtbmFtZS1maWVsZC1oaWdobGlnaHRlZC10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVmlld1xuICAgIC5maWVsZC1uYW1lLWZpZWxkLXZpZXcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudmlldy1pZC1hcnRpY2xlcy52aWV3LWRpc3BsYXktdGVhc2VycyB7XG4gIC52aWV3cy1pbmZpbml0ZS1zY3JvbGwtY29udGVudC13cmFwcGVyIHtcbiAgICAudmlld3Mtcm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHVsW2RhdGEtZHJ1cGFsLXZpZXdzLWluZmluaXRlLXNjcm9sbC1wYWdlcl0ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICAuYXJ0aWNsZS50ZWFzZXIge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxufVxuXG4uYXJ0aWNsZSB7XG4gICYudGVhc2VyLFxuICAmLmZlYXR1cmVkIHtcbiAgICBoMiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICBhIHtcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9ucy13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyOHB4O1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB9XG5cbiAgICAuZGF0ZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gICYudGVhc2VyIHtcbiAgICBmaWd1cmUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICAgICYub3ZlcmxheSBpbWcge1xuICAgICAgICBvcGFjaXR5OiAuMjtcbiAgICAgICAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBvcGFjaXR5O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuZmVhdHVyZWQge1xuICAgIG1heC13aWR0aDogMzQwcHg7XG4gIH1cblxuICAuZGF0ZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC40cHg7XG4gICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuICAgIH1cbiAgfVxufVxuIiwiLnBhcnRuZXIudGVhc2VyIHtcbiAgLmZpZWxkLW5hbWUtZmllbGQtaW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogLjI1cyBlYXNlLW91dCBmaWx0ZXI7XG4gICAgICBmaWx0ZXI6IHVuc2V0O1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG4gIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cbn1cblxuLnBhcnRuZXIuZnVsbCB7XG4gIGhlYWRlciBmaWd1cmUucGFnZS1pbWFnZSAubWVkaWEtd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIC5maWVsZC1uYW1lLWZpZWxkLWltYWdlIGltZyB7XG4gICAgICB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvO1xuICAgICAgdG9wOiA1MCU7IGxlZnQ6IDUwJTtcbiAgICAgIG9iamVjdC1maXQ6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG4iLCIucHJvZHVjdC5mdWxsIHtcbiAgLy8gSGVhZGVyXG4gIC5wcm9kdWN0LWhlYWRlciB7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoNDVweCArIDQ1cHgpO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyg5MHB4ICsgNDVweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuXG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMzBweCArIDQ1cHgpO1xuICAgIH1cbiAgICAud3JhcHBlci1wYWRkaW5nIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0NXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktbGlnaHQtY29sb3I7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEzMHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLmFjdGlvbnMtd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIC50aXRsZXMsIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgIH1cbiAgfVxuICBmaWd1cmUucHJvZHVjdC1pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTQ1cHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTkwcHg7XG4gICAgfVxuICB9XG5cblxuICAvLyBDb250ZW50XG4gIC5mdWxsLWNvbnRlbnQge1xuICAgICYgPiAuZmllbGQtbmFtZS1ib2R5LFxuICAgICYgPiAuZmllbGQtbmFtZS1maWVsZC1zcGVjcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTMwcHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjMwcHg7XG4gICAgICB9XG4gICAgfVxuICAgICYgPiAuZmllbGQtbmFtZS1ib2R5IHtcbiAgICAgICYgPiAucm93IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIEBpbmNsdWRlIHBzZXVkby1hc3NldChyaWdodCk7XG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAxMHB4OyByaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJiA+IC5maWVsZC1uYW1lLWJvZHkgKyAuZmllbGQtbmFtZS1maWVsZC1zcGVjcyB7XG4gICAgICBtYXJnaW4tdG9wOiAtMTVweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGMoNDVweCAtIDkwcHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKDQ1cHggLSAxMzBweCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYyg0NXB4IC0gMjMwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLmhhcy1kZXNjcmlwdGlvbi1maWVsZHMge1xuICAgICYgPiAuZnVsbC1jb250ZW50ID4gLmZpZWxkLW5hbWUtZmllbGQtcGFyYWdyYXBocyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGMoOTBweCAtIDEzMHB4KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKDkwcHggLSAyMzBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5maWVsZC1uYW1lLWZpZWxkLXJlbGF0ZWQtcHJvZHVjdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgcGFkZGluZy10b3A6IDQ1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7XG4gIH1cbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gICAgfVxuICB9XG59XG5cbi5maWVsZC1uYW1lLWZpZWxkLXByb2R1Y3QtdmFyYXRpb25zICsgLmZpZWxkLW5hbWUtZmllbGQtcmVsYXRlZC1wcm9kdWN0cyB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4ucHJvZHVjdC1jYXRlZ29yaWVzLmZ1bGwge1xuICAubGlua3Mtd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogNDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICB9XG59XG4iLCIuYWRkcmVzcy1pbmZvcm1hdGlvbi0tc3RyZWV0LFxuLmFkZHJlc3MtaW5mb3JtYXRpb24tLXBsYWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgJiA+IGRpdjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG59XG5cbi5jb250YWN0IHtcbiAgLmZpZWxkLW5hbWUtZmllbGQtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG59XG5cbmZvb3RlciAuY29udGFjdCB7XG4gIC5hZGRyZXNzLWluZm9ybWF0aW9uLFxuICAuY29udGFjdC1pbmZvcm1hdGlvbiB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjY7XG4gIH1cbn1cbiIsIi5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uLFxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCxcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3LFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMsXG4uY29udGFpbmVyLXByb2R1Y3QtY2F0ZWdvcmllcy5jb250YWluZXItYnktdGVybSxcbi5jb250YWluZXItcHJvZHVjdHMuY29udGFpbmVyLXRlYXNlcnMsXG4ucGFyYWdyYXBoLS10eXBlLS1wYXJ0bmVycy5zZWxlY3RlZC12aWV3LWlkLS1wYXJ0bmVycy1ub2Rlcy5zZWxlY3RlZC12aWV3LWRpc3BsYXktLXRlYXNlcnMsXG4uZmllbGQtbmFtZS1maWVsZC1wcm9kdWN0LXZhcmF0aW9ucyB7XG4gIGZpZ3VyZS5wLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgfVxuICAuYmdfX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwOyBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogLjE2O1xuICB9XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZlYXR1cmVzLFxuLnBhcmFncmFwaC0tdHlwZS0tam9icyxcbi5wYXJhZ3JhcGgtLXR5cGUtLXJlZmVyZW5jZXMsXG4ucGFyYWdyYXBoLS10eXBlLS1saXN0LFxuLnBhcmFncmFwaC0tdHlwZS0tb3ZlcnZpZXcge1xuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDMwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLXRvcDogNDVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0NXB4O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZXMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBiZztcbiAgfVxufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1mZWF0dXJlcyxcbi5wYXJhZ3JhcGgtLXR5cGUtLWpvYnMsXG4ucGFyYWdyYXBoLS10eXBlLS1yZWZlcmVuY2VzLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCxcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3LFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMsXG4uY29udGFpbmVyLXByb2R1Y3QtY2F0ZWdvcmllcy5jb250YWluZXItYnktdGVybSxcbi5jb250YWluZXItcHJvZHVjdHMuY29udGFpbmVyLXRlYXNlcnMsXG4uZmllbGQtbmFtZS1maWVsZC1wcm9kdWN0LXZhcmF0aW9ucyB7XG4gIC5jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1kYXJrLWNvbG9yO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogNDVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDVweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgcGFkZGluZy10b3A6IDY1cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjVweDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygoMjMyJSAvIDE0ODgpICogMTAwKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9hZnRlcl9mZWF0dXJlcy5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygxMDAlIC0gMXB4KSk7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIGZpZ3VyZS5wLWltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoKDM0MCUgLyAxNDQwKSAqIDEwMCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygoMjgwJSAvIDE0NDApICogMTAwKTtcbiAgICB9XG4gIH1cbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyB7XG4gIC5jb250ZW50IHtcbiAgICAmID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuICAgICAgfVxuICAgICAgLmNvbHVtbnMge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMsXG4ucGFyYWdyYXBoLS10eXBlLS1vdmVydmlldyxcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uge1xuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0IC5maWVsZC1pdGVtICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uub3B0aW9uLWltYWdlLXJpZ2h0IC5jb250ZW50IHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgIEBpbmNsdWRlIHBzZXVkby1hc3NldChsZWZ0KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgdG9wOiA1MCU7IGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG4gIC5maWVsZC1uYW1lLWZpZWxkLXRleHQsXG4gIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgIH1cbiAgfVxuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0ID4gLmZpZWxkLWl0ZW1zID4gLmZpZWxkLWl0ZW0gPiBoMiwgJiA+IGgzLCAmID4gaDQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG4ucHJvZHVjdC12YXJpYXRpb24ge1xuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0LWJsb2Nrcy5maWVsZC12aWV3LW1vZGUtY29sLTIgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayxcbiAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1pbWFnZS5vcHRpb24taW1hZ2UtcmlnaHQgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuZmllbGQtbmFtZS1maWVsZC10ZXh0LFxuICAgIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWltYWdlIC5maWVsZC10eXBlLXRleHQtbG9uZyxcbiAgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9jayB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuIiwiLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCxcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3LFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMge1xuICAmICsgLnBhcmFncmFwaC0tdHlwZS0tdGV4dC1ibG9ja3MsXG4gICYgKyAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDVweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7XG4gICAgfVxuICB9XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2tzIHtcbiAgbWFyZ2luLWJvdHRvbTogOTBweDtcbn1cblxuLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1ibG9ja3MuZmllbGQtdmlldy1tb2RlLWNvbC0yIHtcbiAgJiA+IC5maWVsZC1pdGVtcyA+IGRpdjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgIH1cbiAgfVxufVxuXG4ucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIHtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuZmllbGQtbmFtZS1maWVsZC10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICB9XG4gIC5hY3Rpb25zLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICB9XG4gIH1cbn1cblxuLnBhcmFncmFwaC1pdGVtcyA+IC5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYmxvY2sge1xuICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDtcbiAgfVxuICAmID4gLnJvdyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgQGluY2x1ZGUgcHNldWRvLWFzc2V0KGxlZnQpO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBsZWZ0OiAwOyB0b3A6IC0zMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gICYuaGFzLXRpdGxlIHtcbiAgICAmID4gLnJvdyB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgICAgICB0b3A6IGNhbGMoNTBweCArIDQ1cHgpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICB0b3A6IGNhbGMoNTBweCArIDY1cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50aXRsZSBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgIH1cbiAgfVxufVxuXG4uaG9tZS5mdWxsLFxuLnBhZ2UuZnVsbCB7XG4gIC5wYXJhZ3JhcGgtaXRlbXMgPiAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cbn1cblxuLmhvbWUuZnVsbCAucGFyYWdyYXBoLS10eXBlLS10ZXh0LWJsb2NrLmRlbHRhLTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1saWdodC1jb2xvcjtcbiAgcGFkZGluZy10b3A6IDkwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMzBweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmctdG9wOiAxNjVweDtcbiAgfVxuICAmID4gLnJvdyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICB0b3A6IC03MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoMSBvZiAxMik7XG4gICAgfVxuICB9XG59XG4iLCIuc3dpcGVyLXNsaWRlc3BlcnZpZXctYXV0byB7XG4gIC5zd2lwZXItc2xpZGUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuIiwiQGltcG9ydCAnLi4vc2xpZGVzaG93JztcblxuLnBhcmFncmFwaC0tdHlwZS0taW1hZ2VzLnBhcmFncmFwaC0tdmlldy1tb2RlLS1zbGlkZXNob3cge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cbn1cbiIsIi5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMzBweDtcbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIGgyICsgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogNTBweDtcbiAgfVxuXG4gIC5idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcGFkZGluZy10b3A6IDQ1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQ1cHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyMDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNjBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMjYwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjMwcHg7XG4gICAgfVxuICAgIC5jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgcHNldWRvLWFzc2V0KGxlZnQpO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBib3R0b206IDUwJTsgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBib3R0b206IC04MHB4O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBmaWd1cmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgfVxuICAmLmRlbHRhLWxhc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tZmVhdHVyZXMsXG4ucGFyYWdyYXBoLS10eXBlLS1qb2JzLFxuLnBhcmFncmFwaC0tdHlwZS0tbGlzdCxcbi5wYXJhZ3JhcGgtLXR5cGUtLW92ZXJ2aWV3LFxuLnBhcmFncmFwaC0tdHlwZS0tcHJvZHVjdHMge1xuICAmICsgLnBhcmFncmFwaC0tdHlwZS0tY2FsbC10by1hY3Rpb24ge1xuICAgIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDE2MHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDI0MHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMzIwcHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnBhcmFncmFwaC0tdHlwZS0tZm9ybSB7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOTBweDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTMwcHg7XG4gIH1cbn1cbiIsIi5wYXJhZ3JhcGgtLXR5cGUtLXBhcnRuZXJzIHtcbiAgLmZpZWxkLW5hbWUtZmllbGQtdmlldyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIH1cbiAgLml0ZW0tbGlzdCBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cbiAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyO1xuICAgIGltZyB7XG4gICAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2Utb3V0IGZpbHRlcjtcbiAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpIGJyaWdodG5lc3MoMjYwJSk7XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgaW1nIHtcbiAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnBhcmFncmFwaC0tdHlwZS0tYXJ0aWNsZXMge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDEzMHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDE2MHB4O1xuICB9XG59XG4iLCIucGFyYWdyYXBoLS10eXBlLS1saXN0IHtcbiAgLmZpZWxkLW5hbWUtZmllbGQtbGlzdCB7XG4gICAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNHB4O1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjFweDtcbiAgICAgICAgfVxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogOHB4OyBsZWZ0OiAwO1xuICAgICAgICAgIHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2NoZWNrLnN2Z1wiKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgIGZpbHRlcjogaW52ZXJ0KDk2JSkgc2VwaWEoOTYlKSBzYXR1cmF0ZSgxOCUpIGh1ZS1yb3RhdGUoMjU5ZGVnKSBicmlnaHRuZXNzKDEwMyUpIGNvbnRyYXN0KDEwNiUpO1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucHJvZHVjdC12YXJpYXRpb24gLnBhcmFncmFwaC0tdHlwZS0tdmlkZW8tZW1iZWQge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgbWFyZ2luLXRvcDogOTBweDtcbiAgfVxufVxuXG4uZmllbGQtbmFtZS1maWVsZC12aWRlb3Mge1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgLmZpZWxkLWl0ZW1zID4gZGl2Om5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgfVxufVxuXG4ucGFyYWdyYXBoLWl0ZW1zIC5wYXJhZ3JhcGgtLXR5cGUtLXZpZGVvLWVtYmVkIHtcbiAgQGluY2x1ZGUgd3JhcHBlci1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIH1cbiAgLmZpZWxkLXR5cGUtdmlkZW8tZW1iZWQtZmllbGQge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuICB9XG59XG5cbi5wcm9kdWN0LXZhcmlhdGlvbiAucGFyYWdyYXBoLS10eXBlLS12aWRlby1lbWJlZCB7XG4gICAgcGFkZGluZzogMDtcbn1cbiIsIi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtaW1hZ2Uge1xuICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5MHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDEzMHB4O1xuICB9XG4gICYub3B0aW9uLWltYWdlLWxlZnQge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucm93IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbiAgZmlndXJlIHtcbiAgICBtYXJnaW4tdG9wOiA0NXB4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnByb2R1Y3QtdmFyaWF0aW9uIHtcbiAgdWwubGlua3Mtd3JhcHBlciB7XG4gICAgbWFyZ2luOiA0NXB4IDAgMCAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiA5MHB4O1xuICAgIH1cbiAgfVxuICAuaW50cm8tcm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuICAuZ2FsbGVyeS10b3AgLnN3aXBlci1zbGlkZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAmID4gZGl2ID4gLmZpZWxkLW5hbWUtZmllbGQtdGV4dCArIC5maWVsZC1uYW1lLWZpZWxkLXBhcmFncmFwaHMge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgbWFyZ2luLXRvcDogOTBweDtcbiAgICB9XG4gIH1cbn1cblxuLmZpZWxkLW5hbWUtZmllbGQtcHJvZHVjdC12YXJhdGlvbnMgLmNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi52YXJpYXRpb24tY29udGVudCA+IGgyIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uaGFzLW5vLWltYWdlcyB7XG4gIC52YXJpYXRpb24tY29udGVudCA+IGgyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIl19 */
