@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
   ========================================================================== */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
figcaption,
figure {
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * Add the correct display in IE.
 */
main {
  display: block;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Links
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0;
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 */
button {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  /* 2 */
}

button,
[type=button],
[type=reset],
[type=submit] {
  /**
   * Remove the inner border and padding in Firefox.
   */
  /**
   * Restore the focus styles unset by the previous rule.
   */
}
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;
}

/**
 * Show the overflow in Edge.
 */
input {
  overflow: visible;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
   * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
   */
}
[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Add the correct display in IE 9-.
 */
menu {
  display: block;
}

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */
template {
  display: none;
}

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

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

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

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.6;
  color: #333333;
  -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: 3px;
}

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

.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: 3px;
  background: transparent;
  line-height: 1;
}
[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;
}

.row {
  max-width: 75rem;
  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: 40em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}
@media print, screen and (min-width: 64em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}
.row .row.collapse {
  margin-right: 0;
  margin-left: 0;
}
.row.expanded {
  max-width: none;
}
.row.expanded .row {
  margin-right: auto;
  margin-left: auto;
}
.row:not(.expanded) .row {
  max-width: none;
}
.row.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: 40em) {
  .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;
}

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

.small-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
}

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

.small-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

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

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

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

.small-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

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

.small-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
}

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

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

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

.small-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
}

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

.small-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}

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

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

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

.small-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
}

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

.small-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
}

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

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

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

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

.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.3333333333%;
  max-width: 33.3333333333%;
}

.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.6666666667%;
  max-width: 16.6666666667%;
}

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

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

.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: 40em) {
  .medium-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

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

  .medium-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

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

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

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

  .medium-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

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

  .medium-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

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

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

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

  .medium-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

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

  .medium-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

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

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

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

  .medium-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

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

  .medium-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

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

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

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

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

  .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.3333333333%;
    max-width: 33.3333333333%;
  }

  .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.6666666667%;
    max-width: 16.6666666667%;
  }

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

  .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: 40em) and (min-width: 40em) {
  .medium-expand {
    flex: 1 1 0px;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-row {
    flex-direction: row;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-column {
    flex-direction: column;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-child-auto {
    flex: 1 1 auto;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-child-grow {
    flex: 1 0 auto;
  }
}
@media print, screen and (min-width: 40em) {
  .medium-flex-child-shrink {
    flex: 0 1 auto;
  }
}
.row.medium-unstack > .column, .row.medium-unstack > .columns {
  flex: 0 0 100%;
}
@media print, screen and (min-width: 40em) {
  .row.medium-unstack > .column, .row.medium-unstack > .columns {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
}
@media print, screen and (min-width: 40em) {
  .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.3333333333%;
    max-width: 8.3333333333%;
  }

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

  .large-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

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

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

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

  .large-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

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

  .large-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

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

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

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

  .large-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

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

  .large-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

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

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

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

  .large-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

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

  .large-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

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

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

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

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

  .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.3333333333%;
    max-width: 33.3333333333%;
  }

  .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.6666666667%;
    max-width: 16.6666666667%;
  }

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

  .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;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-row {
    flex-direction: row;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-row-reverse {
    flex-direction: row-reverse;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-column {
    flex-direction: column;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-dir-column-reverse {
    flex-direction: column-reverse;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-child-auto {
    flex: 1 1 auto;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-child-grow {
    flex: 1 0 auto;
  }
}
@media print, screen and (min-width: 64em) {
  .large-flex-child-shrink {
    flex: 0 1 auto;
  }
}
.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;
  }
}
@media print, screen and (min-width: 64em) {
  .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: 40em) {
  .column-block {
    margin-bottom: 1.875rem;
  }
  .column-block > :last-child {
    margin-bottom: 0;
  }
}

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

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

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

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

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  line-height: 0;
  color: #cacaca;
}

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

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

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

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

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

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

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

  h2 {
    font-size: 2.5rem;
  }

  h3 {
    font-size: 1.9375rem;
  }

  h4 {
    font-size: 1.5625rem;
  }

  h5 {
    font-size: 1.25rem;
  }

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

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

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

li {
  font-size: inherit;
}

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

ol {
  margin-left: 1.25rem;
}

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

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

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

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

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

figure {
  margin: 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important;
  }

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

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

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

  thead.show-for-print {
    display: table-header-group !important;
  }

  tbody.show-for-print {
    display: table-row-group !important;
  }

  tr.show-for-print {
    display: table-row !important;
  }

  td.show-for-print {
    display: table-cell !important;
  }

  th.show-for-print {
    display: table-cell !important;
  }

  a,
a:visited {
    text-decoration: underline;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }

  .ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
    content: "";
  }

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

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

  thead {
    display: table-header-group;
  }

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

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

  @page {
    margin: 0.5cm;
  }
  p,
h2,
h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
h3 {
    page-break-after: avoid;
  }

  .print-break-inside {
    page-break-inside: auto;
  }
}
[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.5375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(51, 51, 51, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.6;
  color: #333333;
  transition: box-shadow 0.5s, 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 #8a8a8a;
  background-color: #fefefe;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

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

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #cacaca;
}

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

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

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

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

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

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

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

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

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #333333;
}
label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

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

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

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

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #333333;
  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;
  height: auto;
  min-width: 0;
}

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

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

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

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

select {
  height: 2.5375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.6;
  color: #333333;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}
@media screen and (min-width: 0\0 ) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}
select:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fefefe;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}
select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}

.is-invalid-input:not(:focus) {
  border-color: #ec5840;
  background-color: #fcedeb;
}
.is-invalid-input:not(:focus)::-moz-placeholder {
  color: #ec5840;
}
.is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #ec5840;
}
.is-invalid-input:not(:focus)::placeholder {
  color: #ec5840;
}

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

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

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  font-family: inherit;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 3px;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #1A5099;
  color: #fefefe;
}
[data-whatinput=mouse] .button {
  outline: 0;
}
.button:hover, .button:focus {
  background-color: #164482;
  color: #fefefe;
}
.button.tiny {
  font-size: 0.6rem;
}
.button.small {
  font-size: 0.75rem;
}
.button.large {
  font-size: 1.25rem;
}
.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}
.button.primary {
  background-color: #1A5099;
  color: #fefefe;
}
.button.primary:hover, .button.primary:focus {
  background-color: #15407a;
  color: #fefefe;
}
.button.secondary {
  background-color: #777;
  color: #fefefe;
}
.button.secondary:hover, .button.secondary:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}
.button.success {
  background-color: #3adb76;
  color: #333333;
}
.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #333333;
}
.button.warning {
  background-color: #ffae00;
  color: #333333;
}
.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #333333;
}
.button.alert {
  background-color: #ec5840;
  color: #333333;
}
.button.alert:hover, .button.alert:focus {
  background-color: #da3116;
  color: #333333;
}
.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
  background-color: #1A5099;
  color: #fefefe;
}
.button.disabled.primary, .button[disabled].primary {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
  background-color: #1A5099;
  color: #fefefe;
}
.button.disabled.secondary, .button[disabled].secondary {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  background-color: #777;
  color: #fefefe;
}
.button.disabled.success, .button[disabled].success {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #3adb76;
  color: #333333;
}
.button.disabled.warning, .button[disabled].warning {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #ffae00;
  color: #333333;
}
.button.disabled.alert, .button[disabled].alert {
  opacity: 0.25;
  cursor: not-allowed;
}
.button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #ec5840;
  color: #333333;
}
.button.hollow {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow, .button.hollow:hover, .button.hollow:focus {
  background-color: transparent;
}
.button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
  background-color: transparent;
}
.button.hollow:hover, .button.hollow:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow.primary {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.hollow.secondary {
  border: 1px solid #777;
  color: #777;
}
.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #3c3c3c;
  color: #3c3c3c;
}
.button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
  border: 1px solid #777;
  color: #777;
}
.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}
.button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.hollow.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}
.button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.clear {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear, .button.clear:hover, .button.clear:focus {
  background-color: transparent;
}
.button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
  background-color: transparent;
}
.button.clear:hover, .button.clear:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border-color: transparent;
}
.button.clear.primary {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear.primary:hover, .button.clear.primary:focus {
  border-color: #0d284d;
  color: #0d284d;
}
.button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border: 1px solid #1A5099;
  color: #1A5099;
}
.button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border-color: transparent;
}
.button.clear.secondary {
  border: 1px solid #777;
  color: #777;
}
.button.clear.secondary:hover, .button.clear.secondary:focus {
  border-color: #3c3c3c;
  color: #3c3c3c;
}
.button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border: 1px solid #777;
  color: #777;
}
.button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border-color: transparent;
}
.button.clear.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.clear.success:hover, .button.clear.success:focus {
  border-color: #157539;
  color: #157539;
}
.button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
  border: 1px solid #3adb76;
  color: #3adb76;
}
.button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
  border-color: transparent;
}
.button.clear.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.clear.warning:hover, .button.clear.warning:focus {
  border-color: #805700;
  color: #805700;
}
.button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
  border: 1px solid #ffae00;
  color: #ffae00;
}
.button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
  border-color: transparent;
}
.button.clear.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.clear.alert:hover, .button.clear.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}
.button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
  border: 1px solid #ec5840;
  color: #ec5840;
}
.button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
  border-color: transparent;
}
.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: "";
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #fefefe transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}
.button.dropdown.hollow::after {
  border-top-color: #1A5099;
}
.button.dropdown.hollow.primary::after {
  border-top-color: #1A5099;
}
.button.dropdown.hollow.secondary::after {
  border-top-color: #777;
}
.button.dropdown.hollow.success::after {
  border-top-color: #3adb76;
}
.button.dropdown.hollow.warning::after {
  border-top-color: #ffae00;
}
.button.dropdown.hollow.alert::after {
  border-top-color: #ec5840;
}
.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

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

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

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1A5099;
}
:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 3px 3px;
}
.accordion-title:hover, .accordion-title:focus {
  background-color: #e6e6e6;
}
.accordion-title::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  margin-top: -0.5rem;
  content: "+";
}
.is-active > .accordion-title::before {
  content: "–";
}

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

.accordion-menu {
  border-bottom: 1px solid #e6e6e6;
}
.accordion-menu li {
  border-top: 1px solid #e6e6e6;
  border-right: 1px solid #e6e6e6;
  border-left: 1px solid #e6e6e6;
}
.accordion-menu .is-accordion-submenu li {
  border-right: 0;
  border-left: 0;
}
.accordion-menu .is-accordion-submenu-parent {
  position: relative;
}
.accordion-menu .is-accordion-submenu-parent > a {
  margin-right: 40px;
}
.accordion-menu .submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  border-left: 1px solid #e6e6e6;
}
.accordion-menu .submenu-toggle::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1A5099 transparent transparent;
  top: 0;
  bottom: 0;
  margin: auto;
}
.accordion-menu .submenu-toggle[aria-expanded=true]::after {
  transform: scaleY(-1);
  transform-origin: 50% 50%;
}
.accordion-menu .submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0;
}

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

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

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1A5099;
  color: #fefefe;
}
.badge.primary {
  background: #1A5099;
  color: #fefefe;
}
.badge.secondary {
  background: #777;
  color: #fefefe;
}
.badge.success {
  background: #3adb76;
  color: #333333;
}
.badge.warning {
  background: #ffae00;
  color: #333333;
}
.badge.alert {
  background: #ec5840;
  color: #333333;
}

.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: #333333;
  cursor: default;
  text-transform: uppercase;
}
.breadcrumbs li:not(:last-child)::after {
  position: relative;
  top: 1px;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}
.breadcrumbs a {
  color: #1A5099;
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
}
.button-group::before, .button-group::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.button-group::after {
  clear: both;
}
.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  flex: 0 0 auto;
}
.button-group .button:last-child {
  margin-right: 0;
}
.button-group.tiny .button {
  font-size: 0.6rem;
}
.button-group.small .button {
  font-size: 0.75rem;
}
.button-group.large .button {
  font-size: 1.25rem;
}
.button-group.expanded .button {
  flex: 1 1 0px;
}
.button-group.primary .button {
  background-color: #1A5099;
  color: #fefefe;
}
.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #15407a;
  color: #fefefe;
}
.button-group.secondary .button {
  background-color: #777;
  color: #fefefe;
}
.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #5f5f5f;
  color: #fefefe;
}
.button-group.success .button {
  background-color: #3adb76;
  color: #333333;
}
.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #22bb5b;
  color: #333333;
}
.button-group.warning .button {
  background-color: #ffae00;
  color: #333333;
}
.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #333333;
}
.button-group.alert .button {
  background-color: #ec5840;
  color: #333333;
}
.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #da3116;
  color: #333333;
}
.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;
}
@media print, screen and (min-width: 40em) {
  .button-group.stacked-for-small .button {
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}
@media screen and (max-width: 39.9375em) {
  .button-group.stacked-for-small.expanded {
    display: block;
  }
  .button-group.stacked-for-small.expanded .button {
    display: block;
    margin-right: 0;
  }
}

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

.card {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 3px;
  background: #fefefe;
  box-shadow: none;
  overflow: hidden;
  color: #333333;
}
.card > :last-child {
  margin-bottom: 0;
}

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

.card-section {
  flex: 1 0 auto;
  padding: 1rem;
}
.card-section > :last-child {
  margin-bottom: 0;
}

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer;
}
[data-whatinput=mouse] .close-button {
  outline: 0;
}
.close-button:hover, .close-button:focus {
  color: #333333;
}
.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}
.close-button, .close-button.medium {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.menu {
  margin: 0;
  list-style-type: none;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
}
.menu > li {
  flex: 0 0 auto;
}
[data-whatinput=mouse] .menu > li {
  outline: 0;
}
.menu > li > a {
  display: block;
  padding: 0.7rem 1rem;
  line-height: 1;
}
.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}
.menu > li > a {
  display: flex;
}
.menu > li > a {
  flex-flow: row nowrap;
}
.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  margin-right: 0.25rem;
}
.menu, .menu.horizontal {
  flex-wrap: nowrap;
}
.menu > li, .menu.horizontal > li {
  flex: 0 0 auto;
}
.menu.expanded > li {
  flex: 1 1 0px;
}
.menu.expanded > li:first-child:last-child {
  width: 100%;
}
.menu.vertical {
  flex-wrap: wrap;
}
.menu.vertical > li {
  flex: 0 0 100%;
  max-width: 100%;
}
.menu.vertical > li > a {
  justify-content: flex-start;
  align-items: flex-start;
}
@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    flex-wrap: nowrap;
  }
  .menu.medium-horizontal > li {
    flex: 0 0 auto;
  }
  .menu.medium-expanded > li {
    flex: 1 1 0px;
  }
  .menu.medium-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.medium-vertical {
    flex-wrap: wrap;
  }
  .menu.medium-vertical > li {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.medium-vertical > li > a {
    justify-content: flex-start;
    align-items: flex-start;
  }
}
@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    flex-wrap: nowrap;
  }
  .menu.large-horizontal > li {
    flex: 0 0 auto;
  }
  .menu.large-expanded > li {
    flex: 1 1 0px;
  }
  .menu.large-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.large-vertical {
    flex-wrap: wrap;
  }
  .menu.large-vertical > li {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.large-vertical > li > a {
    justify-content: flex-start;
    align-items: flex-start;
  }
}
.menu.simple li {
  display: inline-block;
  vertical-align: top;
  line-height: 1;
}
.menu.simple a {
  padding: 0;
}
.menu.simple li {
  margin-left: 0;
  margin-right: 1rem;
}
.menu.simple.align-right li {
  margin-right: 0;
  margin-left: 1rem;
}
.menu.align-right {
  justify-content: flex-end;
}
.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-top.vertical a > span {
  margin: auto;
}
.menu.nested {
  margin-left: 1rem;
}
.menu .is-active > a {
  background: #1A5099;
  color: #fefefe;
}
.menu.menu-bordered li {
  border: 1px solid #e6e6e6;
}
.menu.menu-bordered li:not(:first-child) {
  border-top: 0;
}
.menu.menu-hover li:hover {
  background-color: #e6e6e6;
}

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

.menu-centered {
  text-align: center;
}
.menu-centered > .menu {
  justify-content: center;
  align-items: flex-start;
}
.menu-centered > .menu.vertical > li > a {
  justify-content: center;
}

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

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}
.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #fefefe;
  box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
  content: "";
}
.menu-icon:hover::after {
  background: #cacaca;
  box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}
.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #333333;
  box-shadow: 0 7px 0 #333333, 0 14px 0 #333333;
  content: "";
}
.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

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

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear;
}
.is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  transform: translateX(-100%);
}
.is-drilldown-submenu.is-closing {
  transform: translateX(100%);
}

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

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

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

.dropdown-pane {
  position: absolute;
  z-index: 10;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  display: none;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  font-size: 1rem;
}
.dropdown-pane.is-opening {
  display: block;
}
.dropdown-pane.is-open {
  visibility: visible;
  display: block;
}

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

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

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

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto;
}
.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0;
}
.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem;
}
.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1A5099 transparent transparent;
  right: 5px;
  margin-top: -3px;
}
[data-whatinput=mouse] .dropdown.menu a {
  outline: 0;
}
.no-js .dropdown.menu ul {
  display: none;
}
.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}
.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}
.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}
.dropdown.menu.vertical > li > a::after {
  right: 14px;
}
.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1A5099 transparent transparent;
}
.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1A5099;
}
@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: "";
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1A5099 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: "";
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1A5099 transparent transparent;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: "";
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1A5099;
  }
}
@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: "";
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1A5099 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: "";
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1A5099 transparent transparent;
  }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: "";
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1A5099;
  }
}
.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;
  margin-top: -6px;
}
.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}
.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}
.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe;
}
.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
}
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1A5099 transparent transparent;
}
.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: "";
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1A5099;
}
.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}
.is-dropdown-submenu > li {
  width: 100%;
}
.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden;
}
.responsive-embed iframe,
.responsive-embed object,
.responsive-embed embed,
.responsive-embed video,
.flex-video iframe,
.flex-video object,
.flex-video embed,
.flex-video video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.responsive-embed.widescreen,
.flex-video.widescreen {
  padding-bottom: 56.25%;
}

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 3px;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1A5099;
  color: #fefefe;
}
.label.primary {
  background: #1A5099;
  color: #fefefe;
}
.label.secondary {
  background: #777;
  color: #fefefe;
}
.label.success {
  background: #3adb76;
  color: #333333;
}
.label.warning {
  background: #ffae00;
  color: #333333;
}
.label.alert {
  background: #ec5840;
  color: #333333;
}

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

.media-object-section {
  flex: 0 1 auto;
}
.media-object-section:first-child {
  padding-right: 1rem;
}
.media-object-section:last-child:not(:nth-child(2)) {
  padding-left: 1rem;
}
.media-object-section > :last-child {
  margin-bottom: 0;
}
.media-object-section.main-section {
  flex: 1 1 0px;
}

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

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 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: 1;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6;
}
[data-whatinput=mouse] .off-canvas {
  outline: 0;
}
.off-canvas.is-transition-overlap {
  z-index: 10;
}
.off-canvas.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(51, 51, 51, 0.7);
}
.off-canvas.is-open {
  transform: translate(0, 0);
}

.off-canvas-absolute {
  position: absolute;
  z-index: 1;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6;
}
[data-whatinput=mouse] .off-canvas-absolute {
  outline: 0;
}
.off-canvas-absolute.is-transition-overlap {
  z-index: 10;
}
.off-canvas-absolute.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(51, 51, 51, 0.7);
}
.off-canvas-absolute.is-open {
  transform: translate(0, 0);
}

.position-left {
  top: 0;
  left: 0;
  width: 250px;
  height: 100%;
  transform: translateX(-250px);
  overflow-y: auto;
}
.position-left.is-open ~ .off-canvas-content {
  transform: translateX(250px);
}
.position-left.is-transition-push::after {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 1px;
  box-shadow: 0 0 10px rgba(51, 51, 51, 0.7);
  content: " ";
}
.position-left.is-transition-overlap.is-open ~ .off-canvas-content {
  transform: none;
}

.position-right {
  top: 0;
  right: 0;
  width: 250px;
  height: 100%;
  transform: translateX(250px);
  overflow-y: auto;
}
.position-right.is-open ~ .off-canvas-content {
  transform: translateX(-250px);
}
.position-right.is-transition-push::after {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 1px;
  box-shadow: 0 0 10px rgba(51, 51, 51, 0.7);
  content: " ";
}
.position-right.is-transition-overlap.is-open ~ .off-canvas-content {
  transform: none;
}

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  height: 250px;
  transform: translateY(-250px);
  overflow-x: auto;
}
.position-top.is-open ~ .off-canvas-content {
  transform: translateY(250px);
}
.position-top.is-transition-push::after {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  box-shadow: 0 0 10px rgba(51, 51, 51, 0.7);
  content: " ";
}
.position-top.is-transition-overlap.is-open ~ .off-canvas-content {
  transform: none;
}

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 250px;
  transform: translateY(250px);
  overflow-x: auto;
}
.position-bottom.is-open ~ .off-canvas-content {
  transform: translateY(-250px);
}
.position-bottom.is-transition-push::after {
  position: absolute;
  top: 0;
  left: 0;
  height: 1px;
  width: 100%;
  box-shadow: 0 0 10px rgba(51, 51, 51, 0.7);
  content: " ";
}
.position-bottom.is-transition-overlap.is-open ~ .off-canvas-content {
  transform: none;
}

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

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }

  .position-right.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }

  .position-top.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-top.reveal-for-medium ~ .off-canvas-content {
    margin-top: 250px;
  }

  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-bottom.reveal-for-medium ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}
@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-left.reveal-for-large ~ .off-canvas-content {
    margin-left: 250px;
  }

  .position-right.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-right.reveal-for-large ~ .off-canvas-content {
    margin-right: 250px;
  }

  .position-top.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-top.reveal-for-large ~ .off-canvas-content {
    margin-top: 250px;
  }

  .position-bottom.reveal-for-large {
    transform: none;
    z-index: 1;
    transition: none;
  }
  .position-bottom.reveal-for-large ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}
.orbit {
  position: relative;
}

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

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

.orbit-figure {
  margin: 0;
}

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

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

.orbit-next, .orbit-previous {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe;
}
[data-whatinput=mouse] .orbit-next, [data-whatinput=mouse] .orbit-previous {
  outline: 0;
}
.orbit-next:hover, .orbit-previous:hover, .orbit-next:active, .orbit-previous:active, .orbit-next:focus, .orbit-previous:focus {
  background-color: rgba(51, 51, 51, 0.5);
}

.orbit-previous {
  left: 0;
}

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

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}
[data-whatinput=mouse] .orbit-bullets {
  outline: 0;
}
.orbit-bullets button {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.1rem;
  border-radius: 50%;
  background-color: #cacaca;
}
.orbit-bullets button:hover {
  background-color: #8a8a8a;
}
.orbit-bullets button.is-active {
  background-color: #8a8a8a;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}
.pagination::before, .pagination::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.pagination::after {
  clear: both;
}
.pagination li {
  margin-right: 0.0625rem;
  border-radius: 3px;
  font-size: 0.875rem;
  display: none;
}
.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}
@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}
.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 3px;
  color: #333333;
}
.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}
.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #1A5099;
  color: #fefefe;
  cursor: default;
}
.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}
.pagination .disabled:hover {
  background: transparent;
}
.pagination .ellipsis::after {
  padding: 0.1875rem 0.625rem;
  content: "…";
  color: #333333;
}

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

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

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 3px;
  background-color: #cacaca;
}
.progress.primary .progress-meter {
  background-color: #1A5099;
}
.progress.secondary .progress-meter {
  background-color: #777;
}
.progress.success .progress-meter {
  background-color: #3adb76;
}
.progress.warning .progress-meter {
  background-color: #ffae00;
}
.progress.alert .progress-meter {
  background-color: #ec5840;
}

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1A5099;
  border-radius: 3px;
}

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

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

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

.slider-handle {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 3px;
  background-color: #1A5099;
  transition: all 0.2s ease-in-out;
  touch-action: manipulation;
}
[data-whatinput=mouse] .slider-handle {
  outline: 0;
}
.slider-handle:hover {
  background-color: #164482;
}
.slider-handle.is-dragging {
  transition: all 0s linear;
}

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

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  transform: scale(1, -1);
}
.slider.vertical .slider-fill {
  top: 0;
  width: 0.5rem;
  max-height: 100%;
}
.slider.vertical .slider-handle {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1.4rem;
  height: 1.4rem;
  transform: translateX(-50%);
}

.sticky-container {
  position: relative;
}

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

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

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

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

html.is-reveal-open,
html.is-reveal-open body {
  min-height: 100%;
  overflow: hidden;
  position: fixed;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

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

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 3px;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
}
[data-whatinput=mouse] .reveal {
  outline: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}
.reveal .column, .reveal .columns {
  min-width: 0;
}
.reveal > :last-child {
  margin-bottom: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal .reveal {
    right: auto;
    left: auto;
    margin: 0 auto;
  }
}
.reveal.collapse {
  padding: 0;
}
@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}
@media print, screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}
.reveal.full {
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}
@media screen and (max-width: 39.9375em) {
  .reveal {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}
.reveal.without-overlay {
  position: fixed;
}

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

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

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 3px;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer;
}
input + .switch-paddle {
  margin: 0;
}
.switch-paddle::after {
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  transform: translate3d(0, 0, 0);
  border-radius: 3px;
  background: #fefefe;
  transition: all 0.25s ease-out;
  content: "";
}
input:checked ~ .switch-paddle {
  background: #1A5099;
}
input:checked ~ .switch-paddle::after {
  left: 2.25rem;
}
[data-whatinput=mouse] input:focus ~ .switch-paddle {
  outline: 0;
}

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

.switch-active {
  left: 8%;
  display: none;
}
input:checked + label > .switch-active {
  display: block;
}

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

.switch.tiny {
  height: 1.5rem;
}
.switch.tiny .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem;
}
.switch.tiny .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1rem;
  height: 1rem;
}
.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem;
}

.switch.small {
  height: 1.75rem;
}
.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem;
}
.switch.small .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
}
.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem;
}

.switch.large {
  height: 2.5rem;
}
.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem;
}
.switch.large .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 2rem;
  height: 2rem;
}
.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem;
}

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

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

thead {
  background: #f8f8f8;
  color: #333333;
}

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

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

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

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

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

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

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

table.hover thead tr:hover {
  background-color: #f3f3f3;
}
table.hover tfoot tr:hover {
  background-color: #ececec;
}
table.hover tbody tr:hover {
  background-color: #f9f9f9;
}
table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec;
}

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

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  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: #1A5099;
}
.tabs.primary > li > a {
  color: #fefefe;
}
.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #1c57a7;
}

.tabs-title {
  float: left;
}
.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  font-size: 0.75rem;
  line-height: 1;
  color: #1A5099;
}
.tabs-title > a:hover {
  background: #fefefe;
  color: #164584;
}
.tabs-title > a:focus, .tabs-title > a[aria-selected=true] {
  background: #e6e6e6;
  color: #1A5099;
}

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

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

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

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

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

.title-bar {
  padding: 0.5rem;
  background: #333333;
  color: #fefefe;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

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

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

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

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

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 3px;
  background-color: #333333;
  font-size: 80%;
  color: #fefefe;
}
.tooltip::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: "";
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #333333;
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
}
.tooltip.top::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: "";
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #333333 transparent transparent;
  top: 100%;
  bottom: auto;
}
.tooltip.left::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: "";
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #333333;
  top: 50%;
  bottom: auto;
  left: 100%;
  transform: translateY(-50%);
}
.tooltip.right::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: "";
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #333333 transparent transparent;
  top: 50%;
  right: 100%;
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
}

.top-bar {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem;
  flex-wrap: wrap;
}
.top-bar,
.top-bar ul {
  background-color: #e6e6e6;
}
.top-bar input {
  max-width: 200px;
  margin-right: 1rem;
}
.top-bar .input-group-field {
  width: 100%;
  margin-right: 0;
}
.top-bar input.button {
  width: auto;
}
.top-bar .top-bar-left,
.top-bar .top-bar-right {
  flex: 0 0 100%;
  max-width: 100%;
}
@media print, screen and (min-width: 40em) {
  .top-bar {
    flex-wrap: nowrap;
  }
  .top-bar .top-bar-left {
    flex: 1 1 auto;
    margin-right: auto;
  }
  .top-bar .top-bar-right {
    flex: 0 1 auto;
    margin-left: auto;
  }
}
@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-medium .top-bar-left,
.top-bar.stacked-for-medium .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-large .top-bar-left,
.top-bar.stacked-for-large .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

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

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

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

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

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

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

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

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

@media screen and (max-width: 39.9375em), 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.9375em) {
  .show-for-large {
    display: none !important;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .medium-order-6 {
    order: 6;
  }
}
@media print, screen and (min-width: 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;
  }
}
.show-for-mq-large {
  display: none;
}
@media only screen and (min-width: 75em) {
  .show-for-mq-large {
    display: inline;
  }
}

.hide-for-mq-large {
  display: inline;
}
@media only screen and (min-width: 75em) {
  .hide-for-mq-large {
    display: none;
  }
}

.hide-for-mq-medium {
  display: inline;
}
@media only screen and (min-width: 47.5em) {
  .hide-for-mq-medium {
    display: none;
  }
}

.show-for-mq-medium {
  display: none;
}
@media only screen and (min-width: 47.5em) {
  .show-for-mq-medium {
    display: inline;
  }
}

/*
 * Implementation of themes
 */
.theme-original {
  background-color: #fefefe;
  color: #333;
}
@media only screen and (min-width: 47.5em) {
  .theme-original {
    background-color: #f8f8ff;
  }
}

.theme-light {
  background-color: #f8f8ff;
  color: #333;
}
@media only screen and (min-width: 47.5em) {
  .theme-light {
    background-color: #f8f8ff;
  }
}

.theme-dark {
  background-color: #212529;
  color: #fcfcfc;
}

.link, .articles__resteem .username,
.articles__crosspost .username, .user__name a, .user__link, .articles__tag-link a, .articles__summary-footer a, .c-sidebar__more-link, .c-sidebar__link, .Header__buttons > .Header__user-signup > a.Header__login-link, .Notices__title-link, .Notices__author-link, li.nav__block-list-item a, .ReplyEditor .button.hollow.no-border, .PostFull__body a, .PostFull__header a, .Comment .Comment__block .Comment__footer a, .Comment__header-user a, .PlainLink, .Markdown a {
  text-decoration: none;
  transition: 0.2s all ease-in-out;
}
.theme-original .link--primary, .theme-original .user__name a, .user__name .theme-original a, .theme-original .articles__summary-footer a, .articles__summary-footer .theme-original a, .theme-original .c-sidebar__link, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link, .theme-original .Notices__title-link, .theme-original li.nav__block-list-item a, li.nav__block-list-item .theme-original a, .theme-original .Comment .Comment__block .Comment__footer a, .Comment .Comment__block .Comment__footer .theme-original a, .theme-original .Comment__header-user a, .Comment__header-user .theme-original a {
  color: #333;
}
.theme-light .link--primary, .theme-light .user__name a, .user__name .theme-light a, .theme-light .articles__summary-footer a, .articles__summary-footer .theme-light a, .theme-light .c-sidebar__link, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link, .theme-light .Notices__title-link, .theme-light li.nav__block-list-item a, li.nav__block-list-item .theme-light a, .theme-light .Comment .Comment__block .Comment__footer a, .Comment .Comment__block .Comment__footer .theme-light a, .theme-light .Comment__header-user a, .Comment__header-user .theme-light a {
  color: #333;
}
.theme-dark .link--primary, .theme-dark .user__name a, .user__name .theme-dark a, .theme-dark .articles__summary-footer a, .articles__summary-footer .theme-dark a, .theme-dark .c-sidebar__link, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link, .theme-dark .Notices__title-link, .theme-dark li.nav__block-list-item a, li.nav__block-list-item .theme-dark a, .theme-dark .Comment .Comment__block .Comment__footer a, .Comment .Comment__block .Comment__footer .theme-dark a, .theme-dark .Comment__header-user a, .Comment__header-user .theme-dark a {
  color: #fcfcfc;
}
.theme-original .link--primary:visited, .theme-original .user__name a:visited, .user__name .theme-original a:visited, .theme-original .articles__summary-footer a:visited, .articles__summary-footer .theme-original a:visited, .theme-original .c-sidebar__link:visited, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:visited, .theme-original .Notices__title-link:visited, .theme-original li.nav__block-list-item a:visited, li.nav__block-list-item .theme-original a:visited, .theme-original .Comment .Comment__block .Comment__footer a:visited, .Comment .Comment__block .Comment__footer .theme-original a:visited, .theme-original .Comment__header-user a:visited, .Comment__header-user .theme-original a:visited, .theme-original .link--primary:active, .theme-original .user__name a:active, .user__name .theme-original a:active, .theme-original .articles__summary-footer a:active, .articles__summary-footer .theme-original a:active, .theme-original .c-sidebar__link:active, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:active, .theme-original .Notices__title-link:active, .theme-original li.nav__block-list-item a:active, li.nav__block-list-item .theme-original a:active, .theme-original .Comment .Comment__block .Comment__footer a:active, .Comment .Comment__block .Comment__footer .theme-original a:active, .theme-original .Comment__header-user a:active, .Comment__header-user .theme-original a:active {
  color: #333;
}
.theme-light .link--primary:visited, .theme-light .user__name a:visited, .user__name .theme-light a:visited, .theme-light .articles__summary-footer a:visited, .articles__summary-footer .theme-light a:visited, .theme-light .c-sidebar__link:visited, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:visited, .theme-light .Notices__title-link:visited, .theme-light li.nav__block-list-item a:visited, li.nav__block-list-item .theme-light a:visited, .theme-light .Comment .Comment__block .Comment__footer a:visited, .Comment .Comment__block .Comment__footer .theme-light a:visited, .theme-light .Comment__header-user a:visited, .Comment__header-user .theme-light a:visited, .theme-light .link--primary:active, .theme-light .user__name a:active, .user__name .theme-light a:active, .theme-light .articles__summary-footer a:active, .articles__summary-footer .theme-light a:active, .theme-light .c-sidebar__link:active, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:active, .theme-light .Notices__title-link:active, .theme-light li.nav__block-list-item a:active, li.nav__block-list-item .theme-light a:active, .theme-light .Comment .Comment__block .Comment__footer a:active, .Comment .Comment__block .Comment__footer .theme-light a:active, .theme-light .Comment__header-user a:active, .Comment__header-user .theme-light a:active {
  color: #333;
}
.theme-dark .link--primary:visited, .theme-dark .user__name a:visited, .user__name .theme-dark a:visited, .theme-dark .articles__summary-footer a:visited, .articles__summary-footer .theme-dark a:visited, .theme-dark .c-sidebar__link:visited, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:visited, .theme-dark .Notices__title-link:visited, .theme-dark li.nav__block-list-item a:visited, li.nav__block-list-item .theme-dark a:visited, .theme-dark .Comment .Comment__block .Comment__footer a:visited, .Comment .Comment__block .Comment__footer .theme-dark a:visited, .theme-dark .Comment__header-user a:visited, .Comment__header-user .theme-dark a:visited, .theme-dark .link--primary:active, .theme-dark .user__name a:active, .user__name .theme-dark a:active, .theme-dark .articles__summary-footer a:active, .articles__summary-footer .theme-dark a:active, .theme-dark .c-sidebar__link:active, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:active, .theme-dark .Notices__title-link:active, .theme-dark li.nav__block-list-item a:active, li.nav__block-list-item .theme-dark a:active, .theme-dark .Comment .Comment__block .Comment__footer a:active, .Comment .Comment__block .Comment__footer .theme-dark a:active, .theme-dark .Comment__header-user a:active, .Comment__header-user .theme-dark a:active {
  color: #fcfcfc;
}
.theme-original .link--primary:hover, .theme-original .user__name a:hover, .user__name .theme-original a:hover, .theme-original .articles__summary-footer a:hover, .articles__summary-footer .theme-original a:hover, .theme-original .c-sidebar__link:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:hover, .theme-original .Notices__title-link:hover, .theme-original li.nav__block-list-item a:hover, li.nav__block-list-item .theme-original a:hover, .theme-original .Comment .Comment__block .Comment__footer a:hover, .Comment .Comment__block .Comment__footer .theme-original a:hover, .theme-original .Comment__header-user a:hover, .Comment__header-user .theme-original a:hover, .theme-original .link--primary:focus, .theme-original .user__name a:focus, .user__name .theme-original a:focus, .theme-original .articles__summary-footer a:focus, .articles__summary-footer .theme-original a:focus, .theme-original .c-sidebar__link:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__login-link:focus, .theme-original .Notices__title-link:focus, .theme-original li.nav__block-list-item a:focus, li.nav__block-list-item .theme-original a:focus, .theme-original .Comment .Comment__block .Comment__footer a:focus, .Comment .Comment__block .Comment__footer .theme-original a:focus, .theme-original .Comment__header-user a:focus, .Comment__header-user .theme-original a:focus {
  color: #004EFF;
}
.theme-light .link--primary:hover, .theme-light .user__name a:hover, .user__name .theme-light a:hover, .theme-light .articles__summary-footer a:hover, .articles__summary-footer .theme-light a:hover, .theme-light .c-sidebar__link:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:hover, .theme-light .Notices__title-link:hover, .theme-light li.nav__block-list-item a:hover, li.nav__block-list-item .theme-light a:hover, .theme-light .Comment .Comment__block .Comment__footer a:hover, .Comment .Comment__block .Comment__footer .theme-light a:hover, .theme-light .Comment__header-user a:hover, .Comment__header-user .theme-light a:hover, .theme-light .link--primary:focus, .theme-light .user__name a:focus, .user__name .theme-light a:focus, .theme-light .articles__summary-footer a:focus, .articles__summary-footer .theme-light a:focus, .theme-light .c-sidebar__link:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__login-link:focus, .theme-light .Notices__title-link:focus, .theme-light li.nav__block-list-item a:focus, li.nav__block-list-item .theme-light a:focus, .theme-light .Comment .Comment__block .Comment__footer a:focus, .Comment .Comment__block .Comment__footer .theme-light a:focus, .theme-light .Comment__header-user a:focus, .Comment__header-user .theme-light a:focus {
  color: #E31337;
}
.theme-dark .link--primary:hover, .theme-dark .user__name a:hover, .user__name .theme-dark a:hover, .theme-dark .articles__summary-footer a:hover, .articles__summary-footer .theme-dark a:hover, .theme-dark .c-sidebar__link:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:hover, .theme-dark .Notices__title-link:hover, .theme-dark li.nav__block-list-item a:hover, li.nav__block-list-item .theme-dark a:hover, .theme-dark .Comment .Comment__block .Comment__footer a:hover, .Comment .Comment__block .Comment__footer .theme-dark a:hover, .theme-dark .Comment__header-user a:hover, .Comment__header-user .theme-dark a:hover, .theme-dark .link--primary:focus, .theme-dark .user__name a:focus, .user__name .theme-dark a:focus, .theme-dark .articles__summary-footer a:focus, .articles__summary-footer .theme-dark a:focus, .theme-dark .c-sidebar__link:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__login-link:focus, .theme-dark .Notices__title-link:focus, .theme-dark li.nav__block-list-item a:focus, li.nav__block-list-item .theme-dark a:focus, .theme-dark .Comment .Comment__block .Comment__footer a:focus, .Comment .Comment__block .Comment__footer .theme-dark a:focus, .theme-dark .Comment__header-user a:focus, .Comment__header-user .theme-dark a:focus {
  color: #E31337;
}
.theme-original .link--secondary, .theme-original .articles__resteem .username, .articles__resteem .theme-original .username,
.theme-original .articles__crosspost .username,
.articles__crosspost .theme-original .username, .theme-original .timestamp__time, .theme-original .user__username, .theme-original .user__reputation, .theme-original .articles__tag-link a, .articles__tag-link .theme-original a, .theme-original .articles__resteem-username, .theme-original .Notices__author-link, .theme-original .ReplyEditor .button.hollow.no-border, .ReplyEditor .theme-original .button.hollow.no-border, .theme-original .PostFull__header a, .PostFull__header .theme-original a, .theme-original .PlainLink {
  color: #788187;
}
.theme-light .link--secondary, .theme-light .articles__resteem .username, .articles__resteem .theme-light .username,
.theme-light .articles__crosspost .username,
.articles__crosspost .theme-light .username, .theme-light .timestamp__time, .theme-light .user__username, .theme-light .user__reputation, .theme-light .articles__tag-link a, .articles__tag-link .theme-light a, .theme-light .articles__resteem-username, .theme-light .Notices__author-link, .theme-light .ReplyEditor .button.hollow.no-border, .ReplyEditor .theme-light .button.hollow.no-border, .theme-light .PostFull__header a, .PostFull__header .theme-light a, .theme-light .PlainLink {
  color: #788187;
}
.theme-dark .link--secondary, .theme-dark .articles__resteem .username, .articles__resteem .theme-dark .username,
.theme-dark .articles__crosspost .username,
.articles__crosspost .theme-dark .username, .theme-dark .timestamp__time, .theme-dark .user__username, .theme-dark .user__reputation, .theme-dark .articles__tag-link a, .articles__tag-link .theme-dark a, .theme-dark .articles__resteem-username, .theme-dark .Notices__author-link, .theme-dark .ReplyEditor .button.hollow.no-border, .ReplyEditor .theme-dark .button.hollow.no-border, .theme-dark .PostFull__header a, .PostFull__header .theme-dark a, .theme-dark .PlainLink {
  color: #A6B2BA;
}
.theme-original .link--secondary:visited, .theme-original .articles__resteem .username:visited, .articles__resteem .theme-original .username:visited,
.theme-original .articles__crosspost .username:visited,
.articles__crosspost .theme-original .username:visited, .theme-original .timestamp__time:visited, .theme-original .user__username:visited, .theme-original .user__reputation:visited, .theme-original .articles__tag-link a:visited, .articles__tag-link .theme-original a:visited, .theme-original .articles__resteem-username:visited, .theme-original .Notices__author-link:visited, .theme-original .ReplyEditor .button.hollow.no-border:visited, .ReplyEditor .theme-original .button.hollow.no-border:visited, .theme-original .PostFull__header a:visited, .PostFull__header .theme-original a:visited, .theme-original .PlainLink:visited, .theme-original .link--secondary:active, .theme-original .articles__resteem .username:active, .articles__resteem .theme-original .username:active,
.theme-original .articles__crosspost .username:active,
.articles__crosspost .theme-original .username:active, .theme-original .timestamp__time:active, .theme-original .user__username:active, .theme-original .user__reputation:active, .theme-original .articles__tag-link a:active, .articles__tag-link .theme-original a:active, .theme-original .articles__resteem-username:active, .theme-original .Notices__author-link:active, .theme-original .ReplyEditor .button.hollow.no-border:active, .ReplyEditor .theme-original .button.hollow.no-border:active, .theme-original .PostFull__header a:active, .PostFull__header .theme-original a:active, .theme-original .PlainLink:active {
  color: #788187;
}
.theme-light .link--secondary:visited, .theme-light .articles__resteem .username:visited, .articles__resteem .theme-light .username:visited,
.theme-light .articles__crosspost .username:visited,
.articles__crosspost .theme-light .username:visited, .theme-light .timestamp__time:visited, .theme-light .user__username:visited, .theme-light .user__reputation:visited, .theme-light .articles__tag-link a:visited, .articles__tag-link .theme-light a:visited, .theme-light .articles__resteem-username:visited, .theme-light .Notices__author-link:visited, .theme-light .ReplyEditor .button.hollow.no-border:visited, .ReplyEditor .theme-light .button.hollow.no-border:visited, .theme-light .PostFull__header a:visited, .PostFull__header .theme-light a:visited, .theme-light .PlainLink:visited, .theme-light .link--secondary:active, .theme-light .articles__resteem .username:active, .articles__resteem .theme-light .username:active,
.theme-light .articles__crosspost .username:active,
.articles__crosspost .theme-light .username:active, .theme-light .timestamp__time:active, .theme-light .user__username:active, .theme-light .user__reputation:active, .theme-light .articles__tag-link a:active, .articles__tag-link .theme-light a:active, .theme-light .articles__resteem-username:active, .theme-light .Notices__author-link:active, .theme-light .ReplyEditor .button.hollow.no-border:active, .ReplyEditor .theme-light .button.hollow.no-border:active, .theme-light .PostFull__header a:active, .PostFull__header .theme-light a:active, .theme-light .PlainLink:active {
  color: #788187;
}
.theme-dark .link--secondary:visited, .theme-dark .articles__resteem .username:visited, .articles__resteem .theme-dark .username:visited,
.theme-dark .articles__crosspost .username:visited,
.articles__crosspost .theme-dark .username:visited, .theme-dark .timestamp__time:visited, .theme-dark .user__username:visited, .theme-dark .user__reputation:visited, .theme-dark .articles__tag-link a:visited, .articles__tag-link .theme-dark a:visited, .theme-dark .articles__resteem-username:visited, .theme-dark .Notices__author-link:visited, .theme-dark .ReplyEditor .button.hollow.no-border:visited, .ReplyEditor .theme-dark .button.hollow.no-border:visited, .theme-dark .PostFull__header a:visited, .PostFull__header .theme-dark a:visited, .theme-dark .PlainLink:visited, .theme-dark .link--secondary:active, .theme-dark .articles__resteem .username:active, .articles__resteem .theme-dark .username:active,
.theme-dark .articles__crosspost .username:active,
.articles__crosspost .theme-dark .username:active, .theme-dark .timestamp__time:active, .theme-dark .user__username:active, .theme-dark .user__reputation:active, .theme-dark .articles__tag-link a:active, .articles__tag-link .theme-dark a:active, .theme-dark .articles__resteem-username:active, .theme-dark .Notices__author-link:active, .theme-dark .ReplyEditor .button.hollow.no-border:active, .ReplyEditor .theme-dark .button.hollow.no-border:active, .theme-dark .PostFull__header a:active, .PostFull__header .theme-dark a:active, .theme-dark .PlainLink:active {
  color: #A6B2BA;
}
.theme-original .link--secondary:hover, .theme-original .articles__resteem .username:hover, .articles__resteem .theme-original .username:hover,
.theme-original .articles__crosspost .username:hover,
.articles__crosspost .theme-original .username:hover, .theme-original .timestamp__time:hover, .theme-original .user__username:hover, .theme-original .user__reputation:hover, .theme-original .articles__tag-link a:hover, .articles__tag-link .theme-original a:hover, .theme-original .articles__resteem-username:hover, .theme-original .Notices__author-link:hover, .theme-original .ReplyEditor .button.hollow.no-border:hover, .ReplyEditor .theme-original .button.hollow.no-border:hover, .theme-original .PostFull__header a:hover, .PostFull__header .theme-original a:hover, .theme-original .PlainLink:hover, .theme-original .link--secondary:focus, .theme-original .articles__resteem .username:focus, .articles__resteem .theme-original .username:focus,
.theme-original .articles__crosspost .username:focus,
.articles__crosspost .theme-original .username:focus, .theme-original .timestamp__time:focus, .theme-original .user__username:focus, .theme-original .user__reputation:focus, .theme-original .articles__tag-link a:focus, .articles__tag-link .theme-original a:focus, .theme-original .articles__resteem-username:focus, .theme-original .Notices__author-link:focus, .theme-original .ReplyEditor .button.hollow.no-border:focus, .ReplyEditor .theme-original .button.hollow.no-border:focus, .theme-original .PostFull__header a:focus, .PostFull__header .theme-original a:focus, .theme-original .PlainLink:focus {
  color: #004EFF;
}
.theme-light .link--secondary:hover, .theme-light .articles__resteem .username:hover, .articles__resteem .theme-light .username:hover,
.theme-light .articles__crosspost .username:hover,
.articles__crosspost .theme-light .username:hover, .theme-light .timestamp__time:hover, .theme-light .user__username:hover, .theme-light .user__reputation:hover, .theme-light .articles__tag-link a:hover, .articles__tag-link .theme-light a:hover, .theme-light .articles__resteem-username:hover, .theme-light .Notices__author-link:hover, .theme-light .ReplyEditor .button.hollow.no-border:hover, .ReplyEditor .theme-light .button.hollow.no-border:hover, .theme-light .PostFull__header a:hover, .PostFull__header .theme-light a:hover, .theme-light .PlainLink:hover, .theme-light .link--secondary:focus, .theme-light .articles__resteem .username:focus, .articles__resteem .theme-light .username:focus,
.theme-light .articles__crosspost .username:focus,
.articles__crosspost .theme-light .username:focus, .theme-light .timestamp__time:focus, .theme-light .user__username:focus, .theme-light .user__reputation:focus, .theme-light .articles__tag-link a:focus, .articles__tag-link .theme-light a:focus, .theme-light .articles__resteem-username:focus, .theme-light .Notices__author-link:focus, .theme-light .ReplyEditor .button.hollow.no-border:focus, .ReplyEditor .theme-light .button.hollow.no-border:focus, .theme-light .PostFull__header a:focus, .PostFull__header .theme-light a:focus, .theme-light .PlainLink:focus {
  color: #E31337;
}
.theme-dark .link--secondary:hover, .theme-dark .articles__resteem .username:hover, .articles__resteem .theme-dark .username:hover,
.theme-dark .articles__crosspost .username:hover,
.articles__crosspost .theme-dark .username:hover, .theme-dark .timestamp__time:hover, .theme-dark .user__username:hover, .theme-dark .user__reputation:hover, .theme-dark .articles__tag-link a:hover, .articles__tag-link .theme-dark a:hover, .theme-dark .articles__resteem-username:hover, .theme-dark .Notices__author-link:hover, .theme-dark .ReplyEditor .button.hollow.no-border:hover, .ReplyEditor .theme-dark .button.hollow.no-border:hover, .theme-dark .PostFull__header a:hover, .PostFull__header .theme-dark a:hover, .theme-dark .PlainLink:hover, .theme-dark .link--secondary:focus, .theme-dark .articles__resteem .username:focus, .articles__resteem .theme-dark .username:focus,
.theme-dark .articles__crosspost .username:focus,
.articles__crosspost .theme-dark .username:focus, .theme-dark .timestamp__time:focus, .theme-dark .user__username:focus, .theme-dark .user__reputation:focus, .theme-dark .articles__tag-link a:focus, .articles__tag-link .theme-dark a:focus, .theme-dark .articles__resteem-username:focus, .theme-dark .Notices__author-link:focus, .theme-dark .ReplyEditor .button.hollow.no-border:focus, .ReplyEditor .theme-dark .button.hollow.no-border:focus, .theme-dark .PostFull__header a:focus, .PostFull__header .theme-dark a:focus, .theme-dark .PlainLink:focus {
  color: #E31337;
}
.theme-original .link--accent, .theme-original .c-sidebar__more-link, .theme-original .PostFull__body a, .PostFull__body .theme-original a, .theme-original .Markdown a, .Markdown .theme-original a {
  color: #004EFF;
}
.theme-light .link--accent, .theme-light .c-sidebar__more-link, .theme-light .PostFull__body a, .PostFull__body .theme-light a, .theme-light .Markdown a, .Markdown .theme-light a {
  color: #E31337;
}
.theme-dark .link--accent, .theme-dark .c-sidebar__more-link, .theme-dark .PostFull__body a, .PostFull__body .theme-dark a, .theme-dark .Markdown a, .Markdown .theme-dark a {
  color: #E31337;
}
.theme-original .link--accent:visited, .theme-original .c-sidebar__more-link:visited, .theme-original .PostFull__body a:visited, .PostFull__body .theme-original a:visited, .theme-original .Markdown a:visited, .Markdown .theme-original a:visited, .theme-original .link--accent:active, .theme-original .c-sidebar__more-link:active, .theme-original .PostFull__body a:active, .PostFull__body .theme-original a:active, .theme-original .Markdown a:active, .Markdown .theme-original a:active {
  color: #004EFF;
}
.theme-light .link--accent:visited, .theme-light .c-sidebar__more-link:visited, .theme-light .PostFull__body a:visited, .PostFull__body .theme-light a:visited, .theme-light .Markdown a:visited, .Markdown .theme-light a:visited, .theme-light .link--accent:active, .theme-light .c-sidebar__more-link:active, .theme-light .PostFull__body a:active, .PostFull__body .theme-light a:active, .theme-light .Markdown a:active, .Markdown .theme-light a:active {
  color: #E31337;
}
.theme-dark .link--accent:visited, .theme-dark .c-sidebar__more-link:visited, .theme-dark .PostFull__body a:visited, .PostFull__body .theme-dark a:visited, .theme-dark .Markdown a:visited, .Markdown .theme-dark a:visited, .theme-dark .link--accent:active, .theme-dark .c-sidebar__more-link:active, .theme-dark .PostFull__body a:active, .PostFull__body .theme-dark a:active, .theme-dark .Markdown a:active, .Markdown .theme-dark a:active {
  color: #E31337;
}
.theme-original .link--accent:hover, .theme-original .c-sidebar__more-link:hover, .theme-original .PostFull__body a:hover, .PostFull__body .theme-original a:hover, .theme-original .Markdown a:hover, .Markdown .theme-original a:hover, .theme-original .link--accent:focus, .theme-original .c-sidebar__more-link:focus, .theme-original .PostFull__body a:focus, .PostFull__body .theme-original a:focus, .theme-original .Markdown a:focus, .Markdown .theme-original a:focus {
  color: #1A5099;
}
.theme-light .link--accent:hover, .theme-light .c-sidebar__more-link:hover, .theme-light .PostFull__body a:hover, .PostFull__body .theme-light a:hover, .theme-light .Markdown a:hover, .Markdown .theme-light a:hover, .theme-light .link--accent:focus, .theme-light .c-sidebar__more-link:focus, .theme-light .PostFull__body a:focus, .PostFull__body .theme-light a:focus, .theme-light .Markdown a:focus, .Markdown .theme-light a:focus {
  color: #E31337;
}
.theme-dark .link--accent:hover, .theme-dark .c-sidebar__more-link:hover, .theme-dark .PostFull__body a:hover, .PostFull__body .theme-dark a:hover, .theme-dark .Markdown a:hover, .Markdown .theme-dark a:hover, .theme-dark .link--accent:focus, .theme-dark .c-sidebar__more-link:focus, .theme-dark .PostFull__body a:focus, .PostFull__body .theme-dark a:focus, .theme-dark .Markdown a:focus, .Markdown .theme-dark a:focus {
  color: #e61336;
}

.e-btn-hollow {
  background-color: transparent;
  transition: 0.2s all ease-in-out;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.theme-original .e-btn-hollow {
  border: 1px solid #004EFF;
  color: #004EFF;
}
.theme-light .e-btn-hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.theme-dark .e-btn-hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.theme-original .e-btn-hollow:hover {
  border: 1px solid #788187;
  color: #333;
}
.theme-light .e-btn-hollow:hover {
  border: 1px solid #788187;
  color: #333;
}
.theme-dark .e-btn-hollow:hover {
  border: 1px solid #A6B2BA;
  color: #fcfcfc;
}

.e-btn, .UserWallet__claimbox .button, .Header__buttons > .Header__user-signup > a.Header__signup-link, .ReplyEditor .button, .PostFull__footer .PostFull__crosspost-footer .button, .reveal .button {
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: capitalize;
  border-radius: 0;
  text-decoration: none;
  font-size: 18px;
  font-size: 1.125rem;
}
.theme-original .e-btn, .theme-original .UserWallet__claimbox .button, .UserWallet__claimbox .theme-original .button, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link, .theme-original .ReplyEditor .button, .ReplyEditor .theme-original .button, .theme-original .PostFull__footer .PostFull__crosspost-footer .button, .PostFull__footer .PostFull__crosspost-footer .theme-original .button, .theme-original .reveal .button, .reveal .theme-original .button {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0px 0px transparent;
  color: #fcfcfc;
}
.theme-light .e-btn, .theme-light .UserWallet__claimbox .button, .UserWallet__claimbox .theme-light .button, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link, .theme-light .ReplyEditor .button, .ReplyEditor .theme-light .button, .theme-light .PostFull__footer .PostFull__crosspost-footer .button, .PostFull__footer .PostFull__crosspost-footer .theme-light .button, .theme-light .reveal .button, .reveal .theme-light .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0px 0px #E31337;
  color: #fcfcfc;
}
.theme-dark .e-btn, .theme-dark .UserWallet__claimbox .button, .UserWallet__claimbox .theme-dark .button, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link, .theme-dark .ReplyEditor .button, .ReplyEditor .theme-dark .button, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button, .theme-dark .reveal .button, .reveal .theme-dark .button {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0px 0px #E31337;
  color: #2C3A45;
}
.theme-original .e-btn:hover, .theme-original .UserWallet__claimbox .button:hover, .UserWallet__claimbox .theme-original .button:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:hover, .theme-original .ReplyEditor .button:hover, .ReplyEditor .theme-original .button:hover, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:hover, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:hover, .theme-original .reveal .button:hover, .reveal .theme-original .button:hover, .theme-original .e-btn:focus, .theme-original .UserWallet__claimbox .button:focus, .UserWallet__claimbox .theme-original .button:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:focus, .theme-original .ReplyEditor .button:focus, .ReplyEditor .theme-original .button:focus, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:focus, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:focus, .theme-original .reveal .button:focus, .reveal .theme-original .button:focus {
  background-color: #4BA2F2;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0;
  color: #fcfcfc;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-light .e-btn:hover, .theme-light .UserWallet__claimbox .button:hover, .UserWallet__claimbox .theme-light .button:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:hover, .theme-light .ReplyEditor .button:hover, .ReplyEditor .theme-light .button:hover, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:hover, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:hover, .theme-light .reveal .button:hover, .reveal .theme-light .button:hover, .theme-light .e-btn:focus, .theme-light .UserWallet__claimbox .button:focus, .UserWallet__claimbox .theme-light .button:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:focus, .theme-light .ReplyEditor .button:focus, .ReplyEditor .theme-light .button:focus, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:focus, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:focus, .theme-light .reveal .button:focus, .reveal .theme-light .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0 #212529;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-dark .e-btn:hover, .theme-dark .UserWallet__claimbox .button:hover, .UserWallet__claimbox .theme-dark .button:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:hover, .theme-dark .ReplyEditor .button:hover, .ReplyEditor .theme-dark .button:hover, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:hover, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:hover, .theme-dark .reveal .button:hover, .reveal .theme-dark .button:hover, .theme-dark .e-btn:focus, .theme-dark .UserWallet__claimbox .button:focus, .UserWallet__claimbox .theme-dark .button:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:focus, .theme-dark .ReplyEditor .button:focus, .ReplyEditor .theme-dark .button:focus, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:focus, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:focus, .theme-dark .reveal .button:focus, .reveal .theme-dark .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0 #fff;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0);
}
.theme-original .e-btn:visited, .theme-original .UserWallet__claimbox .button:visited, .UserWallet__claimbox .theme-original .button:visited, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:visited, .theme-original .ReplyEditor .button:visited, .ReplyEditor .theme-original .button:visited, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:visited, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:visited, .theme-original .reveal .button:visited, .reveal .theme-original .button:visited, .theme-original .e-btn:active, .theme-original .UserWallet__claimbox .button:active, .UserWallet__claimbox .theme-original .button:active, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:active, .theme-original .ReplyEditor .button:active, .ReplyEditor .theme-original .button:active, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:active, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:active, .theme-original .reveal .button:active, .reveal .theme-original .button:active {
  color: #fcfcfc;
}
.theme-light .e-btn:visited, .theme-light .UserWallet__claimbox .button:visited, .UserWallet__claimbox .theme-light .button:visited, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:visited, .theme-light .ReplyEditor .button:visited, .ReplyEditor .theme-light .button:visited, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:visited, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:visited, .theme-light .reveal .button:visited, .reveal .theme-light .button:visited, .theme-light .e-btn:active, .theme-light .UserWallet__claimbox .button:active, .UserWallet__claimbox .theme-light .button:active, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:active, .theme-light .ReplyEditor .button:active, .ReplyEditor .theme-light .button:active, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:active, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:active, .theme-light .reveal .button:active, .reveal .theme-light .button:active {
  color: #fcfcfc;
}
.theme-dark .e-btn:visited, .theme-dark .UserWallet__claimbox .button:visited, .UserWallet__claimbox .theme-dark .button:visited, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:visited, .theme-dark .ReplyEditor .button:visited, .ReplyEditor .theme-dark .button:visited, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:visited, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:visited, .theme-dark .reveal .button:visited, .reveal .theme-dark .button:visited, .theme-dark .e-btn:active, .theme-dark .UserWallet__claimbox .button:active, .UserWallet__claimbox .theme-dark .button:active, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:active, .theme-dark .ReplyEditor .button:active, .ReplyEditor .theme-dark .button:active, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:active, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:active, .theme-dark .reveal .button:active, .reveal .theme-dark .button:active {
  color: #2C3A45;
}
.theme-original .e-btn:visited:hover, .theme-original .UserWallet__claimbox .button:visited:hover, .UserWallet__claimbox .theme-original .button:visited:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:hover, .theme-original .ReplyEditor .button:visited:hover, .ReplyEditor .theme-original .button:visited:hover, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:visited:hover, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:visited:hover, .theme-original .reveal .button:visited:hover, .reveal .theme-original .button:visited:hover, .theme-original .e-btn:visited:focus, .theme-original .UserWallet__claimbox .button:visited:focus, .UserWallet__claimbox .theme-original .button:visited:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:focus, .theme-original .ReplyEditor .button:visited:focus, .ReplyEditor .theme-original .button:visited:focus, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:visited:focus, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:visited:focus, .theme-original .reveal .button:visited:focus, .reveal .theme-original .button:visited:focus, .theme-original .e-btn:active:hover, .theme-original .UserWallet__claimbox .button:active:hover, .UserWallet__claimbox .theme-original .button:active:hover, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:active:hover, .theme-original .ReplyEditor .button:active:hover, .ReplyEditor .theme-original .button:active:hover, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:active:hover, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:active:hover, .theme-original .reveal .button:active:hover, .reveal .theme-original .button:active:hover, .theme-original .e-btn:active:focus, .theme-original .UserWallet__claimbox .button:active:focus, .UserWallet__claimbox .theme-original .button:active:focus, .theme-original .Header__buttons > .Header__user-signup > a.Header__signup-link:active:focus, .theme-original .ReplyEditor .button:active:focus, .ReplyEditor .theme-original .button:active:focus, .theme-original .PostFull__footer .PostFull__crosspost-footer .button:active:focus, .PostFull__footer .PostFull__crosspost-footer .theme-original .button:active:focus, .theme-original .reveal .button:active:focus, .reveal .theme-original .button:active:focus {
  color: #fcfcfc;
}
.theme-light .e-btn:visited:hover, .theme-light .UserWallet__claimbox .button:visited:hover, .UserWallet__claimbox .theme-light .button:visited:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:hover, .theme-light .ReplyEditor .button:visited:hover, .ReplyEditor .theme-light .button:visited:hover, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:visited:hover, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:visited:hover, .theme-light .reveal .button:visited:hover, .reveal .theme-light .button:visited:hover, .theme-light .e-btn:visited:focus, .theme-light .UserWallet__claimbox .button:visited:focus, .UserWallet__claimbox .theme-light .button:visited:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:focus, .theme-light .ReplyEditor .button:visited:focus, .ReplyEditor .theme-light .button:visited:focus, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:visited:focus, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:visited:focus, .theme-light .reveal .button:visited:focus, .reveal .theme-light .button:visited:focus, .theme-light .e-btn:active:hover, .theme-light .UserWallet__claimbox .button:active:hover, .UserWallet__claimbox .theme-light .button:active:hover, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:active:hover, .theme-light .ReplyEditor .button:active:hover, .ReplyEditor .theme-light .button:active:hover, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:active:hover, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:active:hover, .theme-light .reveal .button:active:hover, .reveal .theme-light .button:active:hover, .theme-light .e-btn:active:focus, .theme-light .UserWallet__claimbox .button:active:focus, .UserWallet__claimbox .theme-light .button:active:focus, .theme-light .Header__buttons > .Header__user-signup > a.Header__signup-link:active:focus, .theme-light .ReplyEditor .button:active:focus, .ReplyEditor .theme-light .button:active:focus, .theme-light .PostFull__footer .PostFull__crosspost-footer .button:active:focus, .PostFull__footer .PostFull__crosspost-footer .theme-light .button:active:focus, .theme-light .reveal .button:active:focus, .reveal .theme-light .button:active:focus {
  color: #fff;
}
.theme-dark .e-btn:visited:hover, .theme-dark .UserWallet__claimbox .button:visited:hover, .UserWallet__claimbox .theme-dark .button:visited:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:hover, .theme-dark .ReplyEditor .button:visited:hover, .ReplyEditor .theme-dark .button:visited:hover, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:visited:hover, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:visited:hover, .theme-dark .reveal .button:visited:hover, .reveal .theme-dark .button:visited:hover, .theme-dark .e-btn:visited:focus, .theme-dark .UserWallet__claimbox .button:visited:focus, .UserWallet__claimbox .theme-dark .button:visited:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:visited:focus, .theme-dark .ReplyEditor .button:visited:focus, .ReplyEditor .theme-dark .button:visited:focus, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:visited:focus, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:visited:focus, .theme-dark .reveal .button:visited:focus, .reveal .theme-dark .button:visited:focus, .theme-dark .e-btn:active:hover, .theme-dark .UserWallet__claimbox .button:active:hover, .UserWallet__claimbox .theme-dark .button:active:hover, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:active:hover, .theme-dark .ReplyEditor .button:active:hover, .ReplyEditor .theme-dark .button:active:hover, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:active:hover, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:active:hover, .theme-dark .reveal .button:active:hover, .reveal .theme-dark .button:active:hover, .theme-dark .e-btn:active:focus, .theme-dark .UserWallet__claimbox .button:active:focus, .UserWallet__claimbox .theme-dark .button:active:focus, .theme-dark .Header__buttons > .Header__user-signup > a.Header__signup-link:active:focus, .theme-dark .ReplyEditor .button:active:focus, .ReplyEditor .theme-dark .button:active:focus, .theme-dark .PostFull__footer .PostFull__crosspost-footer .button:active:focus, .PostFull__footer .PostFull__crosspost-footer .theme-dark .button:active:focus, .theme-dark .reveal .button:active:focus, .reveal .theme-dark .button:active:focus {
  color: #fff;
}

.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.theme-original .button.disabled, .theme-original .button[disabled] {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-light .button.disabled, .theme-light .button[disabled] {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-dark .button.disabled, .theme-dark .button[disabled] {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
}
.theme-original .button.disabled:hover, .theme-original .button[disabled]:hover {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-light .button.disabled:hover, .theme-light .button[disabled]:hover {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-dark .button.disabled:hover, .theme-dark .button[disabled]:hover {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
}

.e-btn--black, .PostFull__footer .PostFull__crosspost-footer .button, .reveal .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fff;
}
.e-btn--black:hover, .PostFull__footer .PostFull__crosspost-footer .button:hover, .reveal .button:hover, .e-btn--black:focus, .PostFull__footer .PostFull__crosspost-footer .button:focus, .reveal .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #212529;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.e-btn--black:visited, .PostFull__footer .PostFull__crosspost-footer .button:visited, .reveal .button:visited, .e-btn--black:active, .PostFull__footer .PostFull__crosspost-footer .button:active, .reveal .button:active {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fff;
}
.e-btn--black.disabled, .PostFull__footer .PostFull__crosspost-footer .disabled.button, .reveal .disabled.button, .e-btn--black[disabled], .PostFull__footer .PostFull__crosspost-footer [disabled].button, .reveal [disabled].button {
  opacity: 0.25;
  cursor: not-allowed;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.e-btn--black.disabled:hover, .PostFull__footer .PostFull__crosspost-footer .disabled.button:hover, .reveal .disabled.button:hover, .e-btn--black.disabled:focus, .PostFull__footer .PostFull__crosspost-footer .disabled.button:focus, .reveal .disabled.button:focus, .e-btn--black[disabled]:hover, .PostFull__footer .PostFull__crosspost-footer [disabled].button:hover, .reveal [disabled].button:hover, .e-btn--black[disabled]:focus, .PostFull__footer .PostFull__crosspost-footer [disabled].button:focus, .reveal [disabled].button:focus {
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  background-color: #212529;
  color: #fff;
}
.e-btn--black.hollow, .PostFull__footer .PostFull__crosspost-footer .hollow.button, .reveal .hollow.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #788187;
  font-weight: normal;
  transition: 0.2s all ease-in-out;
  border: transparent;
}
.e-btn--black.hollow:hover, .PostFull__footer .PostFull__crosspost-footer .hollow.button:hover, .reveal .hollow.button:hover, .e-btn--black.hollow:focus, .PostFull__footer .PostFull__crosspost-footer .hollow.button:focus, .reveal .hollow.button:focus {
  background-color: transparent;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
  font-weight: normal;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0);
}
.e-btn--black.hollow:visited, .PostFull__footer .PostFull__crosspost-footer .hollow.button:visited, .reveal .hollow.button:visited, .e-btn--black.hollow:active, .PostFull__footer .PostFull__crosspost-footer .hollow.button:active, .reveal .hollow.button:active {
  background-color: transparent;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #788187;
  font-weight: normal;
}

.theme-dark .button.hollow:hover, .theme-dark .button.hollow:focus,
.theme-light .button.hollow:hover,
.theme-light .button.hollow:focus {
  border-color: #E31337;
  color: #E31337;
  outline-color: #E31337;
}

.menu > li > a {
  line-height: 1.5rem;
}

.tooltip {
  margin-top: -1rem;
}

.dropdown-pane {
  width: auto;
  padding: 0;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
  z-index: 1000;
  font-size: inherit;
  background-color: #fff;
}
.dropdown-pane .VerticalMenu a:hover {
  background-color: #f6f6f6;
  color: #d81233;
}

a {
  transition: 0.2s all ease-in-out;
}
.theme-original a {
  color: #004EFF;
}
.theme-light a {
  color: #E31337;
}
.theme-dark a {
  color: #E31337;
}
.theme-original a:hover, .theme-original a:focus {
  color: #1A5099;
}
.theme-light a:hover, .theme-light a:focus {
  color: #E31337;
}
.theme-dark a:hover, .theme-dark a:focus {
  color: #e61336;
}

div[role=dialog] {
  z-index: 500;
}

input[type=submit].disabled, input[type=submit].disabled:focus {
  opacity: 1;
  cursor: inherit;
  background-color: #cacaca;
}

button, .button {
  text-transform: uppercase;
}

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

.callout {
  margin-top: 1rem;
}
.theme-original .callout {
  color: #333;
  background-color: #f3faf0;
  border: 1px solid #eee;
}
.theme-light .callout {
  color: #333;
  background-color: #f3faf0;
  border: 1px solid #eee;
}
.theme-dark .callout {
  color: #fcfcfc;
  background-color: #11161A;
  border: 1px solid #2c3136;
}
.theme-original .callout.alert {
  color: #333;
  background-color: #ffa6a6;
  border: 1px solid #eee;
}
.theme-light .callout.alert {
  color: #333;
  background-color: #ffa6a6;
  border: 1px solid #eee;
}
.theme-dark .callout.alert {
  color: #fcfcfc;
  background-color: #ffa6a6;
  border: 1px solid #2c3136;
}

.close-button {
  position: absolute;
  z-index: 999;
  cursor: pointer;
  transition: color 0.2s ease-in-out;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}
.theme-original .close-button {
  color: #788187;
}
.theme-light .close-button {
  color: #788187;
}
.theme-dark .close-button {
  color: #A6B2BA;
}
.theme-original .close-button:hover, .theme-original .close-button:focus {
  color: #004EFF;
}
.theme-light .close-button:hover, .theme-light .close-button:focus {
  color: #E31337;
}
.theme-dark .close-button:hover, .theme-dark .close-button:focus {
  color: #E31337;
}

.theme-original hr {
  border-bottom: 1px solid #eee;
}
.theme-light hr {
  border-bottom: 1px solid #eee;
}
.theme-dark hr {
  border-bottom: 1px solid #2c3136;
}

table {
  box-shadow: inset 0 0 0 -1px red;
}

.theme-original thead, .theme-original tbody, .theme-original tfoot {
  background-color: #f8f8ff;
}
.theme-light thead, .theme-light tbody, .theme-light tfoot {
  background-color: #f4f4fd;
}
.theme-dark thead, .theme-dark tbody, .theme-dark tfoot {
  background-color: #212529;
}

.theme-original thead {
  background-color: #f4f4f4;
  color: #333;
}
.theme-light thead {
  background-color: #f4f4f4;
  color: #333;
}
.theme-dark thead {
  background-color: #212C33;
  color: #fcfcfc;
}

.theme-original tbody tr:nth-child(even) {
  background-color: #f4f4f4;
}
.theme-light tbody tr:nth-child(even) {
  background-color: #f4f4f4;
}
.theme-dark tbody tr:nth-child(even) {
  background-color: #212C33;
}

.reveal-overlay {
  background-color: rgba(0, 0, 0, 0.88);
  transition: 0.2s all ease-in-out;
}

.reveal {
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #E31337;
  border-radius: 0 30px;
  border: transparent;
  transition: 0.2s all ease-in-out;
  outline: none;
}
.theme-original .reveal {
  background-color: #fafaff;
  color: #333;
}
.theme-light .reveal {
  background-color: #fff;
  color: #333;
}
.theme-dark .reveal {
  background-color: #212529;
  color: #fcfcfc;
}
.theme-original .reveal label {
  color: #333;
}
.theme-light .reveal label {
  color: #333;
}
.theme-dark .reveal label {
  color: #fcfcfc;
}
.reveal .button {
  min-width: 100px;
}
.reveal h4 {
  font-weight: bold;
}

.progress {
  border: none;
  width: 100%;
  height: 8px;
  border-radius: 3px;
  background-color: #eee;
}
.progress div {
  background-color: #E31337;
  border-radius: 3px;
  border: none;
  height: 8px;
}

.fade-in {
  opacity: 0;
  filter: alpha(opacity=0);
}
.fade-in--1 {
  -webkit-animation: fade-in 1s ease-in-out 0.03s both;
          animation: fade-in 1s ease-in-out 0.03s both;
}
.fade-in--2 {
  -webkit-animation: fade-in 1s ease-in-out 0.06s both;
          animation: fade-in 1s ease-in-out 0.06s both;
}
.fade-in--3 {
  -webkit-animation: fade-in 1s ease-in-out 0.09s both;
          animation: fade-in 1s ease-in-out 0.09s both;
}
.fade-in--4 {
  -webkit-animation: fade-in 1s ease-in-out 0.12s both;
          animation: fade-in 1s ease-in-out 0.12s both;
}
.fade-in--5 {
  -webkit-animation: fade-in 1s ease-in-out 0.15s both;
          animation: fade-in 1s ease-in-out 0.15s both;
}
.fade-in--6 {
  -webkit-animation: fade-in 1s ease-in-out 0.18s both;
          animation: fade-in 1s ease-in-out 0.18s both;
}
.fade-in--7 {
  -webkit-animation: fade-in 1s ease-in-out 0.21s both;
          animation: fade-in 1s ease-in-out 0.21s both;
}
.fade-in--8 {
  -webkit-animation: fade-in 1s ease-in-out 0.24s both;
          animation: fade-in 1s ease-in-out 0.24s both;
}
.fade-in--9 {
  -webkit-animation: fade-in 1s ease-in-out 0.27s both;
          animation: fade-in 1s ease-in-out 0.27s both;
}
.fade-in--10 {
  -webkit-animation: fade-in 1s ease-in-out 0.3s both;
          animation: fade-in 1s ease-in-out 0.3s both;
}

@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}
@-webkit-keyframes fade-in-up {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
    transform: translate(-24px, 24px);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
    transform: translate(0px, 0px);
  }
}
@keyframes fade-in-up {
  0% {
    opacity: 0;
    filter: alpha(opacity=0);
    transform: translate(-24px, 24px);
  }
  100% {
    opacity: 1;
    filter: alpha(opacity=100);
    transform: translate(0px, 0px);
  }
}
form .error input, form .error input:active, form .error input:focus {
  border-color: #ff0264;
}
form .error label, form .error .help-text {
  color: #ff0264;
}
form .error .help-text {
  margin-top: 0.4rem;
}
form .success {
  color: #3adb76;
  transition: 0.3s all ease-in-out;
}

button {
  margin-right: 15px !important;
}

input, textarea, select {
  margin-bottom: 0px !important;
}

.error {
  color: #ff0264;
  margin-bottom: 10px;
  transition: 0.3s all ease-in-out;
}

p.error {
  padding-top: 6px;
  line-height: 1.1;
}

.warning {
  color: darkgoldenrod;
  margin-bottom: 10px;
  transition: 0.3s all ease-in-out;
}

.darkred {
  color: darkred;
  margin-bottom: 10px;
}

.info {
  color: dimgrey;
  margin-bottom: 10px;
}

.hoverBackground:hover {
  background-color: antiquewhite;
}

.de-emphasize {
  color: #8a8a8a;
}

.overflow-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
}

.darkbtn {
  padding: 12px;
  background-color: #eeeeee;
}

.theme-original label {
  color: #333;
}
.theme-light label {
  color: #333;
}
.theme-dark label {
  color: #fcfcfc;
}

.Markdown {
  font-family: "Source Serif Pro", serif;
  font-size: 120%;
  line-height: 150%;
}

.Markdown.MarkdownViewer--small {
  font-family: inherit;
  font-size: 110%;
}
.Markdown.MarkdownViewer--small img {
  max-width: 400px;
  max-height: 400px;
}
.Markdown.MarkdownViewer--small div.videoWrapper {
  max-width: 480px;
  padding-bottom: 270px;
}

.Markdown {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.Markdown h1, .Markdown h2, .Markdown h3, .Markdown h4, .Markdown h5, .Markdown h6 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600;
}
.Markdown h1 {
  margin: 2.5rem 0 0.3rem;
  font-size: 160%;
}
.Markdown h2 {
  margin: 2.5rem 0 0.3rem;
  font-size: 140%;
}
.Markdown h3 {
  margin: 2rem 0 0.3rem;
  font-size: 120%;
}
.Markdown h4 {
  margin: 1.5rem 0 0.2rem;
  font-size: 110%;
}
.Markdown h5 {
  margin: 1rem 0 0.2rem;
  font-size: 100%;
}
.Markdown h6 {
  margin: 1rem 0 0.2rem;
  font-size: 90%;
}
.Markdown code {
  padding: 0.2rem;
  font-size: 85%;
  border-radius: 3px;
  border: none;
  background-color: #F4F4F4;
  font-weight: inherit;
  overflow: scroll;
}
.Markdown pre > code {
  display: block;
}
.Markdown strong {
  font-weight: 600;
}
.Markdown ol, .Markdown ul {
  margin-left: 2rem;
}
.Markdown table td {
  word-break: normal;
}
.Markdown table thead th {
  word-break: normal;
}
.Markdown p {
  font-size: 100%;
  line-height: 150%;
  margin: 0 0 1.5rem 0;
}
.Markdown img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: none;
  margin-bottom: 10px;
}
.Markdown iframe {
  max-width: 100%;
  max-height: 75vw;
}
.Markdown iframe.truvvl-iframe {
  max-height: initial;
}
.Markdown .tweetWrapper iframe {
  max-height: inherit;
}
.Markdown div.pull-right {
  float: right;
  padding-left: 1rem;
  max-width: 50%;
}
.Markdown div.pull-left {
  float: left;
  padding-right: 1rem;
  max-width: 50%;
}
.Markdown div.text-justify {
  text-align: justify;
}
.Markdown div.text-right {
  text-align: right;
}
.Markdown div.text-center {
  text-align: center;
}
.Markdown div.text-rtl {
  direction: rtl;
}
.Markdown div.videoWrapper {
  position: relative;
  text-align: center;
}
.Markdown div.videoWrapper iframe {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.Markdown div.videoWrapper blockquote {
  border-left: none;
}
.Markdown div.iframeWrapper blockquote {
  border-left: none;
}
.Markdown div.tweetWrapper {
  padding-bottom: 0;
}
.Markdown div.tweetWrapper blockquote {
  border-left: none;
}
.theme-original .Markdown blockquote {
  border-left: 1px solid #788187;
}
.theme-light .Markdown blockquote {
  border-left: 1px solid #788187;
}
.theme-dark .Markdown blockquote {
  border-left: 1px solid #A6B2BA;
}
.theme-original .Markdown blockquote > p {
  color: #788187;
}
.theme-light .Markdown blockquote > p {
  color: #788187;
}
.theme-dark .Markdown blockquote > p {
  color: #A6B2BA;
}

.App {
  min-height: 100vh;
  padding-top: 0px;
}

.App__content {
  margin-top: 1rem;
}

.welcomeWrapper {
  padding-bottom: 1rem;
}

.RightMenu {
  background-color: #555;
  height: 100vh;
  color: #fff;
  padding-top: 3rem;
}
.RightMenu .close-button {
  color: #fff;
}
.RightMenu .menu > li > a {
  color: #fff;
  border-top: 1px solid #777;
}
.RightMenu .menu > li > a:hover {
  background-color: #666;
}
.RightMenu .menu > li.last {
  border-bottom: 1px solid #777;
}
.RightMenu .button.hollow {
  color: #fff;
  border: none;
}

.theme-original .text-muted {
  color: #788187;
}
.theme-original .text-muted svg {
  fill: #788187;
  opacity: 0.7;
}
.theme-light .text-muted {
  color: #788187;
}
.theme-light .text-muted svg {
  fill: #788187;
  opacity: 0.7;
}
.theme-dark .text-muted {
  color: #A6B2BA;
}
.theme-dark .text-muted svg {
  fill: #A6B2BA;
  opacity: 0.7;
}

.welcomeBanner {
  margin-top: -1rem;
  padding: 0;
  background-color: #212529;
  color: #fff;
  position: relative;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}
.welcomeBanner h2 {
  font-weight: bold;
  margin-bottom: 16px;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  opacity: 0;
  filter: alpha(opacity=0);
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner h2 {
    font-size: 34px;
    font-size: 2.125rem;
    max-width: 280px;
  }
}
.welcomeBanner h4 {
  color: #fff;
  font-weight: normal;
  margin-bottom: 1rem;
  width: 85%;
  max-width: 360px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.3 !important;
  font-size: 16px;
  font-size: 1rem;
  opacity: 0;
  filter: alpha(opacity=0);
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner h4 {
    font-size: 17px;
    font-size: 1.0625rem;
  }
}
.welcomeBanner .row {
  align-items: center;
}
.welcomeBanner .button {
  min-width: 120px;
  white-space: nowrap;
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: initial;
  border-radius: 0;
  background-color: #fff;
  color: #212529;
  border: none;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 2px 2px 0 0 #E31337;
  padding: 16px;
  margin-right: 18px;
  font-size: 16px;
  font-size: 1rem;
  cursor: pointer;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.welcomeBanner .button:hover, .welcomeBanner .button:focus {
  background-color: #E31337;
  color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0.1), 4px 4px 0 0 #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner .button {
    font-size: 18px;
    font-size: 1.125rem;
    min-width: 132px;
  }
}
.welcomeBanner .button--primary {
  opacity: 0;
  filter: alpha(opacity=0);
}
.welcomeBanner .close-button {
  top: 0.8rem;
  right: 0;
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner .close-button {
    top: 0.5rem;
  }
}
.welcomeBanner .button.ghost {
  background: transparent;
  color: #fff;
  border: 1px solid #30414A;
  box-shadow: 0px 0px 0px 0 #30414A, 2px 2px 0 0 #30414A;
  opacity: 0;
  filter: alpha(opacity=0);
}
.welcomeBanner .button.ghost:hover, .welcomeBanner .button.ghost:focus {
  box-shadow: 0px 0px 0px 0 #30414A, 4px 4px 0 0 #E31337;
}
.welcomeBanner .heroImage {
  max-height: 360px;
  opacity: 0;
  filter: alpha(opacity=0);
  -webkit-animation: fade-in-up 0.6s ease-out both;
          animation: fade-in-up 0.6s ease-out both;
}
@media screen and (prefers-reduced-motion) {
  .welcomeBanner .heroImage {
    -webkit-animation: none;
            animation: none;
    opacity: 1;
    filter: alpha(opacity=100);
  }
}
.welcomeBanner .welcomeImage {
  padding: 1em 0;
}
@media only screen and (min-width: 75em) {
  .welcomeBanner .welcomeImage {
    padding: 2em 0;
  }
}
.welcomeBanner .welcomePitch {
  padding: 20px;
}
@media only screen and (min-width: 47.5em) {
  .welcomeBanner .welcomePitch {
    padding: 0;
  }
}

.downvoted {
  opacity: 0.5;
  transition: 0.2s all ease-in-out;
  color: #848282;
}
.theme-original .downvoted {
  color: #333;
}
.theme-light .downvoted {
  color: #333;
}
.theme-dark .downvoted {
  color: #fcfcfc;
}
.downvoted .Comment__header-user {
  color: #848282;
}
.theme-original .downvoted .Comment__header-user {
  color: #333;
}
.theme-light .downvoted .Comment__header-user {
  color: #333;
}
.theme-dark .downvoted .Comment__header-user {
  color: #fcfcfc;
}

.downvoted:hover {
  opacity: 1;
  filter: none;
  -webkit-filter: none;
}

.App__announcement {
  padding-right: 40px;
  padding-top: 40px;
}
.App__announcement .close-button {
  right: 0;
}

.theme-original .beta-disclaimer {
  padding: 8px 24px;
  font-size: 0.8em;
  color: #333;
  background: repeating-linear-gradient(45deg, #f8f8ff, #f8f8ff 10px, #fff 10px, #fff 20px);
}
.theme-light .beta-disclaimer {
  padding: 8px 24px;
  font-size: 0.8em;
  color: #333;
  background: repeating-linear-gradient(45deg, #f4f4fd, #f4f4fd 10px, #fff 10px, #fff 20px);
}
.theme-dark .beta-disclaimer {
  padding: 8px 24px;
  font-size: 0.8em;
  color: #fcfcfc;
  background: repeating-linear-gradient(45deg, #212529, #212529 10px, #2c3136 10px, #2c3136 20px);
}

.react-tooltip-lite {
  background: #333;
  color: white;
}

.react-tooltip-lite-arrow {
  border-color: #333;
}

.BeneficiarySelector__percentbox {
  min-width: 2.2rem;
  max-width: 2.6rem;
}

.BeneficiarySelector__percentrow {
  padding-top: 5px;
  padding-left: 2px;
}

.BeneficiarySelector .input-group {
  margin-bottom: 1.25rem;
}

.react-autocomplete-input {
  overflow-y: scroll;
  max-height: 16em;
  background-clip: padding-box;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.15);
  bottom: auto;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  display: block;
  font-size: 14px;
  list-style: none;
  padding: 1px;
  position: absolute;
  text-align: left;
  z-index: 20000;
}

.react-autocomplete-input > div {
  cursor: pointer;
  padding: 10px;
  min-width: 100px;
}

.react-autocomplete-input > .active {
  background-color: #06D6A9;
  color: #333;
}
.theme-original .react-autocomplete-input > .active {
  color: theme("textColorPrimary");
  background-color: #1A5099;
}
.theme-light .react-autocomplete-input > .active {
  color: theme("textColorPrimary");
  background-color: #E31337;
}
.theme-dark .react-autocomplete-input > .active {
  color: theme("textColorPrimary");
  background-color: #e61336;
}

.Comment {
  position: relative;
  clear: both;
  margin-bottom: 1.2rem;
}
.Comment .Markdown p {
  margin: 0.1rem 0 0.6rem 0;
}
.Comment .Markdown p:last-child {
  margin-bottom: 0.2rem;
}
.Comment .ReplyEditor .column.large-6, .Comment .ReplyEditor .large-6.columns {
  max-width: 100%;
  flex: 0 0 100%;
}
.Comment .ReplyEditor .side-by-side {
  height: auto;
}

.Comment__Userpic {
  float: left;
  position: relative;
  top: 0.4rem;
  padding-right: 0.6rem;
}
@media only screen and (min-width: 47.5em) {
  .Comment__Userpic {
    top: 0.2rem;
  }
}
.Comment__Userpic .Userpic {
  margin-left: 7px;
}

@media print, screen and (min-width: 40em) {
  .Comment__Userpic-small {
    display: none !important;
  }
}
.Comment__Userpic-small .Userpic {
  float: left;
  position: relative;
  top: 3px;
  margin-right: 0.2rem;
  width: 16px !important;
  height: 16px !important;
}

.Comment .highlighted {
  padding: 14px;
}
.theme-original .Comment .highlighted {
  border: 1px solid #004EFF;
  background-color: #f3faf0;
}
.theme-light .Comment .highlighted {
  border: 1px solid #E31337;
  background-color: #f3faf0;
}
.theme-dark .Comment .highlighted {
  border: 1px solid #E31337;
  background-color: #11161A;
}

.Comment.collapsed .Comment__block > .Comment__Userpic,
.Comment .Comment__block.downvoted:not(.revealed) > .Comment__Userpic {
  top: 0;
  left: 26px;
}
.Comment.collapsed .Comment__block > .Comment__Userpic .Userpic,
.Comment .Comment__block.downvoted:not(.revealed) > .Comment__Userpic .Userpic {
  width: 24px !important;
  height: 24px !important;
}
.Comment.collapsed .Comment__block .Comment__header .Voting,
.Comment .Comment__block.downvoted:not(.revealed) .Comment__header .Voting {
  margin-left: 1rem;
  border-right: none;
}
.theme-original .Comment.collapsed .Comment__block .Comment__header a,
.theme-original .Comment .Comment__block.downvoted:not(.revealed) .Comment__header a {
  color: #788187;
}
.theme-light .Comment.collapsed .Comment__block .Comment__header a,
.theme-light .Comment .Comment__block.downvoted:not(.revealed) .Comment__header a {
  color: #788187;
}
.theme-dark .Comment.collapsed .Comment__block .Comment__header a,
.theme-dark .Comment .Comment__block.downvoted:not(.revealed) .Comment__header a {
  color: #A6B2BA;
}
.theme-original .Comment.collapsed .Comment__block .Comment__body,
.theme-original .Comment .Comment__block.downvoted:not(.revealed) .Comment__body {
  padding: 0;
  border: none;
}
.theme-light .Comment.collapsed .Comment__block .Comment__body,
.theme-light .Comment .Comment__block.downvoted:not(.revealed) .Comment__body {
  padding: 0;
  border: none;
}
.theme-dark .Comment.collapsed .Comment__block .Comment__body,
.theme-dark .Comment .Comment__block.downvoted:not(.revealed) .Comment__body {
  padding: 0;
  border: none;
}
.theme-original .Comment.collapsed .Comment__block .Comment__footer,
.theme-original .Comment .Comment__block.downvoted:not(.revealed) .Comment__footer {
  padding: 0;
  border: none;
}
.theme-light .Comment.collapsed .Comment__block .Comment__footer,
.theme-light .Comment .Comment__block.downvoted:not(.revealed) .Comment__footer {
  padding: 0;
  border: none;
}
.theme-dark .Comment.collapsed .Comment__block .Comment__footer,
.theme-dark .Comment .Comment__block.downvoted:not(.revealed) .Comment__footer {
  padding: 0;
  border: none;
}

.theme-original .Comment__header {
  margin-left: 62px;
  border-radius: 5px 5px 0 0;
  border: 1px solid #eee;
  background: #fff;
  padding: 3px 5px;
}
.theme-light .Comment__header {
  margin-left: 62px;
  border-radius: 5px 5px 0 0;
  border: 1px solid #eee;
  background: #fff;
  padding: 3px 5px;
}
.theme-dark .Comment__header {
  margin-left: 62px;
  border-radius: 5px 5px 0 0;
  border: 1px solid #2c3136;
  background: #2c3136;
  padding: 3px 5px;
}
.theme-original .Comment__header svg {
  fill: #788187;
}
.theme-light .Comment__header svg {
  fill: #788187;
}
.theme-dark .Comment__header svg {
  fill: #A6B2BA;
}

.Comment__header-user {
  color: #333333;
  font-size: 100%;
}
.Comment__header_collapse {
  float: right;
}
.Comment__header_collapse > a {
  color: #cacaca;
  letter-spacing: 0.1rem;
  padding: 0 0.5rem;
}
.Comment__header_collapse .Icon {
  top: 5px;
}

.theme-original .Comment .Comment__block .Comment__body {
  margin-left: 62px;
  border: 1px solid #eee;
  padding: 0 5px;
  border-top: none;
  border-bottom: none;
  font-size: 90%;
  background: #fff;
}
.theme-light .Comment .Comment__block .Comment__body {
  margin-left: 62px;
  border: 1px solid #eee;
  padding: 0 5px;
  border-top: none;
  border-bottom: none;
  font-size: 90%;
  background: #fff;
}
.theme-dark .Comment .Comment__block .Comment__body {
  margin-left: 62px;
  border: 1px solid #2c3136;
  padding: 0 5px;
  border-top: none;
  border-bottom: none;
  font-size: 90%;
  background: #2c3136;
}

.theme-original .Comment .Comment__block .Comment__footer {
  margin-left: 62px;
  border: 1px solid #eee;
  border-radius: 0px 0px 5px 5px;
  padding: 3px 10px 5px 10px;
  background: #fff;
}
.theme-light .Comment .Comment__block .Comment__footer {
  margin-left: 62px;
  border: 1px solid #eee;
  border-radius: 0px 0px 5px 5px;
  padding: 3px 10px 5px 10px;
  background: #fff;
}
.theme-dark .Comment .Comment__block .Comment__footer {
  margin-left: 62px;
  border: 1px solid #2c3136;
  border-radius: 0px 0px 5px 5px;
  padding: 3px 10px 5px 10px;
  background: #2c3136;
}
.theme-original .Comment .Comment__block .Comment__footer {
  color: #333;
}
.theme-light .Comment .Comment__block .Comment__footer {
  color: #333;
}
.theme-dark .Comment .Comment__block .Comment__footer {
  color: #fcfcfc;
}
.Comment .Comment__block .Comment__footer .Voting__voters_list {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
  transition: 0.3s all ease-in-out;
}
.theme-original .Comment .Comment__block .Comment__footer .Voting__voters_list {
  border-right: 1px solid #eee;
}
.theme-light .Comment .Comment__block .Comment__footer .Voting__voters_list {
  border-right: 1px solid #eee;
}
.theme-dark .Comment .Comment__block .Comment__footer .Voting__voters_list {
  border-right: 1px solid #2c3136;
}
.Comment .Comment__block .Comment__footer .Voting__voters_list .dropdown-arrow {
  position: relative;
  top: 3px;
  left: -2px;
}
.theme-original .Comment .Comment__block .Comment__footer .Voting__voters_list:hover .Icon.dropdown-arrow polygon {
  fill: #004EFF;
}
.theme-light .Comment .Comment__block .Comment__footer .Voting__voters_list:hover .Icon.dropdown-arrow polygon {
  fill: #E31337;
}
.theme-dark .Comment .Comment__block .Comment__footer .Voting__voters_list:hover .Icon.dropdown-arrow polygon {
  fill: #E31337;
}
.Comment .Comment__block .Comment__footer .Comment__footer__controls a {
  margin: 0 0.2rem;
}

.Comment__replies {
  margin-top: 1.4rem;
  margin-left: 62px;
}
.theme-original .Comment__replies {
  border-left: 1px dotted #eee;
}
.theme-light .Comment__replies {
  border-left: 1px dotted #e5e5e5;
}
.theme-dark .Comment__replies {
  border-left: 1px dotted #212529;
}
.Comment__replies .Comment {
  margin-bottom: 1.4rem;
}

.Comment__negative_group {
  color: #cacaca;
  border-top: 1px solid #e6e6e6;
  padding-top: 1rem;
  clear: none;
}
.Comment__negative_group button {
  opacity: 0.35;
}
.Comment__negative_group button:hover {
  opacity: 0.5;
}

@media screen and (max-width: 39.9375em) {
  .theme-original .root .Comment__block .Comment__header,
.theme-original .root .Comment__block .Comment__footer,
.theme-original .root .Comment__block .Comment__body,
.theme-original .root .Comment__replies {
    margin-left: 0;
  }
  .theme-light .root .Comment__block .Comment__header,
.theme-light .root .Comment__block .Comment__footer,
.theme-light .root .Comment__block .Comment__body,
.theme-light .root .Comment__replies {
    margin-left: 0;
  }
  .theme-dark .root .Comment__block .Comment__header,
.theme-dark .root .Comment__block .Comment__footer,
.theme-dark .root .Comment__block .Comment__body,
.theme-dark .root .Comment__replies {
    margin-left: 0;
  }

  .theme-original .reply .Comment__block .Comment__header,
.theme-original .reply .Comment__block .Comment__footer,
.theme-original .reply .Comment__block .Comment__body,
.theme-original .reply .Comment__replies {
    margin-left: 10px;
  }
  .theme-light .reply .Comment__block .Comment__header,
.theme-light .reply .Comment__block .Comment__footer,
.theme-light .reply .Comment__block .Comment__body,
.theme-light .reply .Comment__replies {
    margin-left: 10px;
  }
  .theme-dark .reply .Comment__block .Comment__header,
.theme-dark .reply .Comment__block .Comment__footer,
.theme-dark .reply .Comment__block .Comment__body,
.theme-dark .reply .Comment__replies {
    margin-left: 10px;
  }

  .theme-original .Comment .Comment__block .highlighted {
    padding-left: 0;
  }
  .theme-light .Comment .Comment__block .highlighted {
    padding-left: 0;
  }
  .theme-dark .Comment .Comment__block .highlighted {
    padding-left: 0;
  }
}
.MarkdownViewer__negative_group {
  color: crimson;
  border-top: 1px solid #cacaca;
  padding-top: 1rem;
}

.MarkdownViewer {
  max-width: 48rem;
  height: 100%;
  overflow-y: auto;
}

.vote_weights {
  opacity: 0.75;
  position: absolute;
  right: 0.5rem;
  color: green;
}
.vote_weights span {
  color: red;
}

ul.PostsList__summaries {
  margin-left: 0;
}

ul.PostsList__summaries > li {
  padding: 0.1em 0.5em 0 0.5em;
  margin-bottom: 0.8em;
  /* &:hover {
    @include MQ(L) {
      @include themify($themes) {
        box-shadow: 2px 2px 3px 0 themed('contentBorderAccent');
      }
    }
  }*/
}
.theme-original ul.PostsList__summaries > li {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-light ul.PostsList__summaries > li {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-dark ul.PostsList__summaries > li {
  border-radius: 5px;
  border: 1px solid #2c3136;
  background-color: #2c3136;
}

.PostSummary {
  margin: 0 0 1.25vw;
  clear: left;
}
.PostSummary::before, .PostSummary::after {
  display: table;
  content: " ";
  flex-basis: 0;
  order: 1;
}
.PostSummary::after {
  clear: both;
}
.PostSummary .PostSummary__nsfw-warning {
  border: 1px solid #eee;
  padding: 0.75rem 2rem;
  min-height: 80px;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__footer {
  margin-top: 0.2rem;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__footer .Reblog__button {
  display: none;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__footer .Voting__button {
  display: none;
}
.PostSummary .PostSummary__nsfw-warning .PostSummary__time_author_category_small {
  margin-bottom: 0.2rem;
}
.PostSummary .nsfw-flag {
  color: #ff0264;
  border: 1px solid #ff0264;
  font-size: 75%;
  border-radius: 3px;
  font-weight: normal;
  font-family: Arial;
  margin: 0 0.1rem;
  padding: 2px 5px;
}

.PostSummary__image {
  cursor: pointer;
  float: left;
  width: 130px;
  height: 4.5rem;
  background-color: #EEE;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: 50% 20%;
  border: 1px solid #EEE;
}

.PostSummary__image-mobile {
  display: block;
  background: #F8F8F8;
}
.PostSummary__image-mobile img {
  margin: 0 auto;
  display: block;
  max-width: 100%;
  max-height: 80vw;
  background: white;
  transform: translate3d(0, 0, 0);
}

.PostSummary.with-image .PostSummary__reblogged_by,
.PostSummary.with-image .PostSummary__content {
  margin-left: 8.25rem;
}

.PostSummary__header > h3 {
  font: 600 100% "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif;
  margin: 0;
  overflow: hidden;
}
.PostSummary__header > h3 > a {
  color: #333;
}
.PostSummary__header > h3 > a:visited {
  color: #777;
}
.PostSummary__header > h3 .Icon {
  margin: 0 0.25rem;
}
.PostSummary__header > h3 .Icon svg {
  width: 0.85rem;
  height: 0.85rem;
  vertical-align: 5%;
}
.PostSummary__header .nsfw-flag {
  margin-right: 0.25rem;
}

.PostSummary__body {
  width: auto;
  padding: 0 0 0.15rem;
  font-size: 0.9rem;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  overflow: hidden;
  line-height: 1.4;
  text-overflow: ellipsis;
}
.theme-original .PostSummary__body {
  color: #333;
}
.theme-light .PostSummary__body {
  color: #333;
}
.theme-dark .PostSummary__body {
  color: #fcfcfc;
}
.PostSummary__body a {
  display: inline;
}
.theme-original .PostSummary__body a {
  color: #333;
}
.theme-light .PostSummary__body a {
  color: #333;
}
.theme-dark .PostSummary__body a {
  color: #fcfcfc;
}

@media only screen and (min-width: 47.5em) {
  .layout-list .PostSummary__body {
    white-space: nowrap;
  }
}

.PostSummary__footer {
  color: #8a8a8a;
  font-weight: 400;
}
.PostSummary__footer path {
  fill: #8a8a8a;
}
.PostSummary__footer a {
  color: #8a8a8a;
}
.PostSummary__footer .Icon {
  position: relative;
  top: -1px;
}

.PostSummary__time_author_category {
  color: #8a8a8a;
  padding-left: 1rem;
}
.PostSummary__time_author_category a {
  color: #8a8a8a;
  font-weight: bold;
}
.PostSummary__time_author_category a:hover {
  text-decoration: underline;
}
.theme-original .PostSummary__time_author_category {
  border-left: 1px solid #f6f6f6;
}
.theme-light .PostSummary__time_author_category {
  border-left: 1px solid #f6f6f6;
}
.theme-dark .PostSummary__time_author_category {
  border-left: 1px solid #2c3136;
}
.PostSummary__time_author_category .Reblog__button {
  margin-right: 1rem;
  padding-right: 1rem;
  border-right: transparent;
}

.PostSummary__time_author_category_small a {
  color: #8a8a8a;
}

@media screen and (min-width: 39.9375em) {
  .PostSummary.with-image .PostSummary__reblogged_by .Icon.reblog {
    margin-left: -22px;
  }
}
.PostSummary__reblogged_by {
  color: #8a8a8a;
  font-size: 90%;
  margin-top: -0.5rem;
}
.PostSummary__reblogged_by .Icon path {
  fill: #cacaca;
}
.PostSummary__reblogged_by a {
  color: inherit;
  font-weight: bold;
}
.PostSummary__reblogged_by a:hover {
  text-decoration: underline;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .PostSummary {
    margin-bottom: 0;
    border: none;
  }

  .PostSummary__image {
    float: none;
    margin-top: 0.5rem;
    display: block;
    width: 100%;
    height: 40vw;
  }

  .PostSummary__body {
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    -webkit-hyphens: auto;
        -ms-hyphens: auto;
            hyphens: auto;
    white-space: normal;
    text-overflow: initial;
    padding-bottom: 0.3rem;
  }
  .PostSummary__body a {
    display: block;
  }

  .PostSummary.with-image .PostSummary__reblogged_by,
.PostSummary.with-image .PostSummary__content {
    margin-left: 0;
  }

  .PostSummary__footer .Voting, .PostSummary__footer .Voting__inner {
    border-right: none;
  }

  .PostSummary__time_author_category {
    margin-left: 0;
    border-left: 1px solid #eee;
  }
  .PostSummary__time_author_category .Reblog__button {
    margin-right: 1rem;
    padding-right: 1rem;
    border-right: none;
  }
}
.articles__summary .nsfw-flag {
  color: #ff0264;
  border: 1px solid #ff0264;
  font-size: 75%;
  border-radius: 3px;
  font-weight: normal;
  font-family: Arial;
  margin: 0 0.1rem;
  padding: 2px 5px;
  margin-right: 5px;
}
.articles__summary .articles__resteem,
.articles__summary .articles__crosspost {
  padding-top: 0;
  margin-top: 0;
}
.articles__summary .articles__crosspost {
  padding: 5px 10px 5px 10px;
  margin: 5px 0;
  font-size: 0.85rem;
  border-radius: 3px;
}
.theme-original .articles__summary .articles__crosspost {
  background-color: #f8f8ff;
}
.theme-light .articles__summary .articles__crosspost {
  background-color: #f4f4fd;
}
.theme-dark .articles__summary .articles__crosspost {
  background-color: #212529;
}
.articles__summary .articles__crosspost-icon {
  margin-right: 5px;
}
.articles__summary .articles__crosspost-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.articles__summary .articles__feature-img img {
  width: 100%;
  max-height: 56.25vw;
  -o-object-fit: cover;
     object-fit: cover;
}
.articles__summary .articles__content-block--text {
  width: 100%;
}

.Post .row.comment-editor {
  max-width: 55.9rem;
  margin-top: 15px;
  margin-left: auto;
  margin-right: auto;
}

.PostFull {
  padding: 2rem 1rem 1rem 1rem;
  margin: 0 auto;
  max-width: 54rem;
  position: relative;
}
.theme-original .PostFull {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-light .PostFull {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-dark .PostFull {
  border-radius: 5px;
  border: 1px solid #2c3136;
  background-color: #2c3136;
}
@media screen and (max-width: 63.9375em) {
  .PostFull {
    padding-top: 1rem;
  }
}
.theme-original .PostFull .button.hollow {
  border: 1px solid #004EFF;
  color: #004EFF;
}
.theme-light .PostFull .button.hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.theme-dark .PostFull .button.hollow {
  border: 1px solid #E31337;
  color: #E31337;
}
.PostFull .ReplyEditor {
  margin-top: 1rem;
}
.PostFull .articles__crosspost {
  padding: 20px 20px 0 20px;
}
.theme-original .PostFull .articles__crosspost {
  background-color: #f8f8ff;
}
.theme-light .PostFull .articles__crosspost {
  background-color: #f4f4fd;
}
.theme-dark .PostFull .articles__crosspost {
  background-color: #212529;
}
.PostFull .articles__crosspost-icon {
  margin-right: 5px;
}
.PostFull .ReplyEditor .column.large-6, .PostFull .ReplyEditor .large-6.columns {
  max-width: 100%;
  flex: 0 0 100%;
}
.PostFull .ReplyEditor .side-by-side {
  height: auto;
}
.PostFull .PostFull__authored_by {
  font-size: 0.8rem;
}

.PostFull__time_author_category {
  font-weight: 400;
  border-right: none !important;
  padding-right: 0.6rem;
  margin-right: 0.6rem;
}
.theme-original .PostFull__time_author_category {
  border-right: 1px solid #eee;
  color: #788187;
}
.theme-light .PostFull__time_author_category {
  border-right: 1px solid #eee;
  color: #788187;
}
.theme-dark .PostFull__time_author_category {
  border-right: 1px solid #2c3136;
  color: #A6B2BA;
}
.PostFull__time_author_category > span {
  white-space: nowrap;
}

.PostFull__time_author_category_large {
  margin: 1rem 0 1rem 0;
  line-height: 1.2;
  font-size: 120%;
  display: flex;
  align-items: center;
}
.theme-original .PostFull__time_author_category_large {
  color: #788187;
}
.theme-light .PostFull__time_author_category_large {
  color: #788187;
}
.theme-dark .PostFull__time_author_category_large {
  color: #A6B2BA;
}
.theme-original .PostFull__time_author_category_large strong, .theme-original .PostFull__time_author_category_large a {
  color: #788187;
}
.theme-light .PostFull__time_author_category_large strong, .theme-light .PostFull__time_author_category_large a {
  color: #788187;
}
.theme-dark .PostFull__time_author_category_large strong, .theme-dark .PostFull__time_author_category_large a {
  color: #A6B2BA;
}
.PostFull__time_author_category_large > .Userpic {
  margin-top: -4px;
  float: left;
}
.PostFull__time_author_category_large > .right-side {
  margin-left: 12px;
  position: relative;
  top: -2px;
}

.PostFull__header, .PostFull__body {
  max-width: 48rem;
  margin: 0 auto;
}

.theme-original .PostFull__header {
  border-bottom: 1px solid #eee;
}
.theme-light .PostFull__header {
  border-bottom: 1px solid #eee;
}
.theme-dark .PostFull__header {
  border-bottom: 1px solid #2c3136;
}
.PostFull__header h1 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.1;
  word-break: break-word;
}
@media screen and (max-width: 39.9375em) {
  .PostFull__header h1 {
    font-size: 1.3rem;
  }
}
.PostFull__header h1 .Icon {
  margin: 0 0 0 0.5rem;
  vertical-align: -30%;
}
.PostFull__header a {
  font-weight: 600;
}
.PostFull__header .PostFull__time_author_category {
  border-right: none;
}
.PostFull__header .PostFull__time_author_category .Icon.clock {
  top: 5px;
}
.theme-original .PostFull__header .PostFull__time_author_category .Icon.clock svg {
  fill: #788187;
}
.theme-light .PostFull__header .PostFull__time_author_category .Icon.clock svg {
  fill: #788187;
}
.theme-dark .PostFull__header .PostFull__time_author_category .Icon.clock svg {
  fill: #A6B2BA;
}

.PostFull__body {
  padding: 1rem 0 1rem 0;
  clear: left;
}
.PostFull__footer {
  clear: right;
  line-height: 2rem;
  font-size: 94%;
}
.theme-original .PostFull__footer svg {
  fill: #788187;
}
.theme-light .PostFull__footer svg {
  fill: #788187;
}
.theme-dark .PostFull__footer svg {
  fill: #A6B2BA;
}
@media only screen and (min-width: 64em) {
  .PostFull__footer .RightShare__Menu {
    text-align: right;
  }
}
.PostFull__footer span {
  white-space: normal;
}
.PostFull__footer .Reblog__button {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
}
.theme-original .PostFull__footer .Reblog__button {
  border-right: 1px solid #eee;
}
.theme-light .PostFull__footer .Reblog__button {
  border-right: 1px solid #eee;
}
.theme-dark .PostFull__footer .Reblog__button {
  border-right: 1px solid #2c3136;
}
.PostFull__footer .PostFull__crosspost-footer {
  padding-top: 15px;
  text-align: center;
}
.PostFull__footer .PostFull__crosspost-footer .button {
  min-width: 100px;
}

.PostFull__responses {
  padding-right: 0.4rem;
}

.PostFull__views {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
  font-size: 94%;
  font-weight: 600;
}
.theme-original .PostFull__views {
  border-right: 1px solid #eee;
  fill: #788187;
}
.theme-light .PostFull__views {
  border-right: 1px solid #eee;
  fill: #788187;
}
.theme-dark .PostFull__views {
  border-right: 1px solid #2c3136;
  fill: #A6B2BA;
}

.PostFull__reply {
  padding-right: 0.4rem;
  margin-right: 0.4rem;
}
.theme-original .PostFull__reply {
  border-right: 1px solid #eee;
}
.theme-light .PostFull__reply {
  border-right: 1px solid #eee;
}
.theme-dark .PostFull__reply {
  border-right: 1px solid #2c3136;
}
.PostFull__reply a {
  margin: 0 0.15rem;
}

.PostFull__lifetime {
  font-size: 80%;
}
.theme-original .PostFull__lifetime {
  fill: #788187;
}
.theme-light .PostFull__lifetime {
  fill: #788187;
}
.theme-dark .PostFull__lifetime {
  fill: #A6B2BA;
}

.Author__dropdown {
  padding: 1rem;
}
.Author__dropdown > a:hover {
  text-decoration: underline;
}

.explore-post {
  margin-right: 0px !important;
  cursor: pointer;
}
.explore-post:hover svg {
  fill: #E31337;
}

input.share-box {
  width: 75% !important;
  display: inline;
}

.ExplorePost span.extlink {
  vertical-align: text-bottom;
}
.ExplorePost h5 {
  margin-top: 1em;
}
.ExplorePost .ExplorePost__copy-button {
  cursor: pointer;
}

.chain-rotated {
  transform: rotate(120deg);
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .Post {
    width: 100%;
  }

  .PostFull__footer > .column, .PostFull__footer > .columns {
    flex: 0 0 100%;
  }

  input.share-box {
    height: 2.8em;
    font-size: 0.8em;
  }
}
/* Medium only */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  input.share-box {
    height: 2.8em;
    font-size: 0.8em;
  }
}
.PostsList__summaries .articles__summary {
  position: relative;
}
.PostsList__summaries .FeaturedTag, .PostsList__summaries .PromotedTag {
  font-weight: 400;
  display: inline;
  padding: 0.1rem 0.2rem;
  margin: 0 1rem 0 0.5rem;
  border-radius: 0.3rem;
  font-size: 0.75rem;
}
.theme-original .PostsList__summaries .FeaturedTag, .theme-original .PostsList__summaries .PromotedTag {
  background-color: #004EFF;
  color: #fcfcfc;
}
.theme-light .PostsList__summaries .FeaturedTag, .theme-light .PostsList__summaries .PromotedTag {
  background-color: #E31337;
  color: #fcfcfc;
}
.theme-dark .PostsList__summaries .FeaturedTag, .theme-dark .PostsList__summaries .PromotedTag {
  background-color: #E31337;
  color: #2C3A45;
}
.theme-original .PostsList__summaries .PromotedTag {
  background-color: #cacaca;
}
.theme-light .PostsList__summaries .PromotedTag {
  background-color: #cacaca;
}
.theme-dark .PostsList__summaries .PromotedTag {
  background-color: #A6B2BA;
}
.PostsList__summaries A.PostDismiss {
  position: absolute;
  right: 0.15rem;
}
.theme-original .PostsList__summaries A.PostDismiss svg {
  width: 0.6rem;
  height: 0.6rem;
  opacity: 0.3;
  fill: #788187;
}
.theme-light .PostsList__summaries A.PostDismiss svg {
  width: 0.6rem;
  height: 0.6rem;
  opacity: 0.3;
  fill: #788187;
}
.theme-dark .PostsList__summaries A.PostDismiss svg {
  width: 0.6rem;
  height: 0.6rem;
  opacity: 0.3;
  fill: #A6B2BA;
}
.PostsList__summaries A.PostDismiss:hover svg {
  opacity: 1;
}

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

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

.flex-body {
  display: flex;
}

.notification__filter {
  padding: 0 5px 0 5px;
  border-right: 1px solid #ababab;
}

.notification__filter:last-child {
  border-right: 0;
}

.notification__filter.hide {
  display: none;
}

.notification__filter.selected {
  font-weight: bold;
}

.theme-original .notification__item.even {
  background-color: #f4f4f4;
}
.theme-light .notification__item.even {
  background-color: #f4f4f4;
}
.theme-dark .notification__item.even {
  background-color: #212C33;
}

.notification__item {
  align-items: center;
  padding: 0.5em 1rem;
  margin-bottom: 2px;
  position: relative;
}
.theme-light .notification__item {
  background-color: #e5e5e5;
}
.theme-dark .notification__item {
  background-color: #283239;
}
.notification__item .notification__unread {
  position: absolute;
  left: 0.4em;
  top: 0.75em;
  font-size: 2em;
}
.theme-original .notification__item .notification__unread {
  color: #004EFF;
}
.theme-light .notification__item .notification__unread {
  color: #E31337;
}
.theme-dark .notification__item .notification__unread {
  color: #E31337;
}
.notification__item .Userpic {
  margin: 0 1em;
}
.notification__item .Icon {
  margin-right: 0.25em;
}
.theme-original .notification__item .Icon {
  fill: #788187;
}
.theme-original .notification__item .Icon path {
  fill: #788187;
}
.theme-original .notification__item .Icon circle {
  stroke: #788187;
}
.theme-light .notification__item .Icon {
  fill: #788187;
}
.theme-light .notification__item .Icon path {
  fill: #788187;
}
.theme-light .notification__item .Icon circle {
  stroke: #788187;
}
.theme-dark .notification__item .Icon {
  fill: #A6B2BA;
}
.theme-dark .notification__item .Icon path {
  fill: #A6B2BA;
}
.theme-dark .notification__item .Icon circle {
  stroke: #A6B2BA;
}
.notification__item .notification__date {
  font-size: 0.9em;
  opacity: 0.8;
}
.theme-original .notification__item .notification__date {
  color: #788187;
}
.theme-light .notification__item .notification__date {
  color: #788187;
}
.theme-dark .notification__item .notification__date {
  color: #A6B2BA;
}
.notification__item .notification__message {
  padding-bottom: 0.5em;
  padding-right: 0.5em;
}
.theme-original .notification__item .notification__message a {
  color: #333;
}
.theme-light .notification__item .notification__message a {
  color: #333;
}
.theme-dark .notification__item .notification__message a {
  color: #fcfcfc;
}
.theme-original .notification__item .notification__message a:visited {
  color: #788187;
}
.theme-light .notification__item .notification__message a:visited {
  color: #788187;
}
.theme-dark .notification__item .notification__message a:visited {
  color: #A6B2BA;
}
.notification__item .notification__score {
  position: absolute;
  top: 5px;
  right: 5px;
  height: 4px;
  width: 35px;
  background-color: lightgray;
}
.notification__item .notification__score_bar {
  height: 100%;
  position: relative;
  background-color: #E31337;
}

.Icon {
  vertical-align: middle;
}
.Icon > svg, .Icon span.icon {
  width: 1.12rem;
  height: 1.12rem;
  vertical-align: top;
}
.Icon.fill-black > svg > path {
  fill: black;
}

.Icon_0_8x > svg, span.Icon_0_8x {
  width: 0.8rem;
  height: 0.8rem;
}

.Icon_1_5x > svg, span.Icon_1_5x {
  width: 1.5rem;
  height: 1.5rem;
}

.Icon_2x > svg, span.Icon_2x {
  width: 2rem;
  height: 2rem;
}

.Icon_3x > svg, span.Icon_3x {
  width: 3rem;
  height: 3rem;
}

.Icon_4x > svg, span.Icon_4x {
  width: 4.6rem;
  height: 4.6rem;
}

.Icon_5x > svg, span.Icon_5x {
  width: 5.75rem;
  height: 5.75rem;
  margin: 24px 0 24px 0;
}

.Icon_10x > svg, span.Icon_10x {
  width: 10rem;
  height: 10rem;
  margin: 24px 0 24px 0;
}

.Icon.dropdown-arrow polygon {
  fill: #8a8a8a;
}

.loading-panel {
  z-index: 1000;
  position: absolute;
  top: 20rem;
  left: 0;
  right: 0;
  margin: auto;
  height: 100px;
  max-height: 110px;
  width: 10rem;
  background-color: #999;
  opacity: 0.4;
  border-radius: 5px;
}

.progress-indicator {
  height: 50px;
  vertical-align: middle;
  margin: 46px 20px 20px 20px;
  text-align: center;
  color: #000;
  display: none;
}

.progress-indicator > span {
  vertical-align: middle;
  display: table-cell;
}

.with-progress .progress-indicator {
  display: table;
}

.spinner {
  width: 64px;
  height: 18px;
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

.with-progress .spinner {
  margin: 20px auto 0 auto;
}

.spinner > div {
  width: 18px;
  height: 18px;
  background-color: #333;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: bouncedelay 1.4s infinite ease-in-out;
  animation: bouncedelay 1.4s infinite ease-in-out;
  /* Prevent first frame from flickering when animation starts */
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
          animation-delay: -0.32s;
}

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
          animation-delay: -0.16s;
}

@keyframes bouncedelay {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
.three-bounce > div {
  width: 16px;
  height: 16px;
  background-color: #777;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: bouncedelay 1.4s infinite ease-in-out;
          animation: bouncedelay 1.4s infinite ease-in-out;
  /* Prevent first frame from flickering when animation starts */
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

.three-bounce .bounce1 {
  -webkit-animation-delay: -0.32s;
          animation-delay: -0.32s;
}

.three-bounce .bounce2 {
  -webkit-animation-delay: -0.16s;
          animation-delay: -0.16s;
}

@-webkit-keyframes bouncedelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
  }
  40% {
    -webkit-transform: scale(1);
  }
}
@keyframes bouncedelay {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
.LoadingIndicator.circle.inline {
  display: inline-block;
  position: relative;
  top: 6px;
}
.LoadingIndicator.circle.circle-strong {
  padding-top: 2em;
  padding-bottom: 2em;
}
.LoadingIndicator.circle.circle-strong div {
  border-width: 1px;
  border-color: #E31337;
  border-right-color: transparent;
  border-top-color: transparent;
}
.LoadingIndicator.circle div {
  width: 16px;
  height: 16px;
  margin: 4px;
  border: 1px solid #E31337;
  border-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}

.Userpic {
  display: inline-block;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  border-radius: 50%;
  width: 48px;
  height: 48px;
}

.Userpic__infowrapper .UserInfo__rc_innercircle {
  position: absolute;
  z-index: 6;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px;
  background: red;
  border-radius: 100%;
}

.Header__userpic .Userpic__infowrapper .Userpic {
  width: 34px;
  height: 34px;
  margin-top: 5px;
  margin-left: 0;
}

/* https://www.cssscript.com/circular-progress-bar-plain-html-css/ */
.progress-circle {
  font-size: 8px;
  margin: -2px 0 0 0;
  position: relative;
  /* so that children can be absolutely positioned */
  padding: 0;
  width: 5em;
  height: 5em;
  background-color: #F2E9E1;
  border-radius: 50%;
  line-height: 5em;
}

.progress-circle:after {
  border: none;
  position: absolute;
  top: 0.35em;
  left: 0.35em;
  text-align: center;
  display: block;
  border-radius: 50%;
  width: 4.3em;
  height: 4.3em;
  background-color: white;
  content: " ";
}

/* Text inside the control */
.progress-circle span {
  position: absolute;
  line-height: 5em;
  width: 5em;
  text-align: center;
  display: block;
  z-index: 2;
  color: seagreen;
}

.left-half-clipper {
  /* a round circle */
  border-radius: 50%;
  width: 5em;
  height: 5em;
  position: absolute;
  /* needed for clipping */
  clip: rect(0, 5em, 5em, 2.5em);
  /* clips the whole left half*/
}

/* when p>50, don't clip left half*/
.progress-circle.over50 .left-half-clipper {
  clip: rect(auto, auto, auto, auto);
}

.value-bar {
  /*This is an overlayed square, that is made round with the border radius,
  then it is cut to display only the left half, then rotated clockwise
  to escape the outer clipping path.*/
  position: absolute;
  /*needed for clipping*/
  clip: rect(0, 2.5em, 5em, 0);
  width: 5em;
  height: 5em;
  border-radius: 50%;
  border: 0.45em solid seagreen;
  /*The border is 0.35 but making it larger removes visual artifacts */
  /*background-color: #4D642D;*/
  /* for debug */
  box-sizing: border-box;
}

/* Progress bar filling the whole right half for values above 50% */
.progress-circle.over50 .first50-bar {
  /*Progress bar for the first 50%, filling the whole right half*/
  position: absolute;
  /*needed for clipping*/
  clip: rect(0, 5em, 5em, 2.5em);
  background-color: seagreen;
  border-radius: 50%;
  width: 5em;
  height: 5em;
}

.progress-circle:not(.over50) .first50-bar {
  display: none;
}

/* Progress bar rotation position */
.progress-circle.p0 .value-bar {
  display: none;
}

.progress-circle.p1 .value-bar {
  transform: rotate(4deg);
}

.progress-circle.p2 .value-bar {
  transform: rotate(7deg);
}

.progress-circle.p3 .value-bar {
  transform: rotate(11deg);
}

.progress-circle.p4 .value-bar {
  transform: rotate(14deg);
}

.progress-circle.p5 .value-bar {
  transform: rotate(18deg);
}

.progress-circle.p6 .value-bar {
  transform: rotate(22deg);
}

.progress-circle.p7 .value-bar {
  transform: rotate(25deg);
}

.progress-circle.p8 .value-bar {
  transform: rotate(29deg);
}

.progress-circle.p9 .value-bar {
  transform: rotate(32deg);
}

.progress-circle.p10 .value-bar {
  transform: rotate(36deg);
}

.progress-circle.p11 .value-bar {
  transform: rotate(40deg);
}

.progress-circle.p12 .value-bar {
  transform: rotate(43deg);
}

.progress-circle.p13 .value-bar {
  transform: rotate(47deg);
}

.progress-circle.p14 .value-bar {
  transform: rotate(50deg);
}

.progress-circle.p15 .value-bar {
  transform: rotate(54deg);
}

.progress-circle.p16 .value-bar {
  transform: rotate(58deg);
}

.progress-circle.p17 .value-bar {
  transform: rotate(61deg);
}

.progress-circle.p18 .value-bar {
  transform: rotate(65deg);
}

.progress-circle.p19 .value-bar {
  transform: rotate(68deg);
}

.progress-circle.p20 .value-bar {
  transform: rotate(72deg);
}

.progress-circle.p21 .value-bar {
  transform: rotate(76deg);
}

.progress-circle.p22 .value-bar {
  transform: rotate(79deg);
}

.progress-circle.p23 .value-bar {
  transform: rotate(83deg);
}

.progress-circle.p24 .value-bar {
  transform: rotate(86deg);
}

.progress-circle.p25 .value-bar {
  transform: rotate(90deg);
}

.progress-circle.p26 .value-bar {
  transform: rotate(94deg);
}

.progress-circle.p27 .value-bar {
  transform: rotate(97deg);
}

.progress-circle.p28 .value-bar {
  transform: rotate(101deg);
}

.progress-circle.p29 .value-bar {
  transform: rotate(104deg);
}

.progress-circle.p30 .value-bar {
  transform: rotate(108deg);
}

.progress-circle.p31 .value-bar {
  transform: rotate(112deg);
}

.progress-circle.p32 .value-bar {
  transform: rotate(115deg);
}

.progress-circle.p33 .value-bar {
  transform: rotate(119deg);
}

.progress-circle.p34 .value-bar {
  transform: rotate(122deg);
}

.progress-circle.p35 .value-bar {
  transform: rotate(126deg);
}

.progress-circle.p36 .value-bar {
  transform: rotate(130deg);
}

.progress-circle.p37 .value-bar {
  transform: rotate(133deg);
}

.progress-circle.p38 .value-bar {
  transform: rotate(137deg);
}

.progress-circle.p39 .value-bar {
  transform: rotate(140deg);
}

.progress-circle.p40 .value-bar {
  transform: rotate(144deg);
}

.progress-circle.p41 .value-bar {
  transform: rotate(148deg);
}

.progress-circle.p42 .value-bar {
  transform: rotate(151deg);
}

.progress-circle.p43 .value-bar {
  transform: rotate(155deg);
}

.progress-circle.p44 .value-bar {
  transform: rotate(158deg);
}

.progress-circle.p45 .value-bar {
  transform: rotate(162deg);
}

.progress-circle.p46 .value-bar {
  transform: rotate(166deg);
}

.progress-circle.p47 .value-bar {
  transform: rotate(169deg);
}

.progress-circle.p48 .value-bar {
  transform: rotate(173deg);
}

.progress-circle.p49 .value-bar {
  transform: rotate(176deg);
}

.progress-circle.p50 .value-bar {
  transform: rotate(180deg);
}

.progress-circle.p51 .value-bar {
  transform: rotate(184deg);
}

.progress-circle.p52 .value-bar {
  transform: rotate(187deg);
}

.progress-circle.p53 .value-bar {
  transform: rotate(191deg);
}

.progress-circle.p54 .value-bar {
  transform: rotate(194deg);
}

.progress-circle.p55 .value-bar {
  transform: rotate(198deg);
}

.progress-circle.p56 .value-bar {
  transform: rotate(202deg);
}

.progress-circle.p57 .value-bar {
  transform: rotate(205deg);
}

.progress-circle.p58 .value-bar {
  transform: rotate(209deg);
}

.progress-circle.p59 .value-bar {
  transform: rotate(212deg);
}

.progress-circle.p60 .value-bar {
  transform: rotate(216deg);
}

.progress-circle.p61 .value-bar {
  transform: rotate(220deg);
}

.progress-circle.p62 .value-bar {
  transform: rotate(223deg);
}

.progress-circle.p63 .value-bar {
  transform: rotate(227deg);
}

.progress-circle.p64 .value-bar {
  transform: rotate(230deg);
}

.progress-circle.p65 .value-bar {
  transform: rotate(234deg);
}

.progress-circle.p66 .value-bar {
  transform: rotate(238deg);
}

.progress-circle.p67 .value-bar {
  transform: rotate(241deg);
}

.progress-circle.p68 .value-bar {
  transform: rotate(245deg);
}

.progress-circle.p69 .value-bar {
  transform: rotate(248deg);
}

.progress-circle.p70 .value-bar {
  transform: rotate(252deg);
}

.progress-circle.p71 .value-bar {
  transform: rotate(256deg);
}

.progress-circle.p72 .value-bar {
  transform: rotate(259deg);
}

.progress-circle.p73 .value-bar {
  transform: rotate(263deg);
}

.progress-circle.p74 .value-bar {
  transform: rotate(266deg);
}

.progress-circle.p75 .value-bar {
  transform: rotate(270deg);
}

.progress-circle.p76 .value-bar {
  transform: rotate(274deg);
}

.progress-circle.p77 .value-bar {
  transform: rotate(277deg);
}

.progress-circle.p78 .value-bar {
  transform: rotate(281deg);
}

.progress-circle.p79 .value-bar {
  transform: rotate(284deg);
}

.progress-circle.p80 .value-bar {
  transform: rotate(288deg);
}

.progress-circle.p81 .value-bar {
  transform: rotate(292deg);
}

.progress-circle.p82 .value-bar {
  transform: rotate(295deg);
}

.progress-circle.p83 .value-bar {
  transform: rotate(299deg);
}

.progress-circle.p84 .value-bar {
  transform: rotate(302deg);
}

.progress-circle.p85 .value-bar {
  transform: rotate(306deg);
}

.progress-circle.p86 .value-bar {
  transform: rotate(310deg);
}

.progress-circle.p87 .value-bar {
  transform: rotate(313deg);
}

.progress-circle.p88 .value-bar {
  transform: rotate(317deg);
}

.progress-circle.p89 .value-bar {
  transform: rotate(320deg);
}

.progress-circle.p90 .value-bar {
  transform: rotate(324deg);
}

.progress-circle.p91 .value-bar {
  transform: rotate(328deg);
}

.progress-circle.p92 .value-bar {
  transform: rotate(331deg);
}

.progress-circle.p93 .value-bar {
  transform: rotate(335deg);
}

.progress-circle.p94 .value-bar {
  transform: rotate(338deg);
}

.progress-circle.p95 .value-bar {
  transform: rotate(342deg);
}

.progress-circle.p96 .value-bar {
  transform: rotate(346deg);
}

.progress-circle.p97 .value-bar {
  transform: rotate(349deg);
}

.progress-circle.p98 .value-bar {
  transform: rotate(353deg);
}

.progress-circle.p99 .value-bar {
  transform: rotate(356deg);
}

.progress-circle.p100 .value-bar {
  transform: rotate(360deg);
}

.Voting {
  white-space: nowrap !important;
}
.Voting span {
  white-space: nowrap !important;
}
.theme-original .Voting .dropdown-pane {
  border: 1px solid #788187;
}
.theme-light .Voting .dropdown-pane {
  border: 1px solid #788187;
}
.theme-dark .Voting .dropdown-pane {
  border: 1px solid #A6B2BA;
}

.Voting__button .Icon {
  transform: translate3d(0, 0, 0);
}
.Voting__button path {
  fill: #8a8a8a;
}
.Voting__button circle {
  stroke: #8a8a8a;
}
.Voting__button > a:hover path {
  fill: #333333;
}

.Voting__about-flag {
  margin-right: 30px;
}
.Voting__about-flag .button {
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: capitalize;
  border-radius: 0;
  font-size: 18px;
  font-size: 1.125rem;
}
.theme-original .Voting__about-flag .button {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 transparent;
  color: #fcfcfc;
}
.theme-light .Voting__about-flag .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fcfcfc;
}
.theme-dark .Voting__about-flag .button {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #2C3A45;
}
.theme-original .Voting__about-flag .button:hover, .theme-original .Voting__about-flag .button:focus {
  background-color: #4BA2F2;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0;
  color: #fcfcfc;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-light .Voting__about-flag .button:hover, .theme-light .Voting__about-flag .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #212529;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-dark .Voting__about-flag .button:hover, .theme-dark .Voting__about-flag .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #fff;
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}
.theme-original .Voting__about-flag .button:visited, .theme-original .Voting__about-flag .button:active {
  color: #fcfcfc;
}
.theme-light .Voting__about-flag .button:visited, .theme-light .Voting__about-flag .button:active {
  color: #fcfcfc;
}
.theme-dark .Voting__about-flag .button:visited, .theme-dark .Voting__about-flag .button:active {
  color: #2C3A45;
}

.Voting__button-up .Icon {
  margin-left: 0;
  border-radius: 50%;
}
.Voting__button-up div > a {
  padding-right: 0.5rem;
}
.Voting__button-up > a {
  padding-right: 0.4rem;
}
.theme-original .Voting__button-up path {
  fill: #004EFF;
}
.theme-light .Voting__button-up path {
  fill: #E31337;
}
.theme-dark .Voting__button-up path {
  fill: #E31337;
}
.theme-original .Voting__button-up circle {
  stroke: #004EFF;
}
.theme-light .Voting__button-up circle {
  stroke: #E31337;
}
.theme-dark .Voting__button-up circle {
  stroke: #E31337;
}
@media screen and (min-width: 39.9375em) {
  .Voting__button-up .Icon:hover {
    box-shadow: 0 0 0 #4ba2f2;
    -webkit-animation: pulse 2s infinite;
            animation: pulse 2s infinite;
  }
}
.Voting__button-up .close-button {
  position: relative;
  margin-left: 1em;
}
.Voting__button-up > .dropdown-comp > .dropdown__content {
  position: absolute;
  top: -30px;
  left: -26px;
}

.Voting__button-up > a:hover path, a.confirm_weight:hover path {
  fill: #fff;
}
.theme-original .Voting__button-up > a:hover circle, .theme-original a.confirm_weight:hover circle {
  fill: #004EFF;
  stroke: #004EFF;
}
.theme-light .Voting__button-up > a:hover circle, .theme-light a.confirm_weight:hover circle {
  fill: #E31337;
  stroke: #E31337;
}
.theme-dark .Voting__button-up > a:hover circle, .theme-dark a.confirm_weight:hover circle {
  fill: #E31337;
  stroke: #E31337;
}
.Voting__button-up > a:hover svg, a.confirm_weight:hover svg {
  background-size: contain;
  border-radius: 50%;
}

.Voting__button-up.votingUp {
  padding-right: 0.5rem;
}
.Voting__button-up.votingUp svg {
  border: 1px solid #E31337;
  border-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}

.Voting__button-down.votingDown svg {
  border: 1px solid #ff0264;
  border-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}

.Voting__button-down {
  margin-right: 0.5rem;
}
.Voting__button-down .Voting__button-downvotes {
  color: #aaa;
  font-size: 80%;
  vertical-align: 15%;
  padding-right: 0.1rem;
  cursor: default;
}
.Voting__button-down a path {
  fill: #000;
}
.Voting__button-down a circle {
  stroke: #000;
}
.Voting__button-down a:hover circle {
  fill: #555;
}
.Voting__button-down a:hover path {
  fill: #fff;
}
.Voting__button-down.Voting__button--downvoted a path {
  fill: #fff;
}
.Voting__button-down.Voting__button--downvoted a circle {
  fill: #f99;
}
.Voting__button-down.Voting__button--downvoted a:hover circle {
  fill: #f66;
}

.Voting__button--upvoted .Icon:hover {
  -webkit-animation: none !important;
          animation: none !important;
}
.Voting__button--upvoted path {
  fill: #fff !important;
}

.theme-original .Voting__button--upvoted circle {
  fill: #004EFF;
  stroke: #004EFF;
}
.theme-light .Voting__button--upvoted circle {
  fill: #E31337;
  stroke: #E31337;
}
.theme-dark .Voting__button--upvoted circle {
  fill: #E31337;
  stroke: #E31337;
}

.Voting__button--upvoted a:hover path {
  fill: #fff !important;
}

.theme-original .Voting__button--upvoted a:hover circle {
  fill: #4BA2F2;
  stroke: #4BA2F2;
}
.theme-light .Voting__button--upvoted a:hover circle {
  fill: #d81233;
  stroke: #d81233;
}
.theme-dark .Voting__button--upvoted a:hover circle {
  fill: #E31337;
  stroke: #E31337;
}

.Voting__button--downvoted path {
  fill: #ff0264;
}

.PostFull .Voting .DropdownMenu.Voting__voters_list {
  /* reserve enough space for dropdown (otherwise overflow) */
  min-width: 140px;
}

.Voting .DropdownMenu.Voting__pane ul {
  width: auto;
  min-width: 260px;
}

.Voting .DropdownMenu ul {
  width: auto;
  min-width: 140px;
  max-width: 360px;
}
.Voting .DropdownMenu ul li > a {
  padding: 0 0.5rem;
  line-height: 1.25;
}
.Voting .DropdownMenu ul li > span {
  padding: 0 0.5rem;
  line-height: 1.25;
}

.DropdownMenu.Voting__voters_list ul {
  min-width: 140px;
}
.DropdownMenu.Voting__voters_list ul li > span {
  padding: 0.25rem 0.5rem;
  font-size: 82.5%;
  display: block;
}
.theme-original .DropdownMenu.Voting__voters_list ul li > span {
  color: #788187;
}
.theme-light .DropdownMenu.Voting__voters_list ul li > span {
  color: #788187;
}
.theme-dark .DropdownMenu.Voting__voters_list ul li > span {
  color: #A6B2BA;
}

.Voting__inner {
  padding-right: 0.8rem;
  margin-right: 0.6rem;
}
.theme-original .Voting__inner {
  border-right: 1px solid #f6f6f6;
}
.theme-light .Voting__inner {
  border-right: 1px solid #f6f6f6;
}
.theme-dark .Voting__inner {
  border-right: 1px solid #2c3136;
}
.Voting__inner .DropdownMenu .Icon.dropdown-arrow {
  margin-right: -0.5rem;
  position: relative;
  top: 2px;
}
.Voting__inner .cancel {
  font-size: 80%;
  padding: 0 0.4em;
  margin-left: 0.5rem;
  margin-right: 2px;
  background-color: #f8f8f8;
  border-radius: 50%;
  border: 1px solid #dadada;
  color: #8a8a8a;
}

.Voting__adjust_weight_down {
  right: 0;
  width: auto !important;
  max-width: 500px;
}
.theme-original .Voting__adjust_weight_down {
  background-color: #f8f8ff;
}
.theme-light .Voting__adjust_weight_down {
  background-color: #f4f4fd;
}
.theme-dark .Voting__adjust_weight_down {
  background-color: #212529;
}
.Voting__adjust_weight_down div.clear {
  clear: both;
}
.Voting__adjust_weight_down p, .Voting__adjust_weight_down span {
  white-space: normal !important;
}
.Voting__adjust_weight_down .weight-display {
  color: #ff0264 !important;
}
.Voting__adjust_weight_down .rangeslider {
  margin-right: 2rem;
}

.Voting__adjust_weight, .Voting__adjust_weight_down {
  padding: 20px 20px 20px;
  margin-right: 10px;
  width: 350px;
  min-width: 320px;
  overflow: hidden;
}
.Voting__adjust_weight .Icon:hover, .Voting__adjust_weight_down .Icon:hover {
  -webkit-animation: none !important;
          animation: none !important;
}
.Voting__adjust_weight .weight-display, .Voting__adjust_weight_down .weight-display {
  width: 3rem;
  float: left;
  margin-right: 0.5rem;
  text-align: right;
  color: #8a8a8a;
  line-height: 2.6rem;
}
.Voting__adjust_weight a.confirm_weight, .Voting__adjust_weight_down a.confirm_weight {
  float: left;
  width: 2rem;
  height: 2rem;
  line-height: 2.6rem;
}
.Voting__adjust_weight .rangeslider, .Voting__adjust_weight_down .rangeslider {
  position: relative;
  float: left;
  background: #e6e6e6;
}
.Voting__adjust_weight .rangeslider .rangeslider__fill, .Voting__adjust_weight_down .rangeslider .rangeslider__fill, .Voting__adjust_weight .rangeslider .rangeslider__handle, .Voting__adjust_weight_down .rangeslider .rangeslider__handle {
  position: absolute;
}
.Voting__adjust_weight .rangeslider, .Voting__adjust_weight_down .rangeslider, .Voting__adjust_weight .rangeslider .rangeslider__fill, .Voting__adjust_weight_down .rangeslider .rangeslider__fill {
  display: block;
  box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}
.Voting__adjust_weight .rangeslider .rangeslider__handle, .Voting__adjust_weight_down .rangeslider .rangeslider__handle {
  background: #fff;
  border: 1px solid #ccc;
  cursor: pointer;
  width: 30px;
  height: 30px;
  border-radius: 30px;
  top: 50%;
  transform: translate3d(-50%, -50%, 0);
}
.Voting__adjust_weight .rangeslider .rangeslider__handle:active, .Voting__adjust_weight_down .rangeslider .rangeslider__handle:active {
  background: #E31337;
  box-shadow: none;
}
.Voting__adjust_weight .rangeslider-horizontal, .Voting__adjust_weight_down .rangeslider-horizontal {
  height: 10px;
  width: 200px;
  background: none;
  float: left;
  margin-top: 18px;
}
.Voting__adjust_weight .rangeslider-horizontal .rangeslider__fill, .Voting__adjust_weight_down .rangeslider-horizontal .rangeslider__fill {
  height: 100%;
  background: #E31337;
  box-shadow: none;
  left: 0;
}
.Voting__adjust_weight .Voting__adjust_weight_close, .Voting__adjust_weight_down .Voting__adjust_weight_close {
  position: static;
  line-height: 2.6rem;
  font-size: 2rem;
  margin-left: 1rem;
}

@media screen and (max-width: 39.9375em) {
  .Voting__button-up .dropdown-pane {
    margin-top: -36px;
    position: absolute;
    left: 1rem;
  }
}
/* Medium and bigger */
@media screen and (min-width: 39.9375em) {
  .Voting__button-up {
    display: inline-block;
    position: relative;
  }
  .Voting__button-up .dropdown-pane {
    top: -18px;
    left: -28px;
  }
}
/* Pulse for upvote action */
@-webkit-keyframes pulse {
  0% {
    -webkit-box-shadow: 0 0 0 0 #06d6a9;
  }
  70% {
    -webkit-box-shadow: 0 0 0 10px #06d6a9;
  }
  100% {
    -webkit-box-shadow: 0 0 0 0 #06d6a9;
  }
}
@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 #06d6a9;
  }
  70% {
    box-shadow: 0 0 0 10px rgba(6, 214, 169, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(6, 214, 169, 0);
  }
}
.weight-container {
  min-width: 300px;
  width: 90%;
  margin: 0 auto;
  padding-bottom: 2px;
}

.FormattedAsset .prefix {
  padding-right: 0.1rem;
}

.ReplyEditor {
  max-width: 60rem;
  padding: 10px;
  margin-bottom: 15px;
  overflow-y: auto;
}
.theme-original .ReplyEditor {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-light .ReplyEditor {
  border-radius: 5px;
  border: 1px solid #eee;
  background-color: #fff;
}
.theme-dark .ReplyEditor {
  border-radius: 5px;
  border: 1px solid #2c3136;
  background-color: #2c3136;
}
.ReplyEditor.side-by-side {
  max-width: 100%;
}
.ReplyEditor .preview-container {
  max-width: 48rem;
  margin-left: 5rem;
}
.ReplyEditor .preview-container.side-by-side {
  max-width: 100%;
  margin-left: 0;
}
.ReplyEditor .vframe {
  display: block;
}
.ReplyEditor .vframe .public-DraftEditor-content {
  height: 20em;
  resize: vertical;
  color: #333;
}
.ReplyEditor .button {
  margin-bottom: 2em;
}
.ReplyEditor .button.hollow.no-border {
  background-color: transparent;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  text-decoration: none;
  font-weight: normal;
  font-size: 14px;
  font-size: 0.875rem;
  outline: none;
  text-shadow: 0 0 0 rgba(0, 0, 0, 0);
  border: transparent;
}
.ReplyEditor .side-by-side {
  height: calc(100vh - 140px);
}
.ReplyEditor .Preview-info {
  display: flex;
  justify-content: space-between;
  margin: 0.4em 0 1em;
}

input.ReplyEditor__altAuthor {
  width: 300px;
}

@media screen and (max-width: 63.9375em) {
  .ReplyEditor .side-by-side {
    height: auto;
  }
}
.comment-editor .ReplyEditor .column, .comment-editor .ReplyEditor .columns {
  flex: 100%;
  max-width: 100%;
}

.comment-editor .ReplyEditor .side-by-side {
  height: auto;
}

.upload-enabled {
  border-bottom: 1px dashed #ddd;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.drag-and-drop {
  font-size: 85%;
  padding: 3px 8px;
  margin: 0;
  color: #767676;
  background-color: #fafafa;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-bottom-right-radius: 3;
  border-bottom-left-radius: 3;
}

.PostFull .ReplyEditor__body {
  margin: 1rem 0 0;
}

.ReplyEditor__title {
  font-size: 1rem;
  font-weight: bold;
  padding: 0.5rem;
  height: auto;
}

.ReplyEditor__draft {
  position: fixed;
  bottom: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 5px;
  color: #BBB;
  font-size: 1.2em;
  text-align: center;
  z-index: 1;
  padding: 0.5rem 1rem;
}

.ReplyEditor__draft-hide {
  opacity: 0;
}

.ReplyEditor__draft-saved {
  transition: opacity 3s ease-in-out;
  opacity: 0;
}

.ReplyEditor .Preview {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.ReplyEditor .Preview .Markdown {
  border: 1px solid #e6e6e6;
  padding: 0 0.5rem;
}

.ReplyEditor__body {
  margin-top: 1rem;
  clear: both;
}

.ReplyEditor__options {
  font-size: 85%;
}
.ReplyEditor__options select {
  font-size: 100%;
  width: 10rem;
  height: auto;
  padding: 0.25rem 0.5rem;
  margin-left: 0.25rem;
}
.ReplyEditor__options label {
  font-size: 100%;
  text-transform: none;
}

.Dropdown__root___1B9ta {
  color: black !important;
}

.ReplyEditor__options__cover_image_selector {
  margin-top: 10px;
}

.ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container {
  width: 60px;
  height: 60px;
  margin-right: 5px;
  margin-bottom: 5px;
  border: 1px solid grey;
  background-size: cover;
  display: inline-block;
  transition: width 0.5s, height 0.5s;
  vertical-align: top;
  opacity: 0.5;
}
.ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  opacity: 1;
}
.theme-original .ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  border: 3px solid #E31337;
}
.theme-light .ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  border: 3px solid #E31337;
}
.theme-dark .ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container.selected {
  border: 3px solid #E31337;
}
.ReplyEditor__options__image_selector .ReplyEditor__options__image_selector__image_container:hover {
  opacity: 1;
  width: 120px;
  height: 120px;
}

.ReplyEditor--submit-buttons-container {
  display: flex;
  flex-direction: row;
}
@media screen and (max-width: 63.9375em) {
  .ReplyEditor--submit-buttons-container {
    flex-direction: column;
  }
}

.SlateEditor > div[contenteditable=true] {
  min-height: 12rem;
  color: #000;
  background-color: #ffffff;
  border-radius: 3px;
  border: 1px solid #cacaca;
  padding: 0.5rem;
}

.SlateEditor.Markdown a {
  border-bottom: 1px dotted #00f;
  position: relative;
}
.SlateEditor.Markdown a img {
  border: 1px dotted #00f;
}
.SlateEditor.Markdown div.active {
  box-shadow: 0 0 4px 2px #48C;
}
.SlateEditor.Markdown img.active {
  box-shadow: 0 0 2px 1px #48C;
}
.SlateEditor.Markdown hr.active {
  box-shadow: 0 0 2px 1px #48C;
}
.SlateEditor.Markdown a:hover:after {
  font-family: Arial;
  border-radius: 3px;
  padding: 1px 3px;
  background: #eee;
  content: attr(href);
  display: block;
  position: absolute;
  left: 0;
  top: 110%;
  line-height: 1;
  white-space: nowrap;
  font-size: 9pt;
  font-weight: normal;
  z-index: 99999;
  padding: 4px 8px;
  color: #ddd;
  transition: opacity 0.75s;
  background-image: linear-gradient(180deg, #464646, #151515);
}

.SlateEditor__sidebar {
  opacity: 0.25;
  font-size: 110%;
  padding: 1px;
  position: absolute;
  z-index: 1;
  top: -10000px;
  left: -10000px;
  margin-left: -10px;
  background-color: #222;
  border-radius: 4px;
  transition: opacity 0.75s;
  background-image: linear-gradient(180deg, #464646, #151515);
}
.SlateEditor__sidebar:hover {
  opacity: 1;
}
.SlateEditor__sidebar:after {
  top: 0.6rem;
  left: 100%;
  border: transparent solid;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-left-color: #464646;
  border-width: 5px;
  margin-left: 0px;
}

.SlateEditor__sidebar-button {
  display: block;
  color: white;
  padding: 1px 2px;
  min-width: 1.75rem;
  text-align: center;
}
.SlateEditor__sidebar-button svg {
  fill: white;
}
.SlateEditor__sidebar-button:hover svg {
  fill: #32cd32;
}

.SlateEditor__menu {
  font-size: 110%;
  padding: 1px;
  position: absolute;
  z-index: 1;
  top: -10000px;
  left: -10000px;
  margin-top: -6px;
  opacity: 0.9;
  background-color: #222;
  border-radius: 4px;
  transition: opacity 0.75s;
  background-image: linear-gradient(180deg, #464646, #151515);
}
.SlateEditor__menu:hover {
  opacity: 1;
}
.SlateEditor__menu:after {
  top: 100%;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-top-color: #151515;
  border-width: 5px;
  margin-left: -5px;
}
.SlateEditor__menu > * {
  display: inline-block;
}

.SlateEditor__menu-button {
  font-family: "Georgia", serif;
  color: #FFF;
  cursor: pointer;
  display: inline-block;
  width: 2rem;
  height: 1.75rem;
  text-align: center;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 2px;
}
.SlateEditor__menu-button > span path {
  fill: white;
}

.SlateEditor__menu-button[data-active=false]:hover,
.SlateEditor__menu-button[data-active=true] {
  color: #32cd32;
  background: rgba(0, 0, 0, 0.5);
}
.SlateEditor__menu-button[data-active=false]:hover > span path,
.SlateEditor__menu-button[data-active=true] > span path {
  fill: #32cd32;
}

.SlateEditor__menu-button-code > span > code {
  border: none;
  background: transparent;
  color: inherit;
  padding: 0;
  font-size: 90%;
  vertical-align: top;
}

.SlateEditor__menu-button-sup > span > span,
.SlateEditor__menu-button-sub > span > span {
  font-family: Arial;
  font-size: 80%;
  vertical-align: 4%;
}

.SlateEditor__menu-button-link .Icon,
.SlateEditor__menu-button-link .Icon > svg {
  width: 1rem;
  height: 1rem;
}

.SlateEditor__menu-button-block-quote > span > span {
  font-size: 220%;
  vertical-align: -45%;
  line-height: 1;
}

.DropdownMenu {
  position: relative;
  display: inline-block;
}
.DropdownMenu .Icon.dropdown-arrow {
  top: 2px;
  margin-right: 0;
}
.DropdownMenu > .VerticalMenu {
  visibility: hidden;
  min-width: 145px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  z-index: 1000;
  display: block;
  border-radius: 3px;
  opacity: 0;
  position: absolute;
  top: 100%;
  padding: 2px;
  transform: translateY(10%);
  transition: all 0.3s ease 0s, visibility 0s linear 0.3s;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
}
.theme-original .DropdownMenu > .VerticalMenu {
  background-color: #f8f8ff;
  border: 1px solid #788187;
}
.theme-light .DropdownMenu > .VerticalMenu {
  background-color: #f4f4fd;
  border: 1px solid #788187;
}
.theme-dark .DropdownMenu > .VerticalMenu {
  background-color: #212529;
  border: 1px solid #A6B2BA;
}
.DropdownMenu.show > .VerticalMenu {
  visibility: visible;
  opacity: 1;
  transform: translateX(0%);
  transition-delay: 0s;
}
.DropdownMenu.show > .VerticalMenu a {
  transition: 0.2s all ease-in-out;
}
.theme-original .DropdownMenu.show > .VerticalMenu a {
  color: #333;
}
.theme-light .DropdownMenu.show > .VerticalMenu a {
  color: #333;
}
.theme-dark .DropdownMenu.show > .VerticalMenu a {
  color: #fcfcfc;
}
.theme-original .DropdownMenu.show > .VerticalMenu a:hover {
  color: #004EFF;
}
.theme-light .DropdownMenu.show > .VerticalMenu a:hover {
  color: #E31337;
}
.theme-dark .DropdownMenu.show > .VerticalMenu a:hover {
  color: #E31337;
}
.DropdownMenu.left > .VerticalMenu {
  position: absolute;
  right: 0%;
}
.DropdownMenu.right > .VerticalMenu {
  position: absolute;
  left: 0%;
}
.DropdownMenu .DropdownMenu.move-left .VerticalMenu {
  left: -50%;
}

.VerticalMenu {
  width: 200px;
}
.VerticalMenu .Icon {
  padding-left: 0.1rem;
  margin-right: 14px;
  top: 0;
}
.theme-original .VerticalMenu svg path, .theme-original .VerticalMenu svg polygon {
  fill: #788187;
}
.theme-light .VerticalMenu svg path, .theme-light .VerticalMenu svg polygon {
  fill: #788187;
}
.theme-dark .VerticalMenu svg path, .theme-dark .VerticalMenu svg polygon {
  fill: #A6B2BA;
}
.VerticalMenu > li > a {
  color: #333333;
  line-height: 1rem;
  position: relative;
  transition: 0.2s all ease-in-out;
}
.VerticalMenu > li > a:hover {
  text-decoration: none;
}
.theme-original .VerticalMenu > li > a:hover {
  background-color: #f8f8ff;
}
.theme-light .VerticalMenu > li > a:hover {
  background-color: #f8f8ff;
}
.theme-dark .VerticalMenu > li > a:hover {
  background-color: #2C3A45;
}
.VerticalMenu > li.title {
  padding: 0.4rem;
  font-weight: bold;
  text-align: left;
  padding-left: 16px;
}
.theme-original .VerticalMenu > li.title {
  border-bottom: 1px solid #eee;
}
.theme-light .VerticalMenu > li.title {
  border-bottom: 1px solid #eee;
}
.theme-dark .VerticalMenu > li.title {
  border-bottom: 1px solid #2c3136;
}

.VotesAndComments {
  white-space: nowrap;
}
.VotesAndComments path {
  transition: 0.2s all ease-in-out;
}
.theme-original .VotesAndComments path {
  fill: #cacaca;
}
.theme-light .VotesAndComments path {
  fill: #cacaca;
}
.theme-dark .VotesAndComments path {
  fill: #A6B2BA;
}
.VotesAndComments circle {
  stroke: none;
}
.VotesAndComments a {
  font-weight: normal;
}

.VotesAndComments__votes {
  padding-right: 1rem;
}
.theme-original .VotesAndComments__votes {
  border-right: 1px solid #f6f6f6;
}
.theme-light .VotesAndComments__votes {
  border-right: 1px solid #f6f6f6;
}
.theme-dark .VotesAndComments__votes {
  border-right: 1px solid #2c3136;
}

.VotesAndComments__comments {
  padding: 0 1rem;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .VotesAndComments {
    display: block;
    width: auto;
    float: right;
  }
}
.TagList__horizontal {
  max-width: 48rem;
  margin: 0 auto 0.5rem;
}
.TagList__horizontal a {
  font-size: 95%;
  display: inline-block;
  margin: 0.1rem 0.4rem 0.1rem 0;
  padding: 0.1rem 0.3rem;
  border-radius: 0.3rem;
  transition: 0.2s all ease-in-out;
}
.theme-original .TagList__horizontal a {
  background: #f8f8ff;
  color: #333;
  border: 1px solid #eee;
}
.theme-light .TagList__horizontal a {
  background: #f8f8ff;
  color: #333;
  border: 1px solid #eee;
}
.theme-dark .TagList__horizontal a {
  background: #2C3A45;
  color: #fcfcfc;
  border: 1px solid #2c3136;
}
.theme-original .TagList__horizontal a:hover {
  background: #f8f8ff;
  color: #333;
  border: 1px solid #788187;
}
.theme-light .TagList__horizontal a:hover {
  background: #f4f4fd;
  color: #333;
  border: 1px solid #788187;
}
.theme-dark .TagList__horizontal a:hover {
  background: #212529;
  color: #fcfcfc;
  border: 1px solid #A6B2BA;
}

.Reputation {
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 1;
  padding: 0;
  margin-left: -1px;
  font-weight: normal;
  transition: 0.3s all ease-in-out;
}
.theme-original .Reputation {
  color: #333;
}
.theme-light .Reputation {
  color: #333;
}
.theme-dark .Reputation {
  color: #fcfcfc;
}
@media only screen and (min-width: 47.5em) {
  .Reputation {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.theme-original .Reblog__button path {
  fill: #cacaca;
}
.theme-light .Reblog__button path {
  fill: #cacaca;
}
.theme-dark .Reblog__button path {
  fill: #A6B2BA;
}

.theme-original .Reblog__button-active path {
  fill: #004EFF;
}
.theme-light .Reblog__button-active path {
  fill: #E31337;
}
.theme-dark .Reblog__button-active path {
  fill: #E31337;
}

.Reblog__button.loading {
  padding-right: 0.5rem;
}
.Reblog__button.loading svg {
  border: 1px solid #E31337;
  border-radius: 100%;
  border-right-color: transparent;
  border-top-color: transparent;
  -webkit-animation: loading 500ms infinite linear;
          animation: loading 500ms infinite linear;
}
.Reblog__button.loading svg path {
  opacity: 0;
}

.shareMenu {
  display: inline-block;
  vertical-align: middle;
  height: 2em;
}
.shareMenu > ul {
  list-style: none;
  display: inline;
  margin: 0;
}
.shareMenu > ul li {
  float: left;
  padding: 2px;
}
.theme-original .shareMenu > ul li > a:hover svg {
  fill: #004EFF;
}
.theme-light .shareMenu > ul li > a:hover svg {
  fill: #E31337;
}
.theme-dark .shareMenu > ul li > a:hover svg {
  fill: #E31337;
}

.Author {
  display: inline-block;
  /* coax footer link to behave similarly */
}
.Author .dropdown-arrow {
  position: relative;
  top: 3px;
  left: -2px;
}
.Author > span > strong > a {
  transition: 0.2s all ease-in-out;
}
.theme-original .Author > span > strong > a {
  color: #333;
}
.theme-light .Author > span > strong > a {
  color: #333;
}
.theme-dark .Author > span > strong > a {
  color: #fcfcfc;
}
.theme-original .Author > span > strong > a:hover, .theme-original .Author > span > strong > a:focus {
  color: #004EFF;
}
.theme-light .Author > span > strong > a:hover, .theme-light .Author > span > strong > a:focus {
  color: #E31337;
}
.theme-dark .Author > span > strong > a:hover, .theme-dark .Author > span > strong > a:focus {
  color: #E31337;
}

.Author__container {
  width: auto;
  padding: 0;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
  z-index: 10;
  font-size: inherit;
  position: absolute;
  width: 300px;
  border: 1px solid #cacaca;
  border-radius: 3px;
  font-size: 1rem;
}
.theme-original .Author__container {
  background-color: #fafaff;
  color: #333;
}
.theme-light .Author__container {
  background-color: #fafaff;
  color: #333;
}
.theme-dark .Author__container {
  background-color: #191c1f;
  color: #fcfcfc;
}
.Author__container .Author__dropdown {
  width: 290px;
  min-height: 108px;
}
.Author__container .Author__dropdown .Userpic {
  margin-right: 1rem;
  float: left;
  width: 75px;
  height: 75px;
}
.Author__container .Author__dropdown .Author__name {
  text-decoration: none;
  display: block;
  font-size: 110%;
  font-weight: 600;
  line-height: 1;
}
.theme-original .Author__container .Author__dropdown .Author__name {
  color: #333;
}
.theme-light .Author__container .Author__dropdown .Author__name {
  color: #333;
}
.theme-dark .Author__container .Author__dropdown .Author__name {
  color: #fcfcfc;
}
.Author__container .Author__dropdown .Author__username {
  text-decoration: none;
  font-size: 90%;
  font-weight: 400;
}
.theme-original .Author__container .Author__dropdown .Author__username {
  color: #788187;
}
.theme-light .Author__container .Author__dropdown .Author__username {
  color: #788187;
}
.theme-dark .Author__container .Author__dropdown .Author__username {
  color: #A6B2BA;
}
.Author__container .Author__dropdown .Author__bio {
  clear: both;
  font-size: 90%;
  padding: 10px 10px 0;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2em;
  margin-bottom: 8px;
}
.theme-original .Author__container .Author__dropdown .Author__bio {
  color: #788187;
}
.theme-light .Author__container .Author__dropdown .Author__bio {
  color: #788187;
}
.theme-dark .Author__container .Author__dropdown .Author__bio {
  color: #A6B2BA;
}

.UserNames .VerticalMenu li > a {
  padding: 0.25rem 0.5rem;
  line-height: 1.25;
}

.nav__block-list {
  margin: 0px;
  display: flex;
}

li.nav__block-list-item {
  margin: 0 10px;
  list-style: none;
  padding: 1.125rem 0.25rem;
  transition: 0.3s all ease-in-out;
  font-size: 1.125rem;
}
li.nav__block-list-item a {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
li.nav__block-list-item--active {
  box-shadow: 0px 5px 0px -2px #E31337;
}
li.nav__block-list-item--active a {
  color: #E31337;
}
li.nav__block-list-item:hover, li.nav__block-list-item:focus {
  box-shadow: 0px 5px 0px -2px #E31337;
}
li.nav__block-list-item:hover a, li.nav__block-list-item:focus a {
  color: #E31337;
}

form.search-input {
  height: 42px;
  /* small */
}
form.search-input svg.search-input__icon {
  position: absolute;
  pointer-events: none;
  stroke-width: 1.2;
  fill: none;
}
.theme-original form.search-input svg.search-input__icon {
  stroke: #4BA2F2;
}
.theme-light form.search-input svg.search-input__icon {
  stroke: #212529;
}
.theme-dark form.search-input svg.search-input__icon {
  stroke: #fff;
}
form.search-input input.search-input__inner {
  outline: none;
  padding: 9px 10px 11px 32px;
  border-radius: 25pc;
  transition: all 0.3s ease-in-out;
  font-size: 16px;
  background: transparent;
  box-shadow: none;
  width: 42px;
  height: 42px;
  color: transparent;
  cursor: pointer;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  border: 1px solid rgba(202, 202, 202, 0.6);
}
form.search-input input.search-input__inner::-moz-placeholder {
  color: transparent;
}
form.search-input input.search-input__inner:-ms-input-placeholder {
  color: transparent;
}
form.search-input input.search-input__inner::placeholder {
  color: transparent;
}
form.search-input input.search-input__inner:hover {
  background-color: #E31337;
}
form.search-input input.search-input__inner:focus {
  width: 180px;
  border-color: #E31337;
  padding-left: 2.5rem;
  background-color: transparent;
  cursor: auto;
}
.theme-original form.search-input input.search-input__inner:focus {
  border: #fff;
}
.theme-light form.search-input input.search-input__inner:focus {
  border: #fff;
}
.theme-dark form.search-input input.search-input__inner:focus {
  border: #2c3136;
}
.theme-original form.search-input input.search-input__inner:focus {
  color: #333;
}
.theme-light form.search-input input.search-input__inner:focus {
  color: #333;
}
.theme-dark form.search-input input.search-input__inner:focus {
  color: #fcfcfc;
}
form.search-input input.search-input__inner:focus::-moz-placeholder {
  color: #2C3A45;
}
form.search-input input.search-input__inner:focus:-ms-input-placeholder {
  color: #2C3A45;
}
form.search-input input.search-input__inner:focus::placeholder {
  color: #2C3A45;
}
form.search-input--expanded {
  height: 42px;
  /* small */
}
form.search-input--expanded svg.search-input__icon {
  position: absolute;
  pointer-events: none;
  stroke-width: 1.2;
  fill: none;
}
.theme-original form.search-input--expanded svg.search-input__icon {
  stroke: #4BA2F2;
}
.theme-light form.search-input--expanded svg.search-input__icon {
  stroke: #212529;
}
.theme-dark form.search-input--expanded svg.search-input__icon {
  stroke: #fff;
}
form.search-input--expanded input.search-input__inner {
  outline: none;
  padding: 9px 10px 11px 32px;
  border-radius: 25pc;
  transition: all 0.3s ease-in-out;
  font-size: 16px;
  background: transparent;
  height: 42px;
  color: transparent;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  width: 100%;
  border-color: #E31337;
  padding-left: 2.5rem;
  cursor: auto;
  border: 1px solid rgba(202, 202, 202, 0.6);
}
.theme-original form.search-input--expanded input.search-input__inner {
  color: #333;
}
.theme-light form.search-input--expanded input.search-input__inner {
  color: #333;
}
.theme-dark form.search-input--expanded input.search-input__inner {
  color: #fcfcfc;
}
.theme-original form.search-input--expanded input.search-input__inner::-moz-placeholder {
  color: #788187;
}
.theme-original form.search-input--expanded input.search-input__inner:-ms-input-placeholder {
  color: #788187;
}
.theme-original form.search-input--expanded input.search-input__inner::placeholder {
  color: #788187;
}
.theme-light form.search-input--expanded input.search-input__inner::-moz-placeholder {
  color: #788187;
}
.theme-light form.search-input--expanded input.search-input__inner:-ms-input-placeholder {
  color: #788187;
}
.theme-light form.search-input--expanded input.search-input__inner::placeholder {
  color: #788187;
}
.theme-dark form.search-input--expanded input.search-input__inner::-moz-placeholder {
  color: #A6B2BA;
}
.theme-dark form.search-input--expanded input.search-input__inner:-ms-input-placeholder {
  color: #A6B2BA;
}
.theme-dark form.search-input--expanded input.search-input__inner::placeholder {
  color: #A6B2BA;
}
.search-sort-order {
  margin-top: 10px;
}

.search-sort-order--title {
  margin-bottom: 3px;
}

.search-sort-order--select select {
  width: 200px;
}

.icon-button__svg {
  display: block;
  transition: all 0.3s ease-in-out;
}
.icon-button__svg.icon-button__svg--small {
  width: 32px;
  height: 32px;
}
@media only screen and (min-width: 47.5em) {
  .icon-button__svg.icon-button__svg--small {
    width: 32px;
    height: 32px;
  }
}
.icon-button__svg.icon-button__svg--medium {
  width: 36px;
  height: 36px;
}
@media only screen and (min-width: 47.5em) {
  .icon-button__svg.icon-button__svg--medium {
    width: 42px;
    height: 42px;
  }
}
.icon-button__svg.icon-button__svg--large {
  width: 42px;
  height: 42px;
}
@media only screen and (min-width: 47.5em) {
  .icon-button__svg.icon-button__svg--large {
    width: 48px;
    height: 48px;
  }
}
.icon-button__svg.icon-button__svg--green {
  fill: #E31337;
}
.icon-button__svg.icon-button__svg--transparent {
  fill: transparent;
}
.icon-button__svg .icon-button {
  transition: all 0.3s ease-in-out;
  stroke-width: 0.5;
}
.theme-original .icon-button__svg .icon-button.icon-button__border--transparent {
  stroke: #cacaca;
}
.theme-light .icon-button__svg .icon-button.icon-button__border--transparent {
  stroke: #cacaca;
}
.theme-dark .icon-button__svg .icon-button.icon-button__border--transparent {
  stroke: #A6B2BA;
}
.theme-original .icon-button__svg .icon-button.icon-button__border--green {
  stroke: #E31337;
}
.theme-light .icon-button__svg .icon-button.icon-button__border--green {
  stroke: #E31337;
}
.theme-dark .icon-button__svg .icon-button.icon-button__border--green {
  stroke: #E31337;
}
.icon-button__svg .icon-button.icon-button--transparent {
  fill-rule: evenodd;
}
.theme-original .icon-button__svg .icon-button.icon-button--transparent {
  fill: #4BA2F2;
}
.theme-light .icon-button__svg .icon-button.icon-button--transparent {
  fill: #212529;
}
.theme-dark .icon-button__svg .icon-button.icon-button--transparent {
  fill: #fff;
}
.icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  fill: transparent;
  stroke-width: 1;
}
.theme-original .icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #4BA2F2;
}
.theme-light .icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #212529;
}
.theme-dark .icon-button__svg .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #fff;
}
.icon-button__svg .icon-button.icon-button--green {
  fill-rule: evenodd;
}
.theme-original .icon-button__svg .icon-button.icon-button--green {
  fill: #fff;
}
.theme-light .icon-button__svg .icon-button.icon-button--green {
  fill: #fff;
}
.theme-dark .icon-button__svg .icon-button.icon-button--green {
  fill: #fff;
}
.icon-button__svg :hover {
  stroke: #eee;
  stroke-width: 0.5;
  cursor: pointer;
}
.theme-original .icon-button__svg :hover {
  fill: #1A5099;
}
.theme-light .icon-button__svg :hover {
  fill: #212529;
}
.theme-dark .icon-button__svg :hover {
  fill: #fff;
}
.icon-button__svg :hover .icon-button.icon-button__border {
  stroke-width: 2;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button__border {
  stroke: #1A5099;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button__border {
  stroke: #212529;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button__border {
  stroke: #fff;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button__svg {
  fill: #1A5099;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button__svg {
  fill: #212529;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button__svg {
  fill: #fff;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button--transparent {
  fill: #fcfcfc;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button--transparent {
  fill: #fcfcfc;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button--transparent {
  fill: #2C3A45;
}
.icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  fill: transparent;
  stroke-width: 1;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #fcfcfc;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #fcfcfc;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button--transparent.icon-button__magnifyingGlass {
  stroke: #2C3A45;
}
.theme-original .icon-button__svg :hover .icon-button.icon-button--green {
  fill: #fcfcfc;
}
.theme-light .icon-button__svg :hover .icon-button.icon-button--green {
  fill: #fcfcfc;
}
.theme-dark .icon-button__svg :hover .icon-button.icon-button--green {
  fill: #2C3A45;
}

.logo {
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}
.logo .logo__steemit {
  fill: #E31337;
  transition: 0.25s all ease-in-out;
}
@media (hover: hover) {
  .theme-original .logo:hover .logo__steemit, .theme-original .logo:active .logo__steemit {
    fill: #4BA2F2;
  }
  .theme-light .logo:hover .logo__steemit, .theme-light .logo:active .logo__steemit {
    fill: #212529;
  }
  .theme-dark .logo:hover .logo__steemit, .theme-dark .logo:active .logo__steemit {
    fill: #fff;
  }
}

.steem-market h4 {
  font-size: 1.125rem;
}
.steem-market .coin {
  margin-bottom: 1em;
}
.steem-market .chart {
  position: relative;
}
.steem-market .chart .caption {
  position: absolute;
  bottom: 0;
  margin-bottom: 10px;
  padding-left: 2px;
  padding-right: 2px;
  pointer-events: none;
  background-color: rgba(51, 51, 51, 0.1);
  color: #333333;
  font-size: 0.5em;
  font-weight: bold;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
}
.steem-market .coin-label {
  margin-top: -0.5em;
  font-size: 0.875rem;
}
.steem-market .coin-label .symbol {
  color: #788187;
}
.steem-market .coin-label .price {
  color: #09d6a8;
}
.steem-market .brought {
  font-size: 0.675em;
  color: #788187;
}

.theme-dark .steem-market .chart .caption {
  background-color: rgba(255, 255, 255, 0.2);
  color: white;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
}

.SanitizedLink--phishyLink {
  color: #ce0050;
  font-size: 75%;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.SanitizedLink--phishyLink .phishylink-reveal-link {
  padding-left: 0.5em;
  opacity: 0.5;
  font-size: 75%;
  text-decoration: underline;
}

.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown .Icon.dropdown-arrow {
  top: 2px;
  margin-right: 0;
}
.dropdown > .dropdown__content {
  visibility: hidden;
  min-width: 145px;
  z-index: 1000;
  display: block;
  border-radius: 3px;
  opacity: 0;
  position: absolute;
  top: 100%;
  padding: 2px;
  transform: translateY(10%);
  transition: all 0.3s ease 0s, visibility 0s linear 0.3s;
  box-shadow: 1px 1px 5px 0px rgba(50, 50, 50, 0.75);
}
.theme-original .dropdown > .dropdown__content {
  background-color: #f8f8ff;
  border: 1px solid #788187;
}
.theme-light .dropdown > .dropdown__content {
  background-color: #f4f4fd;
  border: 1px solid #788187;
}
.theme-dark .dropdown > .dropdown__content {
  background-color: #212529;
  border: 1px solid #A6B2BA;
}
.dropdown.show > .dropdown__content {
  visibility: visible;
  opacity: 1;
  transform: translateX(0%);
  transition-delay: 0s;
}
.dropdown.show > .dropdown__content a {
  transition: 0.2s all ease-in-out;
}
.theme-original .dropdown.show > .dropdown__content a:hover {
  color: #004EFF;
}
.theme-light .dropdown.show > .dropdown__content a:hover {
  color: #E31337;
}
.theme-dark .dropdown.show > .dropdown__content a:hover {
  color: #E31337;
}
.dropdown.left > .dropdown__content {
  position: absolute;
  right: 0%;
}
.dropdown.right > .dropdown__content {
  position: absolute;
  left: 0%;
}

.Notices {
  margin: 0;
  padding: 0;
}
.Notices__notice {
  list-style: none;
  margin-bottom: 0rem;
  line-height: 1.1;
}
.Notices__featured {
  background: #F76900;
  padding: 3px 4px;
  text-transform: uppercase;
  color: white;
  line-height: 1;
  display: inline-block;
  margin: 0;
  border-radius: 4px;
  letter-spacing: 1px;
  letter-spacing: 0.4px;
  font-weight: bold;
  font-size: 11px;
  font-size: 0.6875rem;
  margin-right: 6px;
}
.Notices__featured + .Notices__title {
  line-height: 1.4;
}
.Notices__featured + .Notices__title + .Notices__metadata {
  margin-top: 1px;
}
.Notices__title {
  margin: 0;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.3;
  display: inline;
}
.Notices__metadata {
  font-size: 12px;
  font-size: 0.75rem;
  margin-top: 4px;
  line-height: 1.4;
}
.theme-original .Notices__metadata {
  color: #788187;
}
.theme-light .Notices__metadata {
  color: #788187;
}
.theme-dark .Notices__metadata {
  color: #A6B2BA;
}
.Notices__by {
  text-transform: capitalize;
}

.PostCategoryBanner {
  margin: 0.5em 1em 1em 0;
  display: inline;
}
.PostCategoryBanner .postTo small {
  font-size: 100%;
  color: #666;
}
.PostCategoryBanner .postTo small .smallLabel {
  color: #333;
  font-weight: bold;
}
.PostCategoryBanner .categoryName {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.PostCategoryBanner h3 {
  line-height: normal !important;
  padding: 0 0 0 0.5em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.PostCategoryBanner--community-selector {
  display: inline;
  width: 200px;
}

.flag__button {
  cursor: pointer;
}
.flag__button .flag2 {
  display: none !important;
  visibility: hidden;
}
.flag__button:hover .flag1 {
  display: none !important;
  visibility: hidden;
}
.flag__button:hover .flag2 {
  visibility: visible;
  display: inline-block !important;
}
.flag__button:hover svg {
  fill: red;
}

.flag__button--post {
  position: absolute;
  right: 1em;
}

.visual-editor button {
  margin-right: 0 !important;
}
.visual-editor .DraftEditor-editorContainer > div {
  min-height: 200px;
}

.Header {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}
.theme-original .Header {
  background-color: #fff;
  border-bottom: 1px solid #eee;
}
.theme-light .Header {
  background-color: #fff;
  border-bottom: 1px solid #eee;
}
.theme-dark .Header {
  background-color: #2c3136;
  border-bottom: 1px solid #2c3136;
}

.Header__nav {
  display: flex;
  align-items: center;
  height: 4rem;
  max-width: none;
}

.ConnectionError {
  margin-right: 4rem;
  color: #ec5840;
}

.Header__logotype {
  transition: 0.2s all ease-in-out;
  height: 37px;
  display: flex;
  align-items: baseline;
}
.theme-original .Header__logotype .icon-svg {
  fill: #004EFF;
}
.theme-light .Header__logotype .icon-svg {
  fill: #E31337;
}
.theme-dark .Header__logotype .icon-svg {
  fill: #E31337;
}
.Header__logotype-beta {
  position: absolute;
  top: 38px;
  left: 136px;
}

.Header__sort {
  display: flex;
  justify-content: center;
}

@media only screen and (min-width: 75em) {
  .Header__search {
    display: none;
  }
}
.Header__search--desktop {
  display: none;
}
@media only screen and (min-width: 75em) {
  .Header__search--desktop {
    display: block;
  }
}

.Header__buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 4rem;
}
.Header__buttons > .Header__user-signup > a {
  padding-right: 0.25rem;
  font-size: 1.125rem;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.Header__buttons > .Header__user-signup > a.Header__signup-link {
  padding: 0.6rem;
  text-transform: none;
  margin: 0 0.75rem 0 0.5rem;
  white-space: nowrap;
}
.Header__buttons > a {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
@media only screen and (min-width: 20em) {
  .Header__buttons > a {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
}
.Header__buttons div.LoadingIndicator {
  padding-right: 0.75rem;
}

.Header__userpic {
  display: block;
  width: 36px;
  height: 36px;
  position: relative;
}
.Header__userpic .Userpic {
  width: 36px;
  height: 36px;
}
@media only screen and (min-width: 47.5em) {
  .Header__userpic .Userpic {
    width: 40px;
    height: 40px;
    position: relative;
    top: -2px;
  }
}

.Header__notification {
  position: absolute;
  width: 20px;
  height: 20px;
  top: -10px;
  right: -10px;
  border-radius: 50%;
  background: red;
  line-height: 20px;
  font-size: 11px;
  text-align: center;
  z-index: 2;
}
.Header__notification > span {
  color: white;
}
.Header__notification--loading {
  background: transparent;
}

span.Header__hamburger.toggle-menu {
  width: 1rem;
  height: 1rem;
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
  margin-left: 0.25rem;
  cursor: pointer;
}
span.Header__hamburger.toggle-menu::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #333333;
  box-shadow: 0 7px 0 #333333, 0 14px 0 #333333;
  content: "";
}
span.Header__hamburger.toggle-menu:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}
@media only screen and (min-width: 20em) {
  span.Header__hamburger.toggle-menu {
    margin-left: 0.5rem;
  }
}
@media only screen and (min-width: 47.5em) {
  span.Header__hamburger.toggle-menu {
    margin-left: 0.75rem;
  }
}
span.Header__hamburger.toggle-menu::after {
  transition: 0.2s all ease-in-out;
}
.theme-original span.Header__hamburger.toggle-menu::after {
  background: #333;
  box-shadow: 0 7px 0 #333, 0 14px 0 #333;
}
.theme-light span.Header__hamburger.toggle-menu::after {
  background: #333;
  box-shadow: 0 7px 0 #333, 0 14px 0 #333;
}
.theme-dark span.Header__hamburger.toggle-menu::after {
  background: #fcfcfc;
  box-shadow: 0 7px 0 #fcfcfc, 0 14px 0 #fcfcfc;
}
.theme-original span.Header__hamburger.toggle-menu:hover::after {
  background: #004EFF;
  box-shadow: 0 7px 0 #004EFF, 0 14px 0 #004EFF;
}
.theme-light span.Header__hamburger.toggle-menu:hover::after {
  background: #E31337;
  box-shadow: 0 7px 0 #E31337, 0 14px 0 #E31337;
}
.theme-dark span.Header__hamburger.toggle-menu:hover::after {
  background: #E31337;
  box-shadow: 0 7px 0 #E31337, 0 14px 0 #E31337;
}

.annoucement-banner {
  text-align: left;
  position: relative;
  background: #171FC9;
  color: #fff;
}
.theme-original .annoucement-banner {
  border-bottom: 1px solid #f6f6f6;
}
.theme-light .annoucement-banner {
  border-bottom: 1px solid #f6f6f6;
}
.theme-dark .annoucement-banner {
  border-bottom: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .annoucement-banner {
    text-align: center;
  }
}
.annoucement-banner .close-button {
  position: absolute;
  top: 2px;
  right: 0px;
  transform: scale(0.85);
  color: #fff;
}
.annoucement-banner .close-button:hover, .annoucement-banner .close-button:focus {
  color: #ccc;
}

.announcement-banner__text {
  margin: 0;
  padding: 10px 44px 10px 10px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.3;
}

.announcement-banner__link {
  color: #fafafa !important;
  text-decoration: underline;
}

.LoginForm {
  max-width: 28rem;
  margin: 1rem auto 0.5rem auto;
}
.LoginForm label {
  text-transform: none;
}
.LoginForm form {
  margin-top: 1.5rem;
}
.LoginForm .buttons {
  text-align: center;
}

.pdf-download {
  margin-top: 1em;
  margin-bottom: 1em;
}
.pdf-download button {
  color: #1A5099;
  text-transform: initial;
  cursor: pointer;
}

.sign-up .button {
  background-color: transparent;
  padding-top: 1rem;
  padding-bottom: 1rem;
  font-size: 1.2rem;
  text-transform: none;
}
.sign-up .button.hollow {
  border: 1px solid #ddd;
  color: #212529;
  transition: 0.2s all ease-in-out;
  font-size: 16px;
  font-size: 1rem;
}
.sign-up .button.hollow:hover {
  border: 1px solid #d81233;
  color: #d81233;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}
.sign-up em {
  font-weight: bold;
  font-style: normal;
}
.sign-up hr {
  margin: 1.75rem auto 2rem auto;
}
.sign-up p {
  margin-bottom: 1rem;
}

.LoginForm__save-login {
  margin-top: 0.5rem;
}

.divider {
  display: flex;
  align-items: center;
  font-size: 14px;
}

.divider::before, .divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #ccc;
}

.divider::before {
  margin-right: 10px;
}

.divider::after {
  margin-left: 10px;
}

#btn-hivesigner {
  color: #fff;
  border-color: #d1d5da;
  background: #d1d5da;
}
#btn-hivesigner:hover {
  background: #A6A6A6;
}
#btn-hivesigner img {
  width: 140px;
}

.SidePanel {
  display: block;
}
.SidePanel__hide-signup {
  display: none;
}
.SidePanel .menu > li.last {
  border-bottom: 1px solid #212529;
  color: #A6B2BA;
}
.SidePanel > div {
  background-color: #11161A;
  color: #fff;
  padding-top: 3rem;
  position: fixed;
  z-index: 1000;
  top: 0;
  width: 250px;
  height: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  transition: visibility 250ms, transform ease 250ms;
}
.SidePanel > div .close-button {
  color: #fff;
}
.SidePanel > div .menu > li > a {
  transition: 0.2s all ease-in-out;
  border-top: 1px solid #212529;
  color: #fff;
  border-bottom: 1px solid #11161A;
}
.SidePanel > div .menu > li > a:hover, .SidePanel > div .menu > li:focus {
  background-color: #212529;
  border-bottom: 1px solid #E31337;
}
.SidePanel > div .menu > li > a:hover path, .SidePanel > div .menu > li:focus path {
  fill: #E31337;
}
.SidePanel > div .menu > li path {
  fill: #A6B2BA;
}
.SidePanel > div .menu > li a.menu-section {
  color: #A6B2BA;
}
.SidePanel > div .menu > li a.menu-section:hover, .SidePanel > div .menu > li a.menu-section:focus {
  cursor: default;
  background-color: inherit;
  border-bottom: 1px solid #11161A;
}
.SidePanel > div ul:nth-of-type(n+3) {
  margin-top: 2rem;
}
.SidePanel > div.left {
  left: -250px;
}
.SidePanel > div.visible.left {
  transform: translate3d(250px, 0, 0);
}
.SidePanel > div.right {
  right: -250px;
  visibility: hidden;
  overflow-y: auto;
}
.SidePanel > div.visible.right {
  transform: translate3d(-250px, 0, 0);
  visibility: visible;
}
.SidePanel .Icon.extlink {
  position: relative;
  top: 3px;
  left: 2px;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .SidePanel div ul:nth-of-type(n+2) {
    margin-top: 2rem;
  }
  .SidePanel > div > .menu > li > a {
    padding: 0.3rem 1rem;
  }
}
.Settings .button {
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s all ease-in-out;
  text-transform: capitalize;
  border-radius: 0;
  font-size: 18px;
  font-size: 1.125rem;
}
.theme-original .Settings .button {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 transparent;
  color: #fcfcfc;
}
.theme-light .Settings .button {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #fcfcfc;
}
.theme-dark .Settings .button {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0), 5px 5px 0 0 #E31337;
  color: #2C3A45;
}
.theme-original .Settings .button:hover, .theme-original .Settings .button:focus {
  background-color: #4BA2F2;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0;
  color: #fcfcfc;
}
.theme-light .Settings .button:hover, .theme-light .Settings .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #212529;
  color: #fff;
}
.theme-dark .Settings .button:hover, .theme-dark .Settings .button:focus {
  background-color: #E31337;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1), 7px 7px 0 0 #fff;
  color: #fff;
}
.Settings .button.disabled, .Settings .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
}
.theme-original .Settings .button.disabled:hover, .theme-original .Settings .button[disabled]:hover {
  background-color: #1A5099;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-light .Settings .button.disabled:hover, .theme-light .Settings .button[disabled]:hover {
  background-color: #212529;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #fcfcfc;
}
.theme-dark .Settings .button.disabled:hover, .theme-dark .Settings .button[disabled]:hover {
  background-color: #fff;
  box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0);
  color: #2C3A45;
}
.Settings .success, .Settings .error {
  text-transform: capitalize;
  padding-left: 8px;
}
.theme-original .Settings .success {
  color: #004EFF;
}
.theme-light .Settings .success {
  color: #E31337;
}
.theme-dark .Settings .success {
  color: #E31337;
}
.Settings p.error {
  position: relative;
  top: 4px;
  line-height: 1.2;
}
.Settings div.error {
  padding-left: 0;
}
.Settings label {
  text-transform: none !important;
}
.Settings h4 {
  font-weight: bold;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.125rem !important;
}
.Settings form .form__field {
  margin: 0;
}
.Settings .form__field {
  margin-bottom: 10px;
}

.UserWallet__claimbox {
  margin: 1rem 0;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.theme-original .UserWallet__claimbox {
  border: 1px solid #eee;
  background-color: #f3faf0;
  color: #333;
}
.theme-light .UserWallet__claimbox {
  border: 1px solid #eee;
  background-color: #f3faf0;
  color: #333;
}
.theme-dark .UserWallet__claimbox {
  border: 1px solid #2c3136;
  background-color: #11161A;
  color: #fcfcfc;
}
.UserWallet__claimbox .button {
  font-size: 14px;
  font-size: 0.875rem;
  margin: 0;
}

@media print, screen and (min-width: 40em) {
  .post_advanced_settings h4 {
    font-size: 1.25rem;
  }
}

.PostsList {
  clear: right;
}

.c-sidebar__module.CommunityPaneMobile {
  padding: 0.75em 1em 0em;
}

.PostsList__summaries {
  list-style-type: none;
  margin-left: 0;
}

.PostsIndex .articles__h1--no-wrap {
  white-space: nowrap;
}

.PostsIndex__topics {
  border-left: 1px solid #e6e6e6;
}

.PostsIndex__topics_compact {
  float: right;
  width: 15rem;
  position: relative;
  top: -0.8rem;
}
.PostsIndex__topics_compact > select {
  border: none;
  border-bottom: 1px solid #cacaca;
  border-radius: 0;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  .PostsIndex__left {
    padding: 0;
  }

  .PostsIndex__topics_compact {
    padding: 0 0.5rem;
    float: none;
    width: auto;
  }
}
/* Medium and up */
@media screen and (min-width: 39.94em) {
  .PostsIndex__summaries > li:first-child .PostSummary {
    margin-top: 0;
    padding-top: 0;
  }
}
.content-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
@media only screen and (min-width: 47.5em) {
  .content-container {
    flex-wrap: nowrap;
    align-items: flex-start;
  }
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.c-sidebar {
  width: 100%;
  flex: 0 0 320px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.c-sidebar__module {
  padding: 1.5em 2em;
  margin-bottom: 1em;
  box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0);
  transition: 0.2s box-shadow ease-in-out;
  -webkit-animation: 1s ease-out 0s 1 fadeIn;
          animation: 1s ease-out 0s 1 fadeIn;
}
.theme-original .c-sidebar__module {
  border-radius: 5px;
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-light .c-sidebar__module {
  border-radius: 5px;
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-dark .c-sidebar__module {
  border-radius: 5px;
  background-color: #2c3136;
  border: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .c-sidebar__module:hover {
    box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0.03);
  }
}
.c-sidebar--left {
  display: none;
  order: 1;
}
@media only screen and (min-width: 47.5em) {
  .c-sidebar--left {
    display: block;
    margin-left: 1em;
  }
}
.c-sidebar--right {
  display: none;
  order: 3;
}
@media only screen and (min-width: 75em) {
  .c-sidebar--right {
    display: block;
    margin-right: 1em;
  }
}
.c-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-sidebar .li:last-child {
  margin-bottom: 0;
}
.c-sidebar__h3 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  font-size: 18px;
  font-size: 1.125rem;
  margin: 0 0 16px 0;
}
.c-sidebar__h3--inline {
  display: inline;
}
.c-sidebar__link {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.c-sidebar__link--emphasis {
  font-size: 1rem;
  margin: 1rem 0 0;
  font-weight: bold;
}
.c-sidebar__more-link {
  display: inline-block;
  margin-bottom: 1.3em;
}
.c-sidebar__label {
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  margin-bottom: 2px;
}
.c-sidebar__score {
  font-weight: bold;
  font-size: 17px;
  font-size: 1.0625rem;
  margin-bottom: 24px;
}

.PostsIndex.row {
  max-width: 860px;
  display: flex;
  flex-wrap: nowrap;
  margin: 0 auto;
}
@media only screen and (min-width: 75em) {
  .PostsIndex.row {
    max-width: 1240px;
  }
}

.PostsIndex.row.layout-list {
  max-width: none;
}
@media only screen and (min-width: 75em) {
  .PostsIndex.row.layout-list {
    max-width: 1600px;
  }
}

.articles {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  padding: 0em 1em;
  transition: all 0.2s ease-out;
  border: transparent;
  min-width: 300px;
  width: 100%;
  margin: 0 auto;
  background-color: transparent;
  box-shadow: none;
}
.articles h2 {
  font-family: sans-serif;
}
@media only screen and (min-width: 47.5em) {
  .articles {
    padding: 0em 1em;
    min-width: 500px;
    max-width: 664px;
    order: 2;
  }
}
@media only screen and (min-width: 75em) {
  .articles {
    min-width: 550px;
    max-width: 664px;
  }
  .theme-original .articles {
    border: transparent;
  }
  .theme-light .articles {
    border: transparent;
  }
  .theme-dark .articles {
    border: transparent;
  }
}
.articles__hr {
  margin-bottom: 20px;
  margin-top: 0px;
}
.theme-original .articles__hr {
  border-bottom: 1px solid #eee;
}
.theme-light .articles__hr {
  border-bottom: 1px solid #eee;
}
.theme-dark .articles__hr {
  border-bottom: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .articles__hr {
    display: none;
  }
}
.articles__layout-selector {
  display: none;
  cursor: pointer;
}
@media only screen and (min-width: 64em) {
  .articles__layout-selector {
    display: flex;
    float: right;
  }
}
@media only screen and (min-width: 40em) {
  .articles__layout-selector {
    display: flex;
    justify-content: flex-end;
  }
}
.articles__icon--layout {
  width: 24px;
  height: 24px;
  position: relative;
}
.articles__summary {
  margin: 0;
  transition: 0.2s all ease-in-out;
  border: transparent;
  padding-bottom: 0;
}
.theme-original .articles__summary {
  background-color: #fff;
}
.theme-light .articles__summary {
  background-color: #fff;
}
.theme-dark .articles__summary {
  background-color: #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .articles__summary {
    margin: 0 0 40px;
    box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0);
    padding-bottom: 0;
  }
  .theme-original .articles__summary {
    border: 1px solid #eee;
  }
  .theme-light .articles__summary {
    border: 1px solid #eee;
  }
  .theme-dark .articles__summary {
    border: 1px solid #2c3136;
  }
}
@media only screen and (min-width: 47.5em) {
  .articles__summary:hover {
    box-shadow: 0px 5px 10px 0 rgba(0, 0, 0, 0.03);
  }
}
.articles__resteem-icon {
  position: relative;
  top: -1px;
  padding-right: 2px;
}
.articles__summary-header {
  display: flex;
  align-items: center;
  padding: 6px 0 8px;
  position: relative;
}
@media only screen and (min-width: 47.5em) {
  .articles__summary-header {
    padding: 10px 16px 5px;
  }
  .theme-original .articles__summary-header {
    border-bottom: 1px solid #eee;
  }
  .theme-light .articles__summary-header {
    border-bottom: 1px solid #eee;
  }
  .theme-dark .articles__summary-header {
    border-bottom: 1px solid #2c3136;
  }
}
.theme-original .articles__summary-header--footer {
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.theme-light .articles__summary-header--footer {
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.theme-dark .articles__summary-header--footer {
  border-top: 1px solid #2c3136;
  border-bottom: 1px solid #2c3136;
}
@media only screen and (min-width: 47.5em) {
  .theme-original .articles__summary-header--footer {
    border-bottom: transparent;
  }
  .theme-light .articles__summary-header--footer {
    border-bottom: transparent;
  }
  .theme-dark .articles__summary-header--footer {
    border-bottom: transparent;
  }
}
.articles__summary-footer {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  font-size: 15px;
  font-size: 0.9375rem;
}
@media only screen and (min-width: 47.5em) {
  .articles__summary-footer {
    padding: 16px;
  }
  .theme-original .articles__summary-footer {
    border-top: 1px solid #eee;
  }
  .theme-light .articles__summary-footer {
    border-top: 1px solid #eee;
  }
  .theme-dark .articles__summary-footer {
    border-top: 1px solid #2c3136;
  }
}
.articles__summary-footer a {
  font-size: 15px;
  font-size: 0.9375rem;
}
.articles__header {
  padding-top: 5px;
  padding-bottom: 10px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  line-height: 1;
  min-height: 50px;
}
@media only screen and (min-width: 47.5em) {
  .articles__header {
    padding-top: 0;
  }
}
.articles__header-select select {
  max-width: 300px;
}
.articles__header-col--right {
  order: 1;
  width: 100%;
}
@media only screen and (min-width: 370px) {
  .articles__header-col--right {
    width: auto;
    order: 2;
  }
}
.articles__resteem {
  padding-bottom: 0px;
  margin-top: 6px;
}
@media only screen and (min-width: 47.5em) {
  .articles__resteem {
    padding-bottom: 5px;
  }
  .theme-original .articles__resteem {
    border-bottom: 1px solid #eee;
  }
  .theme-light .articles__resteem {
    border-bottom: 1px solid #eee;
  }
  .theme-dark .articles__resteem {
    border-bottom: 1px solid #2c3136;
  }
}
.articles__resteem-text {
  font-size: 13px;
  font-size: 0.8125rem;
  margin-bottom: 0px;
}
.theme-original .articles__resteem-text {
  color: #788187;
}
.theme-light .articles__resteem-text {
  color: #788187;
}
.theme-dark .articles__resteem-text {
  color: #A6B2BA;
}
@media only screen and (min-width: 47.5em) {
  .articles__resteem-text {
    margin-bottom: 2px;
    font-size: 14px;
    font-size: 0.875rem;
  }
}
.articles__resteem-username {
  text-decoration: none;
}
.articles__icon-100 {
  padding-left: 8px;
  display: inline-block;
  position: relative;
  top: -1px;
  transform: scale(0.9);
  transform-origin: center;
}
.articles__h1 {
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  font-size: 18px;
  font-size: 1.125rem;
  margin: 0;
}
@media only screen and (min-width: 47.5em) {
  .articles__h1 {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
.articles__h2 {
  margin: 0;
  font-size: 16px;
  font-size: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  -webkit-line-clamp: 3;
  flex-direction: column;
}
.articles__h2 a {
  font-weight: bold;
}
.theme-original .articles__h2 a {
  color: #333;
}
.theme-light .articles__h2 a {
  color: #333;
}
.theme-dark .articles__h2 a {
  color: #fcfcfc;
}
.theme-original .articles__h2 a:visited {
  color: #788187;
}
.theme-light .articles__h2 a:visited {
  color: #788187;
}
.theme-dark .articles__h2 a:visited {
  color: #A6B2BA;
}
@media only screen and (min-width: 47.5em) {
  .articles__h2 {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
.articles__h3 {
  display: inline;
}
.articles__tag-selector {
  display: inline-block;
}
.articles__tag-selector select.Topics {
  margin-bottom: 0 !important;
  border: transparent;
  background-color: transparent;
  border-bottom: 1px solid #999;
  border-radius: 0;
  position: relative;
  top: -4px;
  margin-top: 12px;
}
.theme-original .articles__tag-selector select.Topics {
  color: #788187;
}
.theme-light .articles__tag-selector select.Topics {
  color: #788187;
}
.theme-dark .articles__tag-selector select.Topics {
  color: #A6B2BA;
}
@media only screen and (min-width: 370px) {
  .articles__tag-selector select.Topics {
    margin-top: 0;
  }
}
@media only screen and (min-width: 75em) {
  .articles__tag-selector {
    display: none;
  }
}
.articles__p {
  margin: 0;
  padding-top: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  -webkit-line-clamp: 3;
  flex-direction: column;
}
.articles__link {
  text-decoration: none;
}
.theme-original .articles__link {
  color: #333;
}
.theme-light .articles__link {
  color: #333;
}
.theme-dark .articles__link {
  color: #fcfcfc;
}
@media only screen and (min-width: 47.5em) {
  .articles__text-content {
    padding: 0 1.2em;
  }
}
.articles__tags {
  font-size: 14px;
  font-size: 0.875rem;
  margin-bottom: 18px;
}
.theme-original .articles__tags {
  color: #788187;
}
.theme-light .articles__tags {
  color: #788187;
}
.theme-dark .articles__tags {
  color: #A6B2BA;
}
.articles__tag-link {
  font-size: 14px;
  font-size: 0.875rem;
}
.theme-original .articles__tag-link {
  color: #788187;
}
.theme-light .articles__tag-link {
  color: #788187;
}
.theme-dark .articles__tag-link {
  color: #A6B2BA;
}
.articles__flag {
  width: 24px;
  height: auto;
  position: absolute;
  right: -4px;
  top: 0px;
  padding: 2px;
}
@media only screen and (min-width: 47.5em) {
  .articles__flag {
    right: 10px;
    top: 12px;
  }
}
.articles__flag .icon-flag-svg {
  transition: 0.2s all ease-in-out;
}
.theme-original .articles__flag .icon-flag-svg {
  fill: #788187;
}
.theme-light .articles__flag .icon-flag-svg {
  fill: #788187;
}
.theme-dark .articles__flag .icon-flag-svg {
  fill: #A6B2BA;
}
.articles__flag:hover {
  cursor: pointer;
}
.theme-original .articles__flag:hover .icon-flag-svg {
  fill: #ff0264;
}
.theme-light .articles__flag:hover .icon-flag-svg {
  fill: #ff0264;
}
.theme-dark .articles__flag:hover .icon-flag-svg {
  fill: #ff0264;
}
.articles__content-block {
  margin-bottom: 16px;
}
@media only screen and (min-width: 47.5em) {
  .articles__content-block--text {
    margin-top: 1em;
  }
}
.articles__content-block--img + .articles__content-block--text {
  margin-top: 0;
}
@media only screen and (min-width: 47.5em) {
  .articles__resteem, .articles__content-block--text, .articles__metadata {
    padding-left: 1.1em;
    padding-right: 1.1em;
  }
}

.user {
  display: flex;
  align-items: center;
  margin-right: 8px;
}
.user__col {
  line-height: 1;
}
.user__col--right {
  position: relative;
  top: -2px;
}
.user__link:hover .user__username {
  transition: 0.2s all ease-in-out;
}
.theme-original .user__link:hover .user__username {
  color: #004EFF;
}
.theme-light .user__link:hover .user__username {
  color: #E31337;
}
.theme-dark .user__link:hover .user__username {
  color: #E31337;
}
.user__profile-img {
  width: 40px !important;
  height: 40px !important;
  margin-right: 8px;
  transition: width 0.2s ease-out;
}
@media only screen and (min-width: 47.5em) {
  .user__profile-img {
    width: 48px !important;
    height: 48px !important;
    margin-right: 10px;
  }
}
.user__name {
  display: inline;
  font-weight: bold;
  padding-right: 2px;
  margin: 0;
  line-height: 1.2;
}
.user__name a {
  font-weight: bold;
  font-size: 14px;
  font-size: 0.875rem;
}
@media only screen and (min-width: 47.5em) {
  .user__name a {
    font-size: 16px;
    font-size: 1rem;
  }
}
.user__username, .user__reputation {
  font-weight: normal;
  font-size: 14px;
  font-size: 0.875rem;
}

.timestamp__link {
  text-decoration: none;
}
.timestamp__time {
  font-weight: normal;
  font-size: 14px;
  font-size: 0.875rem;
}

.icon-svg {
  transition: 0.2s all 0.05s ease-in-out;
}
.theme-original .icon-svg {
  fill: #788187;
}
.theme-light .icon-svg {
  fill: #788187;
}
.theme-dark .icon-svg {
  fill: #A6B2BA;
}
.theme-original .icon-svg--accent {
  fill: #004EFF;
}
.theme-light .icon-svg--accent {
  fill: #E31337;
}
.theme-dark .icon-svg--accent {
  fill: #E31337;
}
.icon-svg--layout-line1, .icon-svg--layout-line2, .icon-svg--layout-line3 {
  height: 2px;
  opacity: 1;
  filter: alpha(opacity=100);
  transition: 0.3s all ease-in-out;
}
.icon-svg--layout-line2 {
  y: 11px;
}
.icon-svg--layout-line1 {
  y: 6px;
}
.icon-svg--layout-line3 {
  y: 16px;
}

.articles__layout-selector {
  display: inline-block;
}
.theme-original .articles__layout-selector .icon-svg--accent {
  fill: #788187;
}
.theme-light .articles__layout-selector .icon-svg--accent {
  fill: #788187;
}
.theme-dark .articles__layout-selector .icon-svg--accent {
  fill: #A6B2BA;
}

.theme-original .articles__layout-selector:hover .icon-svg--accent {
  fill: #333;
}
.theme-light .articles__layout-selector:hover .icon-svg--accent {
  fill: #333;
}
.theme-dark .articles__layout-selector:hover .icon-svg--accent {
  fill: #fcfcfc;
}

a#changeLayout:focus {
  outline: none;
}

@media only screen and (min-width: 47.5em) {
  .layout-list {
    transition: 0.3s all ease-in-out;
  }
  .layout-list .icon-svg--layout-line3 {
    y: 22px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
  .layout-list .icon-svg--layout-line1, .layout-list .icon-svg--layout-line2 {
    height: 4px;
  }
  .layout-list .icon-svg--layout-line2 {
    y: 14px;
  }
  .layout-list .icon-svg--layout-line1 {
    y: 6px;
  }
  .layout-list .c-sidebar--right {
    display: none;
    max-width: 320px;
    order: 3;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 75em) {
  .layout-list .c-sidebar--right {
    display: block;
    margin-right: 1em;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles {
    max-width: none;
    max-width: 1056px;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 100em) {
  .layout-list .articles {
    min-width: 850px;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-original .layout-list .articles {
    background-color: transparent;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-light .layout-list .articles {
    background-color: transparent;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-dark .layout-list .articles {
    background-color: transparent;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__hr {
    display: block;
  }
  .theme-original .layout-list .articles__hr {
    border-bottom: 1px solid #eee;
  }
  .theme-light .layout-list .articles__hr {
    border-bottom: 1px solid #eee;
  }
  .theme-dark .layout-list .articles__hr {
    border-bottom: 1px solid #2c3136;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__summary {
    border: transparent;
    box-shadow: none;
    padding-bottom: 0px;
    margin: 0;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__summary {
    padding-bottom: 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__h2 {
    font-size: 15px;
    font-size: 0.9375rem;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__h2 {
    -webkit-line-clamp: 1;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 100em) {
  .layout-list .articles__h2 {
    -webkit-line-clamp: 1;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__feature-img-container {
    overflow: hidden;
    width: 130px;
    height: 77px;
    position: relative;
    display: inline-block;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__feature-img {
    position: absolute;
    width: 100% !important;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__summary-header {
    padding: 2px 0;
    border: transparent;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__summary-footer {
    padding: 2px 0 5px;
    border: transparent;
    padding: 4px;
    padding-top: 3px;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__p {
    font-size: 15px;
    font-size: 0.9375rem;
    -webkit-line-clamp: 1;
    padding-right: 6px;
    margin-top: 2px;
    padding-top: 0px;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__content {
    display: flex;
    align-items: top;
  }
}
@media only screen and (min-width: 47.5em) {
  .theme-original .layout-list .articles__footer {
    border-top: 1px solid #f6f6f6;
    margin-top: 0.25em;
  }
  .theme-light .layout-list .articles__footer {
    border-top: 1px solid #f6f6f6;
    margin-top: 0.25em;
  }
  .theme-dark .layout-list .articles__footer {
    border-top: 1px solid #2c3136;
    margin-top: 0.25em;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__content-block {
    margin-bottom: 0;
  }
  .layout-list .articles__content-block--img {
    margin-right: 14px;
  }
  .layout-list .articles__content-block--text {
    margin-top: 0;
    min-width: 300px;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__tags {
    margin: 4px 0 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__flag {
    top: 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles__resteem {
    padding-bottom: 0;
    border-bottom: transparent;
  }
}
@media only screen and (min-width: 47.5em) and (min-width: 47.5em) {
  .layout-list .articles__resteem, .layout-list .articles__content-block--text, .layout-list .articles__metadata {
    padding-left: 0;
    padding-right: 0;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .articles .articles__hr {
    margin-bottom: 0.3em;
    display: none;
  }
}
@media only screen and (min-width: 47.5em) {
  .layout-list .user__name {
    font-size: 15px;
    font-size: 0.9375rem;
    font-weight: normal;
  }
  .layout-list .user__name a {
    font-size: 14px;
    font-size: 0.875rem;
  }
}

.layout-list .user > .user__col > .user__link > .Userpic {
  width: 24px !important;
  height: 24px !important;
  margin-right: 8px;
}

.layout-block .Userpic {
  margin-right: 8px;
}
@media only screen and (min-width: 47.5em) {
  .layout-block .Userpic {
    margin-right: 12px;
  }
}

.icon-svg {
  transition: 0.2s all ease-in-out;
}
.theme-original .icon-svg {
  fill: #788187;
}
.theme-light .icon-svg {
  fill: #788187;
}
.theme-dark .icon-svg {
  fill: #A6B2BA;
}
.theme-original .icon-svg--accent {
  fill: #004EFF;
}
.theme-light .icon-svg--accent {
  fill: #E31337;
}
.theme-dark .icon-svg--accent {
  fill: #E31337;
}
.icon-svg--layout-line1, .icon-svg--layout-line2, .icon-svg--layout-line3 {
  height: 2px;
  opacity: 1;
  filter: alpha(opacity=100);
  transition: 0.3s all ease-in-out;
}
.icon-svg--layout-line2 {
  y: 11px;
}
.icon-svg--layout-line1 {
  y: 6px;
}
.icon-svg--layout-line3 {
  y: 16px;
}

.PostsIndex .Voting {
  float: right;
}

.articles__resteem .username,
.articles__crosspost .username {
  text-decoration: none;
}

.articles__resteem-icon path,
.articles__crosspost-icon path {
  fill: #cacaca;
}

ul.Topics {
  max-width: 10rem;
}
ul.Topics > li {
  list-style-type: none;
}
ul.Topics > li > a.active {
  font-weight: bold;
  overflow: hidden;
}
ul.Topics .show-more {
  font-size: 0.9rem;
  font-weight: bold;
  color: #8a8a8a;
}

.c-sidebar__header {
  font-weight: bold;
  font-size: 1.125rem;
  margin: 0 0 1rem 0;
}

.Post__comments_sort_order {
  margin: 0.5rem 0;
  font-size: 94%;
}
.theme-original .Post__comments_sort_order {
  color: #788187;
}
.theme-light .Post__comments_sort_order {
  color: #788187;
}
.theme-dark .Post__comments_sort_order {
  color: #A6B2BA;
}
.Post__comments_sort_order svg polygon {
  fill: #8a8a8a;
}
.theme-original .Post__comments_sort_order svg polygon {
  fill: #788187;
}
.theme-light .Post__comments_sort_order svg polygon {
  fill: #788187;
}
.theme-dark .Post__comments_sort_order svg polygon {
  fill: #A6B2BA;
}
.Post__comments_sort_order > span {
  font-weight: bold;
}

.Post__promo {
  text-align: center;
  font-style: italic;
  font-weight: bold;
  max-width: 50rem;
  margin: 0 auto;
  padding: 1rem 0;
}
.theme-original .Post__promo {
  border-bottom: 1px solid #eee;
}
.theme-light .Post__promo {
  border-bottom: 1px solid #eee;
}
.theme-dark .Post__promo {
  border-bottom: 1px solid #2c3136;
}
.Post__promo .button {
  margin-top: 1rem;
  text-transform: none;
}

.Post_comments__content {
  max-width: 54rem;
  margin: 0 auto 3.5rem;
  font-size: 92%;
}

.Privacy {
  max-width: 800px;
  padding: 1.5em 0 3em;
}
.Privacy .section {
  font-size: 100%;
  padding-right: 0.5rem;
}
.theme-original .Privacy .section {
  fill: #333;
}
.theme-light .Privacy .section {
  fill: #333;
}
.theme-dark .Privacy .section {
  fill: #fcfcfc;
}

.Tos {
  max-width: 800px;
  padding: 1.5em 0 3em;
}
.Tos .c1.h {
  font-weight: 600;
}

.UserProfile {
  margin-top: -1.5rem;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles {
    margin: 0 auto;
  }
}

.UserProfile__blacklists .account_warn {
  font-size: 0.8em;
}
.UserProfile__blacklists .VerticalMenu {
  font-size: 1rem;
  text-shadow: none;
}
.theme-original .UserProfile__blacklists .VerticalMenu {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__blacklists .VerticalMenu {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__blacklists .VerticalMenu {
  background-color: #212529;
  color: #fcfcfc;
}

.UserProfile__postmenu {
  margin: -0.5rem 0 1rem;
  padding-bottom: 0.5rem;
}
.theme-original .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-light .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-dark .UserProfile__postmenu {
  border-bottom: 1px solid #2c3136;
}
.UserProfile__postmenu div {
  display: inline-block;
  padding: 0 0.5rem;
  margin: 0 0.5rem;
}

.UserProfile__tab_content {
  margin-top: 1.5rem;
}

.UserProfile__top-nav {
  background-color: #2C3A45;
  padding: 0;
}
.UserProfile__top-nav .menu {
  background-color: transparent;
}
.UserProfile__top-nav .menu > li > a {
  transition: all 200ms ease-in;
  transform: translate3d(0, 0, 0);
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  background-color: transparent;
  color: #fff;
}
.UserProfile__top-nav .menu > li > a:hover, .UserProfile__top-nav .menu > li > a:focus {
  background-color: #212529;
}
.UserProfile__top-nav .menu > li > a.active {
  z-index: 2;
  font-weight: bold;
}
.theme-original .UserProfile__top-nav .menu > li > a.active {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__top-nav .menu > li > a.active {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__top-nav .menu > li > a.active {
  background-color: #212529;
  color: #fcfcfc;
}
@media screen and (max-width: 39.9375em) {
  .UserProfile__top-nav .menu > li > a {
    font-size: 0.85rem;
  }
}
.UserProfile__top-nav div.UserProfile__top-menu {
  max-width: 71.42857rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-flow: row wrap;
  width: 100%;
}
.UserProfile__top-nav div.UserProfile__top-menu .Icon > svg, .UserProfile__top-nav div.UserProfile__top-menu .Icon span.icon {
  vertical-align: middle !important;
}
.UserProfile__top-nav div.UserProfile__top-menu .columns.small-9 {
  flex: 1 1 0px;
  max-width: 100%;
}

.UserProfile__section-title {
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #EEE;
}

.UserProfile__banner {
  text-align: center;
  color: #fefefe;
}
.UserProfile__banner a {
  color: #fefefe;
}
.UserProfile__banner > div.column, .UserProfile__banner > div.columns {
  background: #2c3136;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  text-shadow: 1px 1px 2px black;
  min-height: 155px;
}
.UserProfile__banner > div.column .button, .UserProfile__banner > div.columns .button {
  text-shadow: none;
}
.UserProfile__banner h1 {
  padding-top: 20px;
  font-weight: 600;
  font-size: 1.84524rem !important;
}
@media screen and (max-width: 39.9375em) {
  .UserProfile__banner h1 {
    font-size: 1.13095rem !important;
  }
}
.UserProfile__banner .Icon {
  margin-left: 1rem;
}
.UserProfile__banner .Icon svg {
  fill: #def;
}
.UserProfile__banner .UserProfile__rep {
  font-size: 80%;
  font-weight: 200;
}
.UserProfile__banner .UserProfile__buttons {
  position: absolute;
  top: 15px;
  right: 5px;
}
.UserProfile__banner .UserProfile__buttons label.button {
  color: black;
  border-radius: 3px;
  background-color: white;
}
.UserProfile__banner .UserProfile__bio {
  margin: -0.4rem auto 0.5rem;
  font-size: 95%;
  max-width: 420px;
  line-height: 1.4;
}
.UserProfile__banner .UserProfile__info {
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats {
  margin-bottom: 5px;
  padding-bottom: 5px;
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats a {
  vertical-align: middle;
}
.UserProfile__banner .UserProfile__stats a:hover {
  text-decoration: underline;
}
.UserProfile__banner .UserProfile__stats > span {
  padding: 0px 10px;
  border-left: 1px solid #CCC;
}
.UserProfile__banner .UserProfile__stats > span:first-child {
  border-left: none;
}
.UserProfile__banner .UserProfile__stats > span:nth-child(5) {
  border-left: none;
  border-right: 1px solid #CCC;
}

@media screen and (max-width: 39.9375em) {
  div.UserProfile__top-nav .menu li > a {
    padding: 8px;
  }

  .UserProfile__top-menu > div.columns {
    padding-left: 0;
    padding-right: 0;
  }

  .UserProfile__banner .Userpic {
    width: 36px !important;
    height: 36px !important;
  }

  .UserProfile__banner .UserProfile__buttons {
    text-align: right;
  }
  .UserProfile__banner .UserProfile__buttons label.button {
    display: block;
  }

  .UserProfile__banner .UserProfile__buttons_mobile {
    position: inherit;
    margin-bottom: 0.5rem;
  }
  .UserProfile__banner .UserProfile__buttons_mobile .button {
    background-color: #fefefe;
    color: #333333;
  }
}
.UserProfile .articles {
  margin-bottom: 4em;
}
.UserProfile .articles__h1 {
  text-transform: none;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles__h1 {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
  padding: 1.5em 1.5em;
  max-width: 1056px;
}
@media only screen and (min-width: 100em) {
  .UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
    min-width: 1050px;
  }
}
.UserProfile .settings .articles__layout-selector, .UserProfile .curation-rewards .articles__layout-selector, .UserProfile .author-rewards .articles__layout-selector {
  display: none;
}

.UserProfile__Userpic {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 48px;
  margin-right: 0.75rem;
  vertical-align: middle;
}

.UserProfile__badge_image_hivebuzzlevel {
  width: 25px;
  height: 25px;
  top: 30px;
  left: 30px;
  transition: width 0.25s, height 0.25s, top 0.25s, left 0.25s;
  margin-left: 7px;
}
.UserProfile__badge_image_hivebuzzlevel:hover {
  width: 40px;
  height: 40px;
  top: 26px;
  left: 26px;
}

.TagsIndex input {
  margin-bottom: 0.5rem !important;
}
.TagsIndex table tr th a {
  position: relative;
  transition: 0.3s all ease-in-out;
  font-size: 17px;
  font-size: 1.0625rem;
}
.TagsIndex table tr th a:hover::after {
  content: "↓";
  position: absolute;
  left: 100%;
  padding-left: 4px;
}
.TagsIndex table tr td, .TagsIndex table tr th {
  padding-right: 20px;
  text-align: right;
}
.TagsIndex table tr td:first-child, .TagsIndex table tr th:first-child {
  text-align: left;
}

.Welcome__banner {
  position: relative;
}
.Welcome__banner .Welcome__welcome {
  position: absolute;
  width: 100%;
  bottom: 70%;
  color: white;
  font-size: 160%;
  padding-left: 38%;
}
.Welcome__banner .Welcome__caption {
  position: absolute;
  width: 100%;
  top: 65%;
  color: white;
  font-size: 115%;
  padding-left: 44%;
  padding-right: 2%;
}

.HelpContent {
  height: inherit;
}
.HelpContent p {
  position: relative;
}
.HelpContent h2 {
  margin-top: 8px;
}
.HelpContent h3 {
  margin-top: 0;
}

.About {
  position: relative;
  z-index: 1;
}
.About .h2, .About .AboutMission__heading {
  margin: 0 0 12px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 24px;
  font-size: 1.5rem;
}
.About h3 {
  font-size: 1.17em;
  font-weight: 600;
  margin: 1em 0;
}
.About ul {
  padding-left: 40px;
  line-height: 1.4em;
}
@media only screen and (min-width: 50em) {
  .About .h2, .About .AboutMission__heading {
    letter-spacing: 4px;
    font-size: 42px;
    font-size: 2.625rem;
    margin-bottom: 12px;
  }
}
.About .AboutMission {
  width: 100%;
  padding: 2em 0;
}
.About .AboutMission__section {
  max-width: 1600px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  margin-bottom: 2em;
  padding: 0 24px;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__section {
    flex-direction: row;
  }
}
.About .AboutMission__section--vision .AboutMission__section__text-container {
  color: blue;
  order: 2;
}
.About .AboutMission__text-container, .About .AboutMission__image-container {
  width: 100%;
  margin-bottom: 24px;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__text-container, .About .AboutMission__image-container {
    padding: 2em 0 2em 4%;
    width: 46%;
  }
}
@media only screen and (min-width: 75em) {
  .About .AboutMission__text-container, .About .AboutMission__image-container {
    padding: 2em 0 2em 8%;
    width: 42%;
  }
}
.About .AboutMission__text-container {
  max-width: 600px;
}
.About .AboutMission__square {
  width: 8px;
  height: 8px;
  background: #06D6A9;
  margin-bottom: 1.5rem;
}
.About .AboutMission__square::before {
  content: "";
  width: 8px;
  height: 8px;
  background: #06D6A9;
  margin-left: 12px;
  display: flex;
}
.About .AboutMission__text {
  margin: 0;
}
.About .AboutMission__subheading {
  margin-bottom: 4px;
  font-size: 20px;
  font-size: 1.25rem;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__subheading {
    margin-bottom: 6px;
  }
}
.About .AboutMission__text {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4;
}
.About .AboutMission__list {
  margin: 6px 0;
}
.About .AboutMission__list-item {
  margin-bottom: 6px;
}
.About .AboutMission__img {
  box-shadow: 10px 12px 14px 0 rgba(0, 0, 0, 0.05);
  margin-bottom: 24px;
}
@media only screen and (min-width: 50em) {
  .About .AboutMission__section:nth-child(even) .AboutMission__text-container {
    order: 2;
  }
}
.About .About-content-container, .About .AboutTeam__container {
  max-width: 1200px;
  margin: 0 auto;
}
.About .AboutMission__heading-container {
  padding-left: 14px;
  padding-right: 14px;
  max-width: 1200px;
  margin: 0.83em auto;
}
.About .AboutMission__heading-container .AboutMission__heading {
  letter-spacing: 0;
  text-transform: initial;
}
.About .AboutMission__square--2 {
  margin-top: 6rem;
}

.CommunitiesIndex table {
  margin-top: 1em;
}
.CommunitiesIndex table tbody {
  background: transparent;
}
.CommunitiesIndex table tbody tr {
  background: transparent !important;
}
.CommunitiesIndex table th {
  text-align: left;
  font-weight: normal;
}
.CommunitiesIndex table th a.title {
  font-weight: 400;
  font-size: 1.3em;
}
.CommunitiesIndex table td {
  vertical-align: middle;
  color: #666;
  text-align: center;
}
.CommunitiesIndex table small {
  color: #999;
  display: block;
}
.CommunitiesIndex table .button {
  margin: 0;
}
.CommunitiesIndex.c-sidebar__module {
  /* Larger than Medium */
}
@media screen and (min-width: 64.0625em) {
  .CommunitiesIndex.c-sidebar__module {
    padding: 1.5em 4em;
  }
}
.CommunitiesIndex table tbody {
  border: none;
}
.theme-original .CommunitiesIndex table tr {
  border: 1px solid #eee;
}
.theme-light .CommunitiesIndex table tr {
  border: 1px solid #eee;
}
.theme-dark .CommunitiesIndex table tr {
  border: 1px solid #2c3136;
}
.CommunitiesIndex table th {
  width: 600px;
  /* Larger than Small */
}
@media screen and (min-width: 40.0625em) {
  .CommunitiesIndex table th {
    padding-right: 6%;
  }
}
.CommunitiesIndex table td {
  width: 40px;
}

.BadgesAchievements .BadgesAchievements_tabs_container {
  padding: 5px 15px;
}
@media screen and (max-width: 39.9375em) {
  .BadgesAchievements {
    margin: 0;
  }
}
.BadgesAchievements a {
  display: inline-block;
}
.BadgesAchievements .BadgesAchievements__badge_image {
  margin: 5px;
}
.BadgesAchievements .BadgesAchievements__badge_image img {
  vertical-align: top;
  width: 64px;
}
@media screen and (max-width: 39.9375em) {
  .BadgesAchievements .BadgesAchievements__badge_image img {
    width: 48px;
  }
}
.BadgesAchievements .react-tabs__tab-list {
  background-color: #f8f8ff;
}
.BadgesAchievements .react-tabs__tab {
  color: #333;
  font-weight: bold;
}
.BadgesAchievements .react-tabs__tab--selected {
  background-color: #2C3A45;
  border-color: transparent;
  border-radius: 0;
  color: white;
}
.BadgesAchievements .react-tabs__tab-panel {
  min-height: 58px;
}

.article_section {
  margin-bottom: 40px;
}

.CommunityRoles table tbody {
  background: transparent;
}
.CommunityRoles table tbody tr {
  background: transparent !important;
}

.community-user--role {
  cursor: pointer;
}

a.community--subscribe:hover.hollow span {
  display: none;
}
a.community--subscribe:hover.hollow::after {
  content: "Leave";
}

.Rewards__chart .head {
  font-size: 0.8em;
  margin: -6px 0 8px;
}
.Rewards__chart #reward_chart {
  background: white;
  position: relative;
  font-size: 10px;
  line-height: 1em;
}
.Rewards__chart #reward_chart .box {
  position: absolute;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.25);
}
.Rewards__chart #reward_chart .box:hover {
  box-shadow: inset 0 0 3px black;
}
.Rewards__chart #reward_chart .box.box-a .title {
  font-style: italic;
}
.Rewards__chart #reward_chart .box a.box-inner {
  display: block;
  padding: 2px;
  color: black;
  height: 100%;
}
.Rewards__chart #reward_chart .box a.box-inner .title {
  height: 100%;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}
.Rewards__chart #reward_chart .box a.box-inner .detail {
  display: none;
  position: fixed;
  bottom: 10px;
  right: 10px;
  width: 120px;
  padding: 4px;
  font-size: 12px;
  line-height: 1.2em;
  background: white;
  border: 1px solid black;
  z-index: 10;
}
.Rewards__chart #reward_chart .box a.box-inner:hover .detail {
  display: block;
}

.UserProfile {
  margin-top: -1.5rem;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles {
    margin: 0 auto;
  }
}

.UserProfile__blacklists .account_warn {
  font-size: 0.8em;
}
.UserProfile__blacklists .VerticalMenu {
  font-size: 1rem;
  text-shadow: none;
}
.theme-original .UserProfile__blacklists .VerticalMenu {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__blacklists .VerticalMenu {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__blacklists .VerticalMenu {
  background-color: #212529;
  color: #fcfcfc;
}

.UserProfile__postmenu {
  margin: -0.5rem 0 1rem;
  padding-bottom: 0.5rem;
}
.theme-original .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-light .UserProfile__postmenu {
  border-bottom: 1px solid #eee;
}
.theme-dark .UserProfile__postmenu {
  border-bottom: 1px solid #2c3136;
}
.UserProfile__postmenu div {
  display: inline-block;
  padding: 0 0.5rem;
  margin: 0 0.5rem;
}

.UserProfile__tab_content {
  margin-top: 1.5rem;
}

.UserProfile__top-nav {
  background-color: #2C3A45;
  padding: 0;
}
.UserProfile__top-nav .menu {
  background-color: transparent;
}
.UserProfile__top-nav .menu > li > a {
  transition: all 200ms ease-in;
  transform: translate3d(0, 0, 0);
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  background-color: transparent;
  color: #fff;
}
.UserProfile__top-nav .menu > li > a:hover, .UserProfile__top-nav .menu > li > a:focus {
  background-color: #212529;
}
.UserProfile__top-nav .menu > li > a.active {
  z-index: 2;
  font-weight: bold;
}
.theme-original .UserProfile__top-nav .menu > li > a.active {
  background-color: #f8f8ff;
  color: #333;
}
.theme-light .UserProfile__top-nav .menu > li > a.active {
  background-color: #f4f4fd;
  color: #333;
}
.theme-dark .UserProfile__top-nav .menu > li > a.active {
  background-color: #212529;
  color: #fcfcfc;
}
.UserProfile__top-nav div.UserProfile__top-menu {
  max-width: 71.42857rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-flow: row wrap;
  width: 100%;
}
.UserProfile__top-nav div.UserProfile__top-menu .Icon > svg, .UserProfile__top-nav div.UserProfile__top-menu .Icon span.icon {
  vertical-align: middle !important;
}

.UserProfile__section-title {
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #EEE;
}

.UserProfile__banner {
  text-align: center;
  color: #fefefe;
}
.UserProfile__banner a {
  color: #fefefe;
}
.UserProfile__banner > div.column, .UserProfile__banner > div.columns {
  background: #2c3136;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  text-shadow: 1px 1px 2px black;
  min-height: 155px;
}
.UserProfile__banner > div.column .button, .UserProfile__banner > div.columns .button {
  text-shadow: none;
}
.UserProfile__banner h1 {
  padding-top: 20px;
  font-weight: 600;
  font-size: 1.84524rem !important;
}
@media screen and (max-width: 39.9375em) {
  .UserProfile__banner h1 {
    font-size: 1.13095rem !important;
  }
}
.UserProfile__banner .Icon {
  margin-left: 1rem;
}
.UserProfile__banner .Icon svg {
  fill: #def;
}
.UserProfile__banner .Userpic {
  margin-right: 0.75rem;
  vertical-align: middle;
}
.UserProfile__banner .UserProfile__rep {
  font-size: 80%;
  font-weight: 200;
}
.UserProfile__banner .UserProfile__buttons {
  position: absolute;
  top: 15px;
  right: 5px;
}
.UserProfile__banner .UserProfile__buttons label.button {
  color: black;
  border-radius: 3px;
  background-color: white;
}
.UserProfile__banner .UserProfile__bio {
  margin: -0.4rem auto 0.5rem;
  font-size: 95%;
  max-width: 420px;
  line-height: 1.4;
}
.UserProfile__banner .UserProfile__info {
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats {
  margin-bottom: 5px;
  padding-bottom: 5px;
  font-size: 90%;
}
.UserProfile__banner .UserProfile__stats a {
  vertical-align: middle;
}
.UserProfile__banner .UserProfile__stats a:hover {
  text-decoration: underline;
}
.UserProfile__banner .UserProfile__stats > span {
  padding: 0px 10px;
  border-left: 1px solid #CCC;
}
.UserProfile__banner .UserProfile__stats > span:first-child {
  border-left: none;
}
.UserProfile__banner .UserProfile__stats > span:nth-child(6) {
  border-left: none;
}

@media screen and (max-width: 39.9375em) {
  div.UserProfile__top-nav .menu li > a {
    padding: 8px;
  }

  .UserProfile__top-menu > div.columns {
    padding-left: 0;
    padding-right: 0;
  }

  .UserProfile__banner .Userpic {
    width: 36px !important;
    height: 36px !important;
  }

  .UserProfile__banner .UserProfile__buttons {
    text-align: right;
  }
  .UserProfile__banner .UserProfile__buttons label.button {
    display: block;
  }

  .UserProfile__banner .UserProfile__buttons_mobile {
    position: inherit;
    margin-bottom: 0.5rem;
  }
  .UserProfile__banner .UserProfile__buttons_mobile .button {
    background-color: #fefefe;
    color: #333333;
  }
}
.UserProfile .articles {
  margin-bottom: 4em;
}
.UserProfile .articles__h1 {
  text-transform: none;
}
@media only screen and (min-width: 47.5em) {
  .UserProfile .articles__h1 {
    font-size: 20px;
    font-size: 1.25rem;
  }
}
.UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
  padding: 1.5em 1.5em;
  max-width: 1056px;
}
@media only screen and (min-width: 100em) {
  .UserProfile__tab_content.layout-block.settings .articles, .UserProfile__tab_content.layout-block.curation-rewards .articles, .UserProfile__tab_content.layout-block.author-rewards .articles {
    min-width: 1050px;
  }
}
.UserProfile .settings .articles__layout-selector, .UserProfile .curation-rewards .articles__layout-selector, .UserProfile .author-rewards .articles__layout-selector {
  display: none;
}

/* Small only */
@media screen and (max-width: 39.9375em) {
  body {
    font-size: 86%;
  }
}
/* Medium only */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  body {
    font-size: 92%;
  }
}
a, path, circle {
  transition: opacity, fill, stroke 0.3s ease 0s;
}

.space-right {
  margin-right: 0.4rem;
}

.clear-right {
  clear: right;
}

.clear-left {
  clear: left;
}

.clear-both {
  clear: both;
}

.strikethrough {
  text-decoration: line-through;
}

.uppercase, label {
  text-transform: uppercase;
}

.whistle-view .whistle-hidden {
  display: none !important;
}

.secondary {
  font-size: 90%;
}
.theme-original .secondary {
  color: #788187;
}
.theme-light .secondary {
  color: #788187;
}
.theme-dark .secondary {
  color: #A6B2BA;
}
.secondary a {
  transition: 0.2s all ease-in-out;
  color: #8a8a8a;
}
.theme-original .secondary a {
  color: #788187;
}
.theme-light .secondary a {
  color: #788187;
}
.theme-dark .secondary a {
  color: #A6B2BA;
}
.theme-original .secondary a :hover {
  color: #004EFF;
}
.theme-light .secondary a :hover {
  color: #E31337;
}
.theme-dark .secondary a :hover {
  color: #E31337;
}

.button.hollow.no-border {
  border: none;
  text-decoration: underline;
}

.button.slim {
  padding: 5px;
  margin: 5px;
}

@-webkit-keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.marginLeft1rem {
  margin-left: 1rem;
}

.NotFound {
  width: 640px;
  margin-top: 2em;
  text-align: center;
}
@media screen and (max-width: 39.9375em) {
  .NotFound {
    width: 340px;
  }
}

.NotFound__menu {
  text-align: center;
}
.NotFound__menu li {
  float: none;
  display: inline-block;
  text-align: center;
  margin-right: 1%;
  list-style: none;
  font-weight: 400;
}
.NotFound__menu li:after {
  content: " |";
}
.NotFound__menu li:last-child:after {
  content: "";
}

.NotFound__header {
  margin-top: 1em;
}

@media print {
  .noPrint {
    display: none;
  }
}
h1, h2, h3, h4, h5, h6 {
  line-height: 1.2 !important;
}

.c-sidebar {
  width: 100%;
  max-width: 240px;
  font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.c-sidebar__module {
  padding: 1.5em 2em;
}
.theme-original .c-sidebar__module {
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-light .c-sidebar__module {
  background-color: #fff;
  border: 1px solid #eee;
}
.theme-dark .c-sidebar__module {
  background-color: #2c3136;
  border: 1px solid #2c3136;
}

.theme-dark .c-sidebar__item a {
  color: white;
}
.theme-dark .c-sidebar__item a svg {
  fill: white;
}

.phishy {
  display: inline;
  color: red;
}

.pager {
  list-style: none;
}

a[rel=noopener]:after,
a[rel="nofollow noopener"]:after {
  content: "";
  background: url('data:image/svg+xml; utf8, <svg height="1024" width="768" xmlns="http://www.w3.org/2000/svg"><path d="M640 768H128V257.90599999999995L256 256V128H0v768h768V576H640V768zM384 128l128 128L320 448l128 128 192-192 128 128V128H384z"/></svg>');
  background-size: cover;
  display: inline-block;
  width: 0.6em;
  height: 0.75em;
  top: 0.05em;
  position: relative;
  left: 0.2em;
  margin-right: 0.2em;
  opacity: 0.5;
}

.PostFull__body a[rel=noopener]:after,
.PostFull__body a[rel="nofollow noopener"]:after {
  background-image: url('data:image/svg+xml; utf8, <svg height="1024" width="768" xmlns="http://www.w3.org/2000/svg"><path d="M640 768H128V257.90599999999995L256 256V128H0v768h768V576H640V768zM384 128l128 128L320 448l128 128 192-192 128 128V128H384z" fill="%23788187"/></svg>');
}

.affiliation {
  font-weight: 400;
  display: inline;
  margin: 0 0.2rem;
  padding: 0 0.2rem 0.05rem;
  border-radius: 0.3rem;
  text-shadow: none;
  font-size: 0.75rem;
}
.theme-original .affiliation {
  border: 1px solid #004EFF;
  color: #788187;
}
.theme-light .affiliation {
  border: 1px solid #E31337;
  color: #788187;
}
.theme-dark .affiliation {
  border: 1px solid #E31337;
  color: #A6B2BA;
}
.affiliation .affiliation-edit .Icon {
  margin-right: 0;
}

.affiliation-edit .Icon {
  margin: 0 0.25em;
}
.theme-original .affiliation-edit .Icon {
  fill: #788187;
}
.theme-light .affiliation-edit .Icon {
  fill: #788187;
}
.theme-dark .affiliation-edit .Icon {
  fill: #A6B2BA;
}

.user_role {
  font-size: 0.8em;
  text-transform: uppercase;
  color: gray;
  margin: 0 0.2em;
}

.account_warn {
  font-weight: bold;
  color: red;
}

.pointer {
  cursor: pointer;
}
.react-tabs {
  -webkit-tap-highlight-color: transparent;
}

.react-tabs__tab-list {
  border-bottom: 1px solid #aaa;
  margin: 0 0 10px;
  padding: 0;
}

.react-tabs__tab {
  display: inline-block;
  border: 1px solid transparent;
  border-bottom: none;
  bottom: -1px;
  position: relative;
  list-style: none;
  padding: 6px 12px;
  cursor: pointer;
}

.react-tabs__tab--selected {
  background: #fff;
  border-color: #aaa;
  color: black;
  border-radius: 5px 5px 0 0;
}

.react-tabs__tab--disabled {
  color: GrayText;
  cursor: default;
}

.react-tabs__tab:focus {
  box-shadow: 0 0 5px hsl(208, 99%, 50%);
  border-color: hsl(208, 99%, 50%);
  outline: none;
}

.react-tabs__tab:focus:after {
  content: "";
  position: absolute;
  height: 5px;
  left: -4px;
  right: -4px;
  bottom: -5px;
  background: #fff;
}

.react-tabs__tab-panel {
  display: none;
}

.react-tabs__tab-panel--selected {
  display: block;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmVhMjI4MDk5OWQxOWI1MWU3ZmM5LmNzcyIsInNvdXJjZXMiOlsiLi9zcmMvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hcHAuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19mbGV4LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24tZ3JvdXAuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFyLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2xheW91dC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX3RoZW1lcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvbWl4aW5zLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mb3VuZGF0aW9uLW92ZXJyaWRlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2FuaW1hdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZm9ybXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL21hcmtkb3duLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvQXBwLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvY2FyZHMvQmVuZWZpY2lhcnlTZWxlY3Rvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2NhcmRzL0NvbW1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9NYXJrZG93blZpZXdlci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2NhcmRzL1Bvc3RTdW1tYXJ5LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvY2FyZHMvUG9zdEZ1bGwuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9Qb3N0c0xpc3Quc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9Ob3RpZmljYXRpb25zTGlzdC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0ljb24uc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9Mb2FkaW5nSW5kaWNhdG9yLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvVXNlcnBpYy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1VzZXJwaWNJbmZvV3JhcHBlci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZvdGluZy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Zvcm1hdHRlZEFzc2V0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvUmVwbHlFZGl0b3Iuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TbGF0ZUVkaXRvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Ryb3Bkb3duTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZlcnRpY2FsTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZvdGVzQW5kQ29tbWVudHMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9UYWdMaXN0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvUmVwdXRhdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1JlYmxvZy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1NoYXJlTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0F1dGhvci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9BdXRob3JEcm9wZG93bi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1VzZXJOYW1lcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1NvcnRPcmRlci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9FbGFzdGljU2VhcmNoSW5wdXQvc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvSWNvbkJ1dHRvbi9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TdGVlbUxvZ28vc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlZW1NYXJrZXQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TYW5pdGl6ZWRMaW5rL3N0eWxlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Ryb3Bkb3duLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvTm90aWNlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1Bvc3RDYXRlZ29yeUJhbm5lci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0ZsYWdCdXR0b24uc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9WaXN1YWxFZGl0b3Iuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9tb2R1bGVzL0hlYWRlci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9tb2R1bGVzL0xvZ2luRm9ybS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvU2lkZVBhbmVsL3N0eWxlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvU2V0dGluZ3Muc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9tb2R1bGVzL1VzZXJXYWxsZXQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9tb2R1bGVzL1Bvc3RBZHZhbmNlZFNldHRpbmdzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvUG9zdHNJbmRleC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1RvcGljcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1Bvc3Quc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Qcml2YWN5LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvVG9zLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvVXNlclByb2ZpbGUuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9UYWdzSW5kZXguc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9XZWxjb21lLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvQWJvdXQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Db21tdW5pdGllc0luZGV4LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvQ29tbXVuaXR5Um9sZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9SZXdhcmRzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvTGlzdE1hbmFnZW1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9yZWFjdC10YWJzL3N0eWxlL3JlYWN0LXRhYnMuY3NzP3VuZGVmaW5lZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcbkBpbXBvcnQgXCIuL2ZvdW5kYXRpb24tc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJ+Zm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb25cIjtcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1ldmVyeXRoaW5nKHRydWUpO1xuXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vbGF5b3V0XCI7XG5AaW1wb3J0IFwiLi90aGVtZXNcIjtcblxuQGltcG9ydCBcIi4vZm91bmRhdGlvbi1vdmVycmlkZXNcIjtcblxuQGltcG9ydCAnLi9hbmltYXRpb24nO1xuXG5AaW1wb3J0IFwiLi9mb250c1wiO1xuQGltcG9ydCBcIi4vZm9ybXNcIjtcblxuQGltcG9ydCBcIi4vbWFya2Rvd25cIjtcbkBpbXBvcnQgXCJzcmMvYXBwL2NvbXBvbmVudHMvYWxsXCI7XG5cbi8qIFNtYWxsIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IDg2JTtcbiAgfVxufVxuXG4vKiBNZWRpdW0gb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IDkyJTtcbiAgfVxufVxuXG5hLCBwYXRoLCBjaXJjbGUge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCBmaWxsLCBzdHJva2UgLjNzIGVhc2UgMHM7XG59XG5cbi5zcGFjZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMC40cmVtO1xufVxuXG4uY2xlYXItcmlnaHQge1xuICBjbGVhcjogcmlnaHQ7XG59XG5cbi5jbGVhci1sZWZ0IHtcbiAgY2xlYXI6IGxlZnQ7XG59XG5cbi5jbGVhci1ib3RoIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zdHJpa2V0aHJvdWdoIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi51cHBlcmNhc2UsIGxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLndoaXN0bGUtdmlldyB7XG4gICAgLndoaXN0bGUtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cblxuLnNlY29uZGFyeSB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBhIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgICA6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5idXR0b24uaG9sbG93Lm5vLWJvcmRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5idXR0b24uc2xpbSB7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbkBrZXlmcmFtZXMgbG9hZGluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi5tYXJnaW5MZWZ0MXJlbSB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4uTm90Rm91bmQge1xuICB3aWR0aDogNjQwcHg7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvLyBzbWFsbCBvbmx5XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgd2lkdGg6IDM0MHB4O1xuICB9XG59XG5cbi5Ob3RGb3VuZF9fbWVudSB7XG4gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDElO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgIH1cbiAgICBsaTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIHxcIjtcbiAgICB9XG4gICAgbGk6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxufVxuXG4uTm90Rm91bmRfX2hlYWRlciB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLm5vUHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbn1cblxuLmMtc2lkZWJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI0MHB4O1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAmX19tb2R1bGUge1xuICAgICAgcGFkZGluZzogMS41ZW0gMmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxuICB9XG59XG5cbi50aGVtZS1kYXJrIC5jLXNpZGViYXJfX2l0ZW0ge1xuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG5cbiAgICBzdmcge1xuICAgICAgZmlsbDogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cblxuXG4ucGhpc2h5IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjb2xvcjogcmVkO1xufVxuXG4ucGFnZXIge2xpc3Qtc3R5bGU6IG5vbmV9XG5cbmFbcmVsPVwibm9vcGVuZXJcIl06YWZ0ZXIsXG5hW3JlbD1cIm5vZm9sbG93IG5vb3BlbmVyXCJdOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sOyB1dGY4LCA8c3ZnIGhlaWdodD1cIjEwMjRcIiB3aWR0aD1cIjc2OFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTY0MCA3NjhIMTI4VjI1Ny45MDU5OTk5OTk5OTk5NUwyNTYgMjU2VjEyOEgwdjc2OGg3NjhWNTc2SDY0MFY3Njh6TTM4NCAxMjhsMTI4IDEyOEwzMjAgNDQ4bDEyOCAxMjggMTkyLTE5MiAxMjggMTI4VjEyOEgzODR6XCIvPjwvc3ZnPicpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwLjZlbTtcbiAgaGVpZ2h0OiAwLjc1ZW07XG4gIHRvcDogMC4wNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDAuMmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xuICBvcGFjaXR5OiAuNTtcbn1cblxuLlBvc3RGdWxsX19ib2R5IGFbcmVsPVwibm9vcGVuZXJcIl06YWZ0ZXIsXG4uUG9zdEZ1bGxfX2JvZHkgYVtyZWw9XCJub2ZvbGxvdyBub29wZW5lclwiXTphZnRlciB7XG4gIC8vICRjb2xvci10ZXh0LWdyYXlcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7IHV0ZjgsIDxzdmcgaGVpZ2h0PVwiMTAyNFwiIHdpZHRoPVwiNzY4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNjQwIDc2OEgxMjhWMjU3LjkwNTk5OTk5OTk5OTk1TDI1NiAyNTZWMTI4SDB2NzY4aDc2OFY1NzZINjQwVjc2OHpNMzg0IDEyOGwxMjggMTI4TDMyMCA0NDhsMTI4IDEyOCAxOTItMTkyIDEyOCAxMjhWMTI4SDM4NHpcIiBmaWxsPVwiJTIzNzg4MTg3XCIvPjwvc3ZnPicpO1xufVxuXG4uYWZmaWxpYXRpb24ge1xuICBmb250LXdlaWdodDogNDAwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbjogMCAwLjJyZW07XG4gIHBhZGRpbmc6IDAgMC4ycmVtIDAuMDVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIC5hZmZpbGlhdGlvbi1lZGl0IHtcbiAgICAuSWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5hZmZpbGlhdGlvbi1lZGl0IHtcbiAgLkljb24ge1xuICAgIG1hcmdpbjogMCAwLjI1ZW07XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgfVxufVxuXG4udXNlcl9yb2xlIHtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IGdyYXk7XG4gICAgbWFyZ2luOiAwIDAuMmVtO1xufVxuXG4uYWNjb3VudF93YXJuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogcmVkO1xufVxuXG4ucG9pbnRlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMy4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IGZhbHNlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cblxuICBAaWYgJHByb3RvdHlwZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcbiAgfVxufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmVydGljYWwgUmh5dGhtXG4vL1xuLy8gVGhpcyBpcyB0aGUgbWluaW1hbCBhbW91bnQgb2YgY29kZSBuZWVkZWQgdG8gY3JlYXRlIHZlcnRpY2FsIHJoeXRobSBpbiBvdXJcbi8vIENTUy4gSWYgeW91IGFyZSBsb29raW5nIGZvciBhIHJvYnVzdCBzb2x1dGlvbiwgbG9vayBhdCB0aGUgZXhjZWxsZW50IFR5cGV5XG4vLyBsaWJyYXJ5LiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHRhcmFudG8vdHlwZXlcblxuQGZ1bmN0aW9uIG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSwgJHVuaXQ6ICRiYXNlLXVuaXQpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSBweCB7XG4gICAgQGVycm9yIFwiVGhlIG5vcm1hbGl6ZSB2ZXJ0aWNhbC1yaHl0aG0gbW9kdWxlIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgQGlmICR1bml0ID09IHJlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJGJhc2UtZm9udC1zaXplKSAqIDFyZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRyZWxhdGl2ZS10bykgKiAxZW07XG4gIH1cbiAgQGVsc2UgeyAvLyAkdW5pdCA9PSBweFxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG59XG5cbkBtaXhpbiBub3JtYWxpemUtZm9udC1zaXplKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncHgnIHtcbiAgICBAZXJyb3IgXCJub3JtYWxpemUtZm9udC1zaXplKCkgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBmb250LXNpemU6IG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLXJoeXRobSgkcHJvcGVydHksICR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gICR2YWx1ZS1saXN0OiAkdmFsdWVzO1xuICAkc2VwOiBzcGFjZTtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ2xpc3QnIHtcbiAgICAkc2VwOiBsaXN0LXNlcGFyYXRvcigkdmFsdWVzKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbHVlLWxpc3Q6IGFwcGVuZCgoKSwgJHZhbHVlcyk7XG4gIH1cblxuICAkbm9ybWFsaXplZC12YWx1ZXM6ICgpO1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlLWxpc3Qge1xuICAgIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAkdmFsdWUgIT0gMCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqIG5vcm1hbGl6ZS1yaHl0aG0oJGJhc2UtbGluZS1oZWlnaHQsICRyZWxhdGl2ZS10byk7XG4gICAgfVxuICAgICRub3JtYWxpemVkLXZhbHVlczogYXBwZW5kKCRub3JtYWxpemVkLXZhbHVlcywgJHZhbHVlLCAkc2VwKTtcbiAgfVxuICAjeyRwcm9wZXJ0eX06ICRub3JtYWxpemVkLXZhbHVlcztcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1tYXJnaW4oJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShtYXJnaW4sICR2YWx1ZXMsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJG1pbi1saW5lLXBhZGRpbmc6IDJweCkge1xuICAkbGluZXM6IGNlaWwoJGZvbnQtc2l6ZSAvICRiYXNlLWxpbmUtaGVpZ2h0KTtcbiAgLy8gSWYgbGluZXMgYXJlIGNyYW1wZWQgaW5jbHVkZSBzb21lIGV4dHJhIGxlYWRpbmcuXG4gIEBpZiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplKSA8ICgkbWluLWxpbmUtcGFkZGluZyAqIDIpIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIDE7XG4gIH1cbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShsaW5lLWhlaWdodCwgJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1hdHRyaWJ1dGUtbmVzdGluZywgZm9yY2UtcHNldWRvLW5lc3RpbmcsIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kc2Vjb25kYXJ5LWNvbG9yOiBnZXQtY29sb3Ioc2Vjb25kYXJ5KTtcbiRzdWNjZXNzLWNvbG9yOiBnZXQtY29sb3Ioc3VjY2Vzcyk7XG4kd2FybmluZy1jb2xvcjogZ2V0LWNvbG9yKHdhcm5pbmcpO1xuJGFsZXJ0LWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pZHNcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gICAgcGFkZGluZzogMDtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7ICAgIFxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlIG9yIGJyZWFrcG9pbnQgbmFtZSB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XG4gIEBpZiAkY29sdW1ucyAhPSBleHBhbmQgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpOyBcbiAgICAgIFxuICAgICAgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVuZG8gbmVnYXRpdmUgbWFyZ2luc1xuICAgIC8vIEZyb20gY29sbGFwc2VkIGNoaWxkXG4gICAgJi5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgICAmLmNvbGxhcHNlID4gLmNvbHVtbiA+IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC5jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLmNvbHVtbi5yb3cucm93IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAucm93IC5jb2x1bW4ucm93LnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cblxuICAuZmxleC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXg7XG4gIH1cblxuICAuZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgIC5mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGRpcmVjdGlvbiBoZWxwZXIgY2xhc3Nlc1xuICAgICAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZmxleC1kaXItI3skZGlyfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBjaGlsZCBoZWxwZXIgY2xhc3Nlc1xuICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIH1cblxuICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgIH1cblxuICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAvIDIgKiAtMTtcblxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0IGEgZ3JpZCByb3cgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuQG1peGluIGdyaWQtcm93LXNpemUoJHNpemU6ICRncmlkLXJvdy13aWR0aCkge1xuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcbiAgICAkc2l6ZTogbm9uZTtcbiAgfVxuXG4gIG1heC13aWR0aDogJHNpemU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sdW1uLWd1dHRlcigpLiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2wtZ3V0dGVyKCkuIGdyaWQtY29sLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgJ2xlZnQnOiBmbGV4LXN0YXJ0LFxuICAncmlnaHQnOiBmbGV4LWVuZCxcbiAgJ2NlbnRlcic6IGNlbnRlcixcbiAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuKTtcblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC4gU2V0IHRvIGNlbnRlciB0byBjZW50ZXIgdGhlIGNvbHVtbi5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlb2NyYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBcbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuXG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1maWVsZHNldCB7XG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLmZpZWxkc2V0IHtcbiAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqICRpbnB1dC1saW5lLWhlaWdodCkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgJixcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gYm9yZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTGlzdFxuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIGhlaWdodC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudSBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3VibWVudSBsaSBzdHlsaW5nXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICYgPiBhIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gICAgLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDA7XG5cbiAgICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjtcblxuICAgICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuXG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUm90YXRlIHRoZSBhcnJvdyB3aGVuIG1lbnUgaXMgb3BlblxuICAgIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgfVxuXG4gICAgLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYXJyb3dzIGFyZSBlbmFibGVkLCBkaXNwbGF5IHRoZW1cbiAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYmFkZ2Vcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcbiAgLmJhZGdlIHtcbiAgICBAaW5jbHVkZSBiYWRnZTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRiYWRnZS1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRiYWRnZS1jb2xvciwgJGJhZGdlLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNsYXNoIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgc2xhc2guXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2xhc2g6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICcvJywgJ1xcXFwnKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGFzaDtcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmdcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtd2lkdGggYnV0dG9uIGdyb3VwLCBtYWtpbmcgZWFjaCBidXR0b24gZXF1YWwgd2lkdGguXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nLFxuICAkY291bnQ6IG51bGxcbikge1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IC0kc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQsXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3RhY2s7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIGZvcmNlLWVsZW1lbnQtbmVzdGluZ1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDAuNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYXJkXG4vLy8vXG5cbi8vLyBEZWZ1YWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FyZHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZS5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY2FyZCBzaGFkb3cuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luLlxuLy8vIEB0eXBlIG51bWJlclxuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gZm9udCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiAtIEJvdHRvbSBtYXJnaW4gb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkYm9yZGVyIC0gQm9yZGVyIGFyb3VuZCB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYWRpdXMgLSBib3JkZXIgcmFkaXVzIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHNoYWRvdyAtIGJveCBzaGFkb3cgb2YgdGhlIGNhcmQuXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRjYXJkLWZvbnQtY29sb3IsXG4gICRtYXJnaW46ICRjYXJkLW1hcmdpbi1ib3R0b20sXG4gICRib3JkZXI6ICRjYXJkLWJvcmRlcixcbiAgJHJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cyxcbiAgJHNoYWRvdzogJGNhcmQtc2hhZG93XG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGRpdmlkZXIuXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kLFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIHNlY3Rpb24uXG5AbWl4aW4gY2FyZC1zZWN0aW9uKFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhcmQge1xuICAuY2FyZCB7XG4gICAgQGluY2x1ZGUgY2FyZC1jb250YWluZXI7XG4gIH1cblxuICAuY2FyZC1kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBjYXJkLWRpdmlkZXI7XG4gIH1cblxuICAuY2FyZC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBjYXJkLXNlY3Rpb247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKHNtYWxsKSB9XG4gICAgJiwgJi5tZWRpdW0geyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShtZWRpdW0pIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbi1uZXN0ZWQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtLXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgZm9yIGJvcmRlcmVkIG1lbnVcbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgbWFyZ2luOiAkbWVudS1tYXJnaW47XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zIGFyZSB0YWJsZSBjZWxsIHRvIGFsbG93IGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgPiBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgbGluZSBoZWlnaHQgdG8gbWFrZSB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyYWxsIGl0ZW0gZWFzaWVyIHRvIGNhbGN1bGF0ZVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICA+IGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG5cbiAgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgID4gbGkgID4gYSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBTZXQgdG8gYG51bGxgIHRvIGRvIG5vdCBnZW5lcmF0ZSBzdHlsZXMgZm9yIGRpcmVjdGlvbi5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQpIHtcbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIEBpZiAkZGlyICE9IG51bGwge1xuICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZGlyKTtcbiAgfVxufVxuXG4vLy8gRGlyZWN0aW9uIG1vZGlmaWVyIGZvciBhIHNpbXBsZSBNZW51XG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51XG5AbWl4aW4gbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRkaXI6ICRnbG9iYWwtbGVmdCkge1xuICAkbm8tbWFyZ2luLWRpcjogJGRpcjtcbiAgJG1hcmdpbi1kaXI6IGRpcmVjdGlvbi1vcHBvc2l0ZSgkZGlyKTtcblxuICBsaSB7XG4gICAgbWFyZ2luLSN7JG5vLW1hcmdpbi1kaXJ9OiAwO1xuICAgIG1hcmdpbi0jeyRtYXJnaW4tZGlyfTogZ2V0LXNpZGUoJG1lbnUtaXRlbS1wYWRkaW5nLCAkbWFyZ2luLWRpcik7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkcGFkZGluZyBbYXV0b10gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbkBtaXhpbiBtZW51LW5lc3RlZCgkbWFyZ2luOiAkbWVudS1tYXJnaW4tbmVzdGVkKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG59XG5cbi8vLyBBZGRzIHN1cHBvcnQgZm9yIGljb25zIHRvIE1lbnUgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW3NpZGVdIC0gUG9zaXRpb25pbmcgZm9yIGljb25zLiBDYW4gYmUgYHNpZGVgIChsZWZ0LCBvciByaWdodCBvbiBSVEwpIG9yIGB0b3BgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCB0aGUgc2hhcmVkIENTUyBiZXR3ZWVuIHNpZGUtIGFuZCB0b3AtYWxpZ25lZCBpY29ucyBmcm9tIGJlaW5nIHByaW50ZWQuIFNldCB0aGlzIHRvIGBmYWxzZWAgaWYgeW91J3JlIGNhbGxpbmcgdGhlIG1peGluIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG5AbWl4aW4gbWVudS1pY29ucygkcG9zaXRpb246IHNpZGUsICRiYXNlOiB0cnVlKSB7XG4gIEBpZiAkYmFzZSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgaW1nLFxuICAgICAgICBpLFxuICAgICAgICBzdmcge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICArIHNwYW4ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG5cbiAgICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBpY29uc1xuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XG4gICAgICAvLyBNYWtlIHZlcnRpY2FsIG1lbnUgd2l0aCBpY29ucyBvbiB0b3Agd29ya1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGEgPiBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBNZW51IHdpdGggYm9yZGVyXG4gICAgJi5tZW51LWJvcmRlcmVkIHtcbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG1lbnUtYm9yZGVyO1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSB3aXRoIGJhY2tncm91bmQgaG92ZXJcbiAgICAmLm1lbnUtaG92ZXIge1xuICAgICAgbGk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gQWxpZ24gY2VudGVyXG4gIC5tZW51LWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC5tZW51IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiB0b3ApO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgICAmLnZlcnRpY2FsID4gbGkgPiBhIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2luZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgfVxuICB9XG5cbiAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cblxuICAvLyBBbGxvdyBhbiBpbnRlcm1pdHRlbnQgc3RhdGUgdG8gZG8gcG9zaXRpb25pbmcgYmVmb3JlIG1ha2luZyB2aXNpYmxlLlxuICAmLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbkBtaXhpbiBsZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSBsZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vIFdBUk5JTkc6IFdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDYuNFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW86IGRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCgpLiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xufVxuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRyZXNwb25zaXZlLWVtYmVkLXJhdGlvKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IHJlc3BvbnNpdmUtZW1iZWQoKS4gZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcbi8vLy9cblxuLy8vIFdpZHRoIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1zaXplOiAyNTBweCAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZTogMjUwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGZvciB0aGUgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMSAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzICFkZWZhdWx0O1xuXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXG4vLy8gQHR5cGUgQm9vbFxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGNvbnRlbnQuXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIFxuICAgICYuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHdyYXBwZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy13cmFwcGVyKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2UoXG4gICRiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQsXG4gICR0cmFuc2l0aW9uOiAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsXG4gICRmaXhlZDogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICBAaWYgJGZpeGVkID09IHRydWUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZTogaWYoJG9yaWVudGF0aW9uID09IGhvcml6b250YWwsICRvZmZjYW52YXMtc2l6ZSwgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgICYuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgICYuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgJG9mZmNhbnZhcy1zaGFkb3cgaXMgc2V0LCBhZGQgaXQgYXMgYSBwc2V1ZG8tZWxlbWVudC5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLXNoYWRvdyB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2g6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICB9XG4gIH1cblxuICAvLyBObyB0cmFuc2Zvcm0gb24gb3ZlcmxhcCB0cmFuc2l0aW9uXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIG9mZi1jYW52YXMtY29udGVudCgpIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3Ncbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXZlYWwge1xuICAvLyBbVE9ET10gSXMgdGhpcyBuZWNlc3Nhcnk/XG4gIGJvZHkuaXMtcmV2ZWFsLW9wZW4geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gaHRtbCBnZXRzIHRoaXMgY2xhc3Mgb25seSBpbiBpT1NcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbixcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICBpbnB1dDpmb2N1cyB+ICYge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYWN0aXZlL2luYWN0aXZlIHRleHQgaW5zaWRlIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIHRleHQgZWxlbWVudHMgaW5zaWRlIHRoZSBzd2l0Y2ggYDxsYWJlbD5gLlxuQG1peGluIHN3aXRjaC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1pbmFjdGl2ZSB7XG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZvbnQtc2l6ZSBbMXJlbV0gLSBGb250IHNpemUgb2YgbGFiZWwgdGV4dCB3aXRoaW4gdGhlIHN3aXRjaC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHN3aXRjaC1oZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICRzd2l0Y2gtaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG5cbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6ICRwYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1vZmZzZXQ7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgJHN3aXRjaC1oZWlnaHQtc21hbGwsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtZWxlbWVudC1uZXN0aW5nLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSwgJGlzLXN0cmlwZWQ6ICR0YWJsZS1pcy1zdHJpcGVkKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgc3RyaXBlZFxuICBAaWYgJGlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICB9XG5cbiAgICAmLnVuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXG4gIEBlbHNlIGlmICRpcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICB9XG5cbiAgICAmLnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQgZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgdGFibGUge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gdGFicy1jb250YWluZXIgKFxuICAkbWFyZ2luOiAkdGFiLW1hcmdpbixcbiAgJGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZCxcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRtYXJnaW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxuQG1peGluIHRhYnMtdGl0bGUgKFxuICAkcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemUsXG4gICRjb2xvcjogJHRhYi1jb2xvcixcbiAgJGNvbG9yLWFjdGl2ZTogJHRhYi1hY3RpdmUtY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGJhY2tncm91bmQtYWN0aXZlOiAkdGFiLWJhY2tncm91bmQtYWN0aXZlXG4pIHtcbiAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuXG4gICYudG9wOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gIH1cblxuICAmLmxlZnQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gICYucmlnaHQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2xlZnQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IFNwZWNpZmljYWxseSBmb3IgVmVydGljYWwgTWVudVxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2xlZnQnLCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwubWVudSA+IGxpID4gYSB7IFxuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIGJyZWFrcG9pbnRzXG4gICBcbiRTOiAyMGVtOyAgLy8gMzIwcHggLyAxNlxuJEZNOiA0MGVtOyAvLyBDb25mb3JtIHRvIGZvdW5kYXRpb24gJ21lZGl1bScgY3NzIGJyZWFrcG9pbnRcbiRNOiA0Ny41ZW07ICAvLyA3NjBweCAvIDE2XG4kRkw6IDY0ZW07IC8vIENvbmZvcm0gdG8gZm91bmRhdGlvbiAnbGFyZ2UnIGNzcyBicmVha3BvaW50XG4kTDogNzVlbTsgLy8gMTIwMHB4IC8gMTZcblxuJFhMOiAxMDBlbTsgLy8gIDE2MDBweCAvIDE2XG5cbi8vIG1lZGlhIHF1ZXJpZXNcblxuQG1peGluIE1RKCRjYW52YXMpIHtcbiAgQGlmICRjYW52YXMgPT0gUyB7XG4gICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRTKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBpZiAkY2FudmFzID09IEZNIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRGTSkgeyBAY29udGVudDsgfSBcbiAgfVxuICBAZWxzZSBpZiAkY2FudmFzID09IE0ge1xuICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkTSkgeyBAY29udGVudDsgfSBcbiAgfVxuICBAZWxzZSBpZiAkY2FudmFzID09IEZMIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRGTCkgeyBAY29udGVudDsgfSBcbiAgfVxuICBAZWxzZSBpZiAkY2FudmFzID09IEwge1xuICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkTCkgeyBAY29udGVudDsgfSBcbiAgfVxuICBAZWxzZSBpZiAkY2FudmFzID09IFhMIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRYTCkgeyBAY29udGVudDsgfSBcbiAgfVxufVxuXG4vLyBGb3VuZGF0aW9uLWxpa2UgQ2xhc3Nlc1xuLnNob3ctZm9yLW1xLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLmhpZGUtZm9yLW1xLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5oaWRlLWZvci1tcS1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc2hvdy1mb3ItbXEtbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn0iLCIkdGhlbWUtbWFwOiBudWxsO1xuJHRoZW1lczogKFxuICBvcmlnaW5hbDogKFxuICAgIGNvbG9yQWNjZW50OiAkY29sb3ItYmx1ZSxcbiAgICBjb2xvckFjY2VudEhvdmVyOiAkY29sb3ItYmx1ZS1vcmlnaW5hbC1saWdodCxcbiAgICBjb2xvckFjY2VudFJldmVyc2U6ICRjb2xvci1ibHVlLW9yaWdpbmFsLWxpZ2h0LFxuICAgIGNvbG9yV2hpdGU6ICRjb2xvci13aGl0ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3JFbXBoYXNpczogJGNvbG9yLWJhY2tncm91bmQtYWxtb3N0LXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvck9wYXF1ZTogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlLFxuICAgIGJhY2tncm91bmRUcmFuc3BhcmVudDogdHJhbnNwYXJlbnQsXG4gICAgbW9kdWxlQmFja2dyb3VuZENvbG9yOiAkY29sb3Itd2hpdGUsXG4gICAgbWVudUJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBtb2R1bGVNZWRpdW1CYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBuYXZCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3I6ICNmM2ZhZjAsXG4gICAgYWxlcnRCYWNrZ3JvdW5kQ29sb3I6ICNmZmE2YTYsXG4gICAgdGFibGVSb3dFdmVuQmFja2dyb3VuZENvbG9yOiAjZjRmNGY0LFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQsXG4gICAgYm9yZGVyTGlnaHQ6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0LWxpZ2h0ZXN0LFxuICAgIGJvcmRlckRhcms6IDFweCBzb2xpZCAkY29sb3ItdGV4dC1ncmF5LFxuICAgIGJvcmRlckFjY2VudDogMXB4IHNvbGlkICRjb2xvci1ibHVlLFxuICAgIGJvcmRlckRvdHRlZDogMXB4IGRvdHRlZCAkY29sb3ItYm9yZGVyLWxpZ2h0LFxuICAgIGJvcmRlclRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICByb3VuZGVkQ29ybmVyczogNXB4LFxuICAgIHJvdW5kZWRDb3JuZXJzVG9wOiA1cHggNXB4IDAgMCxcbiAgICByb3VuZGVkQ29ybmVyc0JvdHRvbTogMHB4IDBweCA1cHggNXB4LFxuICAgIGljb25Db2xvclNlY29uZGFyeTogI2NhY2FjYSxcbiAgICB0ZXh0Q29sb3JQcmltYXJ5OiAkY29sb3ItdGV4dC1kYXJrLFxuICAgIHRleHRDb2xvclNlY29uZGFyeTogJGNvbG9yLXRleHQtZ3JheSxcbiAgICB0ZXh0Q29sb3JBY2NlbnQ6ICRjb2xvci10ZXh0LWJsdWUsXG4gICAgdGV4dENvbG9yQWNjZW50SG92ZXI6ICRjb2xvci1ibHVlLW9yaWdpbmFsLWRhcmssXG4gICAgdGV4dENvbG9yRXJyb3I6ICRjb2xvci10ZXh0LXJlZCxcbiAgICBjb250ZW50Qm9yZGVyQWNjZW50OiAkY29sb3ItdHJhbnNwYXJlbnQsXG4gICAgYnV0dG9uQmFja2dyb3VuZDogJGNvbG9yLWJsdWUtb3JpZ2luYWwtZGFyayxcbiAgICBidXR0b25CYWNrZ3JvdW5kSG92ZXI6ICRjb2xvci1ibHVlLW9yaWdpbmFsLWxpZ2h0LFxuICAgIGJ1dHRvblRleHQ6ICRjb2xvci10ZXh0LXdoaXRlLFxuICAgIGJ1dHRvblRleHRTaGFkb3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwLjIwKSxcbiAgICBidXR0b25UZXh0SG92ZXI6ICRjb2xvci10ZXh0LXdoaXRlLFxuICAgIGJ1dHRvbkJveFNoYWRvdzogJGNvbG9yLXRyYW5zcGFyZW50LFxuICAgIG1vZGFsQmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1hbG1vc3Qtd2hpdGUsXG4gICAgbW9kYWxUZXh0Q29sb3JQcmltYXJ5OiAkY29sb3ItdGV4dC1kYXJrLFxuICApLFxuICBsaWdodDogKFxuICAgIGNvbG9yQWNjZW50OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgY29sb3JBY2NlbnRIb3ZlcjogJGNvbG9yLWhpdmUtcmVkLWRhcmssXG4gICAgY29sb3JBY2NlbnRSZXZlcnNlOiAkY29sb3ItaGl2ZS1ibGFjayxcbiAgICBjb2xvcldoaXRlOiAkY29sb3Itd2hpdGUsXG4gICAgYmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGUtZGFyayxcbiAgICBiYWNrZ3JvdW5kQ29sb3JFbXBoYXNpczogJGNvbG9yLWJhY2tncm91bmQtYWxtb3N0LXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvck9wYXF1ZTogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlLFxuICAgIGJhY2tncm91bmRUcmFuc3BhcmVudDogdHJhbnNwYXJlbnQsXG4gICAgbW9kdWxlQmFja2dyb3VuZENvbG9yOiAkY29sb3Itd2hpdGUsXG4gICAgbWVudUJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBtb2R1bGVNZWRpdW1CYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci10cmFuc3BhcmVudCxcbiAgICBuYXZCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3I6ICNmM2ZhZjAsXG4gICAgYWxlcnRCYWNrZ3JvdW5kQ29sb3I6ICNmZmE2YTYsXG4gICAgdGFibGVSb3dPZGRCYWNrZ3JvdW5kQ29sb3I6ICNlNWU1ZTUsXG4gICAgdGFibGVSb3dFdmVuQmFja2dyb3VuZENvbG9yOiAjZjRmNGY0LFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQsXG4gICAgYm9yZGVyTGlnaHQ6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0LWxpZ2h0ZXN0LFxuICAgIGJvcmRlckRhcms6IDFweCBzb2xpZCAkY29sb3ItdGV4dC1ncmF5LFxuICAgIGJvcmRlckFjY2VudDogMXB4IHNvbGlkICRjb2xvci1oaXZlLXJlZCxcbiAgICBib3JkZXJEb3R0ZWQ6IDFweCBkb3R0ZWQgJGNvbG9yLWJvcmRlci1sZXNzLWxpZ2h0LFxuICAgIGJvcmRlclRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICByb3VuZGVkQ29ybmVyczogNXB4LFxuICAgIHJvdW5kZWRDb3JuZXJzVG9wOiA1cHggNXB4IDAgMCxcbiAgICByb3VuZGVkQ29ybmVyc0JvdHRvbTogMHB4IDBweCA1cHggNXB4LFxuICAgIGljb25Db2xvclNlY29uZGFyeTogI2NhY2FjYSxcbiAgICB0ZXh0Q29sb3JQcmltYXJ5OiAkY29sb3ItdGV4dC1kYXJrLFxuICAgIHRleHRDb2xvclNlY29uZGFyeTogJGNvbG9yLXRleHQtZ3JheSxcbiAgICB0ZXh0Q29sb3JBY2NlbnQ6ICRjb2xvci10ZXh0LWhpdmUtcmVkLFxuICAgIHRleHRDb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgdGV4dENvbG9yRXJyb3I6ICRjb2xvci10ZXh0LXJlZCxcbiAgICBjb250ZW50Qm9yZGVyQWNjZW50OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYnV0dG9uQmFja2dyb3VuZDogJGNvbG9yLWhpdmUtYmxhY2ssXG4gICAgYnV0dG9uQmFja2dyb3VuZEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYnV0dG9uVGV4dDogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgYnV0dG9uVGV4dFNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApLFxuICAgIGJ1dHRvblRleHRIb3ZlcjogJGNvbG9yLXdoaXRlLFxuICAgIGJ1dHRvbkJveFNoYWRvdzogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJ1dHRvbkJveFNoYWRvd0hvdmVyOiAkY29sb3ItaGl2ZS1ibGFjayxcbiAgICBtb2RhbEJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIG1vZGFsVGV4dENvbG9yUHJpbWFyeTogJGNvbG9yLXRleHQtZGFyayxcbiAgKSxcbiAgZGFyazogKFxuICAgIGNvbG9yQWNjZW50OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgY29sb3JBY2NlbnRIb3ZlcjogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGNvbG9yQWNjZW50UmV2ZXJzZTogJGNvbG9yLXdoaXRlLFxuICAgIGNvbG9yV2hpdGU6ICRjb2xvci13aGl0ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcmssXG4gICAgYmFja2dyb3VuZENvbG9yRW1waGFzaXM6ICRjb2xvci1iYWNrZ3JvdW5kLXN1cGVyLWRhcmssXG4gICAgYmFja2dyb3VuZENvbG9yT3BhcXVlOiAkY29sb3ItYmx1ZS1kYXJrLFxuICAgIG1vZHVsZUJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtbGVzcy1kYXJrLFxuICAgIGJhY2tncm91bmRUcmFuc3BhcmVudDogdHJhbnNwYXJlbnQsXG4gICAgbWVudUJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJsdWUtZGFyayxcbiAgICBtb2R1bGVNZWRpdW1CYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWRhcmssXG4gICAgbmF2QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1sZXNzLWRhcmssXG4gICAgaGlnaGxpZ2h0QmFja2dyb3VuZENvbG9yOiAkY29sb3ItaGl2ZS1ibGFjay1kYXJrZXN0LFxuICAgIGFsZXJ0QmFja2dyb3VuZENvbG9yOiAjZmZhNmE2LFxuICAgIHRhYmxlUm93T2RkQmFja2dyb3VuZENvbG9yOiAjMjgzMjM5LFxuICAgIHRhYmxlUm93RXZlbkJhY2tncm91bmRDb2xvcjogIzIxMkMzMyxcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWRhcmstbGlnaHRlc3QsXG4gICAgYm9yZGVyTGlnaHQ6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWRhcmstbGlnaHRlc3QsXG4gICAgYm9yZGVyRGFyazogMXB4IHNvbGlkICRjb2xvci10ZXh0LWdyYXktbGlnaHQsXG4gICAgYm9yZGVyQWNjZW50OiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJvcmRlckRvdHRlZDogMXB4IGRvdHRlZCAkY29sb3ItYm9yZGVyLWRhcmssXG4gICAgYm9yZGVyVHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50LFxuICAgIHJvdW5kZWRDb3JuZXJzOiA1cHgsXG4gICAgcm91bmRlZENvcm5lcnNUb3A6IDVweCA1cHggMCAwLFxuICAgIHJvdW5kZWRDb3JuZXJzQm90dG9tOiAwcHggMHB4IDVweCA1cHgsXG4gICAgaWNvbkNvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LWxpZ2h0LFxuICAgIHRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LXdoaXRlLFxuICAgIHRleHRDb2xvclNlY29uZGFyeTogJGNvbG9yLXRleHQtZ3JheS1saWdodCxcbiAgICB0ZXh0Q29sb3JBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICB0ZXh0Q29sb3JBY2NlbnRIb3ZlcjogJGNvbG9yLWhpdmUtcmVkLWxpZ2h0LFxuICAgIHRleHRDb2xvckVycm9yOiAkY29sb3ItdGV4dC1yZWQsXG4gICAgY29udGVudEJvcmRlckFjY2VudDogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJ1dHRvbkJhY2tncm91bmQ6ICRjb2xvci13aGl0ZSxcbiAgICBidXR0b25CYWNrZ3JvdW5kSG92ZXI6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBidXR0b25UZXh0OiAkY29sb3ItYmx1ZS1kYXJrLFxuICAgIGJ1dHRvblRleHRTaGFkb3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwKSxcbiAgICBidXR0b25UZXh0SG92ZXI6ICRjb2xvci13aGl0ZSxcbiAgICBidXR0b25Cb3hTaGFkb3c6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBidXR0b25Cb3hTaGFkb3dIb3ZlcjogJGNvbG9yLXdoaXRlLFxuICAgIGlucHV0UHJpY2VXYXJuaW5nOiByZ2JhKDI1NSwgMTUzLCAwLCAwLjgzKSxcbiAgICBtb2RhbEJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBtb2RhbFRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LXdoaXRlLFxuICApLFxuKTtcblxuLypcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZW1lc1xuICovXG5AbWl4aW4gdGhlbWlmeSgkdGhlbWVzKSB7XG4gIEBlYWNoICR0aGVtZSwgJG1hcCBpbiAkdGhlbWVzIHtcbiAgICAudGhlbWUtI3skdGhlbWV9ICYge1xuICAgICAgJHRoZW1lLW1hcDogKCkgIWdsb2JhbDtcbiAgICAgIEBlYWNoICRrZXksICRzdWJtYXAgaW4gJG1hcCB7XG4gICAgICAgICR2YWx1ZTogbWFwLWdldChtYXAtZ2V0KCR0aGVtZXMsICR0aGVtZSksICcjeyRrZXl9Jyk7XG4gICAgICAgICR0aGVtZS1tYXA6IG1hcC1tZXJnZSgkdGhlbWUtbWFwLCAoJGtleTogJHZhbHVlKSkgIWdsb2JhbDtcbiAgICAgIH1cbiAgICAgIEBjb250ZW50O1xuICAgICAgJHRoZW1lLW1hcDogbnVsbCAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gdGhlbWVkKCRrZXkpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1tYXAsICRrZXkpO1xufVxuXG5cbi50aGVtZS1vcmlnaW5hbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgY29sb3I6ICRjb2xvci10ZXh0LWRhcms7XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGU7XG4gIH1cbn1cbi50aGVtZS1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZTtcbiAgY29sb3I6ICRjb2xvci10ZXh0LWRhcms7XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGU7XG4gIH1cbn1cbi50aGVtZS1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyaztcbiAgY29sb3I6ICRjb2xvci10ZXh0LXdoaXRlO1xufVxuXG5cbi8vIFV0aWxpdHkgY2xhc3NlcyB0byBiZSB1c2VkIHdpdGggQGV4dGVuZFxuXG4ubGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICYtLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH1cbiAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1zZWNvbmRhcnkge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICAgICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tYWNjZW50IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgIH1cbiAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50SG92ZXInKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmUtYnRuLWhvbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyQWNjZW50Jyk7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyRGFyaycpO1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH1cbiAgfVxufVxuXG4uZS1idG4ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDJweCAycHggMHB4IDBweCB0aGVtZWQoJ2J1dHRvbkJveFNoYWRvdycpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgfVxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZEhvdmVyJyk7XG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xKSwgNHB4IDRweCAwIDAgdGhlbWVkKCdidXR0b25Cb3hTaGFkb3dIb3ZlcicpO1xuICAgICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dEhvdmVyJyk7XG4gICAgICB0ZXh0LXNoYWRvdzogdGhlbWVkKCdidXR0b25UZXh0U2hhZG93Jyk7XG4gICAgfVxuICB9XG4gICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuICAgIH1cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0SG92ZXInKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBidXR0b24gY2xhc3MgZG9lc24ndCBhcHBseWluZyB0aGVtaW5nIChqdXN0IHN0cmFpZ2h0IHN0eWxlcykuIFRvIGJlIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gdGhlbWluZyBjbGFzc2VzIGF2YWlsYWJsZSAoZS5nLiBpbiBtb2RhbHMgYW5kIHN0YXRpYyBzZXJ2ZXIgcGFnZXMgaW4gc2lnbnVwKVxuXG4uZS1idG4ge1xuICAmLS1ibGFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApLCA1cHggNXB4IDAgMCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMnB4IDAgcmdiYSgwLDAsMCwwLjEpLCA3cHggN3B4IDAgMCAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApO1xuICAgIH1cbiAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApLCA1cHggNXB4IDAgMCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIH1cbiAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmhvbGxvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ncmF5O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtZGFyaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwLjApO1xuICAgICAgfVxuICAgICAgJjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ncmF5O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi50aGVtZS1kYXJrLFxuLnRoZW1lLWxpZ2h0IHtcbiAgLmJ1dHRvbi5ob2xsb3cge1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgb3V0bGluZS1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGhvdmVyVW5kZXJsaW5lKCkge1xuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuXG4vLyByZW0gZmFsbGJhY2sgLSBjcmVkaXRzOiBodHRwOi8vemVyb3NpeHRocmVlLnNlL1xuXG5AZnVuY3Rpb24gY2FsY3VsYXRlUmVtKCRzaXplKSB7XG4gICRyZW1TaXplOiAkc2l6ZSAvIDE2cHg7XG4gIEByZXR1cm4gJHJlbVNpemUgKiAxcmVtO1xufVxuXG5AbWl4aW4gZm9udC1zaXplKCRzaXplKSB7XG4gIGZvbnQtc2l6ZTogJHNpemU7XG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlUmVtKCRzaXplKTtcbn1cblxuLy8gRW5hYmxlcyBvcGFjaXR5IHRvIGJlIHNhZmVseSB1c2VkIHdpdGggb2xkZXIgYnJvd3NlcnNcblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICRvcGFjaXR5LWllOiAkb3BhY2l0eSAqIDEwMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PSRvcGFjaXR5LWllKTsgLy9JRThcbn1cblxuIiwiLm1lbnUgPiBsaSA+IGEge1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xufVxuXG4udG9vbHRpcCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xufVxuXG4uZHJvcGRvd24tcGFuZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcbiAgei1pbmRleDogMTAwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG5cbiAgLlZlcnRpY2FsTWVudSB7XG4gICAgYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY2O1xuICAgICAgY29sb3I6ICRjb2xvci1oaXZlLXJlZC1kYXJrO1xuICAgIH1cbiAgfVxufVxuXG5hIHtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICB9XG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50SG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuZGl2W3JvbGU9ZGlhbG9nXSB7XG4gIHotaW5kZXg6IDUwMDtcbn1cblxuaW5wdXRbdHlwZT1zdWJtaXRdLmRpc2FibGVkLCBpbnB1dFt0eXBlPXN1Ym1pdF0uZGlzYWJsZWQ6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xuICBjdXJzb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbn1cblxuYnV0dG9uLCAuYnV0dG9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmNhbGxvdXQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gIH1cbiAgJi5hbGVydCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2FsZXJ0QmFja2dyb3VuZENvbG9yJyk7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxuICB9XG59XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICB0b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxufVxuXG5ociB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gIH1cbn1cblxudGFibGUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAtMXB4IHJlZDtcbn1cblxuXG50aGVhZCwgdGJvZHksIHRmb290IHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxufVxuXG50aGVhZCB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgndGFibGVSb3dFdmVuQmFja2dyb3VuZENvbG9yJyk7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICB9XG59XG5cbnRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgndGFibGVSb3dFdmVuQmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbn1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg4KTtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG59XG5cbi5yZXZlYWwge1xuICBib3gtc2hhZG93OiAycHggMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xKSwgN3B4IDdweCAwIDAgJGNvbG9yLWhpdmUtcmVkO1xuICBib3JkZXItcmFkaXVzOiAwIDMwcHg7XG4gIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICBvdXRsaW5lOiBub25lO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZGFsQmFja2dyb3VuZENvbG9yJyk7XG4gICAgY29sb3I6IHRoZW1lZCgnbW9kYWxUZXh0Q29sb3JQcmltYXJ5Jyk7XG4gIH1cbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgnbW9kYWxUZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICB9XG4gIC5idXR0b24ge1xuICAgIEBleHRlbmQgLmUtYnRuO1xuICAgIEBleHRlbmQgLmUtYnRuLS1ibGFjaztcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICB9XG4gIGg0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG4ucHJvZ3Jlc3Mge1xuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiRjb2xvci1ib3JkZXItbGlnaHQ7XG4gIGRpdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiA4cHg7XG4gIH1cbn1cbiIsIi8vIEFuaW1hdGlvbiBoZWxwZXJzXG5cbiRmYWRlLWluLWFuaW1hdGlvbi1sZW5ndGg6IDFzO1xuJGZhZGUtaW4tYW5pbWF0aW9uLWRlbGF5OiAwLjAzcztcblxuXG4uZmFkZS1pbiB7XG4gIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAgICYtLSN7JGl9IHsgXG4gICAgICBhbmltYXRpb246IGZhZGUtaW5cbiAgICAgICAkZmFkZS1pbi1hbmltYXRpb24tbGVuZ3RoIGVhc2UtaW4tb3V0ICRmYWRlLWluLWFuaW1hdGlvbi1kZWxheSokaSBib3RoO1xuICAgIH1cbiAgfSBcbn1cblxuQGtleWZyYW1lcyBmYWRlLWluIHtcblx0MCUge1xuXHRcdEBpbmNsdWRlIG9wYWNpdHkoMCk7XG5cdH1cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgb3BhY2l0eSgxKTtcblx0fVxufVxuXG5cbkBrZXlmcmFtZXMgZmFkZS1pbi11cCB7XG4gIDAlIHtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNHB4LCAyNHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTtcbiAgfVxufSIsImZvcm0ge1xuICAuZXJyb3Ige1xuICAgIGlucHV0LCBpbnB1dDphY3RpdmUsIGlucHV0OmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIH1cbiAgICBsYWJlbCwgLmhlbHAtdGV4dCB7XG4gICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIH1cbiAgICAuaGVscC10ZXh0IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgICB9XG4gIH1cbiAgLnN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAkc3VjY2Vzcy1jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgfVxufVxuYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHggIWltcG9ydGFudDtcbn1cbmlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcbiAgICAvLyBPdmVyd3JpdGUgMTZweCBtYXJnaW4tYm90dG9tLCBpdCB3YXMgcHVzaGluZyBlcnJvciBtZXNzYWdlcyBkb3duIGF3YXkgZnJvbSB0aGUgZm9ybSBlbGVtZW50XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG4uZXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbn1cbnAuZXJyb3Ige1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuLndhcm5pbmcge1xuICAgIGNvbG9yOiBkYXJrZ29sZGVucm9kO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG59XG4uZGFya3JlZCB7XG4gICAgY29sb3I6IGRhcmtyZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5pbmZvIHtcbiAgICBjb2xvcjogZGltZ3JleTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmhvdmVyQmFja2dyb3VuZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYW50aXF1ZXdoaXRlO1xufVxuLmRlLWVtcGhhc2l6ZSB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xufVxuLm92ZXJmbG93LWVsbGlwc2lzIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmRhcmtidG4ge1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cblxuLy8gLy8gd2hhdCBhYm91dCB0b3VjaC1zY3JlZW4gb25seT9cbi8vIC5ob3ZlclNob3cge1xuLy8gICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbi8vIH1cbi8vIC8vIHdoYXQgYWJvdXQgdG91Y2gtc2NyZWVuIG9ubHk/XG4vLyAuaG92ZXJTaG93VHJpZ2dlcjpob3ZlciA+IC5ob3ZlclNob3cge1xuLy8gICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4vLyB9XG5cbmxhYmVsIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpOyAgXG4gIH0gICAgXG59XG5cbiRpbnB1dC1mb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGlucHV0LWZvbnQtc2l6ZTogMTZweDsiLCIuTWFya2Rvd24ge1xuICBmb250LWZhbWlseTogJ1NvdXJjZSBTZXJpZiBQcm8nLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxMjAlO1xuXG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xufVxuXG4vLyB1c2VkIGZvciBjb21tZW50c1xuLk1hcmtkb3duLk1hcmtkb3duVmlld2VyLS1zbWFsbCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDExMCU7XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICB9XG5cbiAgZGl2LnZpZGVvV3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjcwcHg7XG4gIH1cbn1cblxuLk1hcmtkb3duIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBoeXBoZW5zOiBub25lO1xuXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgaDEge1xuICAgIG1hcmdpbjogMi41cmVtIDAgLjNyZW07XG4gICAgZm9udC1zaXplOiAxNjAlXG4gIH1cbiAgaDIge1xuICAgIG1hcmdpbjogMi41cmVtIDAgLjNyZW07XG4gICAgZm9udC1zaXplOiAxNDAlO1xuICB9XG4gIGgzIHtcbiAgICBtYXJnaW46IDJyZW0gMCAwLjNyZW07XG4gICAgZm9udC1zaXplOiAxMjAlO1xuICB9XG4gIGg0IHtcbiAgICBtYXJnaW46IDEuNXJlbSAwIDAuMnJlbTtcbiAgICBmb250LXNpemU6IDExMCU7XG4gIH1cbiAgaDUge1xuICAgIG1hcmdpbjogMXJlbSAwIDAuMnJlbTtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gIH1cbiAgaDYge1xuICAgIG1hcmdpbjogMXJlbSAwIDAuMnJlbTtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgfVxuXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6IDAuMnJlbTtcbiAgICBmb250LXNpemU6IDg1JTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgfVxuXG4gIHByZSA+IGNvZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgb2wsIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgfVxuXG4gIHRhYmxlIHRkIHtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7IC8vIGlzc3VlICMxNDZcbiAgfVxuXG4gIHRhYmxlIHRoZWFkIHRoIHtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtIDA7XG4gIH1cbiAgYSB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1hY2NlbnQ7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgaWZyYW1lIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogNzV2dztcbiAgfVxuXG4gIGlmcmFtZS50cnV2dmwtaWZyYW1lIHtcbiAgICBtYXgtaGVpZ2h0OiBpbml0aWFsO1xuICB9XG5cbiAgLnR3ZWV0V3JhcHBlciBpZnJhbWUge1xuICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIGRpdi5wdWxsLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG5cbiAgZGl2LnB1bGwtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuXG4gIGRpdi50ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cblxuICBkaXYudGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICBkaXYudGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIGRpdi50ZXh0LXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cblxuICBkaXYudmlkZW9XcmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaWZyYW1lIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbiAgfVxuICBkaXYuaWZyYW1lV3JhcHBlciB7XG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG4gIH1cbiAgZGl2LnR3ZWV0V3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbiAgfVxuICBibG9ja3F1b3RlIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICB9XG4gIH1cbiAgYmxvY2txdW90ZSA+IHAge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cblxuIiwiLkFwcCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uQXBwX19jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLndlbGNvbWVXcmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5SaWdodE1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG4gIC5tZW51ID4gbGkge1xuICAgID4gYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNzc3O1xuICAgIH1cbiAgICA+IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjtcbiAgICB9XG4gIH1cbiAgLm1lbnUgPiBsaS5sYXN0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc3NztcbiAgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbi5QbGFpbkxpbmsge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xufVxuXG4udGV4dC1tdXRlZCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndlbGNvbWVCYW5uZXIge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuICBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjhweCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzNHB4KTtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG5cbiAgaDQge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiA4NSU7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTdweCk7XG4gICAgfVxuICB9XG5cbiAgLnJvdyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5idXR0b24ge1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDJweCAycHggMCAwICRjb2xvci1oaXZlLXJlZDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwLjEpLCA0cHggNHB4IDAgMCAkY29sb3Itd2hpdGU7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgICBtaW4td2lkdGg6IDEzMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5idXR0b24tLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gIH1cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgdG9wOiAwLjhyZW07XG4gICAgcmlnaHQ6IDA7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLmJ1dHRvbi5naG9zdCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzA0MTRBO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgIzMwNDE0QSwgMnB4IDJweCAwIDAgIzMwNDE0QTtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCAjMzA0MTRBLCA0cHggNHB4IDAgMCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgfVxuICB9XG5cbiAgLmhlcm9JbWFnZSB7XG4gICAgbWF4LWhlaWdodDogMzYwcHg7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICBhbmltYXRpb246IGZhZGUtaW4tdXAgMC42cyBlYXNlLW91dCBib3RoO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgIH1cbiAgfVxuXG4gIC53ZWxjb21lSW1hZ2Uge1xuICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgIHBhZGRpbmc6IDJlbSAwO1xuICAgIH1cbiAgfVxuXG4gIC53ZWxjb21lUGl0Y2gge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLmRvd252b3RlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIC8vLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgxKTsgLy8gaW1hZ2VcbiAgICAvL2ZpbHRlcjogZ3JheTsgLy8gaW1hZ2UgZ3JheXNjYWxlXG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgY29sb3I6ICM4NDgyODI7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gICAgLkNvbW1lbnRfX2hlYWRlci11c2VyIHtcbiAgICAgIGNvbG9yOiAjODQ4MjgyO1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgfVxuICAgIH1cbn1cbi5kb3dudm90ZWQ6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBub25lO1xuICAgIC13ZWJraXQtZmlsdGVyOiBub25lO1xufVxuXG4uQXBwX19hbm5vdW5jZW1lbnQge1xuICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cblxuXG4uYmV0YS1kaXNjbGFpbWVyIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICA0NWRlZyxcbiAgICAgICAgICB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpLFxuICAgICAgICAgIHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJykgMTBweCxcbiAgICAgICAgICB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpIDEwcHgsXG4gICAgICAgICAgdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKSAyMHB4XG4gICAgICAgICk7XG4gICAgfVxufVxuXG4ucmVhY3QtdG9vbHRpcC1saXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnJlYWN0LXRvb2x0aXAtbGl0ZS1hcnJvdyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzMzO1xufVxuIiwiLkJlbmVmaWNpYXJ5U2VsZWN0b3JfX3BlcmNlbnRib3gge1xuICBtaW4td2lkdGg6IDIuMnJlbTtcbiAgbWF4LXdpZHRoOiAyLjZyZW07XG59XG4uQmVuZWZpY2lhcnlTZWxlY3Rvcl9fcGVyY2VudHJvdyB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctbGVmdDogMnB4O1xufVxuXG4uQmVuZWZpY2lhcnlTZWxlY3RvciAuaW5wdXQtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG4ucmVhY3QtYXV0b2NvbXBsZXRlLWlucHV0IHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBtYXgtaGVpZ2h0OiAxNmVtO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO1xuICBib3R0b206IGF1dG87XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggcmdiYSgwLDAsMCwwLjE3NSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAyMDAwMDtcbn1cblxuLnJlYWN0LWF1dG9jb21wbGV0ZS1pbnB1dCA+IGRpdiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMTBweDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbn1cblxuLnJlYWN0LWF1dG9jb21wbGV0ZS1pbnB1dCA+IC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDZENkE5O1xuICBjb2xvcjogIzMzMztcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnRIb3ZlcicpO1xuICB9XG59XG4iLCIuQ29tbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcbiAgLk1hcmtkb3duIHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMC4xcmVtIDAgMC42cmVtIDA7XG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICB9XG4gIH1cblxuICAuUmVwbHlFZGl0b3IgLmNvbHVtbi5sYXJnZS02IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG5cbiAgLlJlcGx5RWRpdG9yIC5zaWRlLWJ5LXNpZGUge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5Db21tZW50X19Vc2VycGljIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwLjRyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNnJlbTtcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIHRvcDogMC4ycmVtO1xuICB9XG5cbiAgLlVzZXJwaWMge1xuICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gIH1cbn1cblxuLkNvbW1lbnRfX1VzZXJwaWMtc21hbGwge1xuICBAaW5jbHVkZSBoaWRlLWZvcihtZWRpdW0pO1xuICAuVXNlcnBpYyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogM3B4O1xuICAgIG1hcmdpbi1yaWdodDogMC4ycmVtO1xuICAgIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLkNvbW1lbnQgLmhpZ2hsaWdodGVkIHtcbiAgcGFkZGluZzogMTRweDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckFjY2VudCcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnaGlnaGxpZ2h0QmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbn1cblxuLkNvbW1lbnQuY29sbGFwc2VkIC5Db21tZW50X19ibG9jayxcbi5Db21tZW50IC5Db21tZW50X19ibG9jay5kb3dudm90ZWQ6bm90KC5yZXZlYWxlZCkge1xuICA+IC5Db21tZW50X19Vc2VycGljIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMjZweDtcbiAgICAuVXNlcnBpYyB7XG4gICAgICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5Db21tZW50X19oZWFkZXIge1xuICAgIC5Wb3Rpbmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuQ29tbWVudF9fYm9keSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuICAuQ29tbWVudF9fZm9vdGVyIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5Db21tZW50X19oZWFkZXIge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBtYXJnaW4tbGVmdDogNjJweDtcbiAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzVG9wJyk7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGJhY2tncm91bmQ6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgfVxuICBzdmcge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLkNvbW1lbnRfX2hlYWRlci11c2VyIHtcbiAgY29sb3I6ICRibGFjaztcbiAgZm9udC1zaXplOiAxMDAlO1xuICBhIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gIH1cbn1cblxuLkNvbW1lbnRfX2hlYWRlcl9jb2xsYXBzZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgPiBhIHtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFyZW07XG4gICAgcGFkZGluZzogMCAwLjVyZW07XG4gIH1cbiAgLkljb24ge1xuICAgIHRvcDogNXB4O1xuICB9XG59XG5cbi5Db21tZW50IC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fYm9keSB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZm9udC1zaXplOiA5MCU7XG4gICAgYmFja2dyb3VuZDogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxufVxuXG4uQ29tbWVudCAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2Zvb3RlciB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzQm90dG9tJyk7XG4gICAgcGFkZGluZzogM3B4IDEwcHggNXB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfVxuICBhIHtcbiAgIEBleHRlbmQgLmxpbms7XG4gICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICB9XG4gIC5Wb3RpbmdfX3ZvdGVyc19saXN0IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1yaWdodDogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgcGFkZGluZy1yaWdodDogMC40cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICAgIC5kcm9wZG93bi1hcnJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDNweDtcbiAgICAgIGxlZnQ6IC0ycHg7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgLkljb24uZHJvcGRvd24tYXJyb3cgcG9seWdvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuQ29tbWVudF9fZm9vdGVyX19jb250cm9scyB7XG4gICAgYSB7bWFyZ2luOiAwIDAuMnJlbTt9XG4gIH1cbn1cblxuLkNvbW1lbnRfX3JlcGxpZXMge1xuICBtYXJnaW4tdG9wOiAxLjRyZW07XG4gIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItbGVmdDogdGhlbWVkKCdib3JkZXJEb3R0ZWQnKTtcbiAgfVxuICAuQ29tbWVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS40cmVtO1xuICB9XG59XG5cbi5Db21tZW50X19uZWdhdGl2ZV9ncm91cCB7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDAuMzU7XG4gICAgICAmOmhvdmVyIHtvcGFjaXR5OiAwLjU7fVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5yb290IHtcbiAgICAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2hlYWRlcixcbiAgICAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2Zvb3RlcixcbiAgICAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2JvZHksXG4gICAgLkNvbW1lbnRfX3JlcGxpZXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucmVwbHkge1xuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9faGVhZGVyLFxuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fZm9vdGVyLFxuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fYm9keSxcbiAgICAuQ29tbWVudF9fcmVwbGllcyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLkNvbW1lbnQgLkNvbW1lbnRfX2Jsb2NrIC5oaWdobGlnaHRlZCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG4iLCIuTWFya2Rvd25WaWV3ZXJfX25lZ2F0aXZlX2dyb3VwIHtcbiAgICBjb2xvcjogY3JpbXNvbjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4uTWFya2Rvd25WaWV3ZXIge1xuICBtYXgtd2lkdGg6IDQ4cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4iLCIudm90ZV93ZWlnaHRzIHtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMC41cmVtO1xuICAgIGNvbG9yOiBncmVlbjtcbiAgICBzcGFuIHtjb2xvcjogcmVkO31cbn1cblxudWwuUG9zdHNMaXN0X19zdW1tYXJpZXMge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxudWwuUG9zdHNMaXN0X19zdW1tYXJpZXMgPiBsaSB7XG4gIHBhZGRpbmc6IDAuMWVtIDAuNWVtIDAgMC41ZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOGVtO1xuXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnMnKTtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuXG4gIC8qICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDNweCAwIHRoZW1lZCgnY29udGVudEJvcmRlckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSovXG59XG5cbi5Qb3N0U3VtbWFyeSB7XG4gIC8vIHBhZGRpbmc6IDAgMCAwLjVyZW07XG4gIG1hcmdpbjogMCAwIDEuMjV2dztcbiAgY2xlYXI6IGxlZnQ7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIC5Qb3N0U3VtbWFyeV9fbnNmdy13YXJuaW5nIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIC5Qb3N0U3VtbWFyeV9fZm9vdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgICAgIC5SZWJsb2dfX2J1dHRvbiB7ZGlzcGxheTogbm9uZTt9XG4gICAgICAuVm90aW5nX19idXR0b24ge2Rpc3BsYXk6IG5vbmU7fVxuICAgIH1cbiAgICAuUG9zdFN1bW1hcnlfX3RpbWVfYXV0aG9yX2NhdGVnb3J5X3NtYWxsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICB9XG4gIH1cblxuICAubnNmdy1mbGFnIHtcbiAgICBjb2xvcjogJGNvbG9yLXJlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcmVkO1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbDtcbiAgICBtYXJnaW46IDAgMC4xcmVtO1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X19pbWFnZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMzBweDtcbiAgaGVpZ2h0OiA0LjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDIwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VFRTtcbn1cblxuLlBvc3RTdW1tYXJ5X19pbWFnZS1tb2JpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI0Y4RjhGODtcblxuICBpbWcge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA4MHZ3O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5LndpdGgtaW1hZ2UgLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnksXG4uUG9zdFN1bW1hcnkud2l0aC1pbWFnZSAuUG9zdFN1bW1hcnlfX2NvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogOC4yNXJlbTtcbn1cblxuLlBvc3RTdW1tYXJ5X19oZWFkZXIge1xuICA+IGgzIHtcbiAgICBmb250OiA2MDAgMTAwJSBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiTHVjaWRhIFNhbnNcIiwgR2VuZXZhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICA+IGEge1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgfVxuICAgID4gYTp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNzc3O1xuICAgIH1cbiAgICAuSWNvbiB7XG4gICAgICBtYXJnaW46IDAgMC4yNXJlbTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAwLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuODVyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiA1JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm5zZnctZmxhZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fYm9keSB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwIDAgMC4xNXJlbTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfVxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi5sYXlvdXQtbGlzdCAuUG9zdFN1bW1hcnlfX2JvZHkge1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4uUG9zdFN1bW1hcnlfX2Zvb3RlciB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYXRoIHtcbiAgICBmaWxsOiAkZGFyay1ncmF5O1xuICB9XG4gIGEge1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICB9XG4gIC5JY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fdGltZV9hdXRob3JfY2F0ZWdvcnkge1xuICBjb2xvcjogJGRhcmstZ3JheTtcbiAgYSB7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItbGVmdDogdGhlbWVkKCdib3JkZXJMaWdodCcpO1xuICB9XG5cbiAgLlJlYmxvZ19fYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBib3JkZXItcmlnaHQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fdGltZV9hdXRob3JfY2F0ZWdvcnlfc21hbGwgYSB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlBvc3RTdW1tYXJ5LndpdGgtaW1hZ2UgLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnkgLkljb24ucmVibG9nIHtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnkge1xuICAuSWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjY2FjYWNhO1xuICB9XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xuICBmb250LXNpemU6IDkwJTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Qb3N0U3VtbWFyeSB7XG4gICAgLy8gcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLy8gYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICB9XG4gIC5Qb3N0U3VtbWFyeV9faW1hZ2Uge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHZ3O1xuICB9XG4gIC5Qb3N0U3VtbWFyeV9fYm9keSB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4zcmVtO1xuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIC5Qb3N0U3VtbWFyeS53aXRoLWltYWdlIC5Qb3N0U3VtbWFyeV9fcmVibG9nZ2VkX2J5LFxuICAuUG9zdFN1bW1hcnkud2l0aC1pbWFnZSAuUG9zdFN1bW1hcnlfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5Qb3N0U3VtbWFyeV9fZm9vdGVyIC5Wb3RpbmcsIC5Qb3N0U3VtbWFyeV9fZm9vdGVyIC5Wb3RpbmdfX2lubmVyIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbiAgLlBvc3RTdW1tYXJ5X190aW1lX2F1dGhvcl9jYXRlZ29yeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgIC5SZWJsb2dfX2J1dHRvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uYXJ0aWNsZXNfX3N1bW1hcnkge1xuICAubnNmdy1mbGFnIHtcbiAgICBjb2xvcjogJGNvbG9yLXJlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcmVkO1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbDtcbiAgICBtYXJnaW46IDAgMC4xcmVtO1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIH1cblxuICAuYXJ0aWNsZXNfX3Jlc3RlZW0sXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLmFydGljbGVzX19jcm9zc3Bvc3Qge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMHB4O1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdC1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0LXRleHQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5hcnRpY2xlc19fZmVhdHVyZS1pbWcgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogNTYuMjV2dztcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG5cbiAgLmFydGljbGVzX19jb250ZW50LWJsb2NrLS10ZXh0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIuUG9zdCB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgndHJhbnNwYXJlbnQnKTtcbiAgfVxuICAucm93LmNvbW1lbnQtZWRpdG9yIHtcbiAgICAgIG1heC13aWR0aDogNTUuOXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4uUG9zdEZ1bGwge1xuICBwYWRkaW5nOiAycmVtIDFyZW0gMXJlbSAxcmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiA1NHJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzJyk7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyQWNjZW50Jyk7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cblxuICAuUmVwbHlFZGl0b3Ige1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdCB7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDAgMjBweDtcblxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdC1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5SZXBseUVkaXRvciAuY29sdW1uLmxhcmdlLTYge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gIH1cblxuICAuUmVwbHlFZGl0b3IgLnNpZGUtYnktc2lkZSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAuUG9zdEZ1bGxfX2F1dGhvcmVkX2J5IHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3RpbWVfYXV0aG9yX2NhdGVnb3J5IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG5cbiAgcGFkZGluZy1yaWdodDogLjZyZW07XG4gIG1hcmdpbi1yaWdodDogLjZyZW07XG4gID4gc3BhbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3RpbWVfYXV0aG9yX2NhdGVnb3J5X2xhcmdlIHtcbiAgbWFyZ2luOiAxcmVtIDAgMXJlbSAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxuICBzdHJvbmcsIGEge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG4gIGZvbnQtc2l6ZTogMTIwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgPiAuVXNlcnBpYyB7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICA+IC5yaWdodC1zaWRlIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICB9XG59XG5cbi5Qb3N0RnVsbF9faGVhZGVyLCAuUG9zdEZ1bGxfX2JvZHkge1xuICBtYXgtd2lkdGg6IDQ4cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLlBvc3RGdWxsX19oZWFkZXIge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICB9XG4gIGgxIHtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICB9XG4gICAgLkljb24ge1xuICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogLTMwJTtcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICB9XG4gIC5Qb3N0RnVsbF9fdGltZV9hdXRob3JfY2F0ZWdvcnkge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAuSWNvbi5jbG9jayB7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLlBvc3RGdWxsX19ib2R5IHtcbiAgcGFkZGluZzogMXJlbSAwIDFyZW0gMDtcbiAgY2xlYXI6IGxlZnQ7XG4gIGEge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tYWNjZW50O1xuICB9XG59XG5cbi5Qb3N0RnVsbF9fZm9vdGVyIHtcbiAgY2xlYXI6IHJpZ2h0O1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC1zaXplOiA5NCU7XG4gIHN2ZyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgfVxuICAuUmlnaHRTaGFyZV9fTWVudSB7XG4gICAgQGluY2x1ZGUgTVEoRkwpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG5cbiAgLlJlYmxvZ19fYnV0dG9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC40cmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgfVxuICAuUG9zdEZ1bGxfX2Nyb3NzcG9zdC1mb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5Qb3N0RnVsbF9fY3Jvc3Nwb3N0LWZvb3RlciAuYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICBAZXh0ZW5kIC5lLWJ0bi0tYmxhY2s7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3Jlc3BvbnNlcyB7XG4gIHBhZGRpbmctcmlnaHQ6IC40cmVtO1xufVxuXG4uUG9zdEZ1bGxfX3ZpZXdzIHtcbiAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gIG1hcmdpbi1yaWdodDogLjRyZW07XG4gIGZvbnQtc2l6ZTogOTQlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmlnaHQ6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3JlcGx5IHtcbiAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gIG1hcmdpbi1yaWdodDogLjRyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yaWdodDogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxuICBhIHttYXJnaW46IDAgMC4xNXJlbTt9XG59XG5cbi5Qb3N0RnVsbF9fbGlmZXRpbWUge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4uQXV0aG9yX19kcm9wZG93biB7XG4gIHBhZGRpbmc6IDFyZW07XG4gID4gYSB7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbn1cblxuLmV4cGxvcmUtcG9zdCB7XG4gIG1hcmdpbi1yaWdodDogMHB4IWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgZmlsbDogJGNvbG9yLWhpdmUtcmVkO1xuICAgIH1cbiAgfVxufVxuXG5pbnB1dC5zaGFyZS1ib3gge1xuICB3aWR0aDogNzUlIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uRXhwbG9yZVBvc3Qge1xuICBzcGFuLmV4dGxpbmsge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgfVxuICBoNSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG4gIC5FeHBsb3JlUG9zdF9fY29weS1idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uY2hhaW4tcm90YXRlZCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Qb3N0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuUG9zdEZ1bGxfX2Zvb3RlciA+IC5jb2x1bW4ge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG4gIGlucHV0LnNoYXJlLWJveCB7XG4gICAgaGVpZ2h0OiAyLjhlbTtcbiAgICBmb250LXNpemU6IC44ZW07XG4gIH1cbn1cblxuLyogTWVkaXVtIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgaW5wdXQuc2hhcmUtYm94IHtcbiAgICBoZWlnaHQ6IDIuOGVtO1xuICAgIGZvbnQtc2l6ZTogLjhlbTtcbiAgfVxufVxuIiwiLlBvc3RzTGlzdF9fc3VtbWFyaWVzIHtcbiAgICAuYXJ0aWNsZXNfX3N1bW1hcnkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLkZlYXR1cmVkVGFnLCAuUHJvbW90ZWRUYWcge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjJyZW07XG4gICAgICAgIG1hcmdpbjogMCAxcmVtIDAgMC41cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlByb21vdGVkVGFnIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQS5Qb3N0RGlzbWlzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuMTVyZW07XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5mbGV4LXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZmxleC1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsZXgtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm5vdGlmaWNhdGlvbl9fZmlsdGVyIHtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDVweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYWJhYmFiO1xufVxuXG4ubm90aWZpY2F0aW9uX19maWx0ZXI6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4ubm90aWZpY2F0aW9uX19maWx0ZXIuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm5vdGlmaWNhdGlvbl9fZmlsdGVyLnNlbGVjdGVkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm5vdGlmaWNhdGlvbl9faXRlbS5ldmVuIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG59XG5cbi5ub3RpZmljYXRpb25fX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ3RhYmxlUm93T2RkQmFja2dyb3VuZENvbG9yJyk7XG4gICAgfVxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41ZW0gMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm5vdGlmaWNhdGlvbl9fdW5yZWFkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwLjRlbTtcbiAgICAgICAgdG9wOiAwLjc1ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLlVzZXJwaWMge1xuICAgICAgICBtYXJnaW46IDAgMWVtO1xuICAgIH1cblxuICAgIC5JY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaXJjbGUge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX2RhdGUge1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm90aWZpY2F0aW9uX19tZXNzYWdlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG5cbiAgICAubm90aWZpY2F0aW9uX19tZXNzYWdlIGEge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX21lc3NhZ2UgYTp2aXNpdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX3Njb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gICAgfVxuXG4gICAgLm5vdGlmaWNhdGlvbl9fc2NvcmVfYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci10ZXh0LWhpdmUtcmVkO1xuICAgIH1cbn1cblxuIiwiLkljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gID4gc3ZnLCBzcGFuLmljb24ge1xuICAgIHdpZHRoOiAxLjEycmVtO1xuICAgIGhlaWdodDogMS4xMnJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJi5maWxsLWJsYWNrID4gc3ZnID4gcGF0aCB7XG4gICAgZmlsbDpibGFjaztcbiAgfVxufVxuXG4uSWNvbl8wXzh4ID4gc3ZnLCBzcGFuLkljb25fMF84eCB7XG4gIHdpZHRoOiAwLjhyZW07XG4gIGhlaWdodDogMC44cmVtO1xufVxuXG4uSWNvbl8xXzV4ID4gc3ZnLCBzcGFuLkljb25fMV81eCB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xufVxuXG4uSWNvbl8yeCA+IHN2Zywgc3Bhbi5JY29uXzJ4IHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbn1cblxuLkljb25fM3ggPiBzdmcsIHNwYW4uSWNvbl8zeCB7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG59XG5cbi5JY29uXzR4ID4gc3ZnLCBzcGFuLkljb25fNHgge1xuICB3aWR0aDogNC42MHJlbTtcbiAgaGVpZ2h0OiA0LjYwcmVtO1xufVxuXG4uSWNvbl81eCA+IHN2Zywgc3Bhbi5JY29uXzV4IHtcbiAgd2lkdGg6IDUuNzVyZW07XG4gIGhlaWdodDogNS43NXJlbTtcbiAgbWFyZ2luOiAyNHB4IDAgMjRweCAwO1xufVxuXG4uSWNvbl8xMHggPiBzdmcsIHNwYW4uSWNvbl8xMHgge1xuICB3aWR0aDogMTByZW07XG4gIGhlaWdodDogMTByZW07XG4gIG1hcmdpbjogMjRweCAwIDI0cHggMDtcbn1cblxuLkljb24uZHJvcGRvd24tYXJyb3cgcG9seWdvbiB7XG4gIGZpbGw6ICRkYXJrLWdyYXk7XG59XG4iLCIvLy5sb2FkaW5nLW92ZXJsYXkge1xuLy8gIGhlaWdodDogMTAwJTtcbi8vICB3aWR0aDogMTAwJTtcbi8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgdG9wOiAwOyBsZWZ0OiA5NXB4OyBib3R0b206IDA7IHJpZ2h0OiAwO1xuLy8gIHotaW5kZXg6IDEgIWltcG9ydGFudDtcbi8vICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgbGluZWFyIDAuNXM7XG4vLyAgdHJhbnNpdGlvbjogb3BhY2l0eSBsaW5lYXIgMC41cztcbi8vfVxuXG4vLy5sb2FkaW5nLW92ZXJsYXkubmctaGlkZSB7XG4vLyAgb3BhY2l0eTogMDtcbi8vfVxuXG4ubG9hZGluZy1wYW5lbCB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHJlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWF4LWhlaWdodDogMTEwcHg7XG4gIHdpZHRoOiAxMHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgb3BhY2l0eTogMC40O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi8vLnNwbGFzaCAubG9hZGluZy1wYW5lbCB7XG4vLyAgbGVmdDogLTM4MHB4O1xuLy99XG5cbi5wcm9ncmVzcy1pbmRpY2F0b3Ige1xuICBoZWlnaHQ6IDUwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogNDZweCAyMHB4IDIwcHggMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb2dyZXNzLWluZGljYXRvciA+IHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ud2l0aC1wcm9ncmVzcyAucHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5zcGlubmVyIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDtcbn1cblxuLndpdGgtcHJvZ3Jlc3MgLnNwaW5uZXIge1xuICBtYXJnaW46IDIwcHggYXV0byAwIGF1dG87XG59XG5cbi5zcGlubmVyID4gZGl2IHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LWFuaW1hdGlvbjogYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uOiBib3VuY2VkZWxheSAxLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAvKiBQcmV2ZW50IGZpcnN0IGZyYW1lIGZyb20gZmxpY2tlcmluZyB3aGVuIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG4uc3Bpbm5lciAuYm91bmNlMSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMzJzO1xufVxuXG4uc3Bpbm5lciAuYm91bmNlMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZWRlbGF5IHtcbiAgMCUsIDgwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjApO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApO1xuICB9XG59XG5cbi8vIHRocmVlIGJvdW5jZVxuXG4udGhyZWUtYm91bmNlID4gZGl2IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcblxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFuaW1hdGlvbjogYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgLyogUHJldmVudCBmaXJzdCBmcmFtZSBmcm9tIGZsaWNrZXJpbmcgd2hlbiBhbmltYXRpb24gc3RhcnRzICovXG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi50aHJlZS1ib3VuY2UgLmJvdW5jZTEge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjMycztcbn1cblxuLnRocmVlLWJvdW5jZSAuYm91bmNlMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlZGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCkgfVxuICA0MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKSB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlZGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7XG4gIH0gNDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICB9XG59XG5cbi5Mb2FkaW5nSW5kaWNhdG9yLmNpcmNsZSB7XG4gICAgJGNpcmNsZS1yYWRpdXM6IDE2cHg7XG4gICAgJi5pbmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA2cHg7XG4gICAgfVxuICAgICYuY2lyY2xlLXN0cm9uZyB7XG4gICAgICAgIHBhZGRpbmctdG9wOjJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MmVtO1xuICAgICAgICBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOjFweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGl2IHtcbiAgICAgICAgd2lkdGg6ICRjaXJjbGUtcmFkaXVzO1xuICAgICAgICBoZWlnaHQ6ICRjaXJjbGUtcmFkaXVzO1xuICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBhbmltYXRpb246IGxvYWRpbmcgNTAwbXMgaW5maW5pdGUgbGluZWFyO1xuICAgIH1cbn1cblxuXG4iLCIuVXNlcnBpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbn1cbiIsIi5Vc2VycGljX19pbmZvd3JhcHBlciB7XG4gICAgLlVzZXJJbmZvX19yY19pbm5lcmNpcmNsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogNjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luOiAtMjBweCAwIDAgLTIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB9XG59XG5cbi5IZWFkZXJfX3VzZXJwaWMgLlVzZXJwaWNfX2luZm93cmFwcGVyIC5Vc2VycGljIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vKiBodHRwczovL3d3dy5jc3NzY3JpcHQuY29tL2NpcmN1bGFyLXByb2dyZXNzLWJhci1wbGFpbi1odG1sLWNzcy8gKi9cbi5wcm9ncmVzcy1jaXJjbGUge1xuICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgIG1hcmdpbjogLTJweCAwIDAgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIHNvIHRoYXQgY2hpbGRyZW4gY2FuIGJlIGFic29sdXRlbHkgcG9zaXRpb25lZCAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDVlbTtcbiAgICBoZWlnaHQ6IDVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJFOUUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBsaW5lLWhlaWdodDogNWVtO1xufVxuXG4ucHJvZ3Jlc3MtY2lyY2xlOmFmdGVye1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjM1ZW07XG4gICAgbGVmdDogMC4zNWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDQuM2VtO1xuICAgIGhlaWdodDogNC4zZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29udGVudDogXCIgXCI7XG59XG4vKiBUZXh0IGluc2lkZSB0aGUgY29udHJvbCAqL1xuLnByb2dyZXNzLWNpcmNsZSBzcGFuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGluZS1oZWlnaHQ6IDVlbTtcbiAgICB3aWR0aDogNWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiBzZWFncmVlbjtcbn1cbi5sZWZ0LWhhbGYtY2xpcHBlciB7XG4gICAgLyogYSByb3VuZCBjaXJjbGUgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDVlbTtcbiAgICBoZWlnaHQ6IDVlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIG5lZWRlZCBmb3IgY2xpcHBpbmcgKi9cbiAgICBjbGlwOiByZWN0KDAsIDVlbSwgNWVtLCAyLjVlbSk7IC8qIGNsaXBzIHRoZSB3aG9sZSBsZWZ0IGhhbGYqL1xufVxuLyogd2hlbiBwPjUwLCBkb24ndCBjbGlwIGxlZnQgaGFsZiovXG4ucHJvZ3Jlc3MtY2lyY2xlLm92ZXI1MCAubGVmdC1oYWxmLWNsaXBwZXIge1xuICAgIGNsaXA6IHJlY3QoYXV0byxhdXRvLGF1dG8sYXV0byk7XG59XG4udmFsdWUtYmFyIHtcbiAgICAvKlRoaXMgaXMgYW4gb3ZlcmxheWVkIHNxdWFyZSwgdGhhdCBpcyBtYWRlIHJvdW5kIHdpdGggdGhlIGJvcmRlciByYWRpdXMsXG4gICAgdGhlbiBpdCBpcyBjdXQgdG8gZGlzcGxheSBvbmx5IHRoZSBsZWZ0IGhhbGYsIHRoZW4gcm90YXRlZCBjbG9ja3dpc2VcbiAgICB0byBlc2NhcGUgdGhlIG91dGVyIGNsaXBwaW5nIHBhdGguKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbmVlZGVkIGZvciBjbGlwcGluZyovXG4gICAgY2xpcDogcmVjdCgwLCAyLjVlbSwgNWVtLCAwKTtcbiAgICB3aWR0aDogNWVtO1xuICAgIGhlaWdodDogNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDAuNDVlbSBzb2xpZCBzZWFncmVlbjsgLypUaGUgYm9yZGVyIGlzIDAuMzUgYnV0IG1ha2luZyBpdCBsYXJnZXIgcmVtb3ZlcyB2aXN1YWwgYXJ0aWZhY3RzICovXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAjNEQ2NDJEOyovIC8qIGZvciBkZWJ1ZyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbn1cbi8qIFByb2dyZXNzIGJhciBmaWxsaW5nIHRoZSB3aG9sZSByaWdodCBoYWxmIGZvciB2YWx1ZXMgYWJvdmUgNTAlICovXG4ucHJvZ3Jlc3MtY2lyY2xlLm92ZXI1MCAuZmlyc3Q1MC1iYXIge1xuICAgIC8qUHJvZ3Jlc3MgYmFyIGZvciB0aGUgZmlyc3QgNTAlLCBmaWxsaW5nIHRoZSB3aG9sZSByaWdodCBoYWxmKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbmVlZGVkIGZvciBjbGlwcGluZyovXG4gICAgY2xpcDogcmVjdCgwLCA1ZW0sIDVlbSwgMi41ZW0pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNlYWdyZWVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogNWVtO1xuICAgIGhlaWdodDogNWVtO1xufVxuLnByb2dyZXNzLWNpcmNsZTpub3QoLm92ZXI1MCkgLmZpcnN0NTAtYmFyeyBkaXNwbGF5OiBub25lOyB9XG5cblxuLyogUHJvZ3Jlc3MgYmFyIHJvdGF0aW9uIHBvc2l0aW9uICovXG4ucHJvZ3Jlc3MtY2lyY2xlLnAwIC52YWx1ZS1iYXIgeyBkaXNwbGF5OiBub25lOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAxIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDExZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxOGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjVkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyOWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDM2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDQwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDQzZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDQ3ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDUwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDU0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDU4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDYxZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDY1ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDY4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDcyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDc2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDc5ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDgzZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDg2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDk0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDk3ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMjggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDEwMWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDI5IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMDRkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzMCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTA4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMzEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDExMmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDMyIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMTVkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzMyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTE5ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMzQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDEyMmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDM1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMjZkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzNiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMzcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDEzM2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDM4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzdkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnAzOSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTQwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE0NGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDQxIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNDhkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA0MiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTUxZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE1NWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDQ0IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNThkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA0NSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTYyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE2NmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDQ3IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNjlkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA0OCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTczZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNDkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE3NmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDUwIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1MSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTg0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNTIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE4N2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDUzIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxOTFkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1NCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMTk0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNTUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDE5OGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDU2IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMDJkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA1NyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNTggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIwOWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDU5IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMTJkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2MCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjE2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNjEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIyMGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDYyIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMjNkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2MyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjI3ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNjQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDIzMGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDY1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMzRkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2NiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjM4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNjcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI0MWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDY4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNDVkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA2OSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjQ4ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzAgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI1MmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDcxIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNTZkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA3MiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjU5ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzMgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI2M2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDc0IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNjZkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA3NSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzYgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI3NGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDc3IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzdkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA3OCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjgxZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wNzkgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI4NGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDgwIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyODhkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4MSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMjkyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wODIgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDI5NWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDgzIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyOTlkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4NCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzAyZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wODUgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMwNmRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDg2IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMTBkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA4NyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzEzZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wODggLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMxN2RlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDg5IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMjBkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5MCAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzI0ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wOTEgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMyOGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDkyIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzMzFkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5MyAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzM1ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wOTQgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDMzOGRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDk1IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNDJkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5NiAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzQ2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wOTcgLnZhbHVlLWJhciB7IHRyYW5zZm9ybTogcm90YXRlKDM0OWRlZyk7IH1cbi5wcm9ncmVzcy1jaXJjbGUucDk4IC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNTNkZWcpOyB9XG4ucHJvZ3Jlc3MtY2lyY2xlLnA5OSAudmFsdWUtYmFyIHsgdHJhbnNmb3JtOiByb3RhdGUoMzU2ZGVnKTsgfVxuLnByb2dyZXNzLWNpcmNsZS5wMTAwIC52YWx1ZS1iYXIgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4iLCIuVm90aW5nIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICB9XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uIHtcbiAgLkljb24ge1xuICAgIC8vIFB1dCB0aGUgaWNvbiBpbiBhIGxheWVyIHRvIGltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlIChzY3JvbGxpbmcgZXNwZWNpYWxseSlcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgfVxuICBwYXRoIHtcbiAgICBmaWxsOiAkZGFyay1ncmF5O1xuICB9XG4gIGNpcmNsZSB7XG4gICAgc3Ryb2tlOiAkZGFyay1ncmF5O1xuICB9XG4gID4gYTpob3ZlciBwYXRoIHtcbiAgICBmaWxsOiAkYmxhY2s7XG4gIH1cbn1cblxuLlZvdGluZ19fYWJvdXQtZmxhZyB7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgLmJ1dHRvbiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDVweCA1cHggMCAwIHRoZW1lZCgnYnV0dG9uQm94U2hhZG93Jyk7XG4gICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZEhvdmVyJyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMnB4IDAgcmdiYSgwLDAsMCwwLjEpLCA3cHggN3B4IDAgMCB0aGVtZWQoJ2J1dHRvbkJveFNoYWRvd0hvdmVyJyk7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHRIb3ZlcicpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApO1xuICAgICAgfVxuICAgIH1cbiAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi11cCB7XG4gIC5JY29uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cbiAgZGl2ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICB9XG4gID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMC40cmVtO1xuICB9XG4gIHBhdGgge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cbiAgY2lyY2xlIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBzdHJva2U6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICB9XG4gIH1cbiAgLy8gZXhjbHVkZSBzbWFsbCBkZXZpY2VzXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLkljb246aG92ZXIge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoNzUsIDE2MiwgMjQyLCAxKTtcbiAgICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xuICAgICAgfVxuICB9XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICB9XG4gID4gLmRyb3Bkb3duLWNvbXAgPiAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0zMHB4O1xuICAgIGxlZnQ6IC0yNnB4O1xuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi11cCA+IGE6aG92ZXIsIGEuY29uZmlybV93ZWlnaHQ6aG92ZXIge1xuICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgIH1cbiAgICBjaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxufVxuXG4uVm90aW5nX19idXR0b24tdXAudm90aW5nVXAge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIHN2ZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFuaW1hdGlvbjogbG9hZGluZyA1MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLWRvd24udm90aW5nRG93biBzdmcge1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcmVkO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb246IGxvYWRpbmcgNTAwbXMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uVm90aW5nX19idXR0b24tZG93biB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAuVm90aW5nX19idXR0b24tZG93bnZvdGVzIHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMTUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMXJlbTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICBhIHBhdGgge1xuICAgIGZpbGw6ICMwMDA7XG4gIH1cbiAgYSBjaXJjbGUge1xuICAgIHN0cm9rZTogIzAwMDtcbiAgfVxuICBhOmhvdmVyIGNpcmNsZSB7XG4gICAgZmlsbDogIzU1NTtcbiAgfVxuICBhOmhvdmVyIHBhdGgge1xuICAgIGZpbGw6ICNmZmY7XG4gIH1cblxuICAmLlZvdGluZ19fYnV0dG9uLS1kb3dudm90ZWQge1xuICAgIGEgcGF0aCB7XG4gICAgICBmaWxsOiAjZmZmO1xuICAgIH1cbiAgICBhIGNpcmNsZSB7XG4gICAgICBmaWxsOiAjZjk5O1xuICAgIH1cbiAgICBhOmhvdmVyIGNpcmNsZSB7XG4gICAgICBmaWxsOiAjZjY2O1xuICAgIH1cbiAgfVxufVxuXG4uVm90aW5nX19idXR0b24tLXVwdm90ZWQge1xuICAuSWNvbjpob3ZlciB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgcGF0aCB7XG4gICAgZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi0tdXB2b3RlZCBjaXJjbGUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgfVxufVxuXG4uVm90aW5nX19idXR0b24tLXVwdm90ZWQgYTpob3ZlciBwYXRoIHtcbiAgZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4uVm90aW5nX19idXR0b24tLXVwdm90ZWQgYTpob3ZlciBjaXJjbGUge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudEhvdmVyJyk7XG4gICAgICBzdHJva2U6IHRoZW1lZCgnY29sb3JBY2NlbnRIb3ZlcicpO1xuICAgIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLS1kb3dudm90ZWQgcGF0aCB7XG4gIGZpbGw6ICRjb2xvci1yZWQ7XG59XG5cblxuLlBvc3RGdWxsIC5Wb3RpbmcgLkRyb3Bkb3duTWVudS5Wb3RpbmdfX3ZvdGVyc19saXN0IHtcbiAgICAvKiByZXNlcnZlIGVub3VnaCBzcGFjZSBmb3IgZHJvcGRvd24gKG90aGVyd2lzZSBvdmVyZmxvdykgKi9cbiAgICBtaW4td2lkdGg6IDE0MHB4O1xufVxuXG4uVm90aW5nIC5Ecm9wZG93bk1lbnUuVm90aW5nX19wYW5lIHVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMjYwcHg7XG59XG5cbi5Wb3RpbmcgLkRyb3Bkb3duTWVudSB1bCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDE0MHB4O1xuICBtYXgtd2lkdGg6IDM2MHB4O1xuXG4gIGxpID4gYSB7XG4gICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIH1cblxuICBsaSA+IHNwYW4ge1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB9XG59XG5cbi5Ecm9wZG93bk1lbnUuVm90aW5nX192b3RlcnNfbGlzdCB1bCB7XG4gIG1pbi13aWR0aDogMTQwcHg7XG5cbiAgbGkgPiBzcGFuIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDgyLjUlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi5Wb3RpbmdfX2lubmVyIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7XG4gIH1cbiAgcGFkZGluZy1yaWdodDogLjhyZW07XG4gIG1hcmdpbi1yaWdodDogLjZyZW07XG4gIC5Ecm9wZG93bk1lbnUgLkljb24uZHJvcGRvd24tYXJyb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gIH1cbiAgLmNhbmNlbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gICAgcGFkZGluZzogMCAwLjRlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkYWRhZGE7XG4gICAgY29sb3I6ICM4YThhOGE7XG4gIH1cbn1cblxuLlZvdGluZ19fYWRqdXN0X3dlaWdodF9kb3duIHtcbiAgICBAZXh0ZW5kIC5Wb3RpbmdfX2FkanVzdF93ZWlnaHQ7XG5cbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgfVxuXG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuXG4gICAgZGl2LmNsZWFyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBwLCBzcGFuIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLndlaWdodC1kaXNwbGF5IHtcbiAgICAgIGNvbG9yOiAkY29sb3ItcmVkICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5yYW5nZXNsaWRlciB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgfVxufVxuXG4uVm90aW5nX19hZGp1c3Rfd2VpZ2h0IHtcbiAgcGFkZGluZzogMjBweCAyMHB4IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgd2lkdGg6IDM1MHB4O1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuSWNvbjpob3ZlciB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLndlaWdodC1kaXNwbGF5IHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICB9XG4gIGEuY29uZmlybV93ZWlnaHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICB9XG4gIC5yYW5nZXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgLnJhbmdlc2xpZGVyX19maWxsLCAucmFuZ2VzbGlkZXJfX2hhbmRsZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgICYsIC5yYW5nZXNsaWRlcl9fZmlsbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIC5yYW5nZXNsaWRlcl9faGFuZGxlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKTtcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucmFuZ2VzbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgLnJhbmdlc2xpZGVyX19maWxsIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuICAuVm90aW5nX19hZGp1c3Rfd2VpZ2h0X2Nsb3NlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICB9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Wb3RpbmdfX2J1dHRvbi11cCB7XG4gICAgLmRyb3Bkb3duLXBhbmUge1xuICAgICAgbWFyZ2luLXRvcDogLTM2cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4vKiBNZWRpdW0gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Wb3RpbmdfX2J1dHRvbi11cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuZHJvcGRvd24tcGFuZSB7XG4gICAgICB0b3A6IC0xOHB4O1xuICAgICAgbGVmdDogLTI4cHg7XG4gICAgfVxuICB9XG59XG5cbi8qIFB1bHNlIGZvciB1cHZvdGUgYWN0aW9uICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNiwgMjE0LCAxNjksIDIpO1xuICAgIH1cbiAgICA3MCUge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSg2LCAyMTQsIDE2OSwgMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMSk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gICAgMCUge1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMik7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAwKTtcbiAgICB9XG59XG5cbi53ZWlnaHQtY29udGFpbmVyIHtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgd2lkdGg6IDkwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG4iLCIuRm9ybWF0dGVkQXNzZXQge1xuICAucHJlZml4IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjFyZW07XG4gIH1cbn1cbiIsIi5SZXBseUVkaXRvciB7XG4gIG1heC13aWR0aDogNjByZW07XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnMnKTtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuICAmLnNpZGUtYnktc2lkZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5wcmV2aWV3LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgICBtYXJnaW4tbGVmdDogNXJlbTtcbiAgICAmLnNpZGUtYnktc2lkZSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIC52ZnJhbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC5wdWJsaWMtRHJhZnRFZGl0b3ItY29udGVudCB7XG4gICAgICBoZWlnaHQ6IDIwZW07XG4gICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgfVxuICB9XG4gIC5idXR0b24ge1xuICAgIEBleHRlbmQgLmUtYnRuO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgfVxuICAuYnV0dG9uLmhvbGxvdy5uby1ib3JkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMCwwLDAsMC4wKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAgcmdiYSgwLDAsMCwwLjApO1xuICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLnNpZGUtYnktc2lkZSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweCk7XG4gIH1cbiAgLlByZXZpZXctaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiAwLjRlbSAwIDFlbTtcbiAgfVxufVxuXG5pbnB1dC5SZXBseUVkaXRvcl9fYWx0QXV0aG9yIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuUmVwbHlFZGl0b3IgLnNpZGUtYnktc2lkZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5jb21tZW50LWVkaXRvciAuUmVwbHlFZGl0b3IgLmNvbHVtbiB7XG4gIGZsZXg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNvbW1lbnQtZWRpdG9yIC5SZXBseUVkaXRvciAuc2lkZS1ieS1zaWRlIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4udXBsb2FkLWVuYWJsZWQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgI2RkZDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uZHJhZy1hbmQtZHJvcCB7XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM3Njc2NzY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMztcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzO1xufVxuXG4uUG9zdEZ1bGwgLlJlcGx5RWRpdG9yX19ib2R5IHtcbiAgbWFyZ2luOiAxcmVtIDAgMDtcbn1cblxuLlJlcGx5RWRpdG9yX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uUmVwbHlFZGl0b3JfX2RyYWZ0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogI0JCQjtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cbi5SZXBseUVkaXRvcl9fZHJhZnQtaGlkZSB7XG4gIG9wYWNpdHk6IDA7XG59XG4uUmVwbHlFZGl0b3JfX2RyYWZ0LXNhdmVkIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgM3MgZWFzZS1pbi1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDNzIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uUmVwbHlFZGl0b3IgLlByZXZpZXcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5SZXBseUVkaXRvciAuUHJldmlldyAuTWFya2Rvd24ge1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgcGFkZGluZzogMCAwLjVyZW07XG59XG5cbi5SZXBseUVkaXRvcl9fYm9keSB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uUmVwbHlFZGl0b3JfX29wdGlvbnMge1xuICBmb250LXNpemU6IDg1JTtcbiAgc2VsZWN0IHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgd2lkdGg6IDEwcmVtO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgfVxuICBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5Ecm9wZG93bl9fcm9vdF9fXzFCOXRhIHtcbiAgY29sb3I6IGJsYWNrIWltcG9ydGFudDtcbn1cblxuLlJlcGx5RWRpdG9yX19vcHRpb25zX19jb3Zlcl9pbWFnZV9zZWxlY3RvciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLlJlcGx5RWRpdG9yX19vcHRpb25zX19pbWFnZV9zZWxlY3RvciB7XG4gICAgLlJlcGx5RWRpdG9yX19vcHRpb25zX19pbWFnZV9zZWxlY3Rvcl9faW1hZ2VfY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JleTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzLCBoZWlnaHQgMC41cztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5SZXBseUVkaXRvci0tc3VibWl0LWJ1dHRvbnMtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG4iLCIuU2xhdGVFZGl0b3IgPiBkaXZbY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXSB7XG4gIG1pbi1oZWlnaHQ6IDEycmVtO1xuXG4gIC8vQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gIC8vICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAvL31cblxuICBjb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5TbGF0ZUVkaXRvci5NYXJrZG93biB7XG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaW1nIHtib3JkZXI6IDFweCBkb3R0ZWQgIzAwZn1cbiAgfVxuICBkaXYuYWN0aXZlIHtib3gtc2hhZG93OiAwIDAgNHB4IDJweCAjNDhDO31cbiAgaW1nLmFjdGl2ZSB7Ym94LXNoYWRvdzogMCAwIDJweCAxcHggIzQ4Qzt9XG4gIGhyLmFjdGl2ZSAge2JveC1zaGFkb3c6IDAgMCAycHggMXB4ICM0OEM7fVxuXG4gIGE6aG92ZXI6YWZ0ZXJ7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBwYWRkaW5nOiAxcHggM3B4O1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgY29udGVudDogYXR0cihocmVmKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDExMCU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDlwdDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNzVzO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIzQ2NDY0NiwjMTUxNTE1KTtcbiAgfVxufVxuXG5cbi5TbGF0ZUVkaXRvcl9fc2lkZWJhciB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGZvbnQtc2l6ZTogMTEwJTtcbiAgcGFkZGluZzogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogLTEwMDAwcHg7XG4gIGxlZnQ6IC0xMDAwMHB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNzVzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCM0NjQ2NDYsIzE1MTUxNSk7XG5cbiAgJjpob3ZlciB7b3BhY2l0eTogMTt9XG4gICY6YWZ0ZXIge1xuICAgIHRvcDogMC42cmVtO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudCBzb2xpZDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjNDY0NjQ2O1xuICAgIGJvcmRlci13aWR0aDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIH1cbn1cblxuLlNsYXRlRWRpdG9yX19zaWRlYmFyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDFweCAycHg7XG4gIG1pbi13aWR0aDogMS43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBzdmcge2ZpbGw6IHdoaXRlfVxuICAmOmhvdmVyIHtzdmcge2ZpbGw6ICMzMmNkMzI7fX1cbn1cblxuXG4uU2xhdGVFZGl0b3JfX21lbnUge1xuICBmb250LXNpemU6IDExMCU7XG4gIHBhZGRpbmc6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IC0xMDAwMHB4O1xuICBsZWZ0OiAtMTAwMDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgb3BhY2l0eTogMC45O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjc1cztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywjNDY0NjQ2LCMxNTE1MTUpO1xuXG4gICY6aG92ZXIge29wYWNpdHk6IDF9XG4gICY6YWZ0ZXIge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxNTE1MTU7XG4gICAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIH1cbiAgPiAqIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6ICdHZW9yZ2lhJywgc2VyaWY7XG4gIGNvbG9yOiAjRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMS43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgPiBzcGFuIHtcbiAgICBwYXRoIHtmaWxsOiB3aGl0ZX1cbiAgfVxufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uW2RhdGEtYWN0aXZlPVwiZmFsc2VcIl06aG92ZXIsXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uW2RhdGEtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gIGNvbG9yOiAjMzJjZDMyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gID4gc3BhbiB7XG4gICAgcGF0aCB7ZmlsbDogIzMyY2QzMjt9XG4gIH1cbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1jb2RlID4gc3BhbiA+IGNvZGUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5TbGF0ZUVkaXRvcl9fbWVudS1idXR0b24tc3VwID4gc3BhbiA+IHNwYW4gLFxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1zdWIgPiBzcGFuID4gc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbDtcbiAgZm9udC1zaXplOiA4MCU7XG4gIHZlcnRpY2FsLWFsaWduOiA0JTtcbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1saW5rIHtcbiAgLkljb24sXG4gIC5JY29uID4gc3ZnIHt3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtO31cbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1ibG9jay1xdW90ZSA+IHNwYW4gPiBzcGFuIHtcbiAgZm9udC1zaXplOiAyMjAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTQ1JTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbiIsIi5Ecm9wZG93bk1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAuSWNvbi5kcm9wZG93bi1hcnJvdyB7XG4gICAgdG9wOiAycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgPiAuVmVydGljYWxNZW51IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgcGFkZGluZzogMnB4O1xuXG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTsgICAgXG4gICAgfVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHMsIHZpc2liaWxpdHkgMHMgbGluZWFyIDAuM3M7XG4gICAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG5cbiAgfVxuXG4gICYuc2hvdyA+IC5WZXJ0aWNhbE1lbnUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuXG4gICAgYSB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7ICBcbiAgICAgIH0gICAgICAgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7ICBcbiAgICAgICAgfSBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxlZnQgPiAuVmVydGljYWxNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDAlO1xuICB9XG4gICYucmlnaHQgPiAuVmVydGljYWxNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMCU7XG4gIH1cbiAgLkRyb3Bkb3duTWVudS5tb3ZlLWxlZnQge1xuICAgIC5WZXJ0aWNhbE1lbnUge1xuICAgICAgbGVmdDogLTUwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5WZXJ0aWNhbE1lbnUge1xuXG4gIHdpZHRoOiAyMDBweDtcblxuICAuSWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIHN2ZyBwYXRoLCBzdmcgcG9seWdvbiB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7ICBcbiAgICB9ICAgICAgXG4gIH1cblxuICA+IGxpID4gYSB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA+IGxpID4gYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3JPcGFxdWUnKTtcbiAgICB9XG4gIH1cblxuICA+IGxpLnRpdGxlIHtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfSAgICBcbiAgfVxufVxuXG4iLCIuVm90ZXNBbmRDb21tZW50cyB7XG4gIHBhdGgge1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICBmaWxsOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpOyBcbiAgICB9ICAgICAgIFxuICB9XG4gIGNpcmNsZSB7XG4gICAgc3Ryb2tlOiBub25lO1xuICB9XG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLlZvdGVzQW5kQ29tbWVudHNfX3ZvdGVzIHtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7IFxuICB9ICAgXG59XG5cbi5Wb3Rlc0FuZENvbW1lbnRzX19jb21tZW50cyB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Wb3Rlc0FuZENvbW1lbnRzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cbiIsIi5UYWdMaXN0X19ob3Jpem9udGFsIHtcbiAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgbWFyZ2luOiAwIGF1dG8gMC41cmVtO1xuICBhIHtcbiAgICBmb250LXNpemU6IDk1JTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwLjFyZW0gMC40cmVtIDAuMXJlbSAwO1xuICAgIHBhZGRpbmc6IDAuMXJlbSAwLjNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZDogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3JPcGFxdWUnKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyRGFyaycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLlJlcHV0YXRpb24ge1xuICBAaW5jbHVkZSBmb250LXNpemUoMTNweCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfSAgXG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gIH1cbn1cbiIsIi5SZWJsb2dfX2J1dHRvbiB7XG4gIHBhdGgge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdpY29uQ29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLlJlYmxvZ19fYnV0dG9uLWFjdGl2ZSB7XG4gIHBhdGgge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxufVxuXG4uUmVibG9nX19idXR0b24ubG9hZGluZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgc3ZnIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFuaW1hdGlvbjogbG9hZGluZyA1MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgcGF0aCB7b3BhY2l0eTogMH1cbiAgfVxufVxuIiwiLnNoYXJlTWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiAyZW07XG5cbiAgICA+IHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB9XG4gICAgICAgIGxpID4gYTpob3ZlciBzdmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgnY29sb3JBY2NlbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5BdXRob3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgLmRyb3Bkb3duLWFycm93IHtcbiAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIFx0dG9wOiAzcHg7XG4gIFx0bGVmdDogLTJweDtcbiAgfVxuXG4gIC8qIGNvYXggZm9vdGVyIGxpbmsgdG8gYmVoYXZlIHNpbWlsYXJseSAqL1xuICA+IHNwYW4gPiBzdHJvbmcgPiBhIHtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICAgfVxuICB9XG59XG4iLCIuQXV0aG9yX19jb250YWluZXIge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG4gIHotaW5kZXg6IDEwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3JFbXBoYXNpcycpO1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuXG4gIC5BdXRob3JfX2Ryb3Bkb3duIHtcbiAgICB3aWR0aDogMjkwcHg7XG4gICAgbWluLWhlaWdodDogMTA4cHg7XG5cblxuICAgIC5Vc2VycGljIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6NzVweDtcbiAgICAgICAgaGVpZ2h0Ojc1cHg7XG4gICAgfVxuXG4gICAgLkF1dGhvcl9fbmFtZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAuQXV0aG9yX191c2VybmFtZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuQXV0aG9yX19iaW8ge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIHBhZGRpbmc6IDEwcHggMTBweCAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLlVzZXJOYW1lcyAuVmVydGljYWxNZW51IHtcbiAgbGkgPiBhIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgfVxufVxuIiwiLm5hdl9fYmxvY2stbGlzdCB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxubGkubmF2X19ibG9jay1saXN0LWl0ZW0ge1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMS4xMjVyZW0gMC4yNXJlbTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGEge1xuICAgICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgICAgICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIH1cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDBweCAtMnB4ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDBweCAtMnB4ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB9XG4gICAgfVxufSIsImZvcm0uc2VhcmNoLWlucHV0IHtcblxuICAgIGhlaWdodDogNDJweDtcblxuICAgIHN2Zy5zZWFyY2gtaW5wdXRfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCdjb2xvckFjY2VudFJldmVyc2UnKTtcbiAgICAgICAgfVxuICAgICAgICBzdHJva2Utd2lkdGg6IDEuMjtcbiAgICAgICAgZmlsbDogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dC5zZWFyY2gtaW5wdXRfX2lubmVyIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHggMTFweCAzMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXBjO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMiwgMjAyLCAyMDIsIDAuNik7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICB3aWR0aDogMTgwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgICAgIC8vIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgxMDksMjA3LDI0NiwuNSk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS1kYXJrO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzbWFsbCAqL1xuICAgIGlucHV0LnNlYXJjaC1pbnB1dF9faW5uZXIuc2VhcmNoLWlucHV0X19pbm5lci0tc21hbGwge1xuXG4gICAgfVxufVxuXG5mb3JtLnNlYXJjaC1pbnB1dC0tZXhwYW5kZWQge1xuXG4gICAgaGVpZ2h0OiA0MnB4O1xuXG4gICAgc3ZnLnNlYXJjaC1pbnB1dF9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICB9XG4gICAgICAgIHN0cm9rZS13aWR0aDogMS4yO1xuICAgICAgICBmaWxsOiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBzdmcuc2VhcmNoLWlucHV0X19pY29uIHtcbiAgICAgICAgICAgIC8vIHN0cm9rZTogJGNvbG9yLXdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQuc2VhcmNoLWlucHV0X19pbm5lciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDlweCAxMHB4IDExcHggMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVwYztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIC8vIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgxMDksMjA3LDI0NiwuNSk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAyLCAyMDIsIDIwMiwgMC42KTtcblxuXG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgLy8gY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAvLyBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzbWFsbCAqL1xuICAgIGlucHV0LnNlYXJjaC1pbnB1dF9faW5uZXIuc2VhcmNoLWlucHV0X19pbm5lci0tc21hbGwge1xuXG4gICAgfVxufVxuXG4uc2VhcmNoLXNvcnQtb3JkZXIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5zZWFyY2gtc29ydC1vcmRlci0tdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbn1cblxuLnNlYXJjaC1zb3J0LW9yZGVyLS1zZWxlY3Qgc2VsZWN0IHtcbiAgICB3aWR0aDogMjAwcHg7XG59XG4iLCJcbi5pY29uLWJ1dHRvbl9fc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAmLmljb24tYnV0dG9uX19zdmctLXNtYWxsIHtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pY29uLWJ1dHRvbl9fc3ZnLS1tZWRpdW0ge1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmLmljb24tYnV0dG9uX19zdmctLWxhcmdlIHtcbiAgICAgIHdpZHRoOiA0MnB4O1xuICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pY29uLWJ1dHRvbl9fc3ZnLS1ncmVlbiB7XG4gICAgICBmaWxsOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgfVxuICAgICYuaWNvbi1idXR0b25fX3N2Zy0tdHJhbnNwYXJlbnQge1xuICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIC5pY29uLWJ1dHRvbntcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMC41O1xuICAgICAgICAmLmljb24tYnV0dG9uX19ib3JkZXItLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCdpY29uQ29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tYnV0dG9uX19ib3JkZXItLWdyZWVue1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5pY29uLWJ1dHRvbi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkO1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudFJldmVyc2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWNvbi1idXR0b25fX21hZ25pZnlpbmdHbGFzc3tcbiAgICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aDogMTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tYnV0dG9uLS1ncmVlbiB7XG4gICAgICAgICAgICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yV2hpdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICA6aG92ZXIge1xuICAgICAgICBzdHJva2U6ICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMC41O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGZpbGw6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIC5pY29uLWJ1dHRvbiB7XG4gICAgICAgICAgICAmLmljb24tYnV0dG9uX19ib3JkZXIge1xuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmljb24tYnV0dG9uX19zdmcge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWNvbi1idXR0b24tLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuaWNvbi1idXR0b25fX21hZ25pZnlpbmdHbGFzc3tcbiAgICAgICAgICAgICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoOiAxO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmljb24tYnV0dG9uLS1ncmVlbntcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmxvZ28ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAubG9nb19fc3RlZW1pdHtcbiAgICAgICAgZmlsbDogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjI1cyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICAgIC8vIEZpeGVzICMyNjM5IC0gRG9uJ3QgYXBwbHkgaG92ZXIgc3R5bGVzIG9uIGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpdC5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAubG9nb19fc3RlZW1pdHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudFJldmVyc2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuc3RlZW0tbWFya2V0IHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbiAgLmNvaW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxuICAuY2hhcnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuY2FwdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC4xKTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zaXplOiAwLjVlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgfVxuICB9XG4gIC5jb2luLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAuc3ltYm9sIHtcbiAgICAgIGNvbG9yOiAjNzg4MTg3O1xuICAgIH1cbiAgICAucHJpY2Uge1xuICAgICAgY29sb3I6ICMwOWQ2YTg7XG4gICAgfVxuICB9XG4gIC5icm91Z2h0IHtcbiAgICBmb250LXNpemU6IDAuNjc1ZW07XG4gICAgY29sb3I6ICM3ODgxODc7XG4gIH1cbn1cblxuLnRoZW1lLWRhcmsge1xuICAuc3RlZW0tbWFya2V0IHtcbiAgICAuY2hhcnQge1xuICAgICAgLmNhcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuU2FuaXRpemVkTGluay0tcGhpc2h5TGluayB7XG4gIGNvbG9yOiBkYXJrZW4oJGNvbG9yLXJlZCwgMTAlKTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAucGhpc2h5bGluay1yZXZlYWwtbGluayB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNWVtO1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIuZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIFxuICAgIC5JY29uLmRyb3Bkb3duLWFycm93IHtcbiAgICAgIHRvcDogMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgXG4gICAgPiAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgXG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICAgIH1cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zcztcbiAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xuICBcbiAgICB9XG4gIFxuICAgICYuc2hvdyA+IC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgIGEge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTsgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJi5sZWZ0ID4gLmRyb3Bkb3duX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwJTtcbiAgICB9XG4gICAgJi5yaWdodCA+IC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwJTtcbiAgICB9XG4gIH1cbiAgIiwiLk5vdGljZXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgICZfX25vdGljZSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDByZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG5cbiAgICB9XG4gICAgJl9fZmVhdHVyZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itb3JhbmdlO1xuICAgICAgICBwYWRkaW5nOiAzcHggNHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTFweCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgICAmX19mZWF0dXJlZCArICZfX3RpdGxlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG4gICAgJl9fZmVhdHVyZWQgKyAmX190aXRsZSArICZfX21ldGFkYXRhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgIH0gICAgXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTsgICAgXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gICAgJl9fbWV0YWRhdGEge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTJweCk7ICAgIFxuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH0gICAgICAgICAgICAgICAgICBcbiAgICB9XG4gICAgJl9fYXV0aG9yLWxpbmsge1xuICAgICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgfSAgICBcbiAgICAmX190aXRsZS1saW5rIHtcbiAgICAgICAgQGV4dGVuZCAubGluaztcbiAgICAgICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICB9ICAgICAgICBcbiAgICAmX19ieSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn0iLCIuUG9zdENhdGVnb3J5QmFubmVyIHtcbiAgbWFyZ2luOiAuNWVtIDFlbSAxZW0gMDtcbiAgZGlzcGxheTogaW5saW5lO1xuXG4gIC5wb3N0VG8ge1xuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgLnNtYWxsTGFiZWwge1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNhdGVnb3J5TmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGgzIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAwIDAgLjVlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLlBvc3RDYXRlZ29yeUJhbm5lci0tY29tbXVuaXR5LXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2lkdGg6IDIwMHB4O1xufVxuIiwiICAuZmxhZ19fYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmZsYWcyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAuZmxhZzEge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIC5mbGFnMiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogcmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mbGFnX19idXR0b24tLXBvc3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMWVtO1xuICB9XG4iLCIudmlzdWFsLWVkaXRvciB7XG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLkRyYWZ0RWRpdG9yLWVkaXRvckNvbnRhaW5lciB7XG4gICAgPiBkaXYge1xuICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuSGVhZGVyIHtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwwLDAsMC4wNSk7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbmF2QmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxufVxuXG4uSGVhZGVyX19uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4uQ29ubmVjdGlvbkVycm9yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRyZW07XG4gICAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5IZWFkZXJfX2xvZ290eXBlIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICBoZWlnaHQ6IDM3cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgLmljb24tc3ZnIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWJldGF7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzOHB4O1xuICAgICAgICBsZWZ0OiAxMzZweDtcbiAgICB9XG59XG5cbi5IZWFkZXJfX3NvcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5IZWFkZXJfX3NlYXJjaCB7XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5IZWFkZXJfX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGhlaWdodDogNHJlbTtcbiAgICA+IC5IZWFkZXJfX3VzZXItc2lnbnVwIHtcbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgICAgICAgICAmLkhlYWRlcl9fc2lnbnVwLWxpbmsge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmUtYnRuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC43NXJlbSAwIC41cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLkhlYWRlcl9fbG9naW4tbGluayB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAubGluaztcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgID4gYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgTVEoUykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGl2LkxvYWRpbmdJbmRpY2F0b3Ige1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICAgIH1cbn1cblxuLkhlYWRlcl9fdXNlcnBpYyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuVXNlcnBpYyB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5IZWFkZXJfX25vdGlmaWNhdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICB0b3A6IC0xMHB4O1xuICAgIHJpZ2h0OiAtMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmVkO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgei1pbmRleDogMjtcbiAgICA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgICYtLWxvYWRpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbnNwYW4uSGVhZGVyX19oYW1idXJnZXIudG9nZ2xlLW1lbnUge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoKTtcbiAgICAvLyBUaGlzIG1hcmdpbiBpcyB0byBwcmV2ZW50IHVzZXIgYXZhdGFyIG92ZXJsYXBwaW5nIHRoZSBoYW1idXJnZXIgaW4gdGhlIGhlYWRlci5cbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICBAaW5jbHVkZSBNUShTKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XG4gICAgfVxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggMCB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKSwgMCAxNHB4IDAgdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggMCB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpLCAwIDE0cHggMCB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYW5ub3VjZW1lbnQtYmFubmVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjMTcxRkM5OyAvL05vdGljZSBCbHVlXG4gICAgLy8gYmFja2dyb3VuZDogI2ZmZjNjZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAvLyBjb2xvcjogIzg1NjQwNDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXJMaWdodCcpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYW5ub3VuY2VtZW50LWJhbm5lcl9fdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEwcHggNDRweCAxMHB4IDEwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmFubm91bmNlbWVudC1iYW5uZXJfX2xpbmsge1xuICAgIGNvbG9yOiAjZmFmYWZhICFpbXBvcnRhbnQ7XG4gICAgLy8gY29sb3I6ICM4NTY0MDQgIWltcG9ydGFudDs7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4iLCIuTG9naW5Gb3JtIHtcbiAgbWF4LXdpZHRoOiAyOHJlbTtcbiAgbWFyZ2luOiAxcmVtIGF1dG8gMC41cmVtIGF1dG87XG4gIGxhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICBmb3JtIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIH1cbiAgLmJ1dHRvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLnBkZi1kb3dubG9hZCB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBidXR0b24ge1xuICAgIGNvbG9yOiAjMUE1MDk5O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuLnNpZ24tdXAge1xuICAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBjb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQtZGFyaztcbiAgICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQtZGFyaztcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwwLDAsMC4wNSk7XG4gICAgfVxuICB9XG4gIGVtIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgaHIge1xuICAgICAgbWFyZ2luOiAxLjc1cmVtIGF1dG8gMnJlbSBhdXRvO1xuICB9XG4gIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4uTG9naW5Gb3JtX19zYXZlLWxvZ2luIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uZGl2aWRlcntcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRpdmlkZXI6OmJlZm9yZSwuZGl2aWRlcjo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6ICcnO1xuICBmbGV4OiAxO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogI2NjYztcbn1cbi5kaXZpZGVyOjpiZWZvcmV7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5kaXZpZGVyOjphZnRlcntcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbiNidG4taGl2ZXNpZ25lciB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkMWQ1ZGE7XG4gIGJhY2tncm91bmQ6ICNkMWQ1ZGE7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI0E2QTZBNjtcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDE0MHB4O1xuICB9XG59XG4iLCIkbWVudS13aWR0aDogMjUwcHg7XG5cbi5TaWRlUGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAmX19oaWRlLXNpZ251cCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1lbnUgPiBsaS5sYXN0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1kYXJrO1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ncmF5LWxpZ2h0O1xuICB9XG5cbiAgPiBkaXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrLWRhcmtlc3Q7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgfVxuICAgIC5tZW51ID4gbGkge1xuICAgICAgPiBhIHtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1oaXZlLWJsYWNrLWRhcmtlc3Q7XG4gICAgICB9XG4gICAgICA+IGE6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQ7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgZmlsbDogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogJGNvbG9yLXRleHQtZ3JheS1saWdodDtcbiAgICAgIH1cbiAgICAgIGEubWVudS1zZWN0aW9uIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWdyYXktbGlnaHQ7XG4gICAgICB9XG4gICAgICBhLm1lbnUtc2VjdGlvbjpob3ZlciwgYS5tZW51LXNlY3Rpb246Zm9jdXMge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1ibGFjay1kYXJrZXN0O1xuICAgICAgfVxuICAgIH1cbiAgICB1bDpudGgtb2YtdHlwZShuKzMpIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkbWVudS13aWR0aDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDI1MG1zLCB0cmFuc2Zvcm0gZWFzZSAyNTBtcztcblxuICAgICYubGVmdCB7XG4gICAgICBsZWZ0OiAtJG1lbnUtd2lkdGg7XG4gICAgfVxuXG4gICAgJi52aXNpYmxlLmxlZnQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkbWVudS13aWR0aCwgMCwgMCk7XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICByaWdodDogLSRtZW51LXdpZHRoO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAmLnZpc2libGUucmlnaHQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtJG1lbnUtd2lkdGgsIDAsIDApO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbiAgLkljb24uZXh0bGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogM3B4O1xuICAgIGxlZnQ6IDJweDtcbiAgfVxufVxuXG4vKiBTbWFsbCBvbmx5ICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlNpZGVQYW5lbCB7XG4gICAgZGl2IHVsOm50aC1vZi10eXBlKG4rMikge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG4gICAgPiBkaXYgPiAubWVudSA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwLjNyZW0gMXJlbTtcbiAgICB9XG59XG59XG4iLCIuU2V0dGluZ3Mge1xuXHQuYnV0dG9uIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0dHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG5cdFx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG5cdFx0QGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcblx0XHRcdGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKSwgNXB4IDVweCAwIDAgdGhlbWVkKCdidXR0b25Cb3hTaGFkb3cnKTtcblx0XHRcdGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcblx0XHR9XG5cdFx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHRAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kSG92ZXInKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogMnB4IDJweCAycHggMCByZ2JhKDAsMCwwLDAuMSksIDdweCA3cHggMCAwIHRoZW1lZCgnYnV0dG9uQm94U2hhZG93SG92ZXInKTtcblx0XHRcdFx0Y29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dEhvdmVyJyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCY6dmlzaXRlZCwgJjphY3RpdmUge1xuXHRcdFx0QGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG5cdFx0XHRcdGNvbG9yOiB0aGVtZWQoJ0J1dHRvblRleHQnKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0ge1xuXHQgICAgb3BhY2l0eTogMC4yNTtcblx0ICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdCAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG5cdCAgICAmOmhvdmVyIHtcblx0XHRcdEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuXHRcdFx0XHRjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG5cdFx0XHR9XG5cdCAgICB9XG5cdH1cblx0LnN1Y2Nlc3MsIC5lcnJvciB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cdFx0cGFkZGluZy1sZWZ0OiA4cHg7XG5cdH1cblx0LnN1Y2Nlc3Mge1xuXHRcdEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuXHRcdFx0Y29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG5cdFx0fVxuXHR9XG5cdHAuZXJyb3Ige1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDRweDtcblx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHR9XG5cdGRpdi5lcnJvciB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHR9XG4gICAgbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGg0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtIWltcG9ydGFudDtcbiAgICB9XG4gICAgZm9ybSAuZm9ybV9fZmllbGQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIC5mb3JtX19maWVsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHhcbiAgICB9XG59XG4iLCIuVXNlcldhbGxldF9fY2xhaW1ib3gge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnaGlnaGxpZ2h0QmFja2dyb3VuZENvbG9yJyk7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICB9XG5cbiAgLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAuZS1idG47XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuIiwiLnBvc3RfYWR2YW5jZWRfc2V0dGluZ3Mge1xuICAgIGg0IHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNTByZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuUG9zdHNMaXN0IHtcbiAgY2xlYXI6IHJpZ2h0O1xufVxuXG4uYy1zaWRlYmFyX19tb2R1bGUuQ29tbXVuaXR5UGFuZU1vYmlsZSB7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbSAwZW07XG59XG5cbi5Qb3N0c0xpc3RfX3N1bW1hcmllcyB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5Qb3N0c0luZGV4IHtcbiAgLmFydGljbGVzX19oMS0tbm8td3JhcCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4uUG9zdHNJbmRleF9fdG9waWNzIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbn1cblxuLlBvc3RzSW5kZXhfX3RvcGljc19jb21wYWN0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMTVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMC44cmVtO1xuICA+IHNlbGVjdCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vKiBTbWFsbCBvbmx5ICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlBvc3RzSW5kZXhfX2xlZnQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLlBvc3RzSW5kZXhfX3RvcGljc19jb21wYWN0IHtcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vKiBNZWRpdW0gYW5kIHVwICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzOS45NGVtKSB7XG4gIC5Qb3N0c0luZGV4X19zdW1tYXJpZXMge1xuICAgID4gbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgLlBvc3RTdW1tYXJ5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gLmNvbnRhaW5lciB7XG4vLyAgIHdpZHRoOiAxMDAlO1xuLy8gICBwYWRkaW5nLWJvdHRvbTogNGVtO1xuLy8gICBtaW4taGVpZ2h0OiAxMDAlO1xuLy8gICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbi8vICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4vLyAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3InKTtcbi8vICAgICB9XG4vLyB9XG5cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAvLyBwYWRkaW5nLXRvcDogNjVweDtcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIC8vIHBhZGRpbmctdG9wOiA4OXB4O1xuICB9XG59XG5cbi8vIFNpZGViYXIgY29tcG9uZW50cyBvbiB0aGUgaG9tZXBhZ2VcbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uYy1zaWRlYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDAgMCAzMjBweDtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgJl9fbW9kdWxlIHtcbiAgICBwYWRkaW5nOiAxLjVlbSAyZW07XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzJyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgYm94LXNoYWRvdzogMHB4IDVweCAxMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uOiAxcyBlYXNlLW91dCAwcyAxIGZhZGVJbjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDVweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjAzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1sZWZ0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG9yZGVyOiAxO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICB9XG4gIH1cbiAgJi0tcmlnaHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgb3JkZXI6IDM7XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICB9XG4gIH1cbiAgJl9fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5saSB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gICZfX2gzIHtcbiAgICAvLyBAZXh0ZW5kIC5oMztcbiAgICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgbWFyZ2luOiAwIDAgMTZweCAwO1xuICAgICYtLWlubGluZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG4gICZfX2xpbmsge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbiAgICAmLS1lbXBoYXNpcyB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG4gICZfX21vcmUtbGluayB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1hY2NlbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEuM2VtO1xuICB9XG4gICZfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICB9XG4gICZfX3Njb3JlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTdweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxufVxuXG4uUG9zdHNJbmRleC5yb3cge1xuICBtYXgtd2lkdGg6IDg2MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIEBpbmNsdWRlIE1RKEwpIHtcbiAgICBtYXgtd2lkdGg6IDEyNDBweDtcbiAgfVxufVxuXG4uUG9zdHNJbmRleC5yb3cubGF5b3V0LWxpc3Qge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIEBpbmNsdWRlIE1RKEwpIHtcbiAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgfVxufVxuXG4uYXJ0aWNsZXMge1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAwZW0gMWVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbiAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICBoMiB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIH1cbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIHBhZGRpbmc6IDBlbSAxZW07XG4gICAgbWluLXdpZHRoOiA1MDBweDtcbiAgICBtYXgtd2lkdGg6IDY2NHB4O1xuICAgIG9yZGVyOiAyO1xuXG4gIH1cbiAgQGluY2x1ZGUgTVEoTCkge1xuICAgIG1pbi13aWR0aDogNTUwcHg7XG4gICAgbWF4LXdpZHRoOiA2NjRweDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJUcmFuc3BhcmVudCcpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0cmFuc3BhcmVudCcpO1xuICAgIH1cbiAgfVxuXG4gICZfX2hyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fbGF5b3V0LXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBNUShGTCkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoRk0pIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuICAmX19pY29uLS1sYXlvdXQge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgJl9fc3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBtYXJnaW46IDAgMCA0MHB4O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDVweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjApO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDVweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjAzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fcmVzdGVlbS1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgfVxuICAmX19zdW1tYXJ5LWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZweCAwIDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZzogMTBweCAxNnB4IDVweDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLS1mb290ZXIge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlci10b3A6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3N1bW1hcnktZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNXB4KTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlci10b3A6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGEge1xuICAgICAgQGV4dGVuZCAubGluaztcbiAgICAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTVweCk7XG4gICAgfVxuICB9XG4gICZfX2hlYWRlciB7XG4gICAgcGFkZGluZy10b3A6NXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgICAmLXNlbGVjdCB7XG4gICAgICBzZWxlY3Qge1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19oZWFkZXItY29sIHtcbiAgICAmLS1yaWdodCB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNzBweCkge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3Jlc3RlZW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuXG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19yZXN0ZWVtLXRleHQge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxM3B4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgIH1cbiAgfVxuICAmX19yZXN0ZWVtLXVzZXJuYW1lIHtcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gICZfX2ljb24tMTAwIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuXG4gIH1cbiAgJl9faDEge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbiAgICBtYXJnaW46IDA7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgIH1cbiAgfVxuICAmX19oMiB7XG4gICAgLy8gQGV4dGVuZCAuaDI7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4KTtcbiAgICBvdmVyZmxvdyA6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgfVxuICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgIH1cbiAgfVxuICAmX19oMyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgJl9fdGFnLXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgc2VsZWN0LlRvcGljcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk5OTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC00cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNzBweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBNUShMKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAmX19wIHtcbiAgICAvLyBAZXh0ZW5kIC5wO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIG92ZXJmbG93IDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgJl9fbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH1cbiAgfVxuICAvLyAmX19wcm9maWxlLWltZyB7XG4gIC8vICAgZGlzcGxheTogbm9uZTtcbiAgLy8gICB3aWR0aDogNTRweDtcbiAgLy8gICBoZWlnaHQ6IGF1dG87XG4gIC8vIH1cbiAgJl9fdGV4dC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBwYWRkaW5nOiAwIDEuMmVtO1xuICAgIH1cbiAgfVxuICAmX190YWdzIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgfVxuICAmX190YWctbGluayB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICAgIGEge1xuICAgICAgQGV4dGVuZCAubGluaztcbiAgICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICB9XG4gIH1cbiAgJl9fZmxhZyB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTRweDtcbiAgICB0b3A6IDBweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB0b3A6IDEycHg7XG4gICAgfVxuXG4gICAgLmljb24tZmxhZy1zdmcge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICB9XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAuaWNvbi1mbGFnLXN2ZyB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yRXJyb3InKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19jb250ZW50LWJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICYtLXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudC1ibG9jay0taW1nICsgJl9fY29udGVudC1ibG9jay0tdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAmX19yZXN0ZWVtLCAmX19jb250ZW50LWJsb2NrLS10ZXh0LCAmX19tZXRhZGF0YSB7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjFlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMWVtO1xuICAgIH1cbiAgfVxufVxuXG4vLyAsdXNlciBsYXlvdXQtYmxvY2tcblxuLnVzZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgJl9fY29sIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAmLS1yaWdodCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgfVxuICB9XG4gICZfX2xpbmsge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgJjpob3ZlciB7XG4gICAgICAudXNlcl9fdXNlcm5hbWUge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fcHJvZmlsZS1pbWcge1xuICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlLW91dDtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICB3aWR0aDogNDhweCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuICB9XG4gICZfX25hbWUge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICBhIHtcbiAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fdXNlcm5hbWUsICZfX3JlcHV0YXRpb24ge1xuICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgfVxufVxuXG5cblxuLnRpbWVzdGFtcCB7XG4gICZfX2xpbmsge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAmX190aW1lIHtcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gIH1cbn1cblxuXG5cbi5pY29uLXN2ZyB7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIDAuMDVzIGVhc2UtaW4tb3V0O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gICYtLWFjY2VudCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxuICAmLS1sYXlvdXQtbGluZTEsICYtLWxheW91dC1saW5lMiwgJi0tbGF5b3V0LWxpbmUzIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICB9XG4gICYtLWxheW91dC1saW5lMiB7XG4gICAgeTogMTFweDtcbiAgfVxuICAmLS1sYXlvdXQtbGluZTEge1xuICAgIHk6IDZweDtcbiAgfVxuICAmLS1sYXlvdXQtbGluZTMge1xuICAgIHk6IDE2cHg7XG4gIH1cbn1cblxuXG4uYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLmljb24tc3ZnIHtcbiAgICAmLS1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yOmhvdmVyIC5pY29uLXN2ZyB7XG4gICYtLWFjY2VudCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29tcHJlc3NlZCBsaXN0IHZpZXcgQ1NTXG5cbmEjY2hhbmdlTGF5b3V0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmxheW91dC1saXN0IHtcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuXG4gICAgLmljb24tc3ZnIHtcbiAgICAgICYtLWxheW91dC1saW5lMyB7XG4gICAgICAgIHk6IDIycHg7XG4gICAgICAgIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gICAgICB9XG4gICAgICAmLS1sYXlvdXQtbGluZTEsICYtLWxheW91dC1saW5lMiB7XG5cbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICB9XG4gICAgICAmLS1sYXlvdXQtbGluZTIge1xuICAgICAgICB5OiAxNHB4O1xuICAgICAgfVxuICAgICAgJi0tbGF5b3V0LWxpbmUxIHtcbiAgICAgICAgeTogNnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuYy1zaWRlYmFyIHtcbiAgICAgICYtLXJpZ2h0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYXJ0aWNsZXMge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgbWF4LXdpZHRoOiAxMDU2cHg7XG4gICAgICBAaW5jbHVkZSBNUShYTCkge1xuICAgICAgICBtaW4td2lkdGg6IDg1MHB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyVHJhbnNwYXJlbnQnKTtcbiAgICAgIH1cbiAgICAgICZfX2hyIHtcbiAgICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZfX3N1bW1hcnkge1xuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJl9faDIge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTVweCk7XG5cbiAgICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBNUShYTCkge1xuICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgICAmX19mZWF0dXJlLWltZy1jb250YWluZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgIGhlaWdodDogNzdweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgICAmX19mZWF0dXJlLWltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSlcbiAgICAgIH1cbiAgICAgICZfX3N1bW1hcnktaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMnB4IDA7XG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAmX19zdW1tYXJ5LWZvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwIDVweDtcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgICAgICAvLyBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgLy8gICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyTGlnaHQnKTtcbiAgICAgICAgLy8gICB9XG4gICAgICB9XG4gICAgICAmX19wIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE1cHgpO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgfVxuICAgICAgJl9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiB0b3A7XG4gICAgICB9XG4gICAgICAmX19mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiB0aGVtZWQoJ2JvcmRlckxpZ2h0Jyk7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMC4yNWVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmX19jb250ZW50LWJsb2NrIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgJi0taW1nIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgICAgJi0tdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmX190YWdzIHtcbiAgICAgICAgbWFyZ2luOiA0cHggMCAwO1xuICAgICAgfVxuICAgICAgJl9fZmxhZyB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cbiAgICAgICZfX3Jlc3RlZW0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAmX19yZXN0ZWVtLCAmX19jb250ZW50LWJsb2NrLS10ZXh0LCAmX19tZXRhZGF0YSB7XG4gICAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmFydGljbGVzX19ociB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyAsdXNlciBsYXlvdXQtbGlzdFxuICAgIC51c2VyIHtcbiAgICAgICZfX25hbWUge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTVweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubGF5b3V0LWxpc3QgLnVzZXIgPiAudXNlcl9fY29sID4gLnVzZXJfX2xpbmsgPiAuVXNlcnBpYyB7XG4gIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLmxheW91dC1ibG9jayAuVXNlcnBpYyB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG59XG5cbi5pY29uLXN2ZyB7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gICYtLWFjY2VudCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxuICAmLS1sYXlvdXQtbGluZTEsICYtLWxheW91dC1saW5lMiwgJi0tbGF5b3V0LWxpbmUzIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICB9XG4gICYtLWxheW91dC1saW5lMiB7XG4gICAgeTogMTFweDtcbiAgfVxuICAmLS1sYXlvdXQtbGluZTEge1xuICAgIHk6IDZweDtcbiAgfVxuICAmLS1sYXlvdXQtbGluZTMge1xuICAgIHk6IDE2cHg7XG4gIH1cbn1cblxuLlBvc3RzSW5kZXggLlZvdGluZyB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuXG4uYXJ0aWNsZXNfX3Jlc3RlZW0gLnVzZXJuYW1lLFxuLmFydGljbGVzX19jcm9zc3Bvc3QgLnVzZXJuYW1lLFxue1xuICBAZXh0ZW5kIC5saW5rO1xuICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuXG4uYXJ0aWNsZXNfX3Jlc3RlZW0taWNvbiBwYXRoLFxuLmFydGljbGVzX19jcm9zc3Bvc3QtaWNvbiBwYXRoIHtcbiAgZmlsbDogI2NhY2FjYTtcbn1cbiIsInVsLlRvcGljcyB7XG4gIG1heC13aWR0aDogMTByZW07XG4gID4gbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxuICA+IGxpID4gYS5hY3RpdmUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgLnNob3ctbW9yZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gIH1cbn1cblxuLmMtc2lkZWJhcl9faGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cbiIsIi5Qb3N0X19jb21tZW50c19zb3J0X29yZGVyIHtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7ICBcbiAgfSAgXG4gIGZvbnQtc2l6ZTogOTQlO1xuICBzdmcgcG9seWdvbiB7XG4gICAgZmlsbDogJGRhcmstZ3JheTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTsgIFxuICAgIH0gXG4gIH1cbiAgPiBzcGFuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG4uUG9zdF9fcHJvbW8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1heC13aWR0aDogNTByZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDA7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7ICBcbiAgfSBcbiAgLmJ1dHRvbiB7IFxuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5Qb3N0X2NvbW1lbnRzX19jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA1NHJlbTtcbiAgbWFyZ2luOiAwIGF1dG8gMy41cmVtO1xuICBmb250LXNpemU6IDkyJTtcbn1cbiIsIi5Qcml2YWN5IHtcblx0bWF4LXdpZHRoOiA4MDBweDtcblx0cGFkZGluZzogMS41ZW0gMCAzZW07XG4gIC5zZWN0aW9uIHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9ICAgICAgXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICB9XG59XG4iLCIvLyBGSVhNRSB0aGlzIG5lZWRzIGRlc2lnbiByZXZpZXdcblxuLlRvcyB7XG5cdG1heC13aWR0aDogODAwcHg7XG5cdHBhZGRpbmc6IDEuNWVtIDAgM2VtO1xuICAuYzEuaCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuIiwiLlVzZXJQcm9maWxlIHtcbiAgICBtYXJnaW4tdG9wOiAtMS41cmVtO1xuXG4gICAgLmFydGljbGVzIHtcbiAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgfVxufVxuXG4uVXNlclByb2ZpbGVfX2JsYWNrbGlzdHMge1xuICAgIC5hY2NvdW50X3dhcm4ge2ZvbnQtc2l6ZTogMC44ZW07fVxuICAgIC5WZXJ0aWNhbE1lbnUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgICB9XG4gICAgfVxufVxuXG4uVXNlclByb2ZpbGVfX3Bvc3RtZW51IHtcbiAgICBtYXJnaW46IC0wLjVyZW0gMCAxcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxuICAgIGRpdiB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAwIDAuNXJlbTsgbWFyZ2luOiAwIDAuNXJlbTt9XG59XG5cbi5Vc2VyUHJvZmlsZV9fdGFiX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cblxuLlVzZXJQcm9maWxlX190b3AtbmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtZGFyaztcbiAgcGFkZGluZzogMDtcbiAgLm1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5tZW51ID4gbGkgPiBhIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMCwgMCwgMCk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuN3JlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgIH1cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICB9XG4gIH1cblxuICBkaXYuVXNlclByb2ZpbGVfX3RvcC1tZW51IHtcbiAgICAgIG1heC13aWR0aDogNzEuNDI4NTdyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAvLyBPdmVycmlkZSBkZWZhdWx0IHN2ZyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAgIC5JY29uID4gc3ZnLCAuSWNvbiBzcGFuLmljb24ge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuY29sdW1ucy5zbWFsbC05IHtcbiAgICAgICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgfVxufVxuXG4uVXNlclByb2ZpbGVfX3NlY3Rpb24tdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xufVxuXG4uVXNlclByb2ZpbGVfX2Jhbm5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgID4gZGl2LmNvbHVtbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1iYWNrZ3JvdW5kLWxlc3MtZGFyaztcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMnB4IGJsYWNrO1xuICAgICAgICAuYnV0dG9uIHt0ZXh0LXNoYWRvdzogbm9uZTt9XG5cbiAgICAgICAgbWluLWhlaWdodDogMTU1cHg7XG4gICAgfVxuICAgIGgxIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44NDUyNHJlbSFpbXBvcnRhbnQ7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjEzMDk1cmVtIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuSWNvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICBzdmcge2ZpbGw6ICNkZWY7fVxuICAgIH1cblxuICAgIC5Vc2VyUHJvZmlsZV9fcmVwIHtcbiAgICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19idXR0b25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDE1cHg7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG5cbiAgICAgICAgbGFiZWwuYnV0dG9uIHtcbiAgICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19iaW8ge1xuICAgICAgICBtYXJnaW46IC0wLjRyZW0gYXV0byAwLjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogOTUlO1xuICAgICAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cbiAgICAuVXNlclByb2ZpbGVfX2luZm8ge1xuICAgICAgICBmb250LXNpemU6IDkwJTtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX3N0YXRzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgICBmb250LXNpemU6IDkwJTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyVW5kZXJsaW5lO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0ICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNDQ0M7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtib3JkZXItbGVmdDogbm9uZTt9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg1KSB7Ym9yZGVyLWxlZnQ6IG5vbmU7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNDQ0N9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuXG4gICAgZGl2LlVzZXJQcm9maWxlX190b3AtbmF2IC5tZW51IGxpPmEge1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX190b3AtbWVudSA+IGRpdi5jb2x1bW5zIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5Vc2VyUHJvZmlsZV9fYmFubmVyIC5Vc2VycGljIHtcbiAgICAgICAgd2lkdGg6IDM2cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJQcm9maWxlX19idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgbGFiZWwuYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJQcm9maWxlX19idXR0b25zX21vYmlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBUZW1wb3JhcnkgZml4IHRvIHByZXZlbnQgYWx0ZXJuYXRlIFVzZXIgUHJvZmlsZSBwYWdlcyBvdXRzaWRlIHRoZSBibG9nIGZyb20gdGFraW5nIHRoZSBuYXJyb3cgbGF5b3V0LlxuXG4uVXNlclByb2ZpbGUge1xuICAuYXJ0aWNsZXMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICAgICZfX2gxIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3RhYl9jb250ZW50LmxheW91dC1ibG9jay5zZXR0aW5ncywgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLmN1cmF0aW9uLXJld2FyZHMsICZfX3RhYl9jb250ZW50LmxheW91dC1ibG9jay5hdXRob3ItcmV3YXJkcyB7XG4gICAgLmFydGljbGVzIHtcbiAgICAgICAgcGFkZGluZzogMS41ZW0gMS41ZW07XG4gICAgICAgIG1heC13aWR0aDogMTA1NnB4O1xuICAgICAgICBAaW5jbHVkZSBNUShYTCkge1xuICAgICAgICAgIG1pbi13aWR0aDogMTA1MHB4O1xuICAgICAgICB9XG4gICAgfVxuICB9XG4gIC5zZXR0aW5ncyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciwgLmN1cmF0aW9uLXJld2FyZHMgLmFydGljbGVzX19sYXlvdXQtc2VsZWN0b3IsIC5hdXRob3ItcmV3YXJkcyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciAge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fVXNlcnBpYyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5Vc2VyUHJvZmlsZV9fYmFkZ2VfaW1hZ2VfaGl2ZWJ1enpsZXZlbCB7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHRvcDogMzBweDtcbiAgICBsZWZ0OiAzMHB4O1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzLCBoZWlnaHQgMC4yNXMsIHRvcCAwLjI1cywgbGVmdCAwLjI1cztcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHRvcDogMjZweDtcbiAgICAgICAgbGVmdDogMjZweDtcbiAgICB9XG59XG4iLCIuVGFnc0luZGV4IHtcbiAgaW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSFpbXBvcnRhbnQ7XG4gIH1cblxuICB0YWJsZSB0ciB7XG4gICAgdGggYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxN3B4KTtcbiAgICB9XG4gICAgdGggYTpob3Zlcjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcMjE5Myc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgfVxuXG4gICAgdGQsIHRoIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICY6Zmlyc3QtY2hpbGQge3RleHQtYWxpZ246IGxlZnQ7fVxuICAgIH1cbiAgfVxufVxuXG4iLCIuV2VsY29tZV9fYmFubmVyIHtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLldlbGNvbWVfX3dlbGNvbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3R0b206IDcwJTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNjAlO1xuICAgIHBhZGRpbmctbGVmdDogMzglO1xuICB9XG5cbiAgLldlbGNvbWVfX2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDY1JTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxMTUlO1xuICAgIHBhZGRpbmctbGVmdDogNDQlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIlO1xuICB9XG5cbn1cblxuLkhlbHBDb250ZW50IHtcblxuICBoZWlnaHQ6IGluaGVyaXQ7XG5cbiAgcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH0gIFxufVxuIiwiLkFib3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuXG4gIC5oMiwgLkFib3V0TWlzc2lvbl9faGVhZGluZyB7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjE3ZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgdWwge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuaDIsIC5BYm91dE1pc3Npb25fX2hlYWRpbmcge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICAgIGZvbnQtc2l6ZTogMi42MjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5BYm91dE1pc3Npb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDJlbSAwO1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fc2VjdGlvbiB7XG4gICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fc2VjdGlvbi0tdmlzaW9uIC5BYm91dE1pc3Npb25fX3NlY3Rpb25fX3RleHQtY29udGFpbmVyIHtcbiAgICBjb2xvcjogYmx1ZTtcbiAgICBvcmRlcjogMjtcbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX3RleHQtY29udGFpbmVyLCAuQWJvdXRNaXNzaW9uX19pbWFnZS1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX190ZXh0LWNvbnRhaW5lciwgLkFib3V0TWlzc2lvbl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDJlbSAwIDJlbSA0JTtcbiAgICAgIHdpZHRoOiA0NiU7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLkFib3V0TWlzc2lvbl9fdGV4dC1jb250YWluZXIsIC5BYm91dE1pc3Npb25fX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAyZW0gMCAyZW0gOCU7XG4gICAgICB3aWR0aDogNDIlO1xuICAgIH1cbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX3RleHQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fc3F1YXJlIHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJhY2tncm91bmQ6ICMwNkQ2QTk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICMwNkQ2QTk7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fc3ViaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX19zdWJoZWFkaW5nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICB9XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX190ZXh0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19saXN0IHtcbiAgICBtYXJnaW46IDZweCAwO1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fbGlzdC1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19pbWcge1xuICAgIGJveC1zaGFkb3c6IDEwcHggMTJweCAxNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7XG4gICAgLkFib3V0TWlzc2lvbl9fc2VjdGlvbjpudGgtY2hpbGQoZXZlbikgLkFib3V0TWlzc2lvbl9fdGV4dC1jb250YWluZXIge1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0LWNvbnRlbnQtY29udGFpbmVyLCAuQWJvdXRUZWFtX19jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9faGVhZGluZy1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMTRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNHB4O1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMC44M2VtIGF1dG87XG4gICAgLkFib3V0TWlzc2lvbl9faGVhZGluZyB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIH1cbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX3NxdWFyZS0tMiB7XG4gICAgbWFyZ2luLXRvcDogNnJlbTtcbiAgfVxufVxuIiwiLkNvbW11bml0aWVzSW5kZXgge1xuICAgIHRhYmxlIHttYXJnaW4tdG9wOiAxZW07fVxuICAgIHRhYmxlIHRib2R5IHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDt9XG4gICAgdGFibGUgdGJvZHkgdHIge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7fVxuICAgIHRhYmxlIHRoIHt0ZXh0LWFsaWduOiBsZWZ0OyBmb250LXdlaWdodDogbm9ybWFsfVxuICAgIHRhYmxlIHRoIGEudGl0bGUge2ZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogMS4zZW07fVxuICAgIHRhYmxlIHRkIHt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBjb2xvcjogIzY2NjsgdGV4dC1hbGlnbjogY2VudGVyO31cbiAgICB0YWJsZSBzbWFsbCB7Y29sb3I6ICM5OTk7IGRpc3BsYXk6IGJsb2NrO31cbiAgICB0YWJsZSAuYnV0dG9uIHttYXJnaW46IDB9XG5cbiAgICAmLmMtc2lkZWJhcl9fbW9kdWxlIHtcbiAgICAgICAgLyogTGFyZ2VyIHRoYW4gTWVkaXVtICovXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAgICAgcGFkZGluZzogMS41ZW0gNGVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUgdGJvZHkge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgdGFibGUgdHIge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHRoIHtcbiAgICAgICAgd2lkdGg6IDYwMHB4O1xuXG4gICAgICAgIC8qIExhcmdlciB0aGFuIFNtYWxsICovXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjA2MjVlbSkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNiU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB0ZCB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgIH1cbn1cblxuLkJhZGdlc0FjaGlldmVtZW50cyB7XG4gICAgLkJhZGdlc0FjaGlldmVtZW50c190YWJzX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAuQmFkZ2VzQWNoaWV2ZW1lbnRzX19iYWRnZV9pbWFnZSB7XG4gICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHdpZHRoOiA2NHB4O1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVhY3QtdGFic19fdGFiLWxpc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGU7XG4gICAgfVxuXG4gICAgLnJlYWN0LXRhYnNfX3RhYiB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1kYXJrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAucmVhY3QtdGFic19fdGFiLS1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLWRhcms7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAucmVhY3QtdGFic19fdGFiLXBhbmVsIHtcbiAgICAgICAgbWluLWhlaWdodDogNThweDtcbiAgICB9XG59XG5cbi5hcnRpY2xlX3NlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG4iLCIuQ29tbXVuaXR5Um9sZXMge1xuICAgIHRhYmxlIHRib2R5IHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDt9XG4gICAgdGFibGUgdGJvZHkgdHIge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7fVxufVxuXG4uY29tbXVuaXR5LXVzZXItLXJvbGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmEuY29tbXVuaXR5LS1zdWJzY3JpYmU6aG92ZXIge1xuICAgICYuaG9sbG93IHtcbiAgICAgICAgc3BhbiB7ZGlzcGxheTogbm9uZX1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ0xlYXZlJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5SZXdhcmRzX19jaGFydCB7XG5cbiAgICAuaGVhZCB7Zm9udC1zaXplOiAwLjhlbTsgbWFyZ2luOiAtNnB4IDAgOHB4O31cblxuICAgICNyZXdhcmRfY2hhcnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsMC4yNSk7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgM3B4IHJnYmEoMCwwLDAsMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmJveC1hIC50aXRsZSB7Zm9udC1zdHlsZTogaXRhbGljfVxuICAgICAgICAgICAgYS5ib3gtaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5kZXRhaWwge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpob3ZlciAuZGV0YWlsIHtkaXNwbGF5OiBibG9ja31cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG59XG4iLCIuVXNlclByb2ZpbGUge1xuICBtYXJnaW4tdG9wOiAtMS41cmVtO1xuXG4gIC5hcnRpY2xlcyB7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fYmxhY2tsaXN0cyB7XG4gIC5hY2NvdW50X3dhcm4ge2ZvbnQtc2l6ZTogMC44ZW07fVxuICAuVmVydGljYWxNZW51IHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgfVxuICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fcG9zdG1lbnUge1xuICBtYXJnaW46IC0wLjVyZW0gMCAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gIH1cbiAgZGl2IHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgMC41cmVtOyBtYXJnaW46IDAgMC41cmVtO31cbn1cblxuLlVzZXJQcm9maWxlX190YWJfY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cblxuLlVzZXJQcm9maWxlX190b3AtbmF2IHtcbmJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibHVlLWRhcms7XG5wYWRkaW5nOiAwO1xuLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5tZW51ID4gbGkgPiBhIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCAwLCAwLCAwKTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjdyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICB9XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxufVxuXG5kaXYuVXNlclByb2ZpbGVfX3RvcC1tZW51IHtcbiAgICBtYXgtd2lkdGg6IDcxLjQyODU3cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCBzdmcgdmVydGljYWwgYWxpZ25tZW50XG4gICAgLkljb24gPiBzdmcsIC5JY29uIHNwYW4uaWNvbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUhaW1wb3J0YW50O1xuICAgIH1cbn1cbn1cblxuLlVzZXJQcm9maWxlX19zZWN0aW9uLXRpdGxlIHtcbm1hcmdpbi1ib3R0b206IDEuNXJlbTtcbnBhZGRpbmctYm90dG9tOiAwLjVyZW07XG5ib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTtcbn1cblxuLlVzZXJQcm9maWxlX19iYW5uZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGEge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuICA+IGRpdi5jb2x1bW4ge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJhY2tncm91bmQtbGVzcy1kYXJrO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMnB4IGJsYWNrO1xuICAgICAgLmJ1dHRvbiB7dGV4dC1zaGFkb3c6IG5vbmU7fVxuXG4gICAgICBtaW4taGVpZ2h0OiAxNTVweDtcbiAgfVxuICBoMSB7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDEuODQ1MjRyZW0haW1wb3J0YW50O1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjEzMDk1cmVtIWltcG9ydGFudDtcbiAgICAgIH1cbiAgfVxuICAuSWNvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgIHN2ZyB7ZmlsbDogI2RlZjt9XG4gIH1cblxuICAuVXNlcnBpYyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19yZXAge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19idXR0b25zIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTVweDtcbiAgICAgIHJpZ2h0OiA1cHg7XG5cbiAgICAgIGxhYmVsLmJ1dHRvbiB7XG4gICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgfVxuXG4gIC5Vc2VyUHJvZmlsZV9fYmlvIHtcbiAgICAgIG1hcmdpbjogLTAuNHJlbSBhdXRvIDAuNXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogOTUlO1xuICAgICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbiAgLlVzZXJQcm9maWxlX19pbmZvIHtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19zdGF0cyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgZm9udC1zaXplOiA5MCU7XG5cbiAgICAgIGEge1xuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyVW5kZXJsaW5lO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0NDQztcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtib3JkZXItbGVmdDogbm9uZTt9XG4gICAgICAgICAgJjpudGgtY2hpbGQoNikge2JvcmRlci1sZWZ0OiBub25lO31cbiAgICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcblxuICBkaXYuVXNlclByb2ZpbGVfX3RvcC1uYXYgLm1lbnUgbGk+YSB7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX3RvcC1tZW51ID4gZGl2LmNvbHVtbnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5Vc2VyUHJvZmlsZV9fYmFubmVyIC5Vc2VycGljIHtcbiAgICAgIHdpZHRoOiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5Vc2VyUHJvZmlsZV9fYmFubmVyIC5Vc2VyUHJvZmlsZV9fYnV0dG9ucyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgbGFiZWwuYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgfVxuXG4gIC5Vc2VyUHJvZmlsZV9fYmFubmVyIC5Vc2VyUHJvZmlsZV9fYnV0dG9uc19tb2JpbGUge1xuICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICAgIC5idXR0b24ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuICB9XG59XG5cbi8vIFRlbXBvcmFyeSBmaXggdG8gcHJldmVudCBhbHRlcm5hdGUgVXNlciBQcm9maWxlIHBhZ2VzIG91dHNpZGUgdGhlIGJsb2cgZnJvbSB0YWtpbmcgdGhlIG5hcnJvdyBsYXlvdXQuXG5cbi5Vc2VyUHJvZmlsZSB7XG4uYXJ0aWNsZXMge1xuICAgIG1hcmdpbi1ib3R0b206IDRlbTtcbiAgJl9faDEge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcbiAgICB9XG4gIH1cbn1cbiZfX3RhYl9jb250ZW50LmxheW91dC1ibG9jay5zZXR0aW5ncywgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLmN1cmF0aW9uLXJld2FyZHMsICZfX3RhYl9jb250ZW50LmxheW91dC1ibG9jay5hdXRob3ItcmV3YXJkcyB7XG4gIC5hcnRpY2xlcyB7XG4gICAgICBwYWRkaW5nOiAxLjVlbSAxLjVlbTtcbiAgICAgIG1heC13aWR0aDogMTA1NnB4O1xuICAgICAgQGluY2x1ZGUgTVEoWEwpIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDUwcHg7XG4gICAgICB9XG4gIH1cbn1cbi5zZXR0aW5ncyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciwgLmN1cmF0aW9uLXJld2FyZHMgLmFydGljbGVzX19sYXlvdXQtc2VsZWN0b3IsIC5hdXRob3ItcmV3YXJkcyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG4iLCIucmVhY3QtdGFicyB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5yZWFjdC10YWJzX190YWItbGlzdCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhO1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucmVhY3QtdGFic19fdGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm90dG9tOiAtMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5yZWFjdC10YWJzX190YWItLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjYWFhO1xuICBjb2xvcjogYmxhY2s7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xufVxuXG4ucmVhY3QtdGFic19fdGFiLS1kaXNhYmxlZCB7XG4gIGNvbG9yOiBHcmF5VGV4dDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ucmVhY3QtdGFic19fdGFiOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDVweCBoc2woMjA4LCA5OSUsIDUwJSk7XG4gIGJvcmRlci1jb2xvcjogaHNsKDIwOCwgOTklLCA1MCUpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ucmVhY3QtdGFic19fdGFiOmZvY3VzOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDVweDtcbiAgbGVmdDogLTRweDtcbiAgcmlnaHQ6IC00cHg7XG4gIGJvdHRvbTogLTVweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5yZWFjdC10YWJzX190YWItcGFuZWwtLXNlbGVjdGVkIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7Ozs7O0FBQUE7QUM2Q0E7QUFHQTtBQUFBO0FBR0E7Ozs7O0FBQUE7QUFPQTtBQUNBO0FBQUE7QUFRQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUY3Q0E7QUFDQTtBRWlEQTtBQUFBO0FBR0E7O0FBQUE7QUFJQTtBQUNBO0FGakRBO0FBQ0E7QUVtREE7O0FBQUE7QUFJQTs7Ozs7O0FBTUE7QUZsREE7QUFDQTtBRW9EQTs7O0FBQUE7QUFLQTtBQzlFQTtBRHlGQTtBRjVEQTtBQUNBO0FFaUdBO0FBQUE7QUF3Q0E7O0FBQUE7QUFJQTs7QUFFQTtBRnRJQTtBQUNBO0FFd0lBOztBQUFBO0FBSUE7QUFLQTtBRjNJQTtBQUNBO0FFOElBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FGMUlBO0FBQ0E7QUU0SUE7O0FBQUE7QUFJQTtBQUNBO0FGM0lBO0FBQ0E7QUV3SkE7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBRnJKQTtBQUNBO0FFeUpBO0FBQUE7QUFHQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FGdkpBO0FBQ0E7QUV5SkE7OztBQUFBO0FBS0E7O0FBRUE7QUZ4SkE7QUFDQTtBRTRKQTtBQUFBO0FBR0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBRnpKQTtBQUNBO0FFMkpBOztBQUFBO0FBSUE7O0FBRUE7QUYxSkE7QUFDQTtBRTRKQTs7QUFBQTtBQUlBOztBQUVBO0FGM0pBO0FBQ0E7QUU2SkE7OztBQUFBO0FBS0E7OztBQUdBO0FBQUE7QUFDQTtBQUFBO0FGMUpBO0FBQ0E7QUU0SkE7O0FBQUE7QUFJQTtBQUNBO0FGM0pBO0FBQ0E7QUU2SkE7O0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUY1SkE7QUFDQTtBRThKQTs7QUFBQTtBQUlBO0FBQ0E7QUY3SkE7QUFDQTtBRStKQTs7O0FBQUE7QUFLQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBRjlKQTtBQUNBO0FFZ0tBO0FBQ0E7QUY5SkE7QUFDQTtBRWdLQTtBQUNBO0FGOUpBO0FBQ0E7QUVrS0E7QUFBQTtBQUdBOztBQUFBO0FBSUE7O0FBRUE7QUZsS0E7QUFDQTtBRW9LQTs7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBRm5LQTtBQUNBO0FFcUtBOztBQUFBO0FBSUE7QUFDQTtBRnBLQTtBQUNBO0FFc0tBOztBQUFBO0FBSUE7QUFDQTtBRnJLQTtBQUNBO0FFeUtBO0FBQUE7QUFHQTs7O0FBQUE7QUFLQTs7Ozs7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQUtBO0FBQUE7QUFFQTtBQUFBO0FGMUtBO0FBQ0E7QUU0S0E7O0FBQUE7QUFJQTtBQUNBO0FGM0tBO0FBQ0E7QUU2S0E7OztBQUFBO0FBS0E7O0FBQ0E7QUFDQTtBRjNLQTtBQUNBO0FFNktBOzs7O0FBQUE7QUFNQTs7OztBQUlBO0FBQUE7QUYzS0E7QUFDQTtBRTZLQTs7OztBQUtBOztBQUFBO0FBU0E7O0FBQUE7QUZoTEE7QUUyS0E7Ozs7QUFDQTtBQUNBO0FGdEtBO0FFNktBOzs7O0FBQ0E7QUZ4S0E7QUFDQTtBRTJLQTs7QUFBQTtBQUlBO0FBQ0E7QUYxS0E7QUFDQTtBRTRLQTs7O0FBQUE7QUFLQTs7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBRnpLQTtBQUNBO0FFMktBOztBQUFBO0FBSUE7O0FBRUE7QUYxS0E7QUFDQTtBRTRLQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7O0FBQUE7QUZ4S0E7QUU0S0E7QUFFQTtBRjNLQTtBQUNBO0FFOEtBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUYzS0E7QUFDQTtBRTZLQTs7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FGNUtBO0FBQ0E7QUU4S0E7Ozs7O0FBQUE7QUFPQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBRnZLQTtBQUNBO0FFeUtBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUZ0S0E7QUFDQTtBRXdLQTs7QUFBQTtBQUlBO0FBQ0E7QUZ2S0E7QUFDQTtBRTJLQTtBQUFBO0FBR0E7O0FBQUE7QUFJQTtBQUNBO0FGM0tBO0FBQ0E7QUU2S0E7O0FBQUE7QUFJQTtBQUNBO0FGNUtBO0FBQ0E7QUU4S0E7O0FBQUE7QUFJQTtBQUNBO0FGN0tBO0FBQ0E7QUVxTUE7QUFBQTtBQUdBOztBQUFBO0FBSUE7QUFDQTtBRnJNQTtBQUNBO0FFdU1BOztBQUFBO0FBSUE7QUFDQTtBRnRNQTtBQUNBO0FFME1BO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QUYxTUE7QUFDQTtBSXhWQTtBQUNBO0FKMFZBO0FBQ0E7QUl4VkE7QUFDQTtBQUNBO0FKMFZBO0FBQ0E7QUl2VkE7OztBQUdBO0FKeVZBO0FBQ0E7QUl0VkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUpvVkE7QUFDQTtBSWpWQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUpnVkE7QUFDQTtBSTdVQTtBQUNBO0FBQ0E7QUFDQTtBSitVQTtBQUNBO0FJNVVBO0FBQ0E7QUFDQTtBQUNBO0FKOFVBO0FBQ0E7QUl4VUE7Ozs7OztBQUdBO0FKNlVBO0FBQ0E7QUl6VUE7QUFHQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FKdVVBO0FLdFdBO0FBQ0E7QUx3V0E7QUFDQTtBSXZVQTtBQUNBO0FKeVVBO0FBQ0E7QUl0VUE7Ozs7O0FBS0E7QUp3VUE7QUFDQTtBSXJVQTtBQUNBO0FKdVVBO0FBQ0E7QUlyVUE7QUFDQTtBSnVVQTtBQUNBO0FNN2FBO0FDakNBO0FENURBO0FBQ0E7QUFJQTtBQUNBO0FOMmdCQTtBTWhiQTtBQ2xEQTtBQUNBO0FQcWVBO0FRL1pBO0FGckJBO0FDbERBO0FBQ0E7QVAwZUE7QUFDQTtBUXJhQTtBRnJCQTtBQ2xEQTtBQUNBO0FQZ2ZBO0FBQ0E7QU03YkE7QUFDQTtBQUNBO0FOK2JBO0FNMWJBO0FDL0NBO0FQNGVBO0FNMWJBO0FBQ0E7QUFDQTtBTjRiQTtBTXhiQTtBQ3hEQTtBUG1mQTtBTXRiQTtBR3hJQTtBQUNBO0FUaWtCQTtBTW5iQTtBQUVBO0FBQ0E7QU5vYkE7QUFDQTtBTWhiQTtBQXREQTtBR2pHQTtBQUNBO0FIaUVBO0FOMmdCQTtBUXhjQTtBRmtCQTtBR3ZKQTtBQUNBO0FUaWxCQTtBQUNBO0FBQ0E7QU12YkE7QUFDQTtBQUNBO0FOeWJBO0FBQ0E7QU10YkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTndiQTtBQUNBO0FNcmJBO0FJektBO0FWaW1CQTtBQUNBO0FNcmJBO0FBQ0E7QU51YkE7QUFDQTtBTXJiQTtBQUNBO0FOdWJBO0FBQ0E7QU1yYkE7QUFDQTtBTnViQTtBQUNBO0FNcGJBO0FJL0hBO0FWc2pCQTtBQUNBO0FNeGJBO0FJL0hBO0FWMGpCQTtBQUNBO0FNNWJBO0FJL0hBO0FWOGpCQTtBQUNBO0FNaGNBO0FJL0hBO0FWa2tCQTtBQUNBO0FNNWJBO0FBQ0E7QUFDQTtBTjhiQTtBQUNBO0FNemJBO0FLeExBO0FYb25CQTtBQUNBO0FNcmNBO0FBQ0E7QUFDQTtBTnVjQTtBQUNBO0FNbGNBO0FLeExBO0FYNm5CQTtBQUNBO0FNOWNBO0FBQ0E7QUFDQTtBTmdkQTtBQUNBO0FNM2NBO0FLeExBO0FYc29CQTtBQUNBO0FNdmRBO0FBQ0E7QUFDQTtBTnlkQTtBQUNBO0FNcGRBO0FLeExBO0FYK29CQTtBQUNBO0FNaGVBO0FBQ0E7QUFDQTtBTmtlQTtBQUNBO0FNN2RBO0FLeExBO0FYd3BCQTtBQUNBO0FNemVBO0FBQ0E7QUFDQTtBTjJlQTtBQUNBO0FNdGVBO0FLeExBO0FYaXFCQTtBQUNBO0FNbGZBO0FBQ0E7QUFDQTtBTm9mQTtBQUNBO0FNL2VBO0FLeExBO0FYMHFCQTtBQUNBO0FNM2ZBO0FBQ0E7QUFDQTtBTjZmQTtBQUNBO0FNeGZBO0FLeExBO0FYbXJCQTtBQUNBO0FNcGdCQTtBQUNBO0FBQ0E7QU5zZ0JBO0FBQ0E7QU1qZ0JBO0FLeExBO0FYNHJCQTtBQUNBO0FNN2dCQTtBQUNBO0FBQ0E7QU4rZ0JBO0FBQ0E7QU0xZ0JBO0FLeExBO0FYcXNCQTtBQUNBO0FNdGhCQTtBQUNBO0FBQ0E7QU53aEJBO0FBQ0E7QU1uaEJBO0FLeExBO0FYOHNCQTtBQUNBO0FNL2hCQTtBQUNBO0FBQ0E7QU5paUJBO0FBQ0E7QU01aEJBO0FLeExBO0FYdXRCQTtBQUNBO0FNemhCQTtBSWhLQTtBVjRyQkE7QUFDQTtBTTdoQkE7QUloS0E7QVZnc0JBO0FBQ0E7QU1qaUJBO0FJaEtBO0FWb3NCQTtBQUNBO0FNcmlCQTtBSWhLQTtBVndzQkE7QUFDQTtBTXppQkE7QUloS0E7QVY0c0JBO0FBQ0E7QU03aUJBO0FJaEtBO0FWZ3RCQTtBQUNBO0FNMWlCQTtBQXhJQTtBTnFyQkE7QU1uckJBO0FBR0E7QUFDQTtBTm1yQkE7QUFDQTtBTWxqQkE7QUF4SUE7QU42ckJBO0FNM3JCQTtBQUdBO0FBQ0E7QU4yckJBO0FBQ0E7QU0xakJBO0FBeElBO0FOcXNCQTtBTW5zQkE7QUFHQTtBQUNBO0FObXNCQTtBQUNBO0FNbGtCQTtBQXhJQTtBTjZzQkE7QU0zc0JBO0FBR0E7QUFDQTtBTjJzQkE7QUFDQTtBTTFrQkE7QUF4SUE7QU5xdEJBO0FNbnRCQTtBQUdBO0FBQ0E7QU5tdEJBO0FBQ0E7QU1sbEJBO0FBeElBO0FONnRCQTtBTTN0QkE7QUFHQTtBQUNBO0FOMnRCQTtBQUNBO0FNMWxCQTtBQXhJQTtBTnF1QkE7QU1udUJBO0FBR0E7QUFDQTtBTm11QkE7QUFDQTtBTWxtQkE7QUF4SUE7QU42dUJBO0FNM3VCQTtBQUdBO0FBQ0E7QU4ydUJBO0FBQ0E7QU0xakJBO0FHMVFBO0FBQ0E7QVR1MEJBO0FBQ0E7QU0zakJBO0FHOVFBO0FBQ0E7QVQ0MEJBO0FBQ0E7QVF6c0JBO0FGK0RBO0FBQ0E7QUFDQTtBTjZvQkE7QUFDQTtBTXhvQkE7QUt4TEE7QVhtMEJBO0FBQ0E7QU1wcEJBO0FBQ0E7QUFDQTtBTnNwQkE7QUFDQTtBTWpwQkE7QUt4TEE7QVg0MEJBO0FBQ0E7QU03cEJBO0FBQ0E7QUFDQTtBTitwQkE7QUFDQTtBTTFwQkE7QUt4TEE7QVhxMUJBO0FBQ0E7QU10cUJBO0FBQ0E7QUFDQTtBTndxQkE7QUFDQTtBTW5xQkE7QUt4TEE7QVg4MUJBO0FBQ0E7QU0vcUJBO0FBQ0E7QUFDQTtBTmlyQkE7QUFDQTtBTTVxQkE7QUt4TEE7QVh1MkJBO0FBQ0E7QU14ckJBO0FBQ0E7QUFDQTtBTjByQkE7QUFDQTtBTXJyQkE7QUt4TEE7QVhnM0JBO0FBQ0E7QU1qc0JBO0FBQ0E7QUFDQTtBTm1zQkE7QUFDQTtBTTlyQkE7QUt4TEE7QVh5M0JBO0FBQ0E7QU0xc0JBO0FBQ0E7QUFDQTtBTjRzQkE7QUFDQTtBTXZzQkE7QUt4TEE7QVhrNEJBO0FBQ0E7QU1udEJBO0FBQ0E7QUFDQTtBTnF0QkE7QUFDQTtBTWh0QkE7QUt4TEE7QVgyNEJBO0FBQ0E7QU01dEJBO0FBQ0E7QUFDQTtBTjh0QkE7QUFDQTtBTXp0QkE7QUt4TEE7QVhvNUJBO0FBQ0E7QU1ydUJBO0FBQ0E7QUFDQTtBTnV1QkE7QUFDQTtBTWx1QkE7QUt4TEE7QVg2NUJBO0FBQ0E7QU05dUJBO0FBQ0E7QUFDQTtBTmd2QkE7QUFDQTtBTTN1QkE7QUt4TEE7QVhzNkJBO0FBQ0E7QU14dUJBO0FJaEtBO0FWMjRCQTtBQUNBO0FNNXVCQTtBSWhLQTtBVis0QkE7QUFDQTtBTWh2QkE7QUloS0E7QVZtNUJBO0FBQ0E7QU1wdkJBO0FJaEtBO0FWdTVCQTtBQUNBO0FNeHZCQTtBSWhLQTtBVjI1QkE7QUFDQTtBTTV2QkE7QUloS0E7QVYrNUJBO0FBQ0E7QU16dkJBO0FBeElBO0FObzRCQTtBTWw0QkE7QUFHQTtBQUNBO0FOazRCQTtBQUNBO0FNandCQTtBQXhJQTtBTjQ0QkE7QU0xNEJBO0FBR0E7QUFDQTtBTjA0QkE7QUFDQTtBTXp3QkE7QUF4SUE7QU5vNUJBO0FNbDVCQTtBQUdBO0FBQ0E7QU5rNUJBO0FBQ0E7QU1qeEJBO0FBeElBO0FONDVCQTtBTTE1QkE7QUFHQTtBQUNBO0FOMDVCQTtBQUNBO0FNenhCQTtBQXhJQTtBTm82QkE7QU1sNkJBO0FBR0E7QUFDQTtBTms2QkE7QUFDQTtBTWp5QkE7QUF4SUE7QU40NkJBO0FNMTZCQTtBQUdBO0FBQ0E7QU4wNkJBO0FBQ0E7QU16eUJBO0FBeElBO0FObzdCQTtBTWw3QkE7QUFHQTtBQUNBO0FOazdCQTtBQUNBO0FNanpCQTtBQXhJQTtBTjQ3QkE7QU0xN0JBO0FBR0E7QUFDQTtBTjA3QkE7QUFDQTtBUTk0QkE7QUY2RkE7QUFDQTtBTm96QkE7QUFDQTtBUW41QkE7QUZvR0E7QUk1S0E7QVYrOUJBO0FBQ0E7QVF4NUJBO0FGb0dBO0FJNUtBO0FWbytCQTtBQUNBO0FRNzVCQTtBRm9HQTtBSTVLQTtBVnkrQkE7QUFDQTtBUWw2QkE7QUZvR0E7QUk1S0E7QVY4K0JBO0FBQ0E7QVF2NkJBO0FGeUdBO0FBQ0E7QU5pMEJBO0FBQ0E7QVE1NkJBO0FGNkdBO0FBQ0E7QU5rMEJBO0FBQ0E7QVFqN0JBO0FGaUhBO0FBQ0E7QU5tMEJBO0FBQ0E7QU05ekJBO0FBQ0E7QU5nMEJBO0FRejdCQTtBRndIQTtBQUlBO0FOaTBCQTtBQUNBO0FBQ0E7QVEvN0JBO0FGcUlBO0FHMVFBO0FBQ0E7QVR3a0NBO0FBQ0E7QVFyOEJBO0FGeUlBO0FHOVFBO0FBQ0E7QVQ4a0NBO0FBQ0E7QVEzOEJBO0FGK0RBO0FBQ0E7QUFDQTtBTis0QkE7QUFDQTtBTTE0QkE7QUt4TEE7QVhxa0NBO0FBQ0E7QU10NUJBO0FBQ0E7QUFDQTtBTnc1QkE7QUFDQTtBTW41QkE7QUt4TEE7QVg4a0NBO0FBQ0E7QU0vNUJBO0FBQ0E7QUFDQTtBTmk2QkE7QUFDQTtBTTU1QkE7QUt4TEE7QVh1bENBO0FBQ0E7QU14NkJBO0FBQ0E7QUFDQTtBTjA2QkE7QUFDQTtBTXI2QkE7QUt4TEE7QVhnbUNBO0FBQ0E7QU1qN0JBO0FBQ0E7QUFDQTtBTm03QkE7QUFDQTtBTTk2QkE7QUt4TEE7QVh5bUNBO0FBQ0E7QU0xN0JBO0FBQ0E7QUFDQTtBTjQ3QkE7QUFDQTtBTXY3QkE7QUt4TEE7QVhrbkNBO0FBQ0E7QU1uOEJBO0FBQ0E7QUFDQTtBTnE4QkE7QUFDQTtBTWg4QkE7QUt4TEE7QVgybkNBO0FBQ0E7QU01OEJBO0FBQ0E7QUFDQTtBTjg4QkE7QUFDQTtBTXo4QkE7QUt4TEE7QVhvb0NBO0FBQ0E7QU1yOUJBO0FBQ0E7QUFDQTtBTnU5QkE7QUFDQTtBTWw5QkE7QUt4TEE7QVg2b0NBO0FBQ0E7QU05OUJBO0FBQ0E7QUFDQTtBTmcrQkE7QUFDQTtBTTM5QkE7QUt4TEE7QVhzcENBO0FBQ0E7QU12K0JBO0FBQ0E7QUFDQTtBTnkrQkE7QUFDQTtBTXArQkE7QUt4TEE7QVgrcENBO0FBQ0E7QU1oL0JBO0FBQ0E7QUFDQTtBTmsvQkE7QUFDQTtBTTcrQkE7QUt4TEE7QVh3cUNBO0FBQ0E7QU0xK0JBO0FJaEtBO0FWNm9DQTtBQUNBO0FNOStCQTtBSWhLQTtBVmlwQ0E7QUFDQTtBTWwvQkE7QUloS0E7QVZxcENBO0FBQ0E7QU10L0JBO0FJaEtBO0FWeXBDQTtBQUNBO0FNMS9CQTtBSWhLQTtBVjZwQ0E7QUFDQTtBTTkvQkE7QUloS0E7QVZpcUNBO0FBQ0E7QU0zL0JBO0FBeElBO0FOc29DQTtBTXBvQ0E7QUFHQTtBQUNBO0FOb29DQTtBQUNBO0FNbmdDQTtBQXhJQTtBTjhvQ0E7QU01b0NBO0FBR0E7QUFDQTtBTjRvQ0E7QUFDQTtBTTNnQ0E7QUF4SUE7QU5zcENBO0FNcHBDQTtBQUdBO0FBQ0E7QU5vcENBO0FBQ0E7QU1uaENBO0FBeElBO0FOOHBDQTtBTTVwQ0E7QUFHQTtBQUNBO0FONHBDQTtBQUNBO0FNM2hDQTtBQXhJQTtBTnNxQ0E7QU1wcUNBO0FBR0E7QUFDQTtBTm9xQ0E7QUFDQTtBTW5pQ0E7QUF4SUE7QU44cUNBO0FNNXFDQTtBQUdBO0FBQ0E7QU40cUNBO0FBQ0E7QU0zaUNBO0FBeElBO0FOc3JDQTtBTXByQ0E7QUFHQTtBQUNBO0FOb3JDQTtBQUNBO0FNbmpDQTtBQXhJQTtBTjhyQ0E7QU01ckNBO0FBR0E7QUFDQTtBTjRyQ0E7QUFDQTtBUWhwQ0E7QUY2RkE7QUFDQTtBTnNqQ0E7QUFDQTtBUXJwQ0E7QUZvR0E7QUk1S0E7QVZpdUNBO0FBQ0E7QVExcENBO0FGb0dBO0FJNUtBO0FWc3VDQTtBQUNBO0FRL3BDQTtBRm9HQTtBSTVLQTtBVjJ1Q0E7QUFDQTtBUXBxQ0E7QUZvR0E7QUk1S0E7QVZndkNBO0FBQ0E7QVF6cUNBO0FGeUdBO0FBQ0E7QU5ta0NBO0FBQ0E7QVE5cUNBO0FGNkdBO0FBQ0E7QU5va0NBO0FBQ0E7QVFuckNBO0FGaUhBO0FBQ0E7QU5xa0NBO0FBQ0E7QU1oa0NBO0FBQ0E7QU5ra0NBO0FRM3JDQTtBRndIQTtBQUlBO0FObWtDQTtBQUNBO0FBQ0E7QVFqc0NBO0FGcUlBO0FHMVFBO0FBQ0E7QVQwMENBO0FBQ0E7QVF2c0NBO0FGeUlBO0FHOVFBO0FBQ0E7QVRnMUNBO0FBQ0E7QU0vakNBO0FBQ0E7QUFDQTtBTmlrQ0E7QUFDQTtBTTlqQ0E7QUdwT0E7QVRxeUNBO0FTbnlDQTtBQUNBO0FUcXlDQTtBUXh0Q0E7QUZvSkE7QUdwT0E7QVQ0eUNBO0FTMXlDQTtBQUNBO0FUNHlDQTtBQUNBO0FBQ0E7QVk3bkNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBO0FBQ0E7QVorbkNBO0FBQ0E7QVk1bkNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QVo2bkNBO0FBQ0E7QVkxbkNBOztBQUVBO0FBQ0E7QVo0bkNBO0FBQ0E7QVl6bkNBOztBQUVBO0FBQ0E7QVoybkNBO0FBQ0E7QVl4bkNBO0FBQ0E7QUFDQTtBWjBuQ0E7QUFDQTtBWXZuQ0E7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVp5bkNBO0FZdm5DQTs7Ozs7O0FBQ0E7QUFDQTtBWjhuQ0E7QUFDQTtBWXRuQ0E7QUFJQTtBQVlBO0FBUUE7QUFPQTtBWjZsQ0E7QUFDQTtBWTduQ0E7QUFJQTtBQVlBO0FBUUE7QUFPQTtBWm9tQ0E7QUFDQTtBWXBvQ0E7QUFJQTtBQVlBO0FBUUE7QUFPQTtBWjJtQ0E7QUFDQTtBWTNvQ0E7QUFJQTtBQVlBO0FBUUE7QUFPQTtBWmtuQ0E7QUFDQTtBWWxwQ0E7QUFJQTtBQVlBO0FBUUE7QUFPQTtBWnluQ0E7QUFDQTtBWXpwQ0E7QUFJQTtBQVlBO0FBUUE7QUFPQTtBWmdvQ0E7QUFDQTtBUWgxQ0E7QUlnTEE7QUFJQTtBWmdxQ0E7QUFDQTtBWXJxQ0E7QUFJQTtBWm9xQ0E7QUFDQTtBWXpxQ0E7QUFJQTtBWndxQ0E7QUFDQTtBWTdxQ0E7QUFJQTtBWjRxQ0E7QUFDQTtBWWpyQ0E7QUFJQTtBWmdyQ0E7QUFDQTtBWXJyQ0E7QUFJQTtBWm9yQ0E7QUFDQTtBWWxwQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBWm1wQ0E7QVlqcENBO0FBRUE7QVprcENBO0FZNW9DQTtBQUNBO0FaOG9DQTtBQUNBO0FZMW9DQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QVowb0NBO0FBQ0E7QVl2b0NBOzs7QUFHQTtBQUNBO0FBQ0E7QVp5b0NBO0FBQ0E7QVl0b0NBO0FBQ0E7QVp3b0NBO0FBQ0E7QVlyb0NBO0FBQ0E7QUFDQTtBWnVvQ0E7QUFDQTtBWXBvQ0E7QUFDQTtBWnNvQ0E7QUFDQTtBWWxvQ0E7QUFDQTtBQUNBO0Fab29DQTtBQUNBO0FZaG9DQTtBQUNBO0Faa29DQTtBWWhvQ0E7QUFDQTtBQUNBO0Faa29DQTtBQUNBO0FZOW5DQTtBQUNBO0FBQ0E7QUFDQTtBWmdvQ0E7QVk5bkNBO0FBQ0E7QUFDQTtBWmdvQ0E7QUFDQTtBWTVuQ0E7QUFDQTtBQUNBO0FBQ0E7QVo4bkNBO0FZNW5DQTtBQUNBO0FaOG5DQTtBQUNBO0FZMW5DQTtBQUNBO0FBQ0E7QUFDQTtBWjRuQ0E7QUFDQTtBWXpuQ0E7QUFDQTtBWjJuQ0E7QUFDQTtBWXhuQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QVp3bkNBO0FBQ0E7QVlybkNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FabW5DQTtBQUNBO0FhOWpEQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QWIrakRBO0FBQ0E7QWE1akRBO0FBQ0E7QUFDQTtBYjhqREE7QUFDQTtBYTNqREE7QUFDQTtBQUNBO0FiNmpEQTtBYTNqREE7QUFDQTtBYjZqREE7QUFDQTtBYXhqREE7QUFDQTtBQUNBO0FiMGpEQTtBQUNBO0Fjem5EQTtBQUNBO0FkMm5EQTtBQUNBO0FjN25EQTtBQUNBO0FkK25EQTtBQUNBO0Fjam9EQTtBQUNBO0FkbW9EQTtBQUNBO0Fjcm9EQTtBQUNBO0FkdW9EQTtBQUNBO0FRNS9DQTtBTWxKQTtBQUNBO0FkaXBEQTtBQUNBO0FjbnBEQTtBQUNBO0FkcXBEQTtBQUNBO0FjdnBEQTtBQUNBO0FkeXBEQTtBQUNBO0FjM3BEQTtBQUNBO0FkNnBEQTtBQUNBO0FRN2dEQTtBTWxKQTtBQUNBO0Fka3FEQTtBQUNBO0FjcHFEQTtBQUNBO0Fkc3FEQTtBQUNBO0FjeHFEQTtBQUNBO0FkMHFEQTtBQUNBO0FjNXFEQTtBQUNBO0FkOHFEQTtBQUNBO0FlNXFEQTtBQUFBO0FmK3FEQTtBQUNBO0FlOXFEQTtBQUNBO0FBRUE7QUFHQTtBQUVBO0FBQ0E7QWY0cURBO0FBQ0E7QWUxcURBO0FBQUE7QWY2cURBO0FBQ0E7QWU3cURBO0FBQUE7QWZnckRBO0FBQ0E7QWUvcURBO0FBQUE7QWZrckRBO0FBQ0E7QWVsckRBO0FBQUE7QWZxckRBO0FBQ0E7QWVyckRBO0FBQUE7QWZ3ckRBO0FBQ0E7QWV4ckRBO0FBQUE7QWYyckRBO0FBQ0E7QWUzckRBO0FBQUE7QWY4ckRBO0FBQ0E7QWU5ckRBO0FBQUE7QWZpc0RBO0FBQ0E7QWUvckRBOztBQUNBO0Fma3NEQTtBQUNBO0FlanNEQTtBQUFBO0Fmb3NEQTtBQUNBO0FlanNEQTs7O0FBRUE7QWZvc0RBO0FBQ0E7QWVsc0RBO0FBQUE7QWZxc0RBO0FBQ0E7QWVuc0RBOztBQUVBO0FBQ0E7QWZxc0RBO0FBQ0E7QWVsc0RBO0FBQUE7QWZxc0RBO0FBQ0E7QWVwc0RBOztBQUNBO0FmdXNEQTtBQUNBO0FldHNEQTtBQUFBO0FmeXNEQTtBQUNBO0FleHNEQTtBQUFBO0FmMnNEQTtBZXpzREE7OztBQUdBO0FBQ0E7QWYyc0RBO0FBQ0E7QWV4c0RBOztBQUNBO0FmMnNEQTtBQUNBO0FlenNEQTtBQUNBO0FmMnNEQTtBQUNBO0FnQmxxREE7O0FBckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBcUJBO0FBQUE7QUFBQTtBaEJtckRBO0FnQnBzREE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBaEJxc0RBO0FBQ0E7QWdCeHJEQTtBQUNBO0FoQjByREE7QWdCeHJEQTtBQUNBO0FoQjByREE7QUFDQTtBZ0JwckRBO0FBQ0E7QWhCdXJEQTtBQUNBO0FnQnpyREE7QUFDQTtBaEJ1ckRBO0FBQ0E7QWdCenJEQTs7QUFDQTtBaEJ1ckRBO0FnQm5yREE7OztBQUVBO0FBQ0E7QWhCc3JEQTtBQUNBO0FnQmxyREE7O0FBRUE7QUFBQTtBQUFBO0FBQ0E7QWhCb3JEQTtBQUNBO0FnQmpyREE7QUFDQTtBaEJtckRBO0FBQ0E7QWlCOTBEQTs7O0FBR0E7QWpCZzFEQTtBQUNBO0FpQjcwREE7O0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBakI4MERBO0FpQjUwREE7O0FBQ0E7QWpCKzBEQTtBQUNBO0FpQjMwREE7O0FBRUE7QWpCNjBEQTtBQUNBO0FpQjEwREE7QUFDQTtBakI0MERBO0FBQ0E7QWtCejBEQTtBQWpCQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QWxCNDFEQTtBa0I5MERBO0FBUkE7QUFDQTtBbEJ5MURBO0FBQ0E7QW1CMzJEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FuQjIyREE7QUFDQTtBb0I3MkRBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QXBCNjJEQTtBb0IxMkRBO0FBQ0E7QXBCNDJEQTtBb0J4MkRBO0FBQ0E7QXBCMDJEQTtBQUNBO0FvQnQyREE7Ozs7QUFDQTtBQUNBO0FwQjIyREE7QUFDQTtBb0JwMkRBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FwQmsyREE7QW9CMTFEQTtBQUNBO0FwQjQxREE7QW9CejFEQTtBQUNBO0FwQjIxREE7QUFDQTtBb0J2MURBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QXBCczFEQTtBQUNBO0FvQmgxREE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBcEIrMERBO0FvQngwREE7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFFQTtBcEJ3MERBO0FBQ0E7QXFCOTVEQTtBQUNBO0FBQ0E7QUFDQTtBckJnNkRBO0FBQ0E7QXFCOTVEQTtBQUNBO0FBQ0E7QXJCZzZEQTtBQUNBO0FxQjk1REE7QUF6QkE7QUFDQTtBQUNBO0FyQjA3REE7QXFCeDdEQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FyQnk3REE7QUFDQTtBc0IxNERBO0FBM0RBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpCMEZBO0FpQnRGQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBSUE7QXRCZzhEQTtBS2ozREE7QWlCOUNBO0FqQmlEQTtBTGszREE7QUFDQTtBc0JqOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBdEJpOERBO0FzQjU3REE7QUFDQTtBQUNBO0F0Qjg3REE7QXNCMTdEQTtBQUNBO0F0QjQ3REE7QXNCejdEQTtBQUNBO0FBQ0E7QXRCMjdEQTtBQUNBO0F1Qjc5REE7QUFDQTtBQUNBO0F2Qis5REE7QXVCOTlEQTtBQUNBO0F2QmcrREE7QXVCaitEQTtBQUNBO0F2QmcrREE7QXVCaitEQTtBQUNBO0F2QmcrREE7QUFDQTtBdUJ2OERBO0FBQ0E7QXZCeThEQTtBQUNBO0F1QnI4REE7QUF6QkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0F2QmcrREE7QXVCMThEQTtBQUNBO0F2QjQ4REE7QUFDQTtBd0I1eERBO0FBaExBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FBQ0E7QXhCKzVEQTtBS2o0REE7QUFDQTtBTG00REE7QXdCaDZEQTtBQUNBO0FBQ0E7QXhCazZEQTtBd0IveURBO0FBQ0E7QXhCaXpEQTtBd0JsekRBO0FBQ0E7QXhCb3pEQTtBd0JyekRBO0FBQ0E7QXhCdXpEQTtBd0JuekRBO0FBM0pBO0FBQ0E7QUFDQTtBQUNBO0F4Qmk5REE7QXdCcHpEQTtBQWxJQTtBQUNBO0F4Qnk3REE7QXdCdjdEQTtBQUNBO0FBQ0E7QXhCeTdEQTtBd0I1ekRBO0FBbElBO0FBQ0E7QXhCaThEQTtBd0IvN0RBO0FBQ0E7QUFDQTtBeEJpOERBO0F3QnAwREE7QUFsSUE7QUFDQTtBeEJ5OERBO0F3QnY4REE7QUFDQTtBQUNBO0F4Qnk4REE7QXdCNTBEQTtBQWxJQTtBQUNBO0F4Qmk5REE7QXdCLzhEQTtBQUNBO0FBQ0E7QXhCaTlEQTtBd0JwMURBO0FBbElBO0FBQ0E7QXhCeTlEQTtBd0J2OURBO0FBQ0E7QUFDQTtBeEJ5OURBO0F3QjUwREE7QUF6RkE7QUFDQTtBeEJ3NkRBO0F3QnQ2REE7QUFDQTtBQUNBO0F4Qnc2REE7QXdCLzBEQTtBQTlGQTtBQUNBO0F4Qmc3REE7QXdCOTZEQTtBQUNBO0FBQ0E7QXhCZzdEQTtBd0J2MURBO0FBOUZBO0FBQ0E7QXhCdzdEQTtBd0J0N0RBO0FBQ0E7QUFDQTtBeEJ3N0RBO0F3Qi8xREE7QUE5RkE7QUFDQTtBeEJnOERBO0F3Qjk3REE7QUFDQTtBQUNBO0F4Qmc4REE7QXdCdjJEQTtBQTlGQTtBQUNBO0F4Qnc4REE7QXdCdDhEQTtBQUNBO0FBQ0E7QXhCdzhEQTtBd0IvMkRBO0FBOUZBO0FBQ0E7QXhCZzlEQTtBd0I5OERBO0FBQ0E7QUFDQTtBeEJnOURBO0F3Qi8yREE7QUEvSEE7QUFDQTtBeEJpL0RBO0F3QnZnRUE7QUFFQTtBeEJ3Z0VBO0F3Qm5nRUE7QUFFQTtBeEJvZ0VBO0F3QnIvREE7QUFDQTtBQUNBO0F4QnUvREE7QXdCdC9EQTtBQUVBO0FBQ0E7QXhCdS9EQTtBd0I1M0RBO0FBcElBO0FBQ0E7QXhCbWdFQTtBd0JqZ0VBO0FBQ0E7QUFDQTtBeEJtZ0VBO0F3QmxnRUE7QUFFQTtBQUNBO0F4Qm1nRUE7QXdCeDREQTtBQXBJQTtBQUNBO0F4QitnRUE7QXdCN2dFQTtBQUNBO0FBQ0E7QXhCK2dFQTtBd0I5Z0VBO0FBRUE7QUFDQTtBeEIrZ0VBO0F3QnA1REE7QUFwSUE7QUFDQTtBeEIyaEVBO0F3QnpoRUE7QUFDQTtBQUNBO0F4QjJoRUE7QXdCMWhFQTtBQUVBO0FBQ0E7QXhCMmhFQTtBd0JoNkRBO0FBcElBO0FBQ0E7QXhCdWlFQTtBd0JyaUVBO0FBQ0E7QUFDQTtBeEJ1aUVBO0F3QnRpRUE7QUFFQTtBQUNBO0F4QnVpRUE7QXdCNTZEQTtBQXBJQTtBQUNBO0F4Qm1qRUE7QXdCampFQTtBQUNBO0FBQ0E7QXhCbWpFQTtBd0JsakVBO0FBRUE7QUFDQTtBeEJtakVBO0F3Qi82REE7QUE3SUE7QUFDQTtBeEIrakVBO0F3QnJsRUE7QUFFQTtBeEJzbEVBO0F3QmpsRUE7QUFFQTtBeEJrbEVBO0F3Qm5rRUE7QUFDQTtBQUNBO0F4QnFrRUE7QXdCcGtFQTtBQUVBO0FBQ0E7QXhCcWtFQTtBd0I1N0RBO0FBQ0E7QXhCODdEQTtBd0J6N0RBO0FBeEpBO0FBQ0E7QXhCb2xFQTtBd0JsbEVBO0FBQ0E7QUFDQTtBeEJvbEVBO0F3Qm5sRUE7QUFFQTtBQUNBO0F4Qm9sRUE7QXdCaDhEQTtBQUdBO0F4Qmc4REE7QXdCeDhEQTtBQXhKQTtBQUNBO0F4Qm1tRUE7QXdCam1FQTtBQUNBO0FBQ0E7QXhCbW1FQTtBd0JsbUVBO0FBRUE7QUFDQTtBeEJtbUVBO0F3Qi84REE7QUFHQTtBeEIrOERBO0F3QnY5REE7QUF4SkE7QUFDQTtBeEJrbkVBO0F3QmhuRUE7QUFDQTtBQUNBO0F4QmtuRUE7QXdCam5FQTtBQUVBO0FBQ0E7QXhCa25FQTtBd0I5OURBO0FBR0E7QXhCODlEQTtBd0J0K0RBO0FBeEpBO0FBQ0E7QXhCaW9FQTtBd0IvbkVBO0FBQ0E7QUFDQTtBeEJpb0VBO0F3QmhvRUE7QUFFQTtBQUNBO0F4QmlvRUE7QXdCNytEQTtBQUdBO0F4QjYrREE7QXdCci9EQTtBQXhKQTtBQUNBO0F4QmdwRUE7QXdCOW9FQTtBQUNBO0FBQ0E7QXhCZ3BFQTtBd0Ivb0VBO0FBRUE7QUFDQTtBeEJncEVBO0F3QjUvREE7QUFHQTtBeEI0L0RBO0F3QmpuRUE7QW5CM01BO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QW1Ca01BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXhCeW5FQTtBd0J4L0RBO0FBQ0E7QXhCMC9EQTtBd0JyL0RBO0FBQ0E7QXhCdS9EQTtBd0J4L0RBO0FBQ0E7QXhCMC9EQTtBd0IzL0RBO0FBQ0E7QXhCNi9EQTtBd0I5L0RBO0FBQ0E7QXhCZ2dFQTtBd0JqZ0VBO0FBQ0E7QXhCbWdFQTtBd0IzL0RBO0FBQ0E7QUFDQTtBQUNBO0F4QjYvREE7QUFDQTtBeUIxdUVBO0FBdkZBO0FBQ0E7QUFDQTtBekJvMEVBO0F5QmwwRUE7QUFDQTtBekJvMEVBO0FBQ0E7QXlCOXpFQTtBQUNBO0F6QmcwRUE7QXlCN3pFQTtBQUNBO0F6Qit6RUE7QUFDQTtBeUJsdkVBO0FBbEVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXpCcXpFQTtBeUJuekVBO0FBQ0E7QUFDQTtBekJxekVBO0F5Qmx6RUE7QUFFQTtBekJtekVBO0F5Qi95RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6Qml6RUE7QXlCOXlFQTtBQUNBO0F6Qmd6RUE7QUFDQTtBeUIxd0VBO0FBM0JBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBekJzeUVBO0F5QnB5RUE7QUFDQTtBekJzeUVBO0FBQ0E7QTBCcDRFQTtBQUVBO0ExQnE0RUE7QTBCbDRFQTtBQUVBO0FBQ0E7QUFDQTtBMUJtNEVBO0EwQi8zRUE7QUFFQTtBQUNBO0ExQmc0RUE7QTBCcjNFQTtBQUNBO0ExQnUzRUE7QTBCcjNFQTtBQUNBO0ExQnUzRUE7QTBCbDNFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBMUJrM0VBO0EwQjMyRUE7QXJCMUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QXFCa0VBO0FBQ0E7QUFDQTtBMUJtM0VBO0EwQjkyRUE7QUFDQTtBQUNBO0ExQmczRUE7QTBCNzJFQTtBckIrRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUxpeUVBO0FBQ0E7QTBCbDNFQTtBQUNBO0ExQm8zRUE7QTBCbDNFQTtBckJuR0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBcUIyRkE7QUFDQTtBQUNBO0FBQ0E7QTFCMDNFQTtBQUNBO0EwQnYzRUE7QUFDQTtBQUNBO0ExQnkzRUE7QUFDQTtBMkIxOEVBO0FBWEE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBT0E7QUFDQTtBM0JnOUVBO0EyQjc4RUE7QUFDQTtBQUNBO0EzQis4RUE7QTJCajlFQTtBQUNBO0FBQ0E7QTNCbTlFQTtBMkJyOUVBO0FBQ0E7QUFDQTtBM0J1OUVBO0EyQno5RUE7QUFDQTtBQUNBO0EzQjI5RUE7QTJCNzlFQTtBQUNBO0FBQ0E7QTNCKzlFQTtBQUNBO0E0Qi83RUE7QUE1Q0E7QUFDQTtBNUI4K0VBO0FLNzRFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMNDRFQTtBS3g0RUE7QUFDQTtBTDA0RUE7QTRCcC9FQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QTVCbS9FQTtBNEI1K0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1QjgrRUE7QTRCcitFQTtBQUNBO0E1QnUrRUE7QTRCcitFQTtBQUNBO0E1QnUrRUE7QTRCOTlFQTtBQUNBO0FBQ0E7QTVCZytFQTtBQUNBO0E2QjkzRUE7QUEvSkE7QUFHQTtBQUNBO0FBQ0E7QTdCOGhGQTtBS3Q3RUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBTHE3RUE7QUtqN0VBO0FBQ0E7QUxtN0VBO0E2QmppRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0E3QmlpRkE7QTZCOWhGQTtBQUNBO0E3QmdpRkE7QTZCbDVFQTtBQUNBO0E3Qm81RUE7QTZCcjVFQTtBQUNBO0E3QnU1RUE7QTZCeDVFQTtBQUNBO0E3QjA1RUE7QTZCcGdGQTtBQUVBO0E3QnFnRkE7QTZCbjVFQTtBTGpFQTtBQUNBO0F4QnU5RUE7QXdCcjlFQTtBQUNBO0FBQ0E7QXhCdTlFQTtBNkIzNUVBO0FMakVBO0FBQ0E7QXhCKzlFQTtBd0I3OUVBO0FBQ0E7QUFDQTtBeEIrOUVBO0E2Qm42RUE7QUxqRUE7QUFDQTtBeEJ1K0VBO0F3QnIrRUE7QUFDQTtBQUNBO0F4QnUrRUE7QTZCMzZFQTtBTGpFQTtBQUNBO0F4QisrRUE7QXdCNytFQTtBQUNBO0FBQ0E7QXhCKytFQTtBNkJuN0VBO0FMakVBO0FBQ0E7QXhCdS9FQTtBd0JyL0VBO0FBQ0E7QUFDQTtBeEJ1L0VBO0E2Qi82RUE7QUE5RkE7QTdCZ2hGQTtBNkI3Z0ZBO0FBRUE7QTdCOGdGQTtBNkJ4Z0ZBO0FBQ0E7QTdCMGdGQTtBUTUvRUE7QXFCYUE7QUFFQTtBQUtBO0E3QjYrRUE7QUFDQTtBUWxnRkE7QXFCYUE7QUFFQTtBQUtBO0E3Qm0vRUE7QUFDQTtBUW5nRkE7QXFCaUZBO0FBRUE7QTdCbzdFQTtBNkJsN0VBO0FBQ0E7QUFDQTtBN0JvN0VBO0FBQ0E7QUFDQTtBOEJybEZBO0FBMUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFpQkE7QUFDQTtBOUJpbkZBO0E4QmhvRkE7QUFDQTtBOUJrb0ZBO0E4Qi9uRkE7QUFDQTtBOUJpb0ZBO0E4QmhtRkE7QUF4QkE7QUFDQTtBOUIybkZBO0E4QnBtRkE7QUF4QkE7QUFDQTtBOUIrbkZBO0E4QnhtRkE7QUF4QkE7QUFDQTtBOUJtb0ZBO0E4QjVtRkE7QUF4QkE7QUFDQTtBOUJ1b0ZBO0E4QmhuRkE7QUF4QkE7QUFDQTtBOUIyb0ZBO0E4Qi9tRkE7QUF4QkE7QUFDQTtBQUNBO0FBQ0E7QTlCMG9GQTtBOEJqbkZBO0FBNUJBO0FBQ0E7QUFDQTtBQUNBO0E5QmdwRkE7QUFDQTtBK0I5bUZBO0FBdkRBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0EvQm1xRkE7QStCanFGQTtBQUNBO0EvQm1xRkE7QUFDQTtBK0IxbkZBO0FBaENBO0FBQ0E7QUFHQTtBQUNBO0EvQjJwRkE7QStCenBGQTtBQUNBO0EvQjJwRkE7QUFDQTtBK0Job0ZBO0FBbkJBO0FBR0E7QS9Cb3BGQTtBK0JscEZBO0FBQ0E7QS9Cb3BGQTtBQUNBO0FnQ2hxRkE7QUFYQTtBQUNBO0FBQ0E7QWhDOHFGQTtBS25sRkE7QUFDQTtBTHFsRkE7QWdDL3FGQTtBQUVBO0FoQ2dyRkE7QWdDeHFGQTtBQTFCQTtBQUNBO0FBQ0E7QUFDQTtBaENxc0ZBO0FnQzdxRkE7QUEzQkE7QUFDQTtBQUNBO0FBQ0E7QWhDMnNGQTtBQUNBO0FpQ3poRkE7QUFwTkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FqQzh1RkE7QWlDMXVGQTtBQUlBO0FqQ3l1RkE7QUtqbkZBO0FBQ0E7QUxtbkZBO0FpQ251RkE7QUFDQTtBQUNBO0FBQ0E7QWpDcXVGQTtBaUNqdUZBOzs7O0FBSUE7QWpDbXVGQTtBaUN6bkZBO0FBQ0E7QWpDMm5GQTtBaUN4bUZBO0FBRUE7QWpDeW1GQTtBaUN0bUZBOzs7QUFHQTtBakN3bUZBO0FpQ3hqRkE7QUEzSkE7QWpDc3RGQTtBaUNwdEZBO0FBQ0E7QWpDc3RGQTtBaUM3dUZBO0FBQ0E7QWpDK3VGQTtBaUN0dUZBO0FBQ0E7QWpDd3VGQTtBaUMxakZBO0FBdkpBO0FqQ290RkE7QWlDbHRGQTtBQUNBO0FBQ0E7QWpDb3RGQTtBaUNqdEZBO0FBQ0E7QUFDQTtBakNtdEZBO0FRdnJGQTtBeUJ1SEE7QUExS0E7QWpDOHVGQTtBaUM1dUZBO0FBQ0E7QWpDOHVGQTtBaUNyd0ZBO0FBQ0E7QWpDdXdGQTtBaUM5dkZBO0FBQ0E7QWpDZ3dGQTtBaUNya0ZBO0FBcEtBO0FqQzR1RkE7QWlDMXVGQTtBQUNBO0FBQ0E7QWpDNHVGQTtBaUN6dUZBO0FBQ0E7QUFDQTtBakMydUZBO0FBQ0E7QVFodEZBO0F5QnVIQTtBQTFLQTtBakN1d0ZBO0FpQ3J3RkE7QUFDQTtBakN1d0ZBO0FpQzl4RkE7QUFDQTtBakNneUZBO0FpQ3Z4RkE7QUFDQTtBakN5eEZBO0FpQzlsRkE7QUFwS0E7QWpDcXdGQTtBaUNud0ZBO0FBQ0E7QUFDQTtBakNxd0ZBO0FpQ2x3RkE7QUFDQTtBQUNBO0FqQ293RkE7QUFDQTtBaUNwdkZBO0FBQ0E7QUFDQTtBQUNBO0FqQ3N2RkE7QWlDbnZGQTtBQUNBO0FqQ3F2RkE7QWlDdnVGQTtBQUNBO0FBQ0E7QWpDeXVGQTtBaUMzdUZBO0FBQ0E7QUFDQTtBakM2dUZBO0FpQzNtRkE7QUFFQTtBakM0bUZBO0FpQzNyRkE7QUFFQTtBakM0ckZBO0FpQ3RyRkE7OztBQVFBO0FBQ0E7QUFDQTtBakNtckZBO0FpQ3RtRkE7QUFDQTtBakN3bUZBO0FpQ2xtRkE7QUFwSkE7QWpDeXZGQTtBaUNobUZBO0FBQ0E7QUFDQTtBakNrbUZBO0FpQzdsRkE7QUFDQTtBakMrbEZBO0FpQzlsRkE7QUFDQTtBakNnbUZBO0FpQ3psRkE7QUFDQTtBakMybEZBO0FBQ0E7QWlDdmxGQTtBQXhHQTtBQUVBO0FBQ0E7QUFDQTtBakNpc0ZBO0FBQ0E7QWlDemxGQTtBQUNBO0FqQzJsRkE7QWlDemxGQTtBdkJwVEE7QUFDQTtBVmc1RkE7QWlDcmxGQTtBQUNBO0FqQ3VsRkE7QUFDQTtBaUNsbEZBO0FBQ0E7QWpDb2xGQTtBQUNBO0FrQzE4RkE7QTdCZ0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTDYzRkE7QUsxM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FMeTNGQTtBSzkyRkE7QUFDQTtBQUNBO0FMZzNGQTtBQUNBO0FrQzk5RkE7QTdCNEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTHE1RkE7QUtsNUZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FMaTVGQTtBS3Q0RkE7QUFDQTtBQUNBO0FMdzRGQTtBQUNBO0FtQzc5RkE7QUFDQTtBQUNBO0FuQys5RkE7QW1DNzlGQTtBQUNBO0FuQys5RkE7QW1DNTlGQTtBQUNBO0FuQzg5RkE7QUFDQTtBbUMxOUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QW5DMjlGQTtBbUN6OUZBO0FBQ0E7QUFDQTtBQUNBO0FuQzI5RkE7QW1DeDlGQTtBQUNBO0FuQzA5RkE7QUFDQTtBbUN2OUZBO0FBQ0E7QW5DeTlGQTtBQUNBO0FtQ3Q5RkE7QUFDQTtBbkN3OUZBO0FtQ3Q5RkE7QTlCdkRBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QThCb0NBO0FBQ0E7QUFDQTtBQUNBO0FuQys5RkE7QUFDQTtBbUM1OUZBO0E5QmhFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBa0JBO0FBQ0E7QUFDQTtBOEJ3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBbkNvK0ZBO0FBQ0E7QW9Dei9GQTtBQTNCQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBcENvaEdBO0FvQ2hoR0E7QUFDQTtBcENraEdBO0FvQy9nR0E7QUFDQTtBQUNBO0FwQ2loR0E7QUFDQTtBb0N4Z0dBO0FBQ0E7QXBDMGdHQTtBQUNBO0FvQzVnR0E7QUFDQTtBcEM4Z0dBO0FBQ0E7QW9DaGhHQTtBQUNBO0FwQ2toR0E7QUFDQTtBcUN4aUdBO0FBQ0E7QUFDQTtBQUNBO0FyQzBpR0E7QXFDcmlHQTtBQUNBO0FBQ0E7QUFDQTtBckN1aUdBO0FxQ2xpR0E7QUFDQTtBQUNBO0FyQ29pR0E7QXFDamlHQTtBaEN6REE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBZ0NnREE7QUFDQTtBckMwaUdBO0FLdjhGQTtBQUNBO0FMeThGQTtBcUNuZ0dBO0FBQ0E7QXJDcWdHQTtBcUMxaUdBO0FBQ0E7QXJDNGlHQTtBcUN4aUdBO0FBQ0E7QUFDQTtBckMwaUdBO0FxQ3JpR0E7QUFDQTtBQUNBO0FyQ3VpR0E7QXFDbm1HQTtBQUNBO0FyQ3FtR0E7QXFDbG1HQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUwwbUdBO0FxQ3htR0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUx5bkdBO0FRcmdHQTtBNkJyR0E7QUFDQTtBQUNBO0FBQ0E7QXJDNm1HQTtBcUN4bUdBO0FBQ0E7QUFDQTtBQUNBO0FyQzBtR0E7QXFDcm1HQTtBQUNBO0FBQ0E7QXJDdW1HQTtBcUNwbUdBO0FoQ3pEQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FnQ2dEQTtBQUNBO0FyQzZtR0E7QXFDdm1HQTtBQUNBO0FyQ3ltR0E7QXFDcm1HQTtBQUNBO0FBQ0E7QXJDdW1HQTtBcUNsbUdBO0FBQ0E7QUFDQTtBckNvbUdBO0FxQ2hxR0E7QUFDQTtBckNrcUdBO0FxQy9wR0E7QWhDeEJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFrQkE7QUFDQTtBQUNBO0FMdXFHQTtBcUNycUdBO0FoQzVCQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBYUE7QUFDQTtBQUNBO0FMc3JHQTtBQUNBO0FRbmtHQTtBNkJyR0E7QUFDQTtBQUNBO0FBQ0E7QXJDMnFHQTtBcUN0cUdBO0FBQ0E7QUFDQTtBQUNBO0FyQ3dxR0E7QXFDbnFHQTtBQUNBO0FBQ0E7QXJDcXFHQTtBcUNscUdBO0FoQ3pEQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FnQ2dEQTtBQUNBO0FyQzJxR0E7QXFDcnFHQTtBQUNBO0FyQ3VxR0E7QXFDbnFHQTtBQUNBO0FBQ0E7QXJDcXFHQTtBcUNocUdBO0FBQ0E7QUFDQTtBckNrcUdBO0FxQzl0R0E7QUFDQTtBckNndUdBO0FxQzd0R0E7QWhDeEJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFrQkE7QUFDQTtBQUNBO0FMcXVHQTtBcUNudUdBO0FoQzVCQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBYUE7QUFDQTtBQUNBO0FMb3ZHQTtBQUNBO0FxQzdvR0E7QUFDQTtBQUNBO0FBQ0E7QXJDK29HQTtBQUNBO0FxQzNvR0E7QUFDQTtBckM2b0dBO0FxQzNvR0E7QUFDQTtBckM2b0dBO0FBQ0E7QXFDMW9HQTtBQUNBO0FyQzRvR0E7QXFDMW9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyQzRvR0E7QXFDem9HQTtBQUVBO0FBS0E7QXJDc29HQTtBcUNsb0dBO0FBQ0E7QUFDQTtBckNvb0dBO0FxQ2pvR0E7QUFDQTtBQUNBO0FyQ21vR0E7QUFDQTtBcUNob0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBckNnb0dBO0FxQ255R0E7QUFDQTtBckNxeUdBO0FxQ2x5R0E7QWhDeEJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFrQkE7QUFDQTtBQUNBO0FMMHlHQTtBcUN4eUdBO0FoQzVCQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBYUE7QUFDQTtBQUNBO0FMeXpHQTtBcUM5b0dBO0FBQ0E7QXJDZ3BHQTtBcUM1b0dBO0FBQ0E7QXJDOG9HQTtBcUN6b0dBO0FBQ0E7QXJDMm9HQTtBQUNBO0FzQzN6R0E7O0FBbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDazFHQTtBc0NoMUdBOzs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDczFHQTtBc0MxMEdBOztBQUNBO0F0QzYwR0E7QUFDQTtBdUNuMUdBO0FBWkE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0F2QzAxR0E7QXVDdjFHQTtBQUNBO0FBQ0E7QXZDeTFHQTtBdUMzMUdBO0FBQ0E7QUFDQTtBdkM2MUdBO0F1Qy8xR0E7QUFDQTtBQUNBO0F2Q2kyR0E7QXVDbjJHQTtBQUNBO0FBQ0E7QXZDcTJHQTtBdUN2MkdBO0FBQ0E7QUFDQTtBdkN5MkdBO0FBQ0E7QXdDNTFHQTtBQW5EQTtBQUNBO0FBR0E7QXhDZzVHQTtBd0M5MUdBO0FBQ0E7QXhDZzJHQTtBUTd3R0E7QWdDL0VBO0FBRUE7QXhDODFHQTtBQUNBO0FRbHhHQTtBZ0N4RUE7QUFoQ0E7QUFDQTtBQUdBO0FBQ0E7QXhDNDNHQTtBd0N0M0dBO0FBQ0E7QXhDdzNHQTtBQUNBO0FBQ0E7QXdDLzFHQTtBQTdEQTtBeEMrNUdBO0F3Q3g1R0E7QUFDQTtBeEMwNUdBO0F3Q3Y1R0E7QUFDQTtBeEN5NUdBO0F3Q3Q1R0E7QUFDQTtBeEN3NUdBO0F3Q3YyR0E7QUFDQTtBeEN5MkdBO0FBQ0E7QXlDcDVHQTtBQUNBO0F6Q3M1R0E7QUFDQTtBeUNuNUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBRUE7QXpDZzVHQTtBeUM5NEdBO0FBQ0E7QUFDQTtBekNnNUdBO0F5Qzc0R0E7QUFDQTtBekMrNEdBO0F5QzU0R0E7QUFDQTtBekM4NEdBO0F5QzM0R0E7QUFDQTtBekM2NEdBO0FBQ0E7QXlDbHRHQTtBQXJMQTtBQUNBO0F6QzA0R0E7QUFDQTtBeUNsdEdBO0FBN0tBO0FBTUE7QUFFQTtBQUNBO0FBQUE7QUFFQTtBekMyM0dBO0FLdjBHQTtBQUNBO0FMeTBHQTtBeUMzM0dBO0FBQ0E7QXpDNjNHQTtBeUMzM0dBO0FBQ0E7QXpDNjNHQTtBeUN4M0dBO0FBQ0E7QXpDMDNHQTtBQUNBO0F5Q2p1R0E7QUEvS0E7QUFHQTtBQUVBO0FBQ0E7QUFBQTtBQUVBO0F6Qys0R0E7QUszMUdBO0FBQ0E7QUw2MUdBO0F5Qy80R0E7QUFDQTtBekNpNUdBO0F5Qy80R0E7QUFDQTtBekNpNUdBO0F5QzU0R0E7QUFDQTtBekM4NEdBO0FBQ0E7QXlDaHZHQTtBQXBKQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QXpDczRHQTtBeUNuNEdBO0FBQ0E7QXpDcTRHQTtBeUNsMUdBO0FBQ0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQXdCQTtBQUNBO0F6QzB6R0E7QXlDcnpHQTtBQUNBO0F6Q3V6R0E7QUFDQTtBeUN2d0dBO0FBdklBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBekNnNUdBO0F5Qzc0R0E7QUFDQTtBekMrNEdBO0F5QzEyR0E7QUFDQTtBQVVBO0FBQ0E7QUFFQTtBQUNBO0FBaUJBO0FBQ0E7QXpDazFHQTtBeUM3MEdBO0FBQ0E7QXpDKzBHQTtBQUNBO0F5Qzl4R0E7QUExSEE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0F6Q3k1R0E7QXlDdDVHQTtBQUNBO0F6Q3c1R0E7QXlDbDRHQTtBQUNBO0FBaUJBO0FBQ0E7QUFFQTtBQUNBO0FBVUE7QUFDQTtBekMwMkdBO0F5Q3IyR0E7QUFDQTtBekN1MkdBO0FBQ0E7QXlDcnpHQTtBQTVHQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QXpDazZHQTtBeUMvNUdBO0FBQ0E7QXpDaTZHQTtBeUMxNUdBO0FBQ0E7QUF3QkE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0F6Q2s0R0E7QXlDNzNHQTtBQUNBO0F6QyszR0E7QUFDQTtBeUMzMEdBO0FBL0NBO0FBQ0E7QUFBQTtBekM2M0dBO0FBQ0E7QVFuK0dBO0FpQzJKQTtBQTdDQTtBQUNBO0FBQ0E7QXpDeTNHQTtBeUNuM0dBO0FBQ0E7QXpDcTNHQTtBQUNBO0F5QzkwR0E7QUFqREE7QUFDQTtBQUNBO0F6Q2s0R0E7QXlDNTNHQTtBQUNBO0F6QzgzR0E7QUFDQTtBeUNuMUdBO0FBckRBO0FBQ0E7QUFDQTtBekMyNEdBO0F5Q3I0R0E7QUFDQTtBekN1NEdBO0FBQ0E7QXlDeDFHQTtBQXpEQTtBQUNBO0FBQ0E7QXpDbzVHQTtBeUM5NEdBO0FBQ0E7QXpDZzVHQTtBQUNBO0FReGdIQTtBaUMySkE7QUE3Q0E7QUFDQTtBQUNBO0F6Qzg1R0E7QXlDeDVHQTtBQUNBO0F6QzA1R0E7QUFDQTtBeUNuM0dBO0FBakRBO0FBQ0E7QUFDQTtBekN1NkdBO0F5Q2o2R0E7QUFDQTtBekNtNkdBO0FBQ0E7QXlDeDNHQTtBQXJEQTtBQUNBO0FBQ0E7QXpDZzdHQTtBeUMxNkdBO0FBQ0E7QXpDNDZHQTtBQUNBO0F5QzczR0E7QUF6REE7QUFDQTtBQUNBO0F6Q3k3R0E7QXlDbjdHQTtBQUNBO0F6Q3E3R0E7QUFDQTtBMEM5aUhBO0FBcEdBO0ExQ3FwSEE7QUFDQTtBMEM5aUhBO0FBbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFDb3BIQTtBQUNBO0EwQ2xqSEE7QUE5RkE7QTFDbXBIQTtBMENocEhBO0FBQ0E7QUFDQTtBMUNrcEhBO0FBQ0E7QTBDdGpIQTtBQXZGQTtBMUNncEhBO0FBQ0E7QTBDdGpIQTtBQXRGQTtBQUNBO0FBQ0E7QTFDK29IQTtBQUNBO0EwQ3hqSEE7QUFuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTFDNm9IQTtBQUNBO0EwQzlqSEE7QXJDaUNBO0FBQ0E7QUFDQTtBcUM1R0E7QUFDQTtBQUNBO0ExQzZvSEE7QUt2a0hBO0FBQ0E7QUx5a0hBO0EwQzlvSEE7QUFHQTtBMUM4b0hBO0FBQ0E7QTBDemtIQTtBQWhFQTtBMUM0b0hBO0FBQ0E7QTBDeGtIQTtBQWhFQTtBQUNBO0ExQzJvSEE7QUFDQTtBMEN4a0hBO0FBOURBO0FBQ0E7QUFDQTtBQUNBO0ExQ3lvSEE7QUs3bEhBO0FBQ0E7QUwrbEhBO0EwQzFvSEE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0ExQzJvSEE7QTBDem9IQTtBQUNBO0ExQzJvSEE7QTBDeG9IQTtBQUNBO0ExQzBvSEE7QUFDQTtBMkM5bkhBO0FBbkZBO0FBQ0E7QTNDb3RIQTtBS2xwSEE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBTGlwSEE7QUs3b0hBO0FBQ0E7QUwrb0hBO0EyQzF0SEE7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBM0N1dEhBO0EyQ3J0SEE7QUFFQTtBM0NzdEhBO0FRMXBIQTtBbUN6RUE7QUF1QkE7QTNDZ3RIQTtBQUNBO0EyQzNzSEE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTNDNnNIQTtBMkMzc0hBOztBQUNBO0EzQzhzSEE7QTJDanFIQTtBQWxDQTtBQUNBO0FBQ0E7QUFDQTtBM0Nzc0hBO0EyQ25xSEE7QUEzQkE7QUFDQTtBQUNBO0EzQ2lzSEE7QTJDL3JIQTtBQUNBO0EzQ2lzSEE7QTJDdnFIQTtBQWpCQTtBQUNBO0FBQ0E7QTNDMnJIQTtBQUNBO0EyQ3ZxSEE7O0FBRUE7QUFDQTtBQUNBO0EzQ3lxSEE7QUFDQTtBMkN2cUhBOztBQUVBO0FBQ0E7QUFDQTtBM0N5cUhBO0FBQ0E7QTRDN3pIQTtBQXBDQTtBQUNBO0FBQ0E7QUFDQTtBNUNvMkhBO0E0Qzl6SEE7QUFDQTtBNUNnMEhBO0E0Q2owSEE7QUFDQTtBNUNtMEhBO0E0Q3AwSEE7QUFDQTtBNUNzMEhBO0E0Q3YwSEE7QUFDQTtBNUN5MEhBO0E0QzEwSEE7QUFDQTtBNUM0MEhBO0FBQ0E7QTRDdDBIQTtBQXpDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QTVDZzNIQTtBQUNBO0E0QzEwSEE7QXZDdUtBO0FBQ0E7QUFDQTtBQUNBO0F1QzFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBNUMrMkhBO0FBQ0E7QTZDMXlIQTtBQXJGQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0E3Q2k0SEE7QUFDQTtBNkNoekhBO0FBN0VBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTdDODNIQTtBNkM1M0hBO0FBQ0E7QTdDODNIQTtBQUNBO0E2Q3p6SEE7QXhDK0ZBO0FBQ0E7QUFDQTtBd0MvSkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTdDMjNIQTtBSzN3SEE7QUFDQTtBTDZ3SEE7QTZDNTNIQTtBQUNBO0E3QzgzSEE7QTZDMzNIQTtBQUNBO0E3QzYzSEE7QUFDQTtBNkM3MEhBOztBQTVDQTtBQUNBO0E3QzYzSEE7QUFDQTtBNkM3MEhBO0FBN0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdDNjNIQTtBNkMzM0hBO0FBQ0E7QUFDQTtBQUNBO0E3QzYzSEE7QTZDMTNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0M0M0hBO0FBQ0E7QThDNTlIQTtBQUNBO0E5Qzg5SEE7QUFDQTtBOEM1OUhBO0FBQ0E7QUFDQTtBQUNBO0E5Qzg5SEE7QUFDQTtBOEM1OUhBO0FBQ0E7QUFDQTtBQUNBO0E5Qzg5SEE7QThDNTlIQTtBQUNBO0E5Qzg5SEE7QThDMzlIQTtBQUNBO0E5QzY5SEE7QUFDQTtBOEMxOUhBO0FBQ0E7QUFDQTtBQUNBO0E5QzQ5SEE7QThDMTlIQTtBQUNBO0E5QzQ5SEE7QUFDQTtBK0M1NEhBO0FBQ0E7QS9DODRIQTtBQUNBO0ErQzM0SEE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QS9DNjRIQTtBQUNBO0ErQzE0SEE7QUF2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0EvQ20rSEE7QUFDQTtBK0NqNUhBO0FBN0VBO0FBRUE7QUFBQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUF1RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0N3NUhBO0FLcjNIQTtBQUNBO0FMdTNIQTtBUTk0SEE7QXVDcEJBO0FBakVBO0EvQ3UrSEE7QUFDQTtBK0NwK0hBO0FBQ0E7QS9DcytIQTtBK0NsK0hBO0FBQ0E7QS9DbytIQTtBUXo1SEE7QXVDcEJBO0FBMUNBO0FBQ0E7QS9DMjlIQTtBQUNBO0FRLzVIQTtBdUNSQTtBQUNBO0FBQ0E7QUFDQTtBL0MwNkhBO0FBQ0E7QStDdDZIQTtBQUNBO0EvQ3c2SEE7QVF6NkhBO0F1Q0tBO0FBbkVBO0FBQ0E7QS9DMitIQTtBQUNBO0FRLzZIQTtBdUNNQTtBQXBFQTtBQUNBO0EvQ2kvSEE7QUFDQTtBUXI3SEE7QXVDT0E7QUFyRUE7QUFDQTtBL0N1L0hBO0FBQ0E7QStDajdIQTtBQWpFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBL0NtL0hBO0FRbDhIQTtBdUN6QkE7QUFuQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QS9DZ2dJQTtBQUNBO0ErQ244SEE7QUFDQTtBL0NxOEhBO0FBQ0E7QWdEMTZIQTtBQUNBO0FBN0lBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FoRHVqSUE7QUFDQTtBZ0QvNkhBO0FBcElBO0FBQ0E7QUFDQTtBaERzaklBO0FBQ0E7QWdEaDdIQTtBQTdIQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBaEQ0aUlBO0FnRHppSUE7QUFDQTtBaEQyaUlBO0FnRHZpSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRHVpSUE7QWdEbmlJQTtBQUNBO0FoRHFpSUE7QWdEbmlJQTtBQUNBO0FoRHFpSUE7QUt0L0hBO0FBQ0E7QUx3L0hBO0FBQ0E7QWdEajlIQTtBQTdFQTtBQUNBO0FBQ0E7QWhEaWlJQTtBQUNBO0FnRGw5SEE7QUEzRUE7QUFDQTtBaERnaUlBO0FnRDloSUE7QUFDQTtBaERnaUlBO0FBQ0E7QWdEcDlIQTtBQXZFQTtBaEQ4aElBO0FnRDVoSUE7QUFDQTtBaEQ4aElBO0FBQ0E7QWdEcjlIQTtBQXZEQTtBaEQrZ0lBO0FnRDdnSUE7QUFDQTtBQUNBO0FBQ0E7QWhEK2dJQTtBZ0Q1Z0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEOGdJQTtBZ0QzZ0lBO0FBQ0E7QWhENmdJQTtBQUNBO0FnRG4rSEE7QUEzREE7QWhEaWlJQTtBZ0QvaElBO0FBQ0E7QUFDQTtBQUNBO0FoRGlpSUE7QWdEOWhJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRGdpSUE7QWdEN2hJQTtBQUNBO0FoRCtoSUE7QUFDQTtBZ0RqL0hBO0FBL0RBO0FoRG1qSUE7QWdEampJQTtBQUNBO0FBQ0E7QUFDQTtBaERtaklBO0FnRGhqSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaERraklBO0FnRC9pSUE7QUFDQTtBaERpaklBO0FBQ0E7QWlEdDhIQTtBQTlHQTtBQUNBO0FBQ0E7QUFDQTtBakR1aklBO0FpRDlvSUE7OztBQUdBO0FBQ0E7QWpEZ3BJQTtBQUNBO0FpRDdvSUE7QUFDQTtBQUNBO0FqRCtvSUE7QUFDQTtBaUQ1b0lBO0FBQ0E7QUFDQTtBakQ4b0lBO0FBQ0E7QWlEM29JQTtBQUNBO0FBQ0E7QWpENm9JQTtBQUNBO0FpRHZvSUE7O0FBQ0E7QWpEMG9JQTtBaUR0b0lBOzs7O0FBRUE7QUFDQTtBQUNBO0FqRDBvSUE7QUFDQTtBaURyb0lBOztBQUVBO0FqRHVvSUE7QUFDQTtBaUQ5c0lBO0FBQ0E7QUFDQTtBakRndElBO0FBQ0E7QWlEbG9JQTtBQUVBO0FqRG1vSUE7QWlEdHNJQTtBQUNBO0FBQ0E7QUFDQTtBakR3c0lBO0FBQ0E7QVFscElBO0F5QzJIQTtBQUNBO0FqRDBoSUE7QWlEdGhJQTtBQUNBO0FqRHdoSUE7QWlEcmhJQTs7O0FBR0E7QWpEdWhJQTtBaURwaElBO0FBQ0E7QWpEc2hJQTtBQUNBO0FBQ0E7QWlEemdJQTtBQXZHQTtBQUNBO0FBQ0E7QWpEbW5JQTtBQUNBO0FpRDdtSUE7QUFDQTtBakQrbUlBO0FpRHptSUE7QUFDQTtBakQybUlBO0FpRHJtSUE7QUFDQTtBakR1bUlBO0FpRGhtSUE7QUFDQTtBakRrbUlBO0FBQ0E7QWlEcGhJQTtBQUNBO0FqRHNoSUE7QWlEcGhJQTtBQUNBO0FqRHNoSUE7QUFDQTtBa0Qzc0lBO0FBaEZBO0FBQ0E7QUFDQTtBQUNBO0FsRDh4SUE7QUtsdElBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUxpdElBO0FLN3NJQTtBQUNBO0FMK3NJQTtBQUNBO0FrRG55SUE7QUFDQTtBQUNBO0FBQ0E7QWxEcXlJQTtBQUNBO0FrRHR0SUE7QUFDQTtBbER3dElBO0FrRHR0SUE7QUFDQTtBbER3dElBO0FBQ0E7QWtEbnRJQTtBQUNBO0FsRHF0SUE7QWtEbnRJQTtBQUNBO0FsRHF0SUE7QWtEbnRJQTtBQUVBO0FsRG90SUE7QUFDQTtBa0RodElBO0FBMUZBO0FsRDZ5SUE7QWtEM3lJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxENnlJQTtBa0QzeUlBO0FBQ0E7QUFDQTtBbEQ2eUlBO0FrRDF5SUE7QUFFQTtBQUNBO0FsRDJ5SUE7QUFDQTtBa0QvdElBO0FBbEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxEb3lJQTtBQUNBO0FrRG51SUE7QUEzREE7QUFDQTtBbERpeUlBO0FBQ0E7QWtEcHVJQTtBQXZEQTtBQUNBO0FsRDh4SUE7QWtENXhJQTtBQUNBO0FsRDh4SUE7QUFDQTtBbURqM0lBO0FBekJBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FuRDI0SUE7QUFDQTtBbUR2M0lBO0FBakJBO0FuRDI0SUE7QW1EejRJQTtBQUVBO0FuRDA0SUE7QW1EdjRJQTtBQUNBO0FuRHk0SUE7QUFDQTtBb0QzNUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FwRDI1SUE7QW9EcjVJQTtBQUNBO0FBQ0E7QXBEdTVJQTtBQUNBO0FvRG41SUE7O0FBRUE7QXBEcTVJQTtBQUNBO0FvRG41SUE7QUFDQTtBcERxNUlBO0FBQ0E7QW9EeDRJQTtBQUNBO0FBQ0E7QUFDQTtBcEQwNElBO0FBQ0E7QXFEajNJQTtBQXREQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FyRHk2SUE7QUFDQTtBcURyM0lBO0FBakRBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBckR1NklBO0FxRHI2SUE7QWhEeERBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFRQTtBQUNBO0FBQ0E7QWdEMENBO0FBQ0E7QUFDQTtBQUNBO0FyRDg2SUE7QXFEMzZJQTtBaERoRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBZ0R1REE7QUFDQTtBckRvN0lBO0FxRGo3SUE7QWhEdEVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QWdEbURBO0FBQ0E7QUFDQTtBQUNBO0FyRDA3SUE7QXFEdjdJQTtBaEQ5RUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QWdEc0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEZzhJQTtBQUNBO0FzRDk2SUE7QUF0RkE7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQWtDQTtBdERpK0lBO0FzRGpnSkE7O0FBRUE7QXREbWdKQTtBc0R4L0lBO0FBQ0E7QUFDQTtBdEQwL0lBO0FzRHQvSUE7QUFDQTtBQUNBO0F0RHcvSUE7QXNEci9JQTtBQUNBO0F0RHUvSUE7QXNENytJQTs7QUFFQTtBQUNBO0F0RCsrSUE7QVF4NklBO0E4Q2xDQTtBQXRCQTtBdERvK0lBO0FzRGwrSUE7QUFDQTtBQUNBO0F0RG8rSUE7QXNEaitJQTtBQUNBO0FBQ0E7QXREbStJQTtBQUNBO0FRaDdJQTtBOEMxQkE7QUF4REE7QXREc2dKQTtBc0RuZ0pBOztBQUVBO0FBQ0E7QXREcWdKQTtBQUNBO0FRMTdJQTtBOEMxQkE7QUF4REE7QXREZ2hKQTtBc0Q3Z0pBOztBQUVBO0FBQ0E7QXREK2dKQTtBQUNBO0FBQ0E7QXNEcDlJQTtBQUNBO0FBQ0E7QXREczlJQTtBQUNBO0FzRHA5SUE7O0FBRUE7QXREczlJQTtBQUNBO0F1RGxqSkE7QUFDQTtBdkRvakpBO0FBQ0E7QXVEbGpKQTtBQUNBO0F2RG9qSkE7QUFDQTtBUXY5SUE7QStDL0VBO0FBMUJBO0F2RG9rSkE7QUFDQTtBQUNBO0F1RHpsSkE7QUFpREE7QUFoREE7QXZENGxKQTtBQUNBO0FBQ0E7QVF4K0lBO0ErQ25GQTtBQXpCQTtBdkR3bEpBO0FBQ0E7QUFDQTtBUXorSUE7QStDcEZBO0FBakVBO0F2RGtvSkE7QUFDQTtBQUNBO0FRLytJQTtBK0MvRUE7QUExQkE7QXZENGxKQTtBQUNBO0FBQ0E7QXVEam5KQTtBQWlEQTtBQWhEQTtBdkRvbkpBO0FBQ0E7QUFDQTtBUWhnSkE7QStDbkZBO0FBekJBO0F2RGduSkE7QUFDQTtBQUNBO0FRamdKQTtBK0NwRkE7QUFqRUE7QXZEMHBKQTtBQUNBO0FBQ0E7QVF2Z0pBO0ErQy9FQTtBQTFCQTtBdkRvbkpBO0FBQ0E7QUFDQTtBdUR6b0pBO0FBaURBO0FBaERBO0F2RDRvSkE7QUFDQTtBQUNBO0F1RHZsSkE7O0FsRDhGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBTDYvSUE7QUFDQTtBdUQ3bEpBO0FsRG9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FMNC9JQTtBQUNBO0F1RGhtSkE7O0FBRUE7QXZEa21KQTtBUTlpSkE7QStDdERBOztBQUtBO0F2RG9tSkE7QUFDQTtBUXBqSkE7QStDdERBOztBQVNBO0F2RHNtSkE7QUFDQTtBQUNBO0F1RHBtSkE7O0FBRUE7QXZEc21KQTtBUS9qSkE7QStDekNBOztBQUtBO0F2RHdtSkE7QUFDQTtBUXJrSkE7QStDekNBOztBQVNBO0F2RDBtSkE7QUFDQTtBQUNBO0F3RG51SkE7QUFDQTtBeERxdUpBO0FBQ0E7QXdEbnVKQTtBQUNBO0F4RHF1SkE7QUFDQTtBd0RudUpBO0FBQ0E7QUFDQTtBQUNBO0F4RHF1SkE7QUFDQTtBS3ptSkE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBTHdtSkE7QUtwbUpBO0FBQ0E7QUxzbUpBO0FBQ0E7QXlEandKQTtBL0MrQ0E7QVZxdEpBO0FBQ0E7QXlEcndKQTtBL0MrQ0E7QVZ5dEpBO0FBQ0E7QXlEendKQTtBL0MrQ0E7QVY2dEpBO0FBQ0E7QXlEN3dKQTtBL0MrQ0E7QVZpdUpBO0FBQ0E7QXlEendKQTtBL0N1Q0E7QVZxdUpBO0FBQ0E7QXlEN3dKQTtBL0N1Q0E7QVZ5dUpBO0FBQ0E7QXlEendKQTtBL0NnQ0E7QVY0dUpBO0FBQ0E7QXlEendKQTtBL0M0Q0E7QVZndUpBO0FBQ0E7QXlEanhKQTtBL0NnQ0E7QVZvdkpBO0FBQ0E7QXlEanhKQTtBL0M0Q0E7QVZ3dUpBO0FBQ0E7QXlEenhKQTtBL0NnQ0E7QVY0dkpBO0FBQ0E7QXlEenhKQTtBL0M0Q0E7QVZndkpBO0FBQ0E7QXlEanlKQTtBL0NnQ0E7QVZvd0pBO0FBQ0E7QXlEanlKQTtBL0M0Q0E7QVZ3dkpBO0FBQ0E7QXlEL3hKQTtBL0NxQkE7QUFDQTtBK0NwQkE7QXpEa3lKQTtBQUNBO0F5RDd4SkE7QS9Db0NBO0FWNHZKQTtBQUNBO0F5RGp5SkE7QS9Db0NBO0FWZ3dKQTtBQUNBO0F5RHJ5SkE7QS9Db0NBO0FWb3dKQTtBQUNBO0F5RHp5SkE7QS9Db0NBO0FWd3dKQTtBQUNBO0F5RDd5SkE7QS9Db0NBO0FWNHdKQTtBQUNBO0F5RGp6SkE7QS9Db0NBO0FWZ3hKQTtBQUNBO0FRL3JKQTtBaUR0SEE7QS9Db0NBO0FWcXhKQTtBQUNBO0F5RDF6SkE7QS9Db0NBO0FWeXhKQTtBQUNBO0F5RDl6SkE7QS9Db0NBO0FWNnhKQTtBQUNBO0F5RGwwSkE7QS9Db0NBO0FWaXlKQTtBQUNBO0F5RHQwSkE7QS9Db0NBO0FWcXlKQTtBQUNBO0F5RDEwSkE7QS9Db0NBO0FWeXlKQTtBQUNBO0FReHRKQTtBaUR0SEE7QS9Db0NBO0FWOHlKQTtBQUNBO0F5RG4xSkE7QS9Db0NBO0FWa3pKQTtBQUNBO0F5RHYxSkE7QS9Db0NBO0FWc3pKQTtBQUNBO0F5RDMxSkE7QS9Db0NBO0FWMHpKQTtBQUNBO0F5RC8xSkE7QS9Db0NBO0FWOHpKQTtBQUNBO0F5RG4ySkE7QS9Db0NBO0FWazBKQTtBQUNBO0EwRDEySkE7QUFDQTtBMUQ0MkpBO0EwRHIzSkE7QUFRQTtBQUdBO0ExRDgySkE7QUFDQTtBQUNBO0EwRDUySkE7QUFDQTtBMUQ4MkpBO0EwRDkzSkE7QUFlQTtBQUdBO0ExRGczSkE7QUFDQTtBQUNBO0EwRDkySkE7QUFDQTtBMURnM0pBO0EwRDc0SkE7QUE0QkE7QUFHQTtBMURrM0pBO0FBQ0E7QUFDQTtBMERoM0pBO0FBQ0E7QTFEazNKQTtBMER0NUpBO0FBbUNBO0FBR0E7QTFEbzNKQTtBQUNBO0FBQ0E7QTJENXlKQTs7QUFBQTtBQXNCQTtBQUNBO0FBQ0E7QTNEMnhKQTtBMERuNkpBO0FDc0lBO0FBSUE7QTNENnhKQTtBQUNBO0FBQ0E7QTJENXhKQTtBQUNBO0FBQ0E7QTNEOHhKQTtBMEQ3NkpBO0FDNklBO0FBSUE7QTNEZ3lKQTtBQUNBO0FBQ0E7QTJEL3hKQTtBQUNBO0FBQ0E7QTNEaXlKQTtBQUNBO0EyRDV4SkE7O0FBQ0E7QUFDQTtBM0QreEpBO0EyRHgwSkE7QUE0Q0E7QTNEK3hKQTtBMkQzMEpBO0FBNENBO0EzRGt5SkE7QTJEOTBKQTtBQTRDQTtBM0RxeUpBO0EyRGoxSkE7QUFnREE7QTNEb3lKQTtBMkRwMUpBO0FBZ0RBO0EzRHV5SkE7QTJEdjFKQTtBQWdEQTtBM0QweUpBO0EyRDExSkE7QUFxREE7QTNEd3lKQTtBMkQ3MUpBO0FBcURBO0EzRDJ5SkE7QTJEaDJKQTtBQXFEQTtBM0Q4eUpBO0EyRG4ySkE7OztBQTJEQTtBM0Q2eUpBO0EyRHgySkE7OztBQTJEQTtBM0RrekpBO0EyRDcySkE7OztBQTJEQTtBM0R1ekpBO0EyRGwzSkE7Ozs7O0FBK0RBO0EzRDB6SkE7QTJEejNKQTs7Ozs7QUErREE7QTNEaTBKQTtBMkRoNEpBOzs7OztBQStEQTtBM0R3MEpBO0EyRHY0SkE7Ozs7O0FBb0VBO0EzRDAwSkE7QTJEOTRKQTs7Ozs7QUFvRUE7QTNEaTFKQTtBMkRyNUpBOzs7OztBQW9FQTtBM0R3MUpBO0EyRDU1SkE7QUEwRUE7QTNEcTFKQTtBMkQvNUpBO0FBMEVBO0EzRHcxSkE7QTJEbDZKQTtBQTBFQTtBM0QyMUpBO0EyRHI2SkE7QUE4RUE7QTNEMDFKQTtBMkR4NkpBO0FBOEVBO0EzRDYxSkE7QTJEMzZKQTtBQThFQTtBM0RnMkpBO0EyRDk2SkE7QUFtRkE7QTNEODFKQTtBMkRqN0pBO0FBbUZBO0EzRGkySkE7QTJEcDdKQTtBQW1GQTtBM0RvMkpBO0FBQ0E7QTJELzFKQTtBQUNBO0FBQ0E7QUFDQTtBM0RpMkpBO0EyRDc3SkE7QUE4RkE7QUFDQTtBM0RrMkpBO0EyRGo4SkE7QUE4RkE7QUFDQTtBM0RzMkpBO0EyRHI4SkE7QUE4RkE7QUFDQTtBM0QwMkpBO0EyRHo4SkE7QUFtR0E7QUFDQTtBM0R5MkpBO0EyRDc4SkE7QUFtR0E7QUFDQTtBM0Q2MkpBO0EyRGo5SkE7QUFtR0E7QUFDQTtBM0RpM0pBO0FBQ0E7QTJENzJKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzFPQTtBQUNBO0E1RDBsS0E7QTJEaCtKQTtBQWtIQTtBQUNBO0FBQ0E7QTNEaTNKQTtBMkRyK0pBO0FBa0hBO0FBQ0E7QUFDQTtBM0RzM0pBO0EyRDErSkE7QUFrSEE7QUFDQTtBQUNBO0EzRDIzSkE7QTJELytKQTtBQXdIQTtBQUNBO0FBQ0E7QUFDQTtBM0QwM0pBO0EyRHIvSkE7QUF3SEE7QUFDQTtBQUNBO0FBQ0E7QTNEZzRKQTtBMkQzL0pBO0FBd0hBO0FBQ0E7QUFDQTtBQUNBO0EzRHM0SkE7QTJEamdLQTtBQWdJQTtBM0RvNEpBO0EyRHBnS0E7QUFnSUE7QTNEdTRKQTtBMkR2Z0tBO0FBZ0lBO0EzRDA0SkE7QTJEMWdLQTtBQW9JQTtBM0R5NEpBO0EyRDdnS0E7QUFvSUE7QTNENDRKQTtBMkRoaEtBO0FBb0lBO0EzRCs0SkE7QUFDQTtBMkQxNEpBO0FBQ0E7QUFDQTtBQUNBO0EzRDQ0SkE7QTJEemhLQTtBQStJQTtBQUNBO0FBQ0E7QTNENjRKQTtBMkQ5aEtBO0FBK0lBO0FBQ0E7QUFDQTtBM0RrNUpBO0EyRG5pS0E7QUErSUE7QUFDQTtBQUNBO0EzRHU1SkE7QTJEeGlLQTtBQXFKQTtBQUNBO0FBQ0E7QTNEczVKQTtBMkQ3aUtBO0FBcUpBO0FBQ0E7QUFDQTtBM0QyNUpBO0EyRGxqS0E7QUFxSkE7QUFDQTtBQUNBO0EzRGc2SkE7QUFDQTtBMkR6NUpBO0FBQ0E7QUFDQTtBQUNBO0EzRDI1SkE7QTJEMTVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRDQ1SkE7QTJEMTVKQTtBQUNBO0FBQ0E7QUFDQTtBM0Q0NUpBO0EyRDE1SkE7QUFDQTtBQUNBO0FBQ0E7QTNENDVKQTtBMkQzNUpBO0FBQ0E7QUFDQTtBQUNBO0EzRDY1SkE7QTJEMTVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0Q0NUpBO0EyRDM1SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRDY1SkE7QTJEMzVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRDY1SkE7QUFDQTtBMkRwNUpBOzs7QUFDQTtBQUNBO0FBQ0E7QTNEdzVKQTtBQUNBO0E2RHp2S0E7QUFDQTtBN0QydktBO0FBQ0E7QTZEenZLQTtBQUNBO0E3RDJ2S0E7QUFDQTtBNkR6dktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RDJ2S0E7QTZEeHZLQTtBQUNBO0FBQ0E7QTdEMHZLQTtBQUNBO0E2RHR2S0E7QUFDQTtBN0R3dktBO0EyRHhvS0E7QUU5R0E7QTdEeXZLQTtBMkQzb0tBO0FFOUdBO0E3RDR2S0E7QTJEOW9LQTtBRTlHQTtBN0QrdktBO0EyRGpwS0E7QUUxR0E7QTdEOHZLQTtBMkRwcEtBO0FFMUdBO0E3RGl3S0E7QTJEdnBLQTtBRTFHQTtBN0Rvd0tBO0FBQ0E7QTZEaHdLQTtBQUNBO0E3RGt3S0E7QUFDQTtBNkRod0tBO0FBQ0E7QUFDQTtBQUNBO0E3RGt3S0E7QUFDQTtBNkRod0tBO0FBQ0E7QTdEa3dLQTtBQUNBO0E2RGh3S0E7QUFDQTtBN0Rrd0tBO0FBQ0E7QTZEaHdLQTtBQUNBO0E3RGt3S0E7QTJEaHJLQTtBRWhGQTtBQUNBO0FBQ0E7QTdEbXdLQTtBMkRycktBO0FFaEZBO0FBQ0E7QUFDQTtBN0R3d0tBO0EyRDFyS0E7QUVoRkE7QUFDQTtBQUNBO0E3RDZ3S0E7QTJEL3JLQTtBRTFFQTtBQUNBO0FBQ0E7QTdENHdLQTtBMkRwc0tBO0FFMUVBO0FBQ0E7QUFDQTtBN0RpeEtBO0EyRHpzS0E7QUUxRUE7QUFDQTtBQUNBO0E3RHN4S0E7QUFDQTtBNkRseEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEb3hLQTtBMkR4dEtBO0FFMURBO0E3RHF4S0E7QTJEM3RLQTtBRTFEQTtBN0R3eEtBO0EyRDl0S0E7QUUxREE7QTdEMnhLQTtBMkRqdUtBO0FFdERBO0E3RDB4S0E7QTJEcHVLQTtBRXREQTtBN0Q2eEtBO0EyRHZ1S0E7QUV0REE7QTdEZ3lLQTtBQUNBO0EyRDN1S0E7QUUvQ0E7QTdENnhLQTtBMkQ5dUtBO0FFL0NBO0E3RGd5S0E7QTJEanZLQTtBRS9DQTtBN0RteUtBO0FBQ0E7QTZEaHlLQTtBQUNBO0E3RGt5S0E7QUFDQTtBMkR6dktBO0FFcENBO0E3RGd5S0E7QTJENXZLQTtBRXBDQTtBN0RteUtBO0EyRC92S0E7QUVwQ0E7QTdEc3lLQTtBQUNBO0EyRG53S0E7QUU5QkE7QUFDQTtBN0RveUtBO0EyRHZ3S0E7QUU5QkE7QUFDQTtBN0R3eUtBO0EyRDN3S0E7QUU5QkE7QUFDQTtBN0Q0eUtBO0FBQ0E7QTJEaHhLQTtBRXZCQTtBN0QweUtBO0EyRG54S0E7QUV2QkE7QTdENnlLQTtBMkR0eEtBO0FFdkJBO0E3RGd6S0E7QUFDQTtBNkQ3eUtBO0FBQ0E7QUFDQTtBN0QreUtBO0FBQ0E7QTZEN3lLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEK3lLQTtBMkR0eUtBO0FFUEE7QUFDQTtBN0RnektBO0EyRDF5S0E7QUVQQTtBQUNBO0E3RG96S0E7QTJEOXlLQTtBRVBBO0FBQ0E7QTdEd3pLQTtBMkRsektBO0FFRkE7QTdEdXpLQTtBMkRyektBO0FFRkE7QTdEMHpLQTtBMkR4ektBO0FFRkE7QTdENnpLQTtBNkQxektBO0FBR0E7QTdEMHpLQTtBNkR4ektBO0FBQ0E7QTdEMHpLQTtBQUNBO0E2RHZ6S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RHl6S0E7QTZEeHpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RDB6S0E7QUFDQTtBOERuOUtBO0FGZUE7QUFFQTtBNURzOEtBO0E4RHA5S0E7QUFDQTtBQUFBO0E5RHM5S0E7QThEdjlLQTtBQUNBO0FBQUE7QTlEeTlLQTtBOEQxOUtBO0FBQ0E7QUFBQTtBOUQ0OUtBO0E4RDc5S0E7QUFDQTtBQUFBO0E5RCs5S0E7QThEaCtLQTtBQUNBO0FBQUE7QTlEaytLQTtBOERuK0tBO0FBQ0E7QUFBQTtBOURxK0tBO0E4RHQrS0E7QUFDQTtBQUFBO0E5RHcrS0E7QThEeitLQTtBQUNBO0FBQUE7QTlEMitLQTtBOEQ1K0tBO0FBQ0E7QUFBQTtBOUQ4K0tBO0E4RC8rS0E7QUFDQTtBQUFBO0E5RGkvS0E7QUFDQTtBOEQ1K0tBO0FBQ0E7QUZJQTtBQUVBO0E1RDArS0E7QThENytLQTtBRkNBO0FBRUE7QTVEOCtLQTtBQUNBO0FBQ0E7QThEdi9LQTtBQUNBO0FGSUE7QUFFQTtBNUQwK0tBO0E4RDcrS0E7QUZDQTtBQUVBO0E1RDgrS0E7QUFDQTtBOEQ1K0tBO0FBQ0E7QUZOQTtBQUVBO0FFTUE7QTlEKytLQTtBOEQ3K0tBO0FGVkE7QUFFQTtBRVVBO0E5RGcvS0E7QUFDQTtBOER4L0tBO0FBQ0E7QUZOQTtBQUVBO0FFTUE7QTlEKytLQTtBOEQ3K0tBO0FGVkE7QUFFQTtBRVVBO0E5RGcvS0E7QUFDQTtBK0RoaExBO0FBQ0E7QS9Ea2hMQTtBK0RoaExBO0FBQ0E7QS9Ea2hMQTtBK0RoaExBO0FBQ0E7QS9Ea2hMQTtBK0QvZ0xBO0FBQ0E7QUFDQTtBL0RpaExBO0FBQ0E7QStEL2dMQTtBQUNBO0EvRGloTEE7QUFDQTtBK0RoaExBO0FBRUE7QS9EaWhMQTtBQUNBO0ErRGhoTEE7QUFDQTtBQUNBO0FBQ0E7QS9Ea2hMQTtBQUNBO0ErRGpoTEE7QUFDQTtBQUNBO0EvRG1oTEE7QUFDQTtBK0RsaExBO0FBQ0E7QUFDQTtBQUNBO0EvRG9oTEE7QUFDQTtBK0RuaExBO0FBQ0E7QUFDQTtBL0RxaExBO0FBQ0E7QStEcGhMQTtBQUNBO0FBQ0E7QS9Ec2hMQTtBQUNBO0ErRHJoTEE7QUFDQTtBL0R1aExBO0FBQ0E7QStEdGhMQTtBQUNBO0EvRHdoTEE7QUFDQTtBK0R2aExBO0FBQ0E7QUFDQTtBL0R5aExBO0FBQ0E7QStEeGhMQTtBQUNBO0FBQ0E7QS9EMGhMQTtBQUNBO0EyRDU4S0E7QUlqRUE7QS9EZ2hMQTtBMkQvOEtBO0FJakVBO0EvRG1oTEE7QTJEbDlLQTtBSWpFQTtBL0RzaExBO0FBQ0E7QWdFL2xMQTtBQUNBO0FBQ0E7QUFFQTtBaEVnbUxBO0FBQ0E7QWdFN2xMQTtBQUNBO0FBQ0E7QWhFK2xMQTtBZ0U3bExBO0FBQ0E7QUFDQTtBaEUrbExBO0FnRTVsTEE7QUFDQTtBQUNBO0FoRThsTEE7QUFDQTtBZ0UzbExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FoRTZsTEE7QWdFM2xMQTtBQUNBO0FBQ0E7QWhFNmxMQTtBZ0UxbExBO0FBQ0E7QUFDQTtBaEU0bExBO0FnRTFsTEE7QUFDQTtBQUNBO0FoRTRsTEE7QWdFMWxMQTtBQUNBO0FBQ0E7QWhFNGxMQTtBZ0UxbExBO0FBQ0E7QUFDQTtBaEU0bExBO0FnRTFsTEE7QUFDQTtBQUNBO0FoRTRsTEE7QWdFMWxMQTtBQUNBO0FBQ0E7QWhFNGxMQTtBZ0V6bExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhFMmxMQTtBZ0V4bExBO0FBQ0E7QWhFMGxMQTtBZ0V2bExBO0FBQ0E7QWhFeWxMQTtBZ0V0bExBO0FBQ0E7QWhFd2xMQTtBZ0VybExBO0FBQ0E7QWhFdWxMQTtBZ0VwbExBO0FBQ0E7QWhFc2xMQTtBZ0VubExBO0FBQ0E7QUFDQTtBQUNBO0FoRXFsTEE7QWdFOWtMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhFZ2xMQTtBZ0U3a0xBO0FBQ0E7QUFDQTtBaEUra0xBO0FnRTVrTEE7QUFDQTtBaEU4a0xBO0FnRTNrTEE7QUFDQTtBaEU2a0xBO0FnRTFrTEE7QUFDQTtBQUNBO0FBQ0E7QWhFNGtMQTtBZ0V6a0xBO0FBQ0E7QUFDQTtBQUNBO0FoRTJrTEE7QWdFeGtMQTtBQUNBO0FoRTBrTEE7QWdFdmtMQTtBQUNBO0FoRXlrTEE7QWdFdGtMQTtBQUNBO0FoRXdrTEE7QWdFcmtMQTtBQUNBO0FoRXVrTEE7QWdFcGtMQTtBQUNBO0FBQ0E7QWhFc2tMQTtBZ0Vwa0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEVza0xBO0FnRW5rTEE7QUFDQTtBaEVxa0xBO0FnRWprTEE7QUFDQTtBaEVta0xBO0FnRWhrTEE7QUFDQTtBaEVra0xBO0FnRWhrTEE7QUFDQTtBaEVra0xBO0EyRHRtTEE7QUt5Q0E7QWhFZ2tMQTtBMkR6bUxBO0FLeUNBO0FoRW1rTEE7QTJENW1MQTtBS3lDQTtBaEVza0xBO0EyRC9tTEE7QUs4Q0E7QWhFb2tMQTtBMkRsbkxBO0FLOENBO0FoRXVrTEE7QTJEcm5MQTtBSzhDQTtBaEUwa0xBO0FBQ0E7QWlFbHdMQTtBQUNBO0FBQ0E7QWpFb3dMQTtBQUNBO0FpRWx3TEE7QUFDQTtBakVvd0xBO0FBQ0E7QWlFbHdMQTtBQUNBO0FqRW93TEE7QUFDQTtBaUVsd0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpFb3dMQTtBaUVud0xBO0FBQ0E7QWpFcXdMQTtBaUVsd0xBO0FBQ0E7QUFDQTtBakVvd0xBO0FpRWx3TEE7QUFDQTtBakVvd0xBO0FpRWp3TEE7QUFDQTtBakVtd0xBO0FpRWp3TEE7QUFDQTtBQUNBO0FqRW13TEE7QUFDQTtBMkQ5cExBO0FNM0ZBO0FqRTR2TEE7QWlFM3ZMQTtBQUNBO0FBQ0E7QWpFNnZMQTtBMkRycUxBO0FNM0ZBO0FqRW13TEE7QWlFbHdMQTtBQUNBO0FBQ0E7QWpFb3dMQTtBMkQ1cUxBO0FNM0ZBO0FqRTB3TEE7QWlFendMQTtBQUNBO0FBQ0E7QWpFMndMQTtBQUNBO0FpRXZ3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpFeXdMQTtBaUV2d0xBO0FBQ0E7QUFDQTtBTGxEQTtBQUNBO0FLbURBO0FBQ0E7QUw5Q0E7QUFFQTtBNUR3ekxBO0EwRDN6TEE7QU8wQ0E7QUxoREE7QUFDQTtBS3dEQTtBakU4d0xBO0FBQ0E7QWlFM3dMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMcEVBO0FBQ0E7QUFNQTtBQUVBO0E1RDQwTEE7QTBELzBMQTtBT3VEQTtBTDdEQTtBQUNBO0E1RHkxTEE7QUFDQTtBaUUvd0xBO0FBQ0E7QWpFaXhMQTtBaUU5d0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUw3RkE7QUFDQTtBSzhGQTtBQUNBO0FqRWl4TEE7QWlFaHhMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqRWt4TEE7QTBEajNMQTtBTzBFQTtBTGhGQTtBQUNBO0FLd0dBO0FqRW94TEE7QUFDQTtBaUVqeExBO0FMdEdBO0FBRUE7QTVEeTNMQTtBaUVseExBO0FBQ0E7QUFDQTtBakVveExBO0EwRGg0TEE7QU8wR0E7QUFJQTtBakVzeExBO0FBQ0E7QWlFbnhMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMckhBO0FBRUE7QTVEMDRMQTtBaUVyeExBO0FBQ0E7QWpFdXhMQTtBaUVueExBO0FBQ0E7QUw3SEE7QUFFQTtBSzZIQTtBQUFBO0FqRXN4TEE7QWlFcnhMQTtBQUpBO0FBS0E7QUFBQTtBTGpJQTtBQUVBO0E1RHk1TEE7QUFDQTtBaUV0eExBO0FBQ0E7QWpFd3hMQTtBMEQxNUxBO0FPaUlBO0FBR0E7QWpFMHhMQTtBQUNBO0FpRXZ4TEE7QUFDQTtBakV5eExBO0EwRHg2TEE7QU84SUE7QUFHQTtBakUyeExBO0FBQ0E7QUFDQTtBaUV4eExBO0FBQ0E7QUFHQTtBQUNBO0FqRXd4TEE7QTJEOXpMQTtBTXdDQTtBakV5eExBO0EyRGowTEE7QU13Q0E7QWpFNHhMQTtBMkRwMExBO0FNd0NBO0FqRSt4TEE7QWlFN3hMQTtBQUNBO0FqRSt4TEE7QTJEMTBMQTtBTTZDQTtBakVneUxBO0EyRDcwTEE7QU02Q0E7QWpFbXlMQTtBMkRoMUxBO0FNNkNBO0FqRXN5TEE7QUFDQTtBaUVueUxBO0FBQ0E7QUFDQTtBQUNBO0FqRXF5TEE7QUFDQTtBaUVueUxBO0FBQ0E7QUFDQTtBakVxeUxBO0FpRXB5TEE7QUFDQTtBakVzeUxBO0FBQ0E7QTJEbDJMQTtBTWtFQTtBQUNBO0FBQ0E7QUFDQTtBakVteUxBO0EyRHgyTEE7QU1rRUE7QUFDQTtBQUNBO0FBQ0E7QWpFeXlMQTtBMkQ5MkxBO0FNa0VBO0FBQ0E7QUFDQTtBQUNBO0FqRSt5TEE7QUFDQTtBaUV0eUxBO0FBQ0E7QUFDQTtBakV3eUxBO0FBQ0E7QWlFdHlMQTtBQUNBO0FqRXd5TEE7QUFDQTtBa0V2Z01BO0FBQ0E7QUFDQTtBbEV5Z01BO0FBQ0E7QWtFeGdNQTtBQUNBO0FBQ0E7QWxFMGdNQTtBQUNBO0FrRXhnTUE7QUFDQTtBbEUwZ01BO0FBQ0E7QWtFeGdNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxFMGdNQTtBQUNBO0FrRXhnTUE7QUFDQTtBQUNBO0FBQ0E7QWxFMGdNQTtBQUNBO0FrRXhnTUE7QUFDQTtBQUNBO0FsRTBnTUE7QTJEdjZMQTtBT2pHQTtBQUNBO0FsRTJnTUE7QTJEMzZMQTtBT2pHQTtBQUNBO0FsRStnTUE7QTJELzZMQTtBT2pHQTtBQUNBO0FsRW1oTUE7QUFDQTtBbUU3ak1BO0FBQ0E7QUFDQTtBQUNBO0FuRStqTUE7QW1FN2pNQTtBQUNBO0FuRStqTUE7QW1FNWpNQTtBQUNBO0FuRThqTUE7QW1FMWpNQTtBQUNBO0FBQ0E7QW5FNGpNQTtBbUV6ak1BO0FBQ0E7QW5FMmpNQTtBQUNBO0FtRXhqTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkUwak1BO0EwRGxrTUE7QVNJQTtBQU1BO0FuRTRqTUE7QUFDQTtBbUUxak1BO0FBQ0E7QW5FNGpNQTtBQUNBO0FRcDhMQTtBMkRySEE7QVpTQTtBdkRvak1BO0FBQ0E7QW1FNWpNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkU4ak1BO0FBQ0E7QW1FM2pNQTtBQUNBO0FuRTZqTUE7QTJEditMQTtBUXBGQTtBQUNBO0FuRThqTUE7QTJEMytMQTtBUXBGQTtBQUNBO0FuRWtrTUE7QTJELytMQTtBUXBGQTtBQUNBO0FuRXNrTUE7QUFDQTtBbUVqa01BOztBQUNBO0FBQ0E7QW5Fb2tNQTtBbUVua01BOztBQUNBO0FBQ0E7QW5Fc2tNQTtBbUVsa01BOztBQUNBO0FBQ0E7QW5FcWtNQTtBMkRuZ01BOztBUTlEQTtBbkVxa01BO0EyRHZnTUE7O0FROURBO0FuRXlrTUE7QTJEM2dNQTs7QVE5REE7QW5FNmtNQTtBMkQvZ01BOztBUXhEQTtBQUNBO0FuRTJrTUE7QTJEcGhNQTs7QVF4REE7QUFDQTtBbkVnbE1BO0EyRHpoTUE7O0FReERBO0FBQ0E7QW5FcWxNQTtBMkQ5aE1BOztBUWxEQTtBQUNBO0FuRW9sTUE7QTJEbmlNQTs7QVFsREE7QUFDQTtBbkV5bE1BO0EyRHhpTUE7O0FRbERBO0FBQ0E7QW5FOGxNQTtBQUNBO0EyRDlpTUE7QVExQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkUybE1BO0EyRHJqTUE7QVExQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVrbU1BO0EyRDVqTUE7QVExQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkV5bU1BO0EyRG5rTUE7QVFsQ0E7QW5Fd21NQTtBMkR0a01BO0FRbENBO0FuRTJtTUE7QTJEemtNQTtBUWxDQTtBbkU4bU1BO0FBQ0E7QW1FMW1NQTtBQUNBO0FBQ0E7QW5FNG1NQTtBbUVybU1BO0FBQ0E7QW5FdW1NQTtBbUV0bU1BO0FBQ0E7QUFDQTtBQUNBO0FuRXdtTUE7QW1FdG1NQTtBQUNBO0FuRXdtTUE7QUFDQTtBMkQ3bE1BO0FRTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5Fc21NQTtBMkR0bU1BO0FRTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5FK21NQTtBMkQvbU1BO0FRTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5Fd25NQTtBQUNBO0EyRHpuTUE7QVFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRXNuTUE7QTJEaG9NQTtBUU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5FNm5NQTtBMkR2b01BO0FRTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVvb01BO0EyRDlvTUE7QVFjQTtBbkVtb01BO0EyRGpwTUE7QVFjQTtBbkVzb01BO0EyRHBwTUE7QVFjQTtBbkV5b01BO0FtRW5vTUE7QUFJQTtBQUNBO0FBQ0E7QW5Fa29NQTtBMkQ1cE1BO0FRc0JBO0FuRXlvTUE7QTJEL3BNQTtBUXNCQTtBbkU0b01BO0EyRGxxTUE7QVFzQkE7QW5FK29NQTtBbUUxb01BO0FBQ0E7QUFDQTtBQUNBO0FuRTRvTUE7QTJEMXFNQTtBUW1DQTtBbkUwb01BO0EyRDdxTUE7QVFtQ0E7QW5FNm9NQTtBMkRock1BO0FRbUNBO0FuRWdwTUE7QW1Fem9NQTtBQUFBO0FuRTRvTUE7QUFDQTtBbUV6b01BO0FBQ0E7QUFDQTtBbkUyb01BO0EyRDNyTUE7QVFrREE7QW5FNG9NQTtBMkQ5ck1BO0FRa0RBO0FuRStvTUE7QTJEanNNQTtBUWtEQTtBbkVrcE1BO0FtRWhwTUE7QUFDQTtBbkVrcE1BO0FBQ0E7QW1FL29NQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRWlwTUE7QW1FaHBNQTtBQUNBO0FuRWtwTUE7QW1FanBNQTtBQUFBO0FuRW9wTUE7QUFDQTtBbUVqcE1BO0FScEVBOzs7O0FRMkVBO0FuRWlwTUE7QTJENXRNQTs7OztBUTJFQTtBbkV1cE1BO0EyRGx1TUE7Ozs7QVEyRUE7QW5FNnBNQTtBQUNBO0EyRHp1TUE7Ozs7QVFxRkE7QW5FMHBNQTtBMkQvdU1BOzs7O0FRcUZBO0FuRWdxTUE7QTJEcnZNQTs7OztBUXFGQTtBbkVzcU1BO0FBQ0E7QTJENXZNQTtBUTRGQTtBbkVtcU1BO0EyRC92TUE7QVE0RkE7QW5Fc3FNQTtBMkRsd01BO0FRNEZBO0FuRXlxTUE7QUFDQTtBb0UvNE1BO0FBQ0E7QUFDQTtBQUNBO0FwRWk1TUE7QUFDQTtBb0UvNE1BO0FBQ0E7QUFDQTtBQUNBO0FwRWk1TUE7QUFDQTtBcUUzNU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFNjVNQTtBcUU1NU1BO0FBQUE7QXJFKzVNQTtBQUNBO0FxRTc1TUE7QUFDQTtBckUrNU1BO0FBQ0E7QXFFNzVNQTtBQUNBO0FBQ0E7QUFRQTs7Ozs7O0FBQUE7QXJFODVNQTtBMkQzeU1BO0FVeEhBO0FBQ0E7QUFDQTtBckVzNk1BO0EyRGh6TUE7QVV4SEE7QUFDQTtBQUNBO0FyRTI2TUE7QTJEcnpNQTtBVXhIQTtBQUNBO0FBQ0E7QXJFZzdNQTtBQUNBO0FxRXI2TUE7QUFFQTtBQUNBO0FyRXM2TUE7QUt2ek1BO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUxzek1BO0FLbHpNQTtBQUNBO0FMb3pNQTtBcUU1Nk1BO0FBQ0E7QUFDQTtBQUNBO0FyRTg2TUE7QXFFNzZNQTtBQUNBO0FyRSs2TUE7QXFFOTZNQTtBQUFBO0FyRWk3TUE7QXFFaDdNQTtBQUFBO0FyRW03TUE7QXFFajdNQTtBQUNBO0FyRW03TUE7QXFFLzZNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFaTdNQTtBQUNBO0FxRTk2TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFZzdNQTtBQUNBO0FxRTk2TUE7QUFDQTtBQUNBO0FyRWc3TUE7QXFFOTZNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckVnN01BO0FBQ0E7QXFFNzZNQTs7QUFFQTtBckUrNk1BO0FBQ0E7QXFFNTZNQTtBQUNBO0FBQ0E7QUFDQTtBckU4Nk1BO0FxRTc2TUE7QUFDQTtBckUrNk1BO0FxRTc2TUE7QUFDQTtBckUrNk1BO0FxRTc2TUE7QUFDQTtBckUrNk1BO0FxRTk2TUE7QUFDQTtBQUNBO0FBQ0E7QXJFZzdNQTtBcUU1Nk1BO0FBQ0E7QXJFODZNQTtBQUNBO0FxRTM2TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBckUwNk1BO0EyRGw2TUE7QVVaQTtBckVpN01BO0EyRHI2TUE7QVVaQTtBckVvN01BO0EyRHg2TUE7QVVaQTtBckV1N01BO0FxRWo3TUE7QUFDQTtBckVtN01BO0EyRDk2TUE7QVVIQTtBckVvN01BO0EyRGo3TUE7QVVIQTtBckV1N01BO0EyRHA3TUE7QVVIQTtBckUwN01BO0FBQ0E7QTBEN2lOQTtBV3VIQTtBQUVBO0FyRXc3TUE7QUFDQTtBQUNBO0FxRXQ3TUE7QUFDQTtBQUNBO0FyRXc3TUE7QXFFdjdNQTtBQUNBO0FyRXk3TUE7QXFFdjdNQTtBQUNBO0FyRXk3TUE7QXFFdjdNQTtBQUNBO0FBQ0E7QXJFeTdNQTtBQUNBO0FxRXQ3TUE7QUFDQTtBQU1BO0FyRW03TUE7QXFFeDdNQTtBQUNBO0FBQ0E7QXJFMDdNQTtBNEQ3bE5BO0FBQ0E7QTVEK2xOQTtBMkR4OU1BO0FVZ0NBO0FyRTI3TUE7QTJEMzlNQTtBVWdDQTtBckU4N01BO0EyRDk5TUE7QVVnQ0E7QXJFaThNQTtBcUU5N01BO0FBQ0E7QUFDQTtBQUNBO0FyRWc4TUE7QUFDQTtBcUU3N01BO0FBQ0E7QXJFKzdNQTtBQUNBO0FxRTc3TUE7QUFDQTtBQUNBO0FyRSs3TUE7QUFDQTtBcUU1N01BO0FBSUE7QUFDQTtBQUNBO0FyRTI3TUE7QXFFaDhNQTtBQUNBO0FyRWs4TUE7QXFFNzdNQTtBQUNBO0FBQ0E7QXJFKzdNQTtBNERwb05BO0FBQ0E7QTVEc29OQTtBQUNBO0FxRTk3TUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBckUrN01BO0FBQ0E7QXFFNzdNQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXJFODdNQTtBQUNBO0FxRTc3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QXJFKzdNQTtBcUU5N01BO0FBQ0E7QXJFZzhNQTtBQUNBO0FxRTk3TUE7O0FBRUE7QXJFZzhNQTtBQUNBO0FxRS83TUE7QUFDQTtBckVpOE1BO0FBQ0E7QXFFaDhNQTtBQUNBO0FBQ0E7QXJFazhNQTtBcUVqOE1BO0FBQ0E7QUFDQTtBQUNBO0FyRW04TUE7QUFDQTtBcUU5N01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRWc4TUE7QXFFNzdNQTs7QUFFQTtBQUNBO0FyRSs3TUE7QXFFNTdNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRTg3TUE7QTJEcmtOQTtBVTBJQTtBckU4N01BO0EyRHhrTkE7QVUwSUE7QXJFaThNQTtBMkQza05BO0FVMElBO0FyRW84TUE7QXFFaDhNQTtBQUNBO0FyRWs4TUE7QXFFLzdNQTtBQUNBO0FBQ0E7QUFDQTtBckVpOE1BO0FxRTk3TUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBckVnOE1BO0FxRTc3TUE7QUFDQTtBckUrN01BO0FBQ0E7QXNFcHVOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RXN1TkE7QUFDQTtBc0VudU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRFcXVOQTtBMkQ1bU5BO0FXdkhBO0FBQ0E7QUFDQTtBdEVzdU5BO0EyRGpuTkE7QVd2SEE7QUFDQTtBQUNBO0F0RTJ1TkE7QTJEdG5OQTtBV3ZIQTtBQUNBO0FBQ0E7QXRFZ3ZOQTtBc0U5dU5BO0FBVkE7QUFXQTtBdEVpdk5BO0FBQ0E7QTJEaG9OQTtBVzlHQTtBQUNBO0F0RWl2TkE7QTJEcG9OQTtBVzlHQTtBQUNBO0F0RXF2TkE7QTJEeG9OQTtBVzlHQTtBQUNBO0F0RXl2TkE7QXNFcnZOQTtBQUNBO0F0RXV2TkE7QXNFcHZOQTtBQUNBO0F0RXN2TkE7QTJEbHBOQTtBV2pHQTtBdEVzdk5BO0EyRHJwTkE7QVdqR0E7QXRFeXZOQTtBMkR4cE5BO0FXakdBO0F0RTR2TkE7QXNFeHZOQTtBQUNBO0F0RTB2TkE7QXNFdnZOQTtBQUNBO0FBQ0E7QXRFeXZOQTtBc0V0dk5BO0FBQ0E7QXRFd3ZOQTtBc0Vydk5BO0FBQ0E7QXRFdXZOQTtBQUNBO0FzRXB2TkE7QUFDQTtBQUNBO0FBTUE7QUFDQTtBdEVpdk5BO0EyRC9xTkE7QVd2RUE7QUFDQTtBdEV5dk5BO0EyRG5yTkE7QVd2RUE7QUFDQTtBdEU2dk5BO0EyRHZyTkE7QVd2RUE7QUFDQTtBdEVpd05BO0FzRTV2TkE7QUFDQTtBdEU4dk5BO0FBQ0E7QXNFM3ZOQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBQ0E7QXRFcXZOQTtBMkR0c05BO0FXeERBO0F0RWl3TkE7QTJEenNOQTtBV3hEQTtBdEVvd05BO0EyRDVzTkE7QVd4REE7QXRFdXdOQTtBMkQvc05BO0FXcERBO0F0RXN3TkE7QTJEbHROQTtBV3BEQTtBdEV5d05BO0EyRHJ0TkE7QVdwREE7QXRFNHdOQTtBc0V0d05BO0FBQ0E7QUFDQTtBdEV3d05BO0FzRXR3TkE7QUFDQTtBQUNBO0FBQ0E7QXRFd3dOQTtBQUNBO0FzRXJ3TkE7QUFDQTtBQUNBO0F0RXV3TkE7QUFDQTtBMkR2dU5BO0FXNUJBO0F0RXN3TkE7QTJEMXVOQTtBVzVCQTtBdEV5d05BO0EyRDd1TkE7QVc1QkE7QXRFNHdOQTtBc0Uxd05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEU0d05BO0FzRTN3TkE7QUFOQTtBQU9BO0F0RTh3TkE7QUFDQTtBc0U3d05BO0FBQ0E7QUFDQTtBdEUrd05BO0FzRTV3TkE7QUFHQTtBdEU0d05BO0FzRXp3TkE7QUFDQTtBdEUyd05BO0FzRTF3TkE7QUFDQTtBdEU0d05BO0EyRHp3TkE7QVdBQTtBdEU0d05BO0EyRDV3TkE7QVdBQTtBdEUrd05BO0EyRC93TkE7QVdBQTtBdEVreE5BO0FBQ0E7QXNFNXdOQTtBQUNBO0FBQ0E7QXRFOHdOQTtBc0V2d05BO0FBQ0E7QUFDQTtBQUNBO0F0RXl3TkE7QTJENXhOQTtBV3NCQTtBdEV5d05BO0EyRC94TkE7QVdzQkE7QXRFNHdOQTtBMkRseU5BO0FXc0JBO0F0RSt3TkE7QTBEdjVOQTtBWTJJQTtBQUVBO0F0RTh3TkE7QUFDQTtBc0U1d05BO0FBQ0E7QXRFOHdOQTtBc0Uzd05BO0FBQ0E7QUFDQTtBdEU2d05BO0EyRGp6TkE7QVdzQ0E7QXRFOHdOQTtBMkRwek5BO0FXc0NBO0F0RWl4TkE7QTJEdnpOQTtBV3NDQTtBdEVveE5BO0FzRWp4TkE7QUFDQTtBQUNBO0F0RW14TkE7QXNFaHhOQTtBQUdBO0F0RWd4TkE7QUFDQTtBc0U3d05BO0FBQ0E7QXRFK3dOQTtBQUNBO0FzRTd3TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEUrd05BO0EyRDUwTkE7QVcrREE7QUFDQTtBdEVneE5BO0EyRGgxTkE7QVcrREE7QUFDQTtBdEVveE5BO0EyRHAxTkE7QVcrREE7QUFDQTtBdEV3eE5BO0FBQ0E7QXNFcnhOQTtBQUNBO0FBQ0E7QXRFdXhOQTtBMkQ3MU5BO0FXd0VBO0F0RXd4TkE7QTJEaDJOQTtBV3dFQTtBdEUyeE5BO0EyRG4yTkE7QVd3RUE7QXRFOHhOQTtBc0U1eE5BO0FBQUE7QXRFK3hOQTtBQUNBO0FzRTd4TkE7QUFJQTtBdEU0eE5BO0EyRDcyTkE7QVcrRUE7QXRFaXlOQTtBMkRoM05BO0FXK0VBO0F0RW95TkE7QTJEbjNOQTtBVytFQTtBdEV1eU5BO0FBQ0E7QXNFbnlOQTtBQUNBO0F0RXF5TkE7QTREbGdPQTtBQUNBO0E1RG9nT0E7QUFDQTtBc0VueU5BO0FBQ0E7QUFDQTtBdEVxeU5BO0FzRW55TkE7QUFDQTtBdEVxeU5BO0FBQ0E7QXNFanlOQTtBQUNBO0FBQ0E7QXRFbXlOQTtBQUNBO0FzRWh5TkE7QUFDQTtBdEVreU5BO0FzRWh5TkE7QUFDQTtBdEVreU5BO0FzRWh5TkE7QUFDQTtBdEVreU5BO0FBQ0E7QXNFL3hOQTtBQUtBO0F0RWl5TkE7QUFDQTtBc0UveE5BO0FBQ0E7QUFDQTtBQUNBO0F0RWl5TkE7QUFDQTtBc0VoeU5BO0FBR0E7QXRFa3lOQTtBQUNBO0FzRWp5TkE7QUFDQTtBQUNBO0F0RW15TkE7QUFDQTtBc0VoeU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRFa3lOQTtBQUNBO0F1RTdqT0E7QUFDQTtBdkUrak9BO0F1RTVqT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZFOGpPQTtBMkRoOE5BO0FZNUhBO0FBQ0E7QXZFK2pPQTtBMkRwOE5BO0FZNUhBO0FBQ0E7QXZFbWtPQTtBMkR4OE5BO0FZNUhBO0FBQ0E7QXZFdWtPQTtBMkQ1OE5BO0FZdEhBO0F2RXFrT0E7QTJELzhOQTtBWXRIQTtBdkV3a09BO0EyRGw5TkE7QVl0SEE7QXZFMmtPQTtBdUV2a09BO0FBQ0E7QUFDQTtBdkV5a09BO0EyRHo5TkE7QVk1R0E7QUFDQTtBQUNBO0FBQ0E7QXZFd2tPQTtBMkQvOU5BO0FZNUdBO0FBQ0E7QUFDQTtBQUNBO0F2RThrT0E7QTJEcitOQTtBWTVHQTtBQUNBO0FBQ0E7QUFDQTtBdkVvbE9BO0F1RS9rT0E7QUFDQTtBdkVpbE9BO0FBQ0E7QXdFeG5PQTtBQUNBO0FBQ0E7QXhFMG5PQTtBQUNBO0F3RXhuT0E7QUFDQTtBQUNBO0F4RTBuT0E7QUFDQTtBd0V4bk9BO0FBQ0E7QXhFMG5PQTtBQUNBO0F3RXhuT0E7QUFDQTtBQUNBO0F4RTBuT0E7QUFDQTtBd0V4bk9BO0FBQ0E7QXhFMG5PQTtBQUNBO0F3RXhuT0E7QUFDQTtBeEUwbk9BO0FBQ0E7QXdFeG5PQTtBQUNBO0F4RTBuT0E7QUFDQTtBMkQ5Z09BO0FheEdBO0F4RXluT0E7QTJEamhPQTtBYXhHQTtBeEU0bk9BO0EyRHBoT0E7QWF4R0E7QXhFK25PQTtBQUNBO0F3RTVuT0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBeEUybk9BO0EyRDloT0E7QWFsR0E7QXhFbW9PQTtBMkRqaU9BO0FhbEdBO0F4RXNvT0E7QXdFL25PQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4RWlvT0E7QTJEMWlPQTtBYXJGQTtBeEVrb09BO0EyRDdpT0E7QWFyRkE7QXhFcW9PQTtBMkRoak9BO0FhckZBO0F4RXdvT0E7QXdFcG9PQTtBQUNBO0F4RXNvT0E7QXdFbm9PQTtBQUNBO0F4RXFvT0E7QTJEempPQTtBYTFFQTtBeEVzb09BO0F3RXJvT0E7QUFDQTtBeEV1b09BO0F3RXJvT0E7QUFDQTtBeEV1b09BO0EyRGxrT0E7QWExRUE7QXhFK29PQTtBd0U5b09BO0FBQ0E7QXhFZ3BPQTtBd0U5b09BO0FBQ0E7QXhFZ3BPQTtBMkQza09BO0FhMUVBO0F4RXdwT0E7QXdFdnBPQTtBQUNBO0F4RXlwT0E7QXdFdnBPQTtBQUNBO0F4RXlwT0E7QXdFcHBPQTtBQUNBO0FBQ0E7QXhFc3BPQTtBMkR4bE9BO0FhNURBO0F4RXVwT0E7QTJEM2xPQTtBYTVEQTtBeEUwcE9BO0EyRDlsT0E7QWE1REE7QXhFNnBPQTtBd0V6cE9BO0FBQ0E7QUFDQTtBeEUycE9BO0EyRHJtT0E7QWFqREE7QXhFeXBPQTtBMkR4bU9BO0FhakRBO0F4RTRwT0E7QTJEM21PQTtBYWpEQTtBeEUrcE9BO0EyRDltT0E7QWEzQ0E7QXhFNHBPQTtBMkRqbk9BO0FhM0NBO0F4RStwT0E7QTJEcG5PQTtBYTNDQTtBeEVrcU9BO0F3RTlwT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhFZ3FPQTtBd0U3cE9BO0FBQ0E7QUFDQTtBQUNBO0F4RStwT0E7QUFDQTtBeUU5d09BO0FBQ0E7QXpFZ3hPQTtBeUU5d09BO0FBQ0E7QUFDQTtBQUNBO0F6RWd4T0E7QXlFN3dPQTtBQUNBO0F6RSt3T0E7QUFDQTtBeUU1d09BO0FBQ0E7QUFDQTtBekU4d09BO0FBQ0E7QXlFNXdPQTtBQUNBO0FBQ0E7QXpFOHdPQTtBQUNBO0F5RTV3T0E7QUFDQTtBQUNBO0F6RTh3T0E7QUFDQTtBeUU1d09BO0FBQ0E7QUFDQTtBekU4d09BO0FBQ0E7QXlFNXdPQTtBQUNBO0FBQ0E7QXpFOHdPQTtBQUNBO0F5RTV3T0E7QUFDQTtBQUNBO0FBQ0E7QXpFOHdPQTtBQUNBO0F5RTV3T0E7QUFDQTtBQUNBO0FBQ0E7QXpFOHdPQTtBQUNBO0F5RTV3T0E7QUFDQTtBekU4d09BO0FBQ0E7QTBFcnpPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUV1ek9BO0FBQ0E7QTBFanpPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUVtek9BO0FBQ0E7QTBFanpPQTtBQUNBO0FBQ0E7QTFFbXpPQTtBQUNBO0EwRWp6T0E7QUFDQTtBMUVtek9BO0FBQ0E7QTBFanpPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QTFFc3pPQTtBQUNBO0EwRXB6T0E7QUFDQTtBMUVzek9BO0FBQ0E7QTBFcHpPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExRXN6T0E7QUFDQTtBMEVwek9BO0FBQ0E7QUFBQTtBMUVzek9BO0FBQ0E7QTBFcHpPQTtBQUNBO0FBQUE7QTFFc3pPQTtBQUNBO0EwRXB6T0E7QUFDQTtBQUNBO0ExRXN6T0E7QTBFcHpPQTtBQUNBO0ExRXN6T0E7QUFDQTtBMEVqek9BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QTFFa3pPQTtBQUNBO0EwRWh6T0E7QUFDQTtBQUFBO0ExRWt6T0E7QUFDQTtBMEVoek9BO0FBQ0E7QUFBQTtBMUVrek9BO0FBQ0E7QTBFaHpPQTtBQUNBO0FBQUE7QTFFbXpPQTtBMEVsek9BO0FBQUE7QTFFcXpPQTtBQUNBO0EwRW56T0E7QUFDQTtBQUNBO0ExRXF6T0E7QTBFcHpPQTtBQUNBO0ExRXN6T0E7QUFDQTtBMEVqek9BO0FBQ0E7QUFDQTtBQUNBO0ExRW16T0E7QTBFanpPQTtBQUNBO0FBQ0E7QTFFbXpPQTtBMEVsek9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFFb3pPQTtBMEVoek9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ExRWt6T0E7QUFDQTtBMkU3OE9BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTNFNjhPQTtBQUNBO0E0RXQ5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFdzlPQTtBQUNBO0E0RXI5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUV1OU9BO0FBQ0E7QTRFcjlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFdzlPQTtBQUNBO0E0RXQ5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RXc5T0E7QUFDQTtBNEV2OU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUV5OU9BO0FBQ0E7QTRFeDlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QTVFNDlPQTtBQUNBO0E0RTM5T0E7QUFDQTtBQUNBO0E1RTY5T0E7QUFDQTtBNEU1OU9BO0FBQ0E7O0FBQUE7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0E1RWkrT0E7QUFDQTtBNEUvOU9BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RWsrT0E7QUFDQTtBNEVqK09BO0FBQUE7QTVFbytPQTtBQUNBO0E0RWwrT0E7QUFDQTtBQUFBO0E1RXErT0E7QUFDQTtBNEVyK09BO0FBQUE7QTVFdytPQTtBQUNBO0E0RXgrT0E7QUFBQTtBNUUyK09BO0FBQ0E7QTRFMytPQTtBQUFBO0E1RTgrT0E7QUFDQTtBNEU5K09BO0FBQUE7QTVFaS9PQTtBQUNBO0E0RWovT0E7QUFBQTtBNUVvL09BO0FBQ0E7QTRFcC9PQTtBQUFBO0E1RXUvT0E7QUFDQTtBNEV2L09BO0FBQUE7QTVFMC9PQTtBQUNBO0E0RTEvT0E7QUFBQTtBNUU2L09BO0FBQ0E7QTRFNy9PQTtBQUFBO0E1RWdnUEE7QUFDQTtBNEVoZ1BBO0FBQUE7QTVFbWdQQTtBQUNBO0E0RW5nUEE7QUFBQTtBNUVzZ1BBO0FBQ0E7QTRFdGdQQTtBQUFBO0E1RXlnUEE7QUFDQTtBNEV6Z1BBO0FBQUE7QTVFNGdQQTtBQUNBO0E0RTVnUEE7QUFBQTtBNUUrZ1BBO0FBQ0E7QTRFL2dQQTtBQUFBO0E1RWtoUEE7QUFDQTtBNEVsaFBBO0FBQUE7QTVFcWhQQTtBQUNBO0E0RXJoUEE7QUFBQTtBNUV3aFBBO0FBQ0E7QTRFeGhQQTtBQUFBO0E1RTJoUEE7QUFDQTtBNEUzaFBBO0FBQUE7QTVFOGhQQTtBQUNBO0E0RTloUEE7QUFBQTtBNUVpaVBBO0FBQ0E7QTRFamlQQTtBQUFBO0E1RW9pUEE7QUFDQTtBNEVwaVBBO0FBQUE7QTVFdWlQQTtBQUNBO0E0RXZpUEE7QUFBQTtBNUUwaVBBO0FBQ0E7QTRFMWlQQTtBQUFBO0E1RTZpUEE7QUFDQTtBNEU3aVBBO0FBQUE7QTVFZ2pQQTtBQUNBO0E0RWhqUEE7QUFBQTtBNUVtalBBO0FBQ0E7QTRFbmpQQTtBQUFBO0E1RXNqUEE7QUFDQTtBNEV0alBBO0FBQUE7QTVFeWpQQTtBQUNBO0E0RXpqUEE7QUFBQTtBNUU0alBBO0FBQ0E7QTRFNWpQQTtBQUFBO0E1RStqUEE7QUFDQTtBNEUvalBBO0FBQUE7QTVFa2tQQTtBQUNBO0E0RWxrUEE7QUFBQTtBNUVxa1BBO0FBQ0E7QTRFcmtQQTtBQUFBO0E1RXdrUEE7QUFDQTtBNEV4a1BBO0FBQUE7QTVFMmtQQTtBQUNBO0E0RTNrUEE7QUFBQTtBNUU4a1BBO0FBQ0E7QTRFOWtQQTtBQUFBO0E1RWlsUEE7QUFDQTtBNEVqbFBBO0FBQUE7QTVFb2xQQTtBQUNBO0E0RXBsUEE7QUFBQTtBNUV1bFBBO0FBQ0E7QTRFdmxQQTtBQUFBO0E1RTBsUEE7QUFDQTtBNEUxbFBBO0FBQUE7QTVFNmxQQTtBQUNBO0E0RTdsUEE7QUFBQTtBNUVnbVBBO0FBQ0E7QTRFaG1QQTtBQUFBO0E1RW1tUEE7QUFDQTtBNEVubVBBO0FBQUE7QTVFc21QQTtBQUNBO0E0RXRtUEE7QUFBQTtBNUV5bVBBO0FBQ0E7QTRFem1QQTtBQUFBO0E1RTRtUEE7QUFDQTtBNEU1bVBBO0FBQUE7QTVFK21QQTtBQUNBO0E0RS9tUEE7QUFBQTtBNUVrblBBO0FBQ0E7QTRFbG5QQTtBQUFBO0E1RXFuUEE7QUFDQTtBNEVyblBBO0FBQUE7QTVFd25QQTtBQUNBO0E0RXhuUEE7QUFBQTtBNUUyblBBO0FBQ0E7QTRFM25QQTtBQUFBO0E1RThuUEE7QUFDQTtBNEU5blBBO0FBQUE7QTVFaW9QQTtBQUNBO0E0RWpvUEE7QUFBQTtBNUVvb1BBO0FBQ0E7QTRFcG9QQTtBQUFBO0E1RXVvUEE7QUFDQTtBNEV2b1BBO0FBQUE7QTVFMG9QQTtBQUNBO0E0RTFvUEE7QUFBQTtBNUU2b1BBO0FBQ0E7QTRFN29QQTtBQUFBO0E1RWdwUEE7QUFDQTtBNEVocFBBO0FBQUE7QTVFbXBQQTtBQUNBO0E0RW5wUEE7QUFBQTtBNUVzcFBBO0FBQ0E7QTRFdHBQQTtBQUFBO0E1RXlwUEE7QUFDQTtBNEV6cFBBO0FBQUE7QTVFNHBQQTtBQUNBO0E0RTVwUEE7QUFBQTtBNUUrcFBBO0FBQ0E7QTRFL3BQQTtBQUFBO0E1RWtxUEE7QUFDQTtBNEVscVBBO0FBQUE7QTVFcXFQQTtBQUNBO0E0RXJxUEE7QUFBQTtBNUV3cVBBO0FBQ0E7QTRFeHFQQTtBQUFBO0E1RTJxUEE7QUFDQTtBNEUzcVBBO0FBQUE7QTVFOHFQQTtBQUNBO0E0RTlxUEE7QUFBQTtBNUVpclBBO0FBQ0E7QTRFanJQQTtBQUFBO0E1RW9yUEE7QUFDQTtBNEVwclBBO0FBQUE7QTVFdXJQQTtBQUNBO0E0RXZyUEE7QUFBQTtBNUUwclBBO0FBQ0E7QTRFMXJQQTtBQUFBO0E1RTZyUEE7QUFDQTtBNEU3clBBO0FBQUE7QTVFZ3NQQTtBQUNBO0E0RWhzUEE7QUFBQTtBNUVtc1BBO0FBQ0E7QTRFbnNQQTtBQUFBO0E1RXNzUEE7QUFDQTtBNEV0c1BBO0FBQUE7QTVFeXNQQTtBQUNBO0E0RXpzUEE7QUFBQTtBNUU0c1BBO0FBQ0E7QTRFNXNQQTtBQUFBO0E1RStzUEE7QUFDQTtBNEUvc1BBO0FBQUE7QTVFa3RQQTtBQUNBO0E0RWx0UEE7QUFBQTtBNUVxdFBBO0FBQ0E7QTRFcnRQQTtBQUFBO0E1RXd0UEE7QUFDQTtBNEV4dFBBO0FBQUE7QTVFMnRQQTtBQUNBO0E0RTN0UEE7QUFBQTtBNUU4dFBBO0FBQ0E7QTRFOXRQQTtBQUFBO0E1RWl1UEE7QUFDQTtBNEVqdVBBO0FBQUE7QTVFb3VQQTtBQUNBO0E0RXB1UEE7QUFBQTtBNUV1dVBBO0FBQ0E7QTRFdnVQQTtBQUFBO0E1RTB1UEE7QUFDQTtBNEUxdVBBO0FBQUE7QTVFNnVQQTtBQUNBO0E0RTd1UEE7QUFBQTtBNUVndlBBO0FBQ0E7QTRFaHZQQTtBQUFBO0E1RW12UEE7QUFDQTtBNEVudlBBO0FBQUE7QTVFc3ZQQTtBQUNBO0E0RXR2UEE7QUFBQTtBNUV5dlBBO0FBQ0E7QTRFenZQQTtBQUFBO0E1RTR2UEE7QUFDQTtBNEU1dlBBO0FBQUE7QTVFK3ZQQTtBQUNBO0E0RS92UEE7QUFBQTtBNUVrd1BBO0FBQ0E7QTRFbHdQQTtBQUFBO0E1RXF3UEE7QUFDQTtBNEVyd1BBO0FBQUE7QTVFd3dQQTtBQUNBO0E0RXh3UEE7QUFBQTtBNUUyd1BBO0FBQ0E7QTRFM3dQQTtBQUFBO0E1RTh3UEE7QUFDQTtBNEU5d1BBO0FBQUE7QTVFaXhQQTtBQUNBO0E2RXY5UEE7QUFDQTtBN0V5OVBBO0E2RXg5UEE7QUFDQTtBN0UwOVBBO0EyRHAxUEE7QWtCbElBO0E3RXk5UEE7QTJEdjFQQTtBa0JsSUE7QTdFNDlQQTtBMkQxMVBBO0FrQmxJQTtBN0UrOVBBO0FBQ0E7QTZFMTlQQTtBQUVBO0E3RTI5UEE7QTZFejlQQTtBQUNBO0E3RTI5UEE7QTZFejlQQTtBQUNBO0E3RTI5UEE7QTZFejlQQTtBQUNBO0E3RTI5UEE7QUFDQTtBNkV4OVBBO0FBQ0E7QTdFMDlQQTtBNkV6OVBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakJyQkE7QUFDQTtBNURpL1BBO0EyRHYzUEE7QWtCbkdBO0FBQ0E7QUFDQTtBN0U2OVBBO0EyRDUzUEE7QWtCbkdBO0FBQ0E7QUFDQTtBN0VrK1BBO0EyRGo0UEE7QWtCbkdBO0FBQ0E7QUFDQTtBN0V1K1BBO0EyRHQ0UEE7QWtCN0ZBO0FBQ0E7QUFDQTtBQUNBO0E3RXMrUEE7QTJENTRQQTtBa0I3RkE7QUFDQTtBQUNBO0FBQ0E7QTdFNCtQQTtBMkRsNVBBO0FrQjdGQTtBQUNBO0FBQ0E7QUFDQTtBN0VrL1BBO0EyRHg1UEE7QWtCckZBO0E3RWcvUEE7QTJEMzVQQTtBa0JyRkE7QTdFbS9QQTtBMkQ5NVBBO0FrQnJGQTtBN0VzL1BBO0FBQ0E7QTZFaC9QQTtBQUNBO0FBQ0E7QTdFay9QQTtBNkVoL1BBO0FBQ0E7QTdFay9QQTtBNkVoL1BBO0FBQ0E7QTdFay9QQTtBMkQ1NlBBO0FrQmxFQTtBN0VpL1BBO0EyRC82UEE7QWtCbEVBO0E3RW8vUEE7QTJEbDdQQTtBa0JsRUE7QTdFdS9QQTtBMkRyN1BBO0FrQjdEQTtBN0VxL1BBO0EyRHg3UEE7QWtCN0RBO0E3RXcvUEE7QTJEMzdQQTtBa0I3REE7QTdFMi9QQTtBNkV2L1BBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTdFeS9QQTtBQUNBO0E2RXYvUEE7QUFDQTtBQUNBO0E3RXkvUEE7QTZFdi9QQTtBQUNBO0FBQ0E7QUFDQTtBN0V5L1BBO0FBQ0E7QTZFci9QQTtBQUNBO0E3RXUvUEE7QTJEajlQQTtBa0JsQ0E7QUFDQTtBN0VzL1BBO0EyRHI5UEE7QWtCbENBO0FBQ0E7QTdFMC9QQTtBMkR6OVBBO0FrQmxDQTtBQUNBO0E3RTgvUEE7QTZFMy9QQTtBQUNBO0FBQ0E7QTdFNi9QQTtBQUNBO0E2RTEvUEE7QUFDQTtBN0U0L1BBO0E2RTMvUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTdFNi9QQTtBQUNBO0E2RTEvUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTdFNC9QQTtBQUNBO0E2RTEvUEE7QUFDQTtBN0U0L1BBO0E2RTMvUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RTYvUEE7QTZFMS9QQTtBQUNBO0E3RTQvUEE7QTZFMS9QQTtBQUNBO0E3RTQvUEE7QTZFMS9QQTtBQUNBO0E3RTQvUEE7QTZFMS9QQTtBQUNBO0E3RTQvUEE7QTZFeC9QQTtBQUNBO0E3RTAvUEE7QTZFeC9QQTtBQUNBO0E3RTAvUEE7QTZFeC9QQTtBQUNBO0E3RTAvUEE7QUFDQTtBNkVyL1BBO0FBQ0E7QUFBQTtBN0V1L1BBO0E2RXIvUEE7QUFDQTtBN0V1L1BBO0FBQ0E7QTJENWhRQTtBa0IwQ0E7QUFDQTtBN0VxL1BBO0EyRGhpUUE7QWtCMENBO0FBQ0E7QTdFeS9QQTtBMkRwaVFBO0FrQjBDQTtBQUNBO0E3RTYvUEE7QUFDQTtBNkUxL1BBO0FBQ0E7QTdFNC9QQTtBQUNBO0EyRDdpUUE7QWtCcURBO0FBQ0E7QTdFMi9QQTtBMkRqalFBO0FrQnFEQTtBQUNBO0E3RSsvUEE7QTJEcmpRQTtBa0JxREE7QUFDQTtBN0VtZ1FBO0FBQ0E7QTZFaGdRQTtBQUNBO0E3RWtnUUE7QUFDQTtBNkUvL1BBO0FBQ0E7QUFDQTtBN0VpZ1FBO0FBQ0E7QTZFLy9QQTtBQUNBO0FBQ0E7QTdFaWdRQTtBQUNBO0E2RS8vUEE7QUFDQTtBQUNBO0FBQ0E7QTdFaWdRQTtBNkUvL1BBO0FBQ0E7QUFDQTtBN0VpZ1FBO0E2RTkvUEE7QUFDQTtBQUNBO0E3RWdnUUE7QUFDQTtBNkU3L1BBO0FBQ0E7QTdFKy9QQTtBNkU3L1BBO0FBQ0E7QUFDQTtBQUNBO0E3RSsvUEE7QTJEOWxRQTtBa0JpR0E7QTdFZ2dRQTtBMkRqbVFBO0FrQmlHQTtBN0VtZ1FBO0EyRHBtUUE7QWtCaUdBO0E3RXNnUUE7QUFDQTtBNkVsZ1FBO0FBSUE7QUFDQTtBN0VpZ1FBO0EyRDVtUUE7QWtCd0dBO0E3RXVnUUE7QTJEL21RQTtBa0J3R0E7QTdFMGdRQTtBMkRsblFBO0FrQndHQTtBN0U2Z1FBO0E2RXpnUUE7QUFDQTtBQUNBO0FBQ0E7QTdFMmdRQTtBNkV6Z1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0UyZ1FBO0FBQ0E7QTZFeGdRQTtBQU9BO0FBQ0E7QUFDQTtBN0VvZ1FBO0EyRDFvUUE7QWtCaUlBO0E3RTRnUUE7QTJEN29RQTtBa0JpSUE7QTdFK2dRQTtBMkRocFFBO0FrQmlJQTtBN0VraFFBO0E2RTNnUUE7QUFDQTtBN0U2Z1FBO0E2RTNnUUE7QUFDQTtBN0U2Z1FBO0E2RTNnUUE7QUFDQTtBN0U2Z1FBO0E2RTNnUUE7QUFDQTtBN0U2Z1FBO0FBQ0E7QTZFMWdRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFNGdRQTtBNkUzZ1FBO0FBQ0E7QUFBQTtBN0U2Z1FBO0E2RTNnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFNmdRQTtBNkUzZ1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFNmdRQTtBNkUzZ1FBO0FBQ0E7QUFDQTtBQUNBO0E3RTZnUUE7QTZFNWdRQTtBQUNBO0E3RThnUUE7QTZFNWdRQTtBQUNBO0FBQ0E7QUFDQTtBN0U4Z1FBO0E2RTVnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RThnUUE7QTZFN2dRQTtBQUNBO0FBQ0E7QTdFK2dRQTtBNkUzZ1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0U2Z1FBO0E2RTVnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0U4Z1FBO0E2RTNnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0U2Z1FBO0FBQ0E7QTZFemdRQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0E3RTBnUUE7QUFDQTtBNkV0Z1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdFd2dRQTtBNkV2Z1FBO0FBQ0E7QUFDQTtBN0V5Z1FBO0FBQ0E7QTZFcmdRQTtBQUNBO0FBQ0E7QUFDQTtBN0V1Z1FBO0E2RXJnUUE7QUFDQTtBN0V1Z1FBO0E2RXJnUUE7QUFDQTtBN0V1Z1FBO0FBQ0E7QTZFcmdRQTtBQUNBO0FBRUE7QTdFdWdRQTtBNkVyZ1FBO0FBRUE7QTdFdWdRQTtBNkVyZ1FBO0FBRUE7QTdFdWdRQTtBQUNBO0E2RXBnUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0VzZ1FBO0FBQ0E7QThFbDZRQTtBQUNBO0E5RW82UUE7QUFDQTtBK0V2NlFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9FeTZRQTtBMkRweVFBO0FvQm5JQTtBQUNBO0FBQ0E7QS9FMDZRQTtBMkR6eVFBO0FvQm5JQTtBQUNBO0FBQ0E7QS9FKzZRQTtBMkQ5eVFBO0FvQm5JQTtBQUNBO0FBQ0E7QS9FbzdRQTtBK0VsN1FBO0FBQ0E7QS9FbzdRQTtBK0VsN1FBO0FBQ0E7QUFDQTtBL0VvN1FBO0ErRW43UUE7QUFDQTtBQUNBO0EvRXE3UUE7QStFbDdRQTtBQUNBO0EvRW83UUE7QStFbjdRQTtBQUNBO0FBQ0E7QUFDQTtBL0VxN1FBO0ErRWw3UUE7QUFFQTtBL0VtN1FBO0ErRWo3UUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBbkJ6QkE7QUFDQTtBbUIwQkE7QUFDQTtBQUNBO0EvRWs3UUE7QStFaDdRQTtBQUNBO0EvRWs3UUE7QStFaDdRQTtBQUNBO0FBQ0E7QUFDQTtBL0VrN1FBO0FBQ0E7QStFLzZRQTtBQUNBO0EvRWk3UUE7QUFDQTtBK0UvNlFBO0FBQ0E7QUFDQTtBL0VpN1FBO0FBQ0E7QStFOTZRQTtBQUNBO0FBQ0E7QS9FZzdRQTtBQUNBO0ErRTk2UUE7QUFDQTtBL0VnN1FBO0FBQ0E7QStFOTZRQTtBQUNBO0FBQ0E7QUFDQTtBL0VnN1FBO0FBQ0E7QStFOTZRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRWc3UUE7QUFDQTtBK0U5NlFBO0FBQ0E7QS9FZzdRQTtBQUNBO0ErRTk2UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0VnN1FBO0FBQ0E7QStFOTZRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRWc3UUE7QUFDQTtBK0UvNlFBO0FBQ0E7QS9FaTdRQTtBQUNBO0ErRWg3UUE7QUFLQTtBQUNBO0EvRWs3UUE7QUFDQTtBK0VoN1FBO0FBQ0E7QUFDQTtBQUNBO0EvRWs3UUE7QUFDQTtBK0VoN1FBO0FBQ0E7QUFDQTtBL0VrN1FBO0FBQ0E7QStFaDdRQTtBQUNBO0FBQ0E7QS9FazdRQTtBQUNBO0ErRWg3UUE7QUFDQTtBL0VrN1FBO0ErRWo3UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRW03UUE7QStFajdRQTtBQUNBO0FBQ0E7QS9FbTdRQTtBQUNBO0ErRWg3UUE7QUFDQTtBL0VrN1FBO0FBQ0E7QStFaDdRQTtBQUNBO0EvRWs3UUE7QUFDQTtBK0UvNlFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9FaTdRQTtBK0UvNlFBO0FBQ0E7QS9FaTdRQTtBMkQ3OVFBO0FvQjhDQTtBL0VrN1FBO0EyRGgrUUE7QW9COENBO0EvRXE3UUE7QTJEbitRQTtBb0I4Q0E7QS9FdzdRQTtBK0VwN1FBO0FBQ0E7QUFDQTtBQUNBO0EvRXM3UUE7QUFDQTtBK0VsN1FBO0FBQ0E7QUFDQTtBL0VvN1FBO0ErRWw3UUE7QUFKQTtBQUtBO0EvRXE3UUE7QUFDQTtBQUNBO0FnRi9uUkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhGNG5SQTtBQUNBO0FnRnpuUkE7QUFDQTtBQUNBO0FoRjJuUkE7QWdGMW5SQTtBQUFBO0FoRjZuUkE7QWdGM25SQTtBQUFBO0FoRjhuUkE7QWdGN25SQTtBQUFBO0FoRmdvUkE7QWdGL25SQTtBQUFBO0FoRmtvUkE7QWdGaG9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEZrb1JBO0FBQ0E7QWdGOW5SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEZnb1JBO0FnRjluUkE7QUFBQTtBaEZpb1JBO0FnRmhvUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRmtvUkE7QUFDQTtBZ0YvblJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEZpb1JBO0FnRmhvUkE7QUFBQTtBaEZtb1JBO0FnRmxvUkE7QUFBQTtBaEZxb1JBO0FBQ0E7QWdGbG9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEZvb1JBO0FnRmxvUkE7QUFBQTtBaEZxb1JBO0FnRnBvUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRnNvUkE7QWdGcG9SQTtBQUFBO0FoRnVvUkE7QUFDQTtBZ0Zyb1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRnVvUkE7QWdGcm9SQTtBQUFBO0FoRndvUkE7QUFDQTtBZ0Zyb1JBOztBQUVBO0FBQ0E7QWhGdW9SQTtBZ0Zyb1JBOztBQUFBO0FoRnlvUkE7QUFDQTtBZ0Z0b1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRndvUkE7QUFDQTtBZ0Z0b1JBOztBQUVBO0FBQ0E7QUFDQTtBaEZ3b1JBO0FBQ0E7QWdGcm9SQTs7QUFDQTtBQUFBO0FoRnlvUkE7QUFDQTtBZ0Z2b1JBO0FBQ0E7QUFDQTtBQUNBO0FoRnlvUkE7QUFDQTtBaUZqelJBO0FBQ0E7QUFDQTtBakZtelJBO0FpRmp6UkE7QUFDQTtBQUNBO0FqRm16UkE7QWlGaHpSQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBakY2eVJBO0EyRC9yUkE7QXNCbkhBO0FBQ0E7QWpGcXpSQTtBMkRuc1JBO0FzQm5IQTtBQUNBO0FqRnl6UkE7QTJEdnNSQTtBc0JuSEE7QUFDQTtBakY2elJBO0FpRnJ6UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakZ1elJBO0FpRnJ6UkE7QUFDQTtBakZ1elJBO0EyRHB0UkE7QXNCakdBO0FqRnd6UkE7QTJEdnRSQTtBc0JqR0E7QWpGMnpSQTtBMkQxdFJBO0FzQmpHQTtBakY4elJBO0EyRDd0UkE7QXNCN0ZBO0FqRjZ6UkE7QTJEaHVSQTtBc0I3RkE7QWpGZzBSQTtBMkRudVJBO0FzQjdGQTtBakZtMFJBO0FpRjd6UkE7QUFDQTtBQUNBO0FqRit6UkE7QWlGN3pSQTtBQUNBO0FBQ0E7QWpGK3pSQTtBaUY1elJBO0FBQ0E7QWpGOHpSQTtBQUNBO0FrRjMzUkE7QUFFQTtBbEY0M1JBO0FrRjEzUkE7QUFDQTtBQUNBO0FBQ0E7QWxGNDNSQTtBMkQxdlJBO0F1QjdIQTtBbEYwM1JBO0EyRDd2UkE7QXVCN0hBO0FsRjYzUkE7QTJEaHdSQTtBdUI3SEE7QWxGZzRSQTtBa0Y1M1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxGODNSQTtBa0YzM1JBO0FBQ0E7QWxGNjNSQTtBMkQ1d1JBO0F1Qi9HQTtBbEY4M1JBO0EyRC93UkE7QXVCL0dBO0FsRmk0UkE7QTJEbHhSQTtBdUIvR0E7QWxGbzRSQTtBa0ZoNFJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxGazRSQTtBMkQzeFJBO0F1QnJHQTtBbEZtNFJBO0EyRDl4UkE7QXVCckdBO0FsRnM0UkE7QTJEanlSQTtBdUJyR0E7QWxGeTRSQTtBQUNBO0FtRjk2UkE7QUFhQTtBbkZvNlJBO0FtRmg3UkE7QUFDQTtBbkZrN1JBO0EyRDN5UkE7QXdCcklBO0FuRm03UkE7QTJEOXlSQTtBd0JySUE7QW5GczdSQTtBMkRqelJBO0F3QnJJQTtBbkZ5N1JBO0FtRnQ3UkE7QUFDQTtBbkZ3N1JBO0FtRnQ3UkE7QUFDQTtBbkZ3N1JBO0FBQ0E7QW1GcDdSQTtBQUNBO0FuRnM3UkE7QTJEOXpSQTtBd0J0SEE7QW5GdTdSQTtBMkRqMFJBO0F3QnRIQTtBbkYwN1JBO0EyRHAwUkE7QXdCdEhBO0FuRjY3UkE7QUFDQTtBbUYxN1JBO0FBQ0E7QW5GNDdSQTtBQUNBO0FtRjE3UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRjQ3UkE7QUFDQTtBb0Y3OVJBO0FBQ0E7QUFDQTtBcEYrOVJBO0FvRjk5UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBGZytSQTtBMkRoMlJBO0F5QjlIQTtBQUNBO0FBQ0E7QXBGaStSQTtBMkRyMlJBO0F5QjlIQTtBQUNBO0FBQ0E7QXBGcytSQTtBMkQxMlJBO0F5QjlIQTtBQUNBO0FBQ0E7QXBGMitSQTtBMkQvMlJBO0F5QnhIQTtBQUNBO0FBQ0E7QXBGMCtSQTtBMkRwM1JBO0F5QnhIQTtBQUNBO0FBQ0E7QXBGKytSQTtBMkR6M1JBO0F5QnhIQTtBQUNBO0FBQ0E7QXBGby9SQTtBQUNBO0FxRnhnU0E7QXpCY0E7QUFDQTtBeUJiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRjJnU0E7QTJEeDRSQTtBMEJqSUE7QXJGNGdTQTtBMkQzNFJBO0EwQmpJQTtBckYrZ1NBO0EyRDk0UkE7QTBCaklBO0FyRmtoU0E7QTBEdGdTQTtBMkJwQkE7QXpCY0E7QUFDQTtBNURnaFNBO0FBQ0E7QUFDQTtBMkR4NVJBO0EyQnRJQTtBdEZpaVNBO0EyRDM1UkE7QTJCdElBO0F0Rm9pU0E7QTJEOTVSQTtBMkJ0SUE7QXRGdWlTQTtBQUNBO0EyRGw2UkE7QTJCOUhBO0F0Rm1pU0E7QTJEcjZSQTtBMkI5SEE7QXRGc2lTQTtBMkR4NlJBO0EyQjlIQTtBdEZ5aVNBO0FBQ0E7QXNGcmlTQTtBQUNBO0F0RnVpU0E7QXNGdGlTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBdEZ3aVNBO0FzRnZpU0E7QUFBQTtBdEYwaVNBO0FBQ0E7QXVGbmtTQTtBQUNBO0FBQ0E7QUFDQTtBdkZxa1NBO0F1Rm5rU0E7QUFDQTtBQUNBO0FBQ0E7QXZGcWtTQTtBdUZwa1NBO0FBQ0E7QUFDQTtBdkZza1NBO0EyRHg4UkE7QTRCMUhBO0F2RnFrU0E7QTJEMzhSQTtBNEIxSEE7QXZGd2tTQTtBMkQ5OFJBO0E0QjFIQTtBdkYya1NBO0FBQ0E7QXdGM2xTQTtBQUNBO0FBUUE7QXhGc2xTQTtBd0Y1bFNBO0FBQ0E7QUFDQTtBQUNBO0F4RjhsU0E7QXdGMWxTQTtBQUNBO0F4RjRsU0E7QTJEOTlSQTtBNkI1SEE7QXhGNmxTQTtBMkRqK1JBO0E2QjVIQTtBeEZnbVNBO0EyRHArUkE7QTZCNUhBO0F4Rm1tU0E7QTJEditSQTtBNkJ2SEE7QXhGaW1TQTtBMkQxK1JBO0E2QnZIQTtBeEZvbVNBO0EyRDcrUkE7QTZCdkhBO0F4RnVtU0E7QUFDQTtBeUYxblNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpGNG5TQTtBMkQ3L1JBO0E4QjdIQTtBQUNBO0F6RjZuU0E7QTJEamdTQTtBOEI3SEE7QUFDQTtBekZpb1NBO0EyRHJnU0E7QThCN0hBO0FBQ0E7QXpGcW9TQTtBeUZsb1NBO0FBQ0E7QUFDQTtBekZvb1NBO0F5RmpvU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekZtb1NBO0F5RmhvU0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0F6RituU0E7QTJEMWhTQTtBOEJ4R0E7QXpGcW9TQTtBMkQ3aFNBO0E4QnhHQTtBekZ3b1NBO0EyRGhpU0E7QThCeEdBO0F6RjJvU0E7QXlGcm9TQTtBQUNBO0FBQ0E7QUFDQTtBekZ1b1NBO0EyRHhpU0E7QThCN0ZBO0F6RndvU0E7QTJEM2lTQTtBOEI3RkE7QXpGMm9TQTtBMkQ5aVNBO0E4QjdGQTtBekY4b1NBO0F5RjFvU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekY0b1NBO0EyRDFqU0E7QThCaEZBO0F6RjZvU0E7QTJEN2pTQTtBOEJoRkE7QXpGZ3BTQTtBMkRoa1NBO0E4QmhGQTtBekZtcFNBO0FBQ0E7QTBGNXNTQTtBQUNBO0FBQ0E7QTFGOHNTQTtBQUNBO0EyRmx0U0E7QUFDQTtBQUNBO0EzRm90U0E7QUFDQTtBMkZsdFNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0ZvdFNBO0EyRm50U0E7QUFHQTtBM0ZtdFNBO0EyRmp0U0E7QUFDQTtBM0ZtdFNBO0EyRmx0U0E7QUFDQTtBM0ZvdFNBO0EyRmp0U0E7QUFDQTtBM0ZtdFNBO0EyRmx0U0E7QUFDQTtBM0ZvdFNBO0FBQ0E7QTRGOXVTQTtBQUVBO0FBdURBO0E1RnlyU0E7QTRGOXVTQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0E1RjZ1U0E7QTJEL21TQTtBaUNqSUE7QTVGbXZTQTtBMkRsblNBO0FpQ2pJQTtBNUZzdlNBO0EyRHJuU0E7QWlDaklBO0E1Rnl2U0E7QTRGbnZTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RnF2U0E7QTRGbnZTQTtBQUNBO0E1RnF2U0E7QTRGdHZTQTtBQUNBO0E1RnF2U0E7QTRGdHZTQTtBQUNBO0E1RnF2U0E7QTRGbnZTQTtBQUNBO0E1RnF2U0E7QTRGbnZTQTtBQUNBO0FBSUE7QUFFQTtBQUlBO0FBQ0E7QTVGOHVTQTtBMkRwcFNBO0FpQ25HQTtBNUYwdlNBO0EyRHZwU0E7QWlDbkdBO0E1RjZ2U0E7QTJEMXBTQTtBaUNuR0E7QTVGZ3dTQTtBMkQ3cFNBO0FpQzdGQTtBNUY2dlNBO0EyRGhxU0E7QWlDN0ZBO0E1Rmd3U0E7QTJEbnFTQTtBaUM3RkE7QTVGbXdTQTtBNEYvdlNBO0FBQ0E7QTVGaXdTQTtBNEZsd1NBO0FBQ0E7QTVGaXdTQTtBNEZsd1NBO0FBQ0E7QTVGaXdTQTtBNEZudlNBO0FBRUE7QUFzREE7QTVGK3JTQTtBNEZudlNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QTVGa3ZTQTtBMkRuclNBO0FpQ2xFQTtBNUZ3dlNBO0EyRHRyU0E7QWlDbEVBO0E1RjJ2U0E7QTJEenJTQTtBaUNsRUE7QTVGOHZTQTtBNEZsdlNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBNUZrdlNBO0EyRDVzU0E7QWlDbENBO0E1Rml2U0E7QTJEL3NTQTtBaUNsQ0E7QTVGb3ZTQTtBMkRsdFNBO0FpQ2xDQTtBNUZ1dlNBO0EyRHJ0U0E7QWlDMUJBO0E1Rmt2U0E7QTJEeHRTQTtBaUMxQkE7QTVGa3ZTQTtBMkR4dFNBO0FpQzFCQTtBNUZrdlNBO0EyRHh0U0E7QWlDMUJBO0E1RnF2U0E7QTJEM3RTQTtBaUMxQkE7QTVGcXZTQTtBMkQzdFNBO0FpQzFCQTtBNUZxdlNBO0EyRDN0U0E7QWlDMUJBO0E1Rnd2U0E7QTJEOXRTQTtBaUMxQkE7QTVGd3ZTQTtBMkQ5dFNBO0FpQzFCQTtBNUZ3dlNBO0E0RjF1U0E7QUFDQTtBNUY0dVNBO0FBQ0E7QTRGMXVTQTtBQUNBO0E1RjR1U0E7QUFDQTtBNEYxdVNBO0FBQ0E7QTVGNHVTQTtBQUNBO0E2RmwzU0E7QUFDQTtBQUNBO0E3Rm8zU0E7QTZGbjNTQTtBQUNBO0FBQ0E7QTdGcTNTQTtBMER2MlNBO0FtQ2hCQTtBQUlBO0FBQ0E7QTdGdTNTQTtBQUNBO0E2RnIzU0E7QUFDQTtBQUNBO0E3RnUzU0E7QTBEajNTQTtBbUNSQTtBQUlBO0FBQ0E7QTdGeTNTQTtBQUNBO0E2RnYzU0E7QUFDQTtBQUNBO0E3RnkzU0E7QTBEMzNTQTtBbUNBQTtBQUlBO0FBQ0E7QTdGMjNTQTtBQUNBO0E2RnozU0E7QUFDQTtBN0YyM1NBO0E2RnozU0E7QUFDQTtBN0YyM1NBO0E2RnozU0E7QUFDQTtBQUNBO0E3RjIzU0E7QTJEdHhTQTtBa0NsR0E7QTdGMjNTQTtBMkR6eFNBO0FrQ2xHQTtBN0Y4M1NBO0EyRDV4U0E7QWtDbEdBO0E3Rmk0U0E7QTJEL3hTQTtBa0M3RkE7QTdGKzNTQTtBMkRseVNBO0FrQzdGQTtBN0ZrNFNBO0EyRHJ5U0E7QWtDN0ZBO0E3RnE0U0E7QTZGbDRTQTtBQUNBO0E3Rm80U0E7QTJEM3lTQTtBa0N2RkE7QTdGcTRTQTtBMkQ5eVNBO0FrQ3ZGQTtBN0Z3NFNBO0EyRGp6U0E7QWtDdkZBO0E3RjI0U0E7QTZGejRTQTtBQUNBO0FBQ0E7QTdGMjRTQTtBMkR4elNBO0FrQ2pGQTtBN0Y0NFNBO0EyRDN6U0E7QWtDakZBO0E3Ris0U0E7QTJEOXpTQTtBa0NqRkE7QTdGazVTQTtBNkY5NFNBO0FBQ0E7QTdGZzVTQTtBMkRwMFNBO0FrQzFFQTtBN0ZpNVNBO0EyRHYwU0E7QWtDMUVBO0E3Rm81U0E7QTJEMTBTQTtBa0MxRUE7QTdGdTVTQTtBNkZuNVNBO0FBQ0E7QUFDQTtBQUNBO0E3RnE1U0E7QTJEbDFTQTtBa0NqRUE7QTdGczVTQTtBMkRyMVNBO0FrQ2pFQTtBN0Z5NVNBO0EyRHgxU0E7QWtDakVBO0E3RjQ1U0E7QTZGejVTQTtBQUNBO0E3RjI1U0E7QTJEOTFTQTtBa0MzREE7QTdGNDVTQTtBMkRqMlNBO0FrQzNEQTtBN0YrNVNBO0EyRHAyU0E7QWtDM0RBO0E3Rms2U0E7QTJEdjJTQTtBa0N0REE7QTdGZzZTQTtBMkQxMlNBO0FrQ3REQTtBN0ZtNlNBO0EyRDcyU0E7QWtDdERBO0E3RnM2U0E7QTJEaDNTQTtBa0NqREE7QTdGbzZTQTtBMkRuM1NBO0FrQ2pEQTtBN0Z1NlNBO0EyRHQzU0E7QWtDakRBO0E3RjA2U0E7QTZGeDZTQTtBQUNBO0FBQ0E7QTdGMDZTQTtBMkQ3M1NBO0FrQzNDQTtBN0YyNlNBO0EyRGg0U0E7QWtDM0NBO0E3Rjg2U0E7QTJEbjRTQTtBa0MzQ0E7QTdGaTdTQTtBMkR0NFNBO0FrQ3JDQTtBN0Y4NlNBO0EyRHo0U0E7QWtDckNBO0E3Rmk3U0E7QTJENTRTQTtBa0NyQ0E7QTdGbzdTQTtBQUNBO0E4RnpoVEE7QUFDQTtBQUNBO0E5RjJoVEE7QThGMWhUQTtBQUNBO0FBQ0E7QTlGNGhUQTtBOEZ6aFRBO0FuQ2lJQTtBbUM3SEE7QTlGeWhUQTtBMkQ1NVNBO0FtQzdIQTtBOUY0aFRBO0EyRC81U0E7QW1DN0hBO0E5RitoVEE7QUFDQTtBQUNBO0ErRjVpVEE7QUFDQTtBL0Y4aVRBO0ErRjVpVEE7QUFDQTtBL0Y4aVRBO0ErRjVpVEE7QUFDQTtBL0Y4aVRBO0ErRjdpVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRitpVEE7QStGNWlUQTtBQUNBO0FBQ0E7QS9GOGlUQTtBK0Y3aVRBO0FBQ0E7QS9GK2lUQTtBK0Y3aVRBO0FBQ0E7QS9GK2lUQTtBK0Y1aVRBO0FBQ0E7QUFDQTtBL0Y4aVRBO0FBQ0E7QStGeGlUQTtBQUNBO0FBQ0E7QUFDQTtBL0YwaVRBO0FBQ0E7QWdHeGxUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhHMGxUQTtBZ0d6bFRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhHMmxUQTtBQUNBO0FpR3RtVEE7QUFDQTtBQUNBO0FqR3dtVEE7QWlHdG1UQTtBQUNBO0FBQ0E7QWpHd21UQTtBaUdybVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FqR2ttVEE7QTJEbi9TQTtBc0NwSEE7QUFDQTtBakcwbVRBO0EyRHYvU0E7QXNDcEhBO0FBQ0E7QWpHOG1UQTtBMkQzL1NBO0FzQ3BIQTtBQUNBO0FqR2tuVEE7QWlHMW1UQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqRzRtVEE7QWlHM21UQTtBQUNBO0FqRzZtVEE7QTJEeGdUQTtBc0NsR0E7QWpHNm1UQTtBMkQzZ1RBO0FzQ2xHQTtBakdnblRBO0EyRDlnVEE7QXNDbEdBO0FqR21uVEE7QWlHN21UQTtBQUNBO0FBQ0E7QWpHK21UQTtBaUc3bVRBO0FBQ0E7QUFDQTtBakcrbVRBO0FBQ0E7QWtHbnFUQTtBQUNBO0FBQ0E7QWxHcXFUQTtBa0dwcVRBO0FBQ0E7QUFDQTtBQUNBO0FsR3NxVEE7QWtHbnFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDTkE7QUFDQTtBc0NPQTtBbEdzcVRBO0FrR3BxVEE7QUFDQTtBbEdzcVRBO0FrR3BxVEE7QUFDQTtBbEdzcVRBO0FrR3BxVEE7QUFDQTtBdENqQkE7QUFDQTtBc0NrQkE7QUFDQTtBbEd1cVRBO0FrR3JxVEE7QXRDdEJBO0FBQ0E7QXNDdUJBO0FBQ0E7QWxHd3FUQTtBMkR0a1RBO0F1Q2hHQTtBbEd5cVRBO0EyRHprVEE7QXVDaEdBO0FsRzRxVEE7QTJENWtUQTtBdUNoR0E7QWxHK3FUQTtBa0dwcVRBO0FBQ0E7QWxHc3FUQTtBQUNBO0FtRzV0VEE7QUFDQTtBQUNBO0FuRzh0VEE7QW1HM3RUQTtBQUNBO0FBQ0E7QW5HNnRUQTtBbUc1dFRBO0FBQ0E7QUFDQTtBbkc4dFRBO0FtR3p0VEE7QUFDQTtBQUNBO0FBQ0E7QW5HMnRUQTtBbUd4dFRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkcwdFRBO0FBQ0E7QW1HdnRUQTtBQUNBO0FBQ0E7QW5HeXRUQTtBQUNBO0FvRzF2VEE7QUFDQTtBcEc0dlRBO0FvRzN2VEE7QUFDQTtBQUNBO0FwRzZ2VEE7QW9HMXZUQTtBQUNBO0FBQ0E7QXBHNHZUQTtBb0cxdlRBO0FBQ0E7QUFDQTtBcEc0dlRBO0FvRzF2VEE7QUFDQTtBcEc0dlRBO0FBQ0E7QW9HeHZUQTtBQUNBO0FBQ0E7QXBHMHZUQTtBQUNBO0FxR2p4VEE7QUFDQTtBckdteFRBO0FxR2h4VEE7QUFDQTtBckdreFRBO0FBQ0E7QXNHenhUQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RzJ4VEE7QTJEeHBUQTtBMkNqSUE7QUFDQTtBdEc0eFRBO0EyRDVwVEE7QTJDaklBO0FBQ0E7QXRHZ3lUQTtBMkRocVRBO0EyQ2pJQTtBQUNBO0F0R295VEE7QUFDQTtBc0dqeVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRHbXlUQTtBQUNBO0FzR2p5VEE7QUFDQTtBQUNBO0F0R215VEE7QUFDQTtBc0dqeVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRHbXlUQTtBMkR2clRBO0EyQ3pHQTtBdEdteVRBO0EyRDFyVEE7QTJDekdBO0F0R3N5VEE7QTJEN3JUQTtBMkN6R0E7QXRHeXlUQTtBc0dyeVRBO0FBQ0E7QUFDQTtBQUNBO0F0R3V5VEE7QUFDQTtBc0dweVRBO0FBQ0E7QUFDQTtBdEdzeVRBO0FBQ0E7QTBEMXpUQTtBNENzQkE7QUFFQTtBdEdzeVRBO0FBQ0E7QXNHcnlUQTtBQUNBO0F0R3V5VEE7QTBEbDBUQTtBNEMwQkE7QUFHQTtBdEd5eVRBO0FBQ0E7QUFDQTtBc0d0eVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRHd3lUQTtBc0d0eVRBO0FBQ0E7QUFDQTtBQUNBO0F0R3d5VEE7QXNHdnlUQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0F0R3d5VEE7QXNHaHlUQTtBQUNBO0FBQ0E7QXRHa3lUQTtBMER6MlRBO0E0Q3FFQTtBQUlBO0FBQ0E7QXRHb3lUQTtBQUNBO0FzR2x5VEE7QUFDQTtBdEdveVRBO0FBQ0E7QXNHanlUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0R215VEE7QXNHbHlUQTtBQUNBO0FBQ0E7QXRHb3lUQTtBMER2M1RBO0E0Q2lGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0F0R3F5VEE7QUFDQTtBQUNBO0FzR2x5VEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0R295VEE7QXNHbnlUQTtBQUNBO0F0R3F5VEE7QXNHbnlUQTtBQUNBO0F0R3F5VEE7QUFDQTtBc0dseVRBO0FBQ0E7QUFDQTtBakd2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpR3FEQTtBQU9BO0F0R2t5VEE7QUszMVRBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FMMDFUQTtBSy8wVEE7QUFDQTtBQUNBO0FMaTFUQTtBMERyN1RBO0E0Q3dIQTtBQU9BO0F0RzB6VEE7QUFDQTtBMERwN1RBO0E0Q2tIQTtBQVVBO0F0RzR6VEE7QUFDQTtBc0cxelRBO0FBQ0E7QXRHNHpUQTtBMkR2MFRBO0EyQ2FBO0FBQ0E7QXRHNnpUQTtBMkQzMFRBO0EyQ2FBO0FBQ0E7QXRHaTBUQTtBMkQvMFRBO0EyQ2FBO0FBQ0E7QXRHcTBUQTtBMkRuMVRBO0EyQ29CQTtBQUNBO0F0R2swVEE7QTJEdjFUQTtBMkNvQkE7QUFDQTtBdEdzMFRBO0EyRDMxVEE7QTJDb0JBO0FBQ0E7QXRHMDBUQTtBQUNBO0FzR3IwVEE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBdEdzMFRBO0EyRHQyVEE7QTJDbUNBO0F0R3MwVEE7QTJEejJUQTtBMkNtQ0E7QXRHeTBUQTtBMkQ1MlRBO0EyQ21DQTtBdEc0MFRBO0EwRHArVEE7QTRDZ0pBO0FBV0E7QXRHNjBUQTtBQUNBO0FzRzUwVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RzgwVEE7QXNHNzBUQTtBQUNBO0F0RyswVEE7QUFDQTtBc0czMFRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEc2MFRBO0FBQ0E7QXNHMzBUQTtBQUNBO0FBRUE7QXRHNDBUQTtBQUNBO0F1R3JoVUE7QUFDQTtBQUNBO0F2R3VoVUE7QXVHdGhVQTtBQUNBO0F2R3doVUE7QXVHdGhVQTtBQUNBO0F2R3doVUE7QXVHdGhVQTtBQUNBO0F2R3doVUE7QUFDQTtBdUd0aFVBO0FBQ0E7QUFDQTtBdkd3aFVBO0F1R3ZoVUE7QUFDQTtBQUNBO0FBQ0E7QXZHeWhVQTtBQUNBO0F1R3RoVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2R3doVUE7QXVHdGhVQTtBQUNBO0FBQ0E7QUFDQTtBM0NuQkE7QUFDQTtBNUQ0aVVBO0F1R3ZoVUE7QUFDQTtBQUNBO0FBQ0E7QXZHeWhVQTtBdUd0aFVBO0FBQ0E7QUFDQTtBdkd3aFVBO0F1R3RoVUE7QUFDQTtBdkd3aFVBO0F1R3RoVUE7QUFDQTtBdkd3aFVBO0FBQ0E7QXVHcmhVQTtBQUNBO0F2R3VoVUE7QUFDQTtBdUdyaFVBO0FBQ0E7QUFDQTtBQUNBO0F2R3VoVUE7QUFDQTtBdUd0aFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZHd2hVQTtBQUNBO0F1R3ZoVUE7QUFDQTtBdkd5aFVBO0FBQ0E7QXVHeGhVQTtBQUNBO0F2RzBoVUE7QUFDQTtBdUd4aFVBO0FBQ0E7QUFDQTtBQUNBO0F2RzBoVUE7QXVHeGhVQTtBQUNBO0F2RzBoVUE7QXVHdmhVQTtBQUNBO0F2R3loVUE7QUFDQTtBd0c5bVVBO0FBQ0E7QXhHZ25VQTtBd0c5bVVBO0FBQ0E7QXhHZ25VQTtBd0c3bVVBO0FBQ0E7QUFDQTtBeEcrbVVBO0F3RzVtVUE7QUFDQTtBQUNBO0FBQ0E7QUFtQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEc0a1VBO0F3R3JuVUE7QUFDQTtBeEd1blVBO0F3R3BuVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEdzblVBO0F3R3BuVUE7QUFDQTtBQUNBO0F4R3NuVUE7QXdHcG5VQTtBQUNBO0F4R3NuVUE7QXdHbm5VQTtBQUNBO0F4R3FuVUE7QXdHbm5VQTtBQUNBO0F4R3FuVUE7QXdHbm5VQTtBQUNBO0FBQ0E7QUFDQTtBeEdxblVBO0F3R2xuVUE7QUFDQTtBeEdvblVBO0F3R3htVUE7QUFDQTtBeEcwbVVBO0F3R3ZtVUE7QUFDQTtBeEd5bVVBO0F3R3RtVUE7QUFDQTtBQUNBO0FBQ0E7QXhHd21VQTtBd0dybVVBO0FBQ0E7QUFDQTtBeEd1bVVBO0F3R3BtVUE7QUFDQTtBQUNBO0FBQ0E7QXhHc21VQTtBQUNBO0F3R25tVUE7QUFDQTtBQUVBO0FBQ0E7QXhHb21VQTtBd0dsbVVBO0FBQ0E7QXhHb21VQTtBQUNBO0F5R2xzVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3Q1FBO0FBQ0E7QTVENnJVQTtBMkRua1VBO0E4Q2hJQTtBQUNBO0FBQ0E7QXpHc3NVQTtBMkR4a1VBO0E4Q2hJQTtBQUNBO0FBQ0E7QXpHMnNVQTtBMkQ3a1VBO0E4Q2hJQTtBQUNBO0FBQ0E7QXpHZ3RVQTtBMkRsbFVBO0E4QzFIQTtBQUNBO0FBQ0E7QXpHK3NVQTtBMkR2bFVBO0E4QzFIQTtBQUNBO0FBQ0E7QXpHb3RVQTtBMkQ1bFVBO0E4QzFIQTtBQUNBO0FBQ0E7QXpHeXRVQTtBeUdodFVBO0FBQ0E7QUFDQTtBQUNBO0F6R2t0VUE7QTJEdG1VQTtBOEN6R0E7QUFDQTtBQUNBO0F6R2t0VUE7QTJEM21VQTtBOEN6R0E7QUFDQTtBQUNBO0F6R3V0VUE7QTJEaG5VQTtBOEN6R0E7QUFDQTtBQUNBO0F6RzR0VUE7QXlHeHRVQTtBQUNBO0FBQ0E7QXpHMHRVQTtBMkR6blVBO0E4QzdGQTtBekd5dFVBO0EyRDVuVUE7QThDN0ZBO0F6RzR0VUE7QTJEL25VQTtBOEM3RkE7QXpHK3RVQTtBeUc1dFVBO0FBQ0E7QUFDQTtBQUNBO0F6Rzh0VUE7QXlHNXRVQTtBQUNBO0F6Rzh0VUE7QXlHNXRVQTtBQUNBO0F6Rzh0VUE7QXlHNXRVQTtBQUNBO0FBQ0E7QUFDQTtBekc4dFVBO0F5RzV0VUE7QUFDQTtBekc4dFVBO0F5RzV0VUE7QUFDQTtBekc4dFVBO0FBQ0E7QTBHbHlVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExR295VUE7QTJEbHFVQTtBK0MvSEE7QUFDQTtBQUNBO0ExR295VUE7QTJEdnFVQTtBK0MvSEE7QUFDQTtBQUNBO0ExR3l5VUE7QTJENXFVQTtBK0MvSEE7QUFDQTtBQUNBO0ExRzh5VUE7QTBHM3lVQTtBOUNEQTtBQUNBO0E4Q0dBO0ExRzZ5VUE7QUFDQTtBMkc5elVBO0FBREE7QUFFQTtBM0dpMFVBO0FBQ0E7QUFDQTtBNEd0MFVBO0FBQ0E7QTVHdzBVQTtBQUNBO0E0R3QwVUE7QUFDQTtBNUd3MFVBO0FBQ0E7QTRHdDBVQTtBQUNBO0FBQ0E7QTVHdzBVQTtBQUNBO0E0R3IwVUE7QUFDQTtBNUd1MFVBO0FBQ0E7QTRHcDBVQTtBQUNBO0E1R3MwVUE7QUFDQTtBNEdwMFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVHczBVQTtBNEdyMFVBO0FBQ0E7QUFDQTtBQUNBO0E1R3UwVUE7QUFDQTtBNEdwMFVBO0FBQ0E7QUFDQTtBQUNBO0E1R3MwVUE7QUFDQTtBNEdyMFVBO0FBQ0E7QUFDQTtBQUNBO0E1R3UwVUE7QUFDQTtBNEdwMFVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTVHbzBVQTtBQUNBO0E0R256VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1R3F6VUE7QTBENzJVQTtBa0RtREE7QUFRQTtBQUNBO0E1R3N6VUE7QUFDQTtBQUNBO0E0R2x6VUE7QUFDQTtBQUNBO0E1R296VUE7QTRHbHpVQTtBQUNBO0E1R296VUE7QUFDQTtBQUNBO0E0RzN6VUE7QUFDQTtBQUNBO0E1R296VUE7QTRHbHpVQTtBQUNBO0E1R296VUE7QUFDQTtBNEdqelVBO0FBQ0E7QUFDQTtBQUNBO0E1R216VUE7QTRHbHpVQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBNUcreVVBO0EyRG54VUE7QWlEbkNBO0FBQ0E7QUFDQTtBNUd5elVBO0EyRHh4VUE7QWlEbkNBO0FBQ0E7QUFDQTtBNUc4elVBO0EyRDd4VUE7QWlEbkNBO0FBQ0E7QUFDQTtBNUdtMFVBO0EwRHY1VUE7QWtEMEZBO0FBRUE7QTVHK3pVQTtBQUNBO0E0RzN6VUE7QUFDQTtBQUNBO0E1RzZ6VUE7QTBEaDZVQTtBa0RpR0E7QUFJQTtBQUNBO0E1Ryt6VUE7QUFDQTtBNEc3elVBO0FBQ0E7QUFDQTtBNUcrelVBO0EwRHA2VUE7QWtEbUdBO0FBSUE7QUFDQTtBNUdpMFVBO0FBQ0E7QTRHL3pVQTtBQUNBO0FBQ0E7QUFDQTtBNUdpMFVBO0E0Rzd6VUE7QUFDQTtBNUcrelVBO0E0RzV6VUE7QUFFQTtBQUNBO0FoRHJJQTtBQUNBO0FnRHNJQTtBNUc4elVBO0E0Rzd6VUE7QUFDQTtBNUcrelVBO0E0RzV6VUE7QUFHQTtBNUc0elVBO0E0RzN6VUE7QUFDQTtBQUNBO0FBQ0E7QTVHNnpVQTtBNEcxelVBO0FBR0E7QUFDQTtBNUcwelVBO0E0R3h6VUE7QUFDQTtBaEQ3SkE7QUFDQTtBZ0Q4SkE7QTVHMnpVQTtBNEd6elVBO0FBQ0E7QWhEbEtBO0FBQ0E7QWdEbUtBO0E1RzR6VUE7QUFDQTtBNEd6elVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVHMnpVQTtBMEQzOVVBO0FrRDRKQTtBQU1BO0E1RzZ6VUE7QUFDQTtBQUNBO0E0RzN6VUE7QUFDQTtBNUc2elVBO0EwRHArVUE7QWtEc0tBO0FBR0E7QTVHK3pVQTtBQUNBO0FBQ0E7QTRHN3pVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUcrelVBO0E0Rzd6VUE7QUFDQTtBNUcrelVBO0EwRDkvVUE7QWtEbUxBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QTVHZzBVQTtBQUNBO0EwRGhnVkE7QWtENktBO0FBc0JBO0FBQ0E7QTVHaTBVQTtBMkR0NVVBO0FpRHVGQTtBNUdrMFVBO0EyRHo1VUE7QWlEdUZBO0E1R3EwVUE7QTJENTVVQTtBaUR1RkE7QTVHdzBVQTtBQUNBO0E0R3AwVUE7QUFDQTtBQUNBO0E1R3MwVUE7QTJEcDZVQTtBaURnR0E7QTVHdTBVQTtBMkR2NlVBO0FpRGdHQTtBNUcwMFVBO0EyRDE2VUE7QWlEZ0dBO0E1RzYwVUE7QTBEbGlWQTtBa0RpTkE7QUFPQTtBNUc4MFVBO0FBQ0E7QTRHMzBVQTtBQUNBO0FBQ0E7QTVHNjBVQTtBMER4aVZBO0FrRHlOQTtBQUlBO0FBQ0E7QTVHKzBVQTtBQUNBO0EwRHBqVkE7QWtEK05BO0FBUUE7QUFDQTtBNUdpMVVBO0FBQ0E7QTRHLzBVQTtBQUNBO0FBQ0E7QUFDQTtBNUdpMVVBO0E0Ry8wVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUdpMVVBO0EyRDc4VUE7QWlEOEhBO0E1R2sxVUE7QTJEaDlVQTtBaUQ4SEE7QTVHcTFVQTtBMkRuOVVBO0FpRDhIQTtBNUd3MVVBO0EwRDNrVkE7QWtENk9BO0FBU0E7QUFDQTtBQUNBO0E1R3kxVUE7QTJENTlVQTtBaURxSUE7QTVHMDFVQTtBMkQvOVVBO0FpRHFJQTtBNUc2MVVBO0EyRGwrVUE7QWlEcUlBO0E1R2cyVUE7QUFDQTtBMEQzbFZBO0FrRDZQQTtBQUVBO0E1R2cyVUE7QUFDQTtBNEc3MVVBO0FBQ0E7QUFDQTtBQUNBO0E1RysxVUE7QTRHNzFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RysxVUE7QTBEM21WQTtBa0R3UUE7QUFNQTtBNUdpMlVBO0EyRDEvVUE7QWlEMkpBO0E1R2syVUE7QTJENy9VQTtBaUQySkE7QTVHcTJVQTtBMkRoZ1ZBO0FpRDJKQTtBNUd3MlVBO0FBQ0E7QTJEcGdWQTtBaURnS0E7QUFDQTtBNUd1MlVBO0EyRHhnVkE7QWlEZ0tBO0FBQ0E7QTVHMjJVQTtBMkQ1Z1ZBO0FpRGdLQTtBQUNBO0E1RysyVUE7QTBEcm9WQTtBQ3FIQTtBaURxS0E7QTVHKzJVQTtBMkRwaFZBO0FpRHFLQTtBNUdrM1VBO0EyRHZoVkE7QWlEcUtBO0E1R3EzVUE7QUFDQTtBNEdqM1VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEelNBO0FBQ0E7QTVENnBWQTtBMER4cFZBO0FrRCtSQTtBQU9BO0E1R3MzVUE7QTJEdmlWQTtBaURtTEE7QTVHdTNVQTtBMkQxaVZBO0FpRG1MQTtBNUcwM1VBO0EyRDdpVkE7QWlEbUxBO0E1RzYzVUE7QUFDQTtBNEczM1VBO0FoRGpUQTtBQUNBO0E1RCtxVkE7QTRHejNVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUcyM1VBO0EwRHJyVkE7QWtEaVRBO0FBV0E7QTVHNjNVQTtBQUNBO0E0RzMzVUE7QUFDQTtBNUc2M1VBO0E0R3gzVUE7QUFDQTtBQUNBO0E1RzAzVUE7QTRHejNVQTtBQUhBO0FBSUE7QUFDQTtBNUc0M1VBO0FBQ0E7QTRHejNVQTtBQUNBO0FBQ0E7QTVHMjNVQTtBMEQzc1ZBO0FrRDhVQTtBQUtBO0E1RzQzVUE7QTJEMWxWQTtBaURnT0E7QTVHNjNVQTtBMkQ3bFZBO0FpRGdPQTtBNUdnNFVBO0EyRGhtVkE7QWlEZ09BO0E1R200VUE7QUFDQTtBNEdoNFVBO0FoRC9WQTtBQUNBO0FnRGdXQTtBNUdtNFVBO0EyRHptVkE7QWlEd09BO0E1R280VUE7QTJENW1WQTtBaUR3T0E7QTVHdTRVQTtBMkQvbVZBO0FpRHdPQTtBNUcwNFVBO0EwRHZ1VkE7QWtEeVZBO0FBT0E7QWhEdFdBO0FBQ0E7QTVEa3ZWQTtBQUNBO0E0RzE0VUE7QUFFQTtBNUcyNFVBO0E0R3o0VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVHMjRVQTtBNEd4NFVBO0FBQ0E7QUFDQTtBaER6WEE7QUFDQTtBZ0QwWEE7QTVHMjRVQTtBMERod1ZBO0FrRGlYQTtBaER2WEE7QUFDQTtBNUQwd1ZBO0FBQ0E7QTRHNTRVQTtBQUVBO0FoRGxZQTtBQUNBO0FnRG1ZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1Rzg0VUE7QTRHNzRVQTtBQUNBO0E1Rys0VUE7QTJEOXBWQTtBaURpUkE7QTVHZzVVQTtBMkRqcVZBO0FpRGlSQTtBNUdtNVVBO0EyRHBxVkE7QWlEaVJBO0E1R3M1VUE7QTJEdnFWQTtBaURxUkE7QTVHcTVVQTtBMkQxcVZBO0FpRHFSQTtBNUd3NVVBO0EyRDdxVkE7QWlEcVJBO0E1RzI1VUE7QTBEcnlWQTtBa0QwWEE7QWhEaFlBO0FBQ0E7QTVEK3lWQTtBQUNBO0E0R3o1VUE7QUFDQTtBNUcyNVVBO0E0R3g1VUE7QUFDQTtBNUcwNVVBO0E0R3o1VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RzI1VUE7QTJEdHNWQTtBaUQ2U0E7QTVHNDVVQTtBMkR6c1ZBO0FpRDZTQTtBNUcrNVVBO0EyRDVzVkE7QWlENlNBO0E1R2s2VUE7QTRHaDZVQTtBQVpBO0FBYUE7QTVHbTZVQTtBQUNBO0EwRG4wVkE7QWtEZ1pBO0FBbUJBO0E1R282VUE7QUFDQTtBNEdsNlVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVHbTZVQTtBNEdqNlVBO0FBQ0E7QTVHbTZVQTtBMkRydVZBO0FpRG9VQTtBNUdvNlVBO0EyRHh1VkE7QWlEb1VBO0E1R3U2VUE7QTJEM3VWQTtBaURvVUE7QTVHMDZVQTtBMERuMlZBO0FrRGljQTtBQUVBO0E1R282VUE7QUFDQTtBNEdsNlVBO0FoRDVjQTtBQUNBO0FnRGdkQTtBNUdrNlVBO0EyRHh2VkE7QWlEbVZBO0E1R3c2VUE7QTJEM3ZWQTtBaURtVkE7QTVHMjZVQTtBMkQ5dlZBO0FpRG1WQTtBNUc4NlVBO0E0R3o2VUE7QWhEbmRBO0FBQ0E7QTVEKzNWQTtBMkRyd1ZBO0FpRDJWQTtBNUc2NlVBO0EyRHh3VkE7QWlEMlZBO0E1R2c3VUE7QTJEM3dWQTtBaUQyVkE7QTVHbTdVQTtBNEc1NlVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1Rzg2VUE7QTBEMzRWQTtBa0R1ZEE7QUFRQTtBQUNBO0E1R2c3VUE7QUFDQTtBNEc5NlVBO0FBSUE7QTVHNjZVQTtBMkQveFZBO0FpRGdYQTtBNUdrN1VBO0EyRGx5VkE7QWlEZ1hBO0E1R3E3VUE7QTJEcnlWQTtBaURnWEE7QTVHdzdVQTtBNEdwN1VBO0FBQ0E7QTVHczdVQTtBMkQzeVZBO0FpRHdYQTtBNUdzN1VBO0EyRDl5VkE7QWlEd1hBO0E1R3k3VUE7QTJEanpWQTtBaUR3WEE7QTVHNDdVQTtBNEd2N1VBO0FBQ0E7QTVHeTdVQTtBMEQ1NlZBO0FrRHFmQTtBQUNBO0E1RzA3VUE7QUFDQTtBNEd0N1VBO0FBQ0E7QTVHdzdVQTtBMERwN1ZBO0FrRDhmQTtBQUVBO0FBQ0E7QTVHdzdVQTtBQUNBO0FBQ0E7QTRHbjdVQTtBQUNBO0FBQ0E7QUFDQTtBNUdxN1VBO0E0R3A3VUE7QUFDQTtBNUdzN1VBO0E0R3I3VUE7QUFDQTtBQUNBO0E1R3U3VUE7QTRHajdVQTtBQUNBO0E1R203VUE7QTJEcjFWQTtBaURvYUE7QTVHbzdVQTtBMkR4MVZBO0FpRG9hQTtBNUd1N1VBO0EyRDMxVkE7QWlEb2FBO0E1RzA3VUE7QTRHcjdVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1R3U3VUE7QTBEejlWQTtBa0Q4aEJBO0FBTUE7QUFDQTtBQUNBO0E1R3k3VUE7QUFDQTtBNEd2N1VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUd5N1VBO0E0R3Y3VUE7QUFHQTtBaER6akJBO0FBQ0E7QTVEaS9WQTtBMEQ1K1ZBO0FrRGdqQkE7QWhEdGpCQTtBQUNBO0E1RHMvVkE7QUFDQTtBNEd4N1VBO0FBRUE7QWhEbGtCQTtBQUNBO0E1RDQvVkE7QUFDQTtBNEdwN1VBO0FBQ0E7QTVHczdVQTtBNEdwN1VBO0FBRUE7QWhEL2tCQTtBQUNBO0E1RHFnV0E7QUFDQTtBNEdqN1VBO0FBQ0E7QTVHbTdVQTtBMkQvNFZBO0FpRDhkQTtBNUdvN1VBO0EyRGw1VkE7QWlEOGRBO0E1R3U3VUE7QTJEcjVWQTtBaUQ4ZEE7QTVHMDdVQTtBMkR4NVZBO0FpRGtlQTtBNUd5N1VBO0EyRDM1VkE7QWlEa2VBO0E1RzQ3VUE7QTJEOTVWQTtBaURrZUE7QTVHKzdVQTtBNEc1N1VBO0FBQ0E7QWhEMWxCQTtBQUVBO0FnRDBsQkE7QTVHKzdVQTtBNEc3N1VBO0FBQ0E7QTVHKzdVQTtBNEc3N1VBO0FBQ0E7QTVHKzdVQTtBNEc3N1VBO0FBQ0E7QTVHKzdVQTtBQUNBO0E0RzM3VUE7QUFDQTtBNUc2N1VBO0EyRHA3VkE7QWlEMmZBO0E1RzQ3VUE7QTJEdjdWQTtBaUQyZkE7QTVHKzdVQTtBMkQxN1ZBO0FpRDJmQTtBNUdrOFVBO0FBQ0E7QTJEOTdWQTtBaURvZ0JBO0E1RzY3VUE7QTJEajhWQTtBaURvZ0JBO0E1R2c4VUE7QTJEcDhWQTtBaURvZ0JBO0E1R204VUE7QUFDQTtBNEc3N1VBO0FBQ0E7QTVHKzdVQTtBQUNBO0EwRGprV0E7QWtEb29CQTtBQUVBO0E1Rys3VUE7QTRHNTdVQTtBQUNBO0FoRHpvQkE7QUFFQTtBNUR1a1dBO0E0Rzc3VUE7QUFFQTtBNUc4N1VBO0E0RzU3VUE7QUFDQTtBNUc4N1VBO0E0RzU3VUE7QUFDQTtBNUc4N1VBO0E0RzE3VUE7QUFDQTtBQUNBO0FBQ0E7QTVHNDdVQTtBQUNBO0EwRG5sV0E7QWtEbXBCQTtBQUtBO0FBQ0E7QTVHKzdVQTtBQUNBO0EwRC9sV0E7QWtEbXFCQTtBQUNBO0FBQ0E7QTVHKzdVQTtBQUNBO0EwRDVsV0E7QWtEMHBCQTtBQUlBO0E1R2s4VUE7QUFDQTtBMEQxbVdBO0FDcUhBO0FpRHFqQkE7QUFDQTtBNUdvOFVBO0FBQ0E7QTBEaG5XQTtBQ3FIQTtBaURxakJBO0FBQ0E7QTVHMDhVQTtBQUNBO0EwRHRuV0E7QUNxSEE7QWlEcWpCQTtBQUNBO0E1R2c5VUE7QUFDQTtBMEQ1bldBO0FrRDZxQkE7QUFFQTtBNUdpOVVBO0EyRDNnV0E7QWlENGpCQTtBNUdrOVVBO0EyRDlnV0E7QWlENGpCQTtBNUdxOVVBO0EyRGpoV0E7QWlENGpCQTtBNUd3OVVBO0FBQ0E7QTBEMW9XQTtBa0RxckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVHdzlVQTtBQUNBO0EwRGxwV0E7QWtEcXJCQTtBQU1BO0E1RzI5VUE7QUFDQTtBMER2cFdBO0FrRDhyQkE7QWhEcHNCQTtBQUNBO0E1RGlxV0E7QUFDQTtBMEQ3cFdBO0FrRDhyQkE7QUFJQTtBNUcrOVVBO0FBQ0E7QTBEenBXQTtBa0RxckJBO0FBT0E7QTVHaStVQTtBQUNBO0EwRHZxV0E7QWtEeXNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVHaStVQTtBQUNBO0EwRGhyV0E7QWtEZ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1R20rVUE7QUFDQTtBMER4cldBO0FrRHN0QkE7QUFDQTtBQUNBO0E1R3ErVUE7QUFDQTtBMEQ5cldBO0FrRDB0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUd1K1VBO0FBQ0E7QTBEdHNXQTtBa0RtdUJBO0FoRHp1QkE7QUFDQTtBZ0QwdUJBO0FBQ0E7QUFDQTtBQUNBO0E1R3UrVUE7QUFDQTtBMERodFdBO0FrRDB1QkE7QUFDQTtBQUNBO0E1R3krVUE7QUFDQTtBMER0dFdBO0FDcUhBO0FpRDJuQkE7QUFDQTtBNUcwK1VBO0EyRHRtV0E7QWlEMm5CQTtBQUNBO0E1RzgrVUE7QTJEMW1XQTtBaUQybkJBO0FBQ0E7QTVHay9VQTtBQUNBO0EwRHB1V0E7QWtEb3ZCQTtBQUNBO0E1R20vVUE7QTRHbC9VQTtBQUNBO0E1R28vVUE7QTRHbC9VQTtBQUNBO0FBQ0E7QTVHby9VQTtBQUNBO0EwRGh2V0E7QWtEOHZCQTtBQUNBO0E1R3EvVUE7QUFDQTtBMERydldBO0FrRGl3QkE7QUFDQTtBNUd1L1VBO0FBQ0E7QTBEMXZXQTtBa0Rvd0JBO0FBQ0E7QUFDQTtBNUd5L1VBO0FBQ0E7QTBEaHdXQTtBa0R3d0JBO0FBRUE7QUFDQTtBNUcwL1VBO0FBQ0E7QTBEdHdXQTtBa0Q4d0JBO0FBQ0E7QUFDQTtBNUcyL1VBO0FBQ0E7QTBENXdXQTtBa0RxeEJBO0FoRDN4QkE7QUFDQTtBZ0Q0eEJBO0E1RzIvVUE7QTRHMS9VQTtBaEQ5eEJBO0FBQ0E7QTVEMnhXQTtBQUNBO0FBQ0E7QTRHeC9VQTtBQUNBO0FBQ0E7QUFDQTtBNUcwL1VBO0FBQ0E7QTRHeC9VQTtBQUNBO0E1RzAvVUE7QTBEanlXQTtBa0RzeUJBO0FBR0E7QTVHNC9VQTtBQUNBO0FBQ0E7QTRHMS9VQTtBQUNBO0E1RzQvVUE7QTJEcnJXQTtBaUQyckJBO0E1RzYvVUE7QTJEeHJXQTtBaUQyckJBO0E1R2dnVkE7QTJEM3JXQTtBaUQyckJBO0E1R21nVkE7QTJEOXJXQTtBaUQrckJBO0E1R2tnVkE7QTJEanNXQTtBaUQrckJBO0E1R3FnVkE7QTJEcHNXQTtBaUQrckJBO0E1R3dnVkE7QTRHcmdWQTtBQUNBO0FoRHZ6QkE7QUFFQTtBZ0R1ekJBO0E1R3dnVkE7QTRHdGdWQTtBQUNBO0E1R3dnVkE7QTRHdGdWQTtBQUNBO0E1R3dnVkE7QTRHdGdWQTtBQUNBO0E1R3dnVkE7QUFDQTtBNEdyZ1ZBO0FBQ0E7QTVHdWdWQTtBQUNBO0E0R3BnVkE7O0FBS0E7QTVHbWdWQTtBQUNBO0E0R2hnVkE7O0FBRUE7QTVHa2dWQTtBQUNBO0E2RzkyV0E7QUFDQTtBN0dnM1dBO0E2Ry8yV0E7QUFDQTtBN0dpM1dBO0E2Ry8yV0E7QUFDQTtBQUNBO0E3R2kzV0E7QTZHLzJXQTtBQUNBO0FBQ0E7QUFDQTtBN0dpM1dBO0FBQ0E7QTZHOTJXQTtBQUNBO0FBQ0E7QUFDQTtBN0dnM1dBO0FBQ0E7QThHcDRXQTtBQUNBO0FBSUE7QTlHbTRXQTtBMkQvdldBO0FtRHRJQTtBOUd3NFdBO0EyRGx3V0E7QW1EdElBO0E5RzI0V0E7QTJEcndXQTtBbUR0SUE7QTlHODRXQTtBOEczNFdBO0FBQ0E7QTlHNjRXQTtBMkQzd1dBO0FtRGhJQTtBOUc4NFdBO0EyRDl3V0E7QW1EaElBO0E5R2k1V0E7QTJEanhXQTtBbURoSUE7QTlHbzVXQTtBOEdqNVdBO0FBQ0E7QTlHbTVXQTtBQUNBO0E4R2g1V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlHazVXQTtBMkRoeVdBO0FtRGhIQTtBOUdtNVdBO0EyRG55V0E7QW1EaEhBO0E5R3M1V0E7QTJEdHlXQTtBbURoSEE7QTlHeTVXQTtBOEd2NVdBO0FBQ0E7QUFDQTtBOUd5NVdBO0FBQ0E7QThHdDVXQTtBQUNBO0FBQ0E7QUFDQTtBOUd3NVdBO0FBQ0E7QStHNzdXQTtBQUNBO0FBQ0E7QS9HKzdXQTtBK0c5N1dBO0FBQ0E7QUFJQTtBL0c2N1dBO0EyRDV6V0E7QW9EbklBO0EvR2s4V0E7QTJEL3pXQTtBb0RuSUE7QS9HcThXQTtBMkRsMFdBO0FvRG5JQTtBL0d3OFdBO0FBQ0E7QWdINzhXQTtBQUNBO0FBQ0E7QWhIKzhXQTtBZ0g5OFdBO0FBQ0E7QWhIZzlXQTtBQUNBO0FpSHY5V0E7QUFDQTtBakh5OVdBO0EwRHQ4V0E7QXVEakJBO0FBRUE7QWpIeTlXQTtBQUNBO0FBQ0E7QWlIcjlXQTtBQUFBO0FqSHc5V0E7QWlIdjlXQTtBQUNBO0FBQ0E7QWpIeTlXQTtBMkQ5MVdBO0FzRHpIQTtBQUNBO0FqSDA5V0E7QTJEbDJXQTtBc0R6SEE7QUFDQTtBakg4OVdBO0EyRHQyV0E7QXNEekhBO0FBQ0E7QWpIaytXQTtBQUNBO0FpSDk5V0E7QUFDQTtBQUNBO0FqSGcrV0E7QTJELzJXQTtBc0QvR0E7QWpIaStXQTtBMkRsM1dBO0FzRC9HQTtBakhvK1dBO0EyRHIzV0E7QXNEL0dBO0FqSHUrV0E7QWlIcitXQTtBQUFBO0FBQUE7QUFBQTtBakgwK1dBO0FBQ0E7QWlIeCtXQTtBQUNBO0FqSDArV0E7QUFDQTtBaUh4K1dBO0FBQ0E7QUFDQTtBakgwK1dBO0FpSHorV0E7QUFDQTtBakgyK1dBO0FpSHorV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpIMitXQTtBaUgxK1dBO0FBQ0E7QWpINCtXQTtBaUgxK1dBO0FBS0E7QUFDQTtBakh3K1dBO0EyRHg1V0E7QXNEcEZBO0FBQ0E7QWpIKytXQTtBMkQ1NVdBO0FzRHBGQTtBQUNBO0FqSG0vV0E7QTJEaDZXQTtBc0RwRkE7QUFDQTtBakh1L1dBO0FpSGwvV0E7QUFsQkE7QUFtQkE7QWpIcS9XQTtBQUNBO0FpSGwvV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpIby9XQTtBaUhsL1dBO0FBQ0E7QWpIby9XQTtBaUhqL1dBO0FBQ0E7QUFDQTtBakhtL1dBO0FBQ0E7QWlILytXQTtBQUNBO0FBQ0E7QUFDQTtBakhpL1dBO0FBQ0E7QWlILytXQTtBQUNBO0FBQ0E7QWpIaS9XQTtBaUhoL1dBO0FBQ0E7QWpIay9XQTtBaUhoL1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FqSGcvV0E7QWlIbC9XQTtBQUFBO0FqSHEvV0E7QWlIai9XQTtBQUNBO0FBQ0E7QUFDQTtBakhtL1dBO0FpSGwvV0E7QUFKQTtBQUtBO0FqSHEvV0E7QUFDQTtBaUhuL1dBO0FBQ0E7QWpIcS9XQTtBaUhwL1dBO0FBQUE7QWpIdS9XQTtBaUhwL1dBO0FBQ0E7QUFDQTtBakhzL1dBO0FpSG4vV0E7QUFDQTtBQUNBO0FBQ0E7QWpIcS9XQTtBaUhuL1dBO0FBQ0E7QUFDQTtBQUNBO0FqSHEvV0E7QWlIai9XQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqSG0vV0E7QWlIai9XQTtBQUNBO0FqSG0vV0E7QWlIaC9XQTtBQUNBO0FBQ0E7QUFDQTtBakhrL1dBO0FpSGgvV0E7QUFFQTtBakhpL1dBO0E0RHhvWEE7QUFDQTtBNUQwb1hBO0FpSGovV0E7QUFDQTtBQUNBO0FqSG0vV0E7QWlIbC9XQTtBQUFBO0FqSHEvV0E7QWlIcC9XQTtBQUFBO0FBQUE7QWpIdy9XQTtBQUNBO0FpSHAvV0E7QUFFQTtBQUNBO0FqSHEvV0E7QUFDQTtBaUhuL1dBO0FBQ0E7QUFDQTtBakhxL1dBO0FBQ0E7QWlIbi9XQTtBQUNBO0FBQ0E7QWpIcS9XQTtBQUNBO0FpSG4vV0E7QUFDQTtBakhxL1dBO0FpSG4vV0E7QUFDQTtBakhxL1dBO0FBQ0E7QWlIbC9XQTtBQUNBO0FBQ0E7QWpIby9XQTtBaUhuL1dBO0FBQ0E7QUFDQTtBakhxL1dBO0FBQ0E7QWlIOStXQTtBQUNBO0FqSGcvV0E7QWlILytXQTtBQUNBO0FqSGkvV0E7QTBEenFYQTtBdUR1TEE7QXJEN0xBO0FBQ0E7QTVEbXJYQTtBQUNBO0FpSGgvV0E7QUFDQTtBQUNBO0FqSGsvV0E7QTBEMXFYQTtBdURzTEE7QUFJQTtBakhvL1dBO0FBQ0E7QWlIai9XQTtBQUNBO0FqSG0vV0E7QUFDQTtBaUhoL1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqSGsvV0E7QUFDQTtBaUhoL1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqSGsvV0E7QWlIaC9XQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqSGsvV0E7QUFDQTtBa0h2dVhBO0FBQ0E7QWxIeXVYQTtBa0hydVhBO0FBQ0E7QUFDQTtBdERNQTtBQUNBO0E1RGt1WEE7QWtIdHVYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsSHd1WEE7QWtIcnVYQTtBQUNBO0FBQ0E7QWxIdXVYQTtBa0h0dVhBO0FBQUE7QWxIeXVYQTtBQUNBO0FtSC92WEE7QUFFQTtBbkhnd1hBO0FtSDl2WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5IZ3dYQTtBbUg3dlhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5IK3ZYQTtBQUNBO0FtSDN2WEE7QUFFQTtBbkg0dlhBO0FtSDF2WEE7QUFDQTtBbkg0dlhBO0FtSDF2WEE7QUFDQTtBbkg0dlhBO0FtSDF2WEE7QUFDQTtBbkg0dlhBO0FBQ0E7QW9IanlYQTtBQUNBO0FBQ0E7QXBIbXlYQTtBb0hqeVhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEhteVhBO0FvSGh5WEE7QUFDQTtBQUNBO0FBQ0E7QXBIa3lYQTtBb0gveFhBO0FBQ0E7QUFDQTtBcEhpeVhBO0FvSDl4WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwSGd5WEE7QUFDQTtBb0g3eFhBO0FBQ0E7QUFDQTtBcEgreFhBO0FvSDV4WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBIOHhYQTtBb0gzeFhBO0FBQ0E7QUFDQTtBcEg2eFhBO0FBQ0E7QW9IMXhYQTtBQUNBO0FBQ0E7QXBINHhYQTtBb0h6eFhBO0FBQ0E7QUFDQTtBcEgyeFhBO0FvSHh4WEE7QUFDQTtBQUNBO0FBQ0E7QXBIMHhYQTtBQUNBO0FvSHZ4WEE7QUFDQTtBQUNBO0FBQ0E7QXBIeXhYQTtBQUNBO0FvSHR4WEE7QUFDQTtBcEh3eFhBO0FvSHJ4WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEh1eFhBO0FvSHR4WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBId3hYQTtBb0hweFhBO0FBQ0E7QXBIc3hYQTtBb0hueFhBO0FBQ0E7QUFDQTtBQUNBO0FwSHF4WEE7QW9IbHhYQTtBQUNBO0FBQ0E7QXBIb3hYQTtBQUNBO0FvSGp4WEE7QUFDQTtBQUNBO0FBQ0E7QXBIbXhYQTtBb0hoeFhBO0FBQ0E7QXBIa3hYQTtBb0gvd1hBO0FBQ0E7QXBIaXhYQTtBb0g5d1hBO0FBQ0E7QUFDQTtBcEhneFhBO0FvSDd3WEE7QUFDQTtBQUNBO0FwSCt3WEE7QUFDQTtBb0g1d1hBO0FBQ0E7QUFDQTtBcEg4d1hBO0FvSDN3WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEg2d1hBO0FvSDV3WEE7QUFDQTtBQUNBO0FwSDh3WEE7QW9IMXdYQTtBQUNBO0FwSDR3WEE7QUFDQTtBcUhyNlhBO0FBQUE7QXJIdzZYQTtBcUh2NlhBO0FBQUE7QXJIMDZYQTtBcUh6NlhBO0FBQUE7QXJINDZYQTtBcUgzNlhBO0FBQUE7QUFBQTtBckgrNlhBO0FxSDk2WEE7QUFBQTtBQUFBO0FySGs3WEE7QXFIajdYQTtBQUFBO0FBQUE7QUFBQTtBckhzN1hBO0FxSHI3WEE7QUFBQTtBQUFBO0FySHk3WEE7QXFIeDdYQTtBQUFBO0FySDI3WEE7QXFIejdYQTtBQUNBO0FySDI3WEE7QXFIMTdYQTtBQUZBO0FBR0E7QXJINjdYQTtBQUNBO0FxSDE3WEE7QUFDQTtBckg0N1hBO0EyRHIwWEE7QTBEbEhBO0FySDA3WEE7QTJEeDBYQTtBMERsSEE7QXJINjdYQTtBMkQzMFhBO0EwRGxIQTtBckhnOFhBO0FxSDU3WEE7QUFDQTtBQUVBO0FySDY3WEE7QXFINTdYQTtBQUpBO0FBS0E7QXJIKzdYQTtBQUNBO0FxSDU3WEE7QUFDQTtBckg4N1hBO0FBQ0E7QXFIMTdYQTtBQUNBO0FySDQ3WEE7QXFIejdYQTtBQUxBO0FBTUE7QXJINDdYQTtBQUNBO0FxSDE3WEE7QUFDQTtBckg0N1hBO0FxSHo3WEE7QUFDQTtBckgyN1hBO0FxSDE3WEE7QUFDQTtBQUNBO0FySDQ3WEE7QXFIMzdYQTtBQUhBO0FBSUE7QXJIODdYQTtBQUNBO0FxSDE3WEE7QUFDQTtBckg0N1hBO0FxSHo3WEE7QUFDQTtBQUNBO0FySDI3WEE7QXFIeDdYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FySDA3WEE7QXFIdjdYQTtBQUNBO0FySHk3WEE7QUFDQTtBcUh0N1hBO0FBQ0E7QXJIdzdYQTtBQUNBO0FzSC9nWUE7QUFBQTtBdEhraFlBO0FzSGpoWUE7QUFBQTtBdEhvaFlBO0FBQ0E7QXNIbGhZQTtBQUNBO0F0SG9oWUE7QUFDQTtBc0hoaFlBO0FBQUE7QXRIbWhZQTtBc0hsaFlBO0FBQ0E7QXRIb2hZQTtBQUNBO0F1SGhpWUE7QUFBQTtBQUFBO0F2SG9pWUE7QXVIbGlZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2SG9pWUE7QXVIbGlZQTtBQUNBO0FBQ0E7QXZIb2lZQTtBdUhuaVlBO0FBQ0E7QXZIcWlZQTtBdUhuaVlBO0FBQUE7QXZIc2lZQTtBdUhyaVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIdWlZQTtBdUhyaVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZIdWlZQTtBdUhyaVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkh1aVlBO0F1SHJpWUE7QUFBQTtBdkh3aVlBO0FBQ0E7QXdIbmxZQTtBQUNBO0F4SHFsWUE7QTBEbGtZQTtBOERqQkE7QUFFQTtBeEhxbFlBO0FBQ0E7QUFDQTtBd0hqbFlBO0FBQUE7QXhIb2xZQTtBd0hubFlBO0FBQ0E7QUFDQTtBeEhxbFlBO0EyRDE5WEE7QTZEekhBO0FBQ0E7QXhIc2xZQTtBMkQ5OVhBO0E2RHpIQTtBQUNBO0F4SDBsWUE7QTJEbCtYQTtBNkR6SEE7QUFDQTtBeEg4bFlBO0FBQ0E7QXdIMWxZQTtBQUNBO0FBQ0E7QXhINGxZQTtBMkQzK1hBO0E2RC9HQTtBeEg2bFlBO0EyRDkrWEE7QTZEL0dBO0F4SGdtWUE7QTJEai9YQTtBNkQvR0E7QXhIbW1ZQTtBd0hqbVlBO0FBQUE7QUFBQTtBQUFBO0F4SHNtWUE7QUFDQTtBd0hwbVlBO0FBQ0E7QXhIc21ZQTtBQUNBO0F3SHBtWUE7QUFDQTtBQUNBO0F4SHNtWUE7QXdIcm1ZQTtBQUNBO0F4SHVtWUE7QXdIcm1ZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEh1bVlBO0F3SHRtWUE7QUFDQTtBeEh3bVlBO0F3SHRtWUE7QUFLQTtBQUNBO0F4SG9tWUE7QTJEcGhZQTtBNkRwRkE7QUFDQTtBeEgybVlBO0EyRHhoWUE7QTZEcEZBO0FBQ0E7QXhIK21ZQTtBMkQ1aFlBO0E2RHBGQTtBQUNBO0F4SG1uWUE7QXdINW1ZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEg4bVlBO0F3SDVtWUE7QUFDQTtBeEg4bVlBO0FBQ0E7QXdIMW1ZQTtBQUNBO0FBQ0E7QUFDQTtBeEg0bVlBO0FBQ0E7QXdIMW1ZQTtBQUNBO0FBQ0E7QXhING1ZQTtBd0gzbVlBO0FBQ0E7QXhINm1ZQTtBd0gzbVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0F4SDJtWUE7QXdIN21ZQTtBQUFBO0F4SGduWUE7QXdINW1ZQTtBQUNBO0FBQ0E7QUFDQTtBeEg4bVlBO0F3SDdtWUE7QUFKQTtBQUtBO0F4SGduWUE7QUFDQTtBd0g5bVlBO0FBQ0E7QXhIZ25ZQTtBd0gvbVlBO0FBQUE7QXhIa25ZQTtBd0gvbVlBO0FBQ0E7QUFDQTtBeEhpbllBO0F3SDltWUE7QUFDQTtBQUNBO0F4SGduWUE7QXdIN21ZQTtBQUNBO0FBQ0E7QUFDQTtBeEgrbVlBO0F3SDdtWUE7QUFDQTtBQUNBO0FBQ0E7QXhIK21ZQTtBd0gzbVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhINm1ZQTtBd0gzbVlBO0FBQ0E7QXhINm1ZQTtBd0gxbVlBO0FBQ0E7QUFDQTtBQUNBO0F4SDRtWUE7QXdIMW1ZQTtBQUVBO0F4SDJtWUE7QTREL3ZZQTtBQUNBO0E1RGl3WUE7QXdIM21ZQTtBQUNBO0FBQ0E7QXhINm1ZQTtBd0g1bVlBO0FBQUE7QXhIK21ZQTtBd0g5bVlBO0FBQUE7QXhIaW5ZQTtBQUNBO0F3SDdtWUE7QUFFQTtBQUNBO0F4SDhtWUE7QUFDQTtBd0g1bVlBO0FBQ0E7QUFDQTtBeEg4bVlBO0FBQ0E7QXdINW1ZQTtBQUNBO0FBQ0E7QXhIOG1ZQTtBQUNBO0F3SDVtWUE7QUFDQTtBeEg4bVlBO0F3SDVtWUE7QUFDQTtBeEg4bVlBO0FBQ0E7QXdIM21ZQTtBQUNBO0FBQ0E7QXhINm1ZQTtBd0g1bVlBO0FBQ0E7QUFDQTtBeEg4bVlBO0FBQ0E7QXdIdm1ZQTtBQUNBO0F4SHltWUE7QXdIeG1ZQTtBQUNBO0F4SDBtWUE7QTBEL3hZQTtBOERvTEE7QTVEMUxBO0FBQ0E7QTVEeXlZQTtBQUNBO0F3SHptWUE7QUFDQTtBQUNBO0F4SDJtWUE7QTBEaHlZQTtBOERtTEE7QUFJQTtBeEg2bVlBO0FBQ0E7QXdIMW1ZQTtBQUNBO0F4SDRtWUE7QUFDQTtBQWp6WUE7QUFDQTtBQUNBO0FBQ0E7QUFtellBO0FBQ0E7QUFoellBO0FBQ0E7QUFDQTtBQUNBO0FBa3pZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBL3lZQTtBQUNBO0FBaXpZQTtBQUNBO0FBOXlZQTtBQUNBO0FBZ3pZQTtBQUNBO0FBM3lZQTtBQUlBO0FBMHlZQTtBMkQ1dVlBO0EzRGhFQTtBQSt5WUE7QTJEL3VZQTtBM0RoRUE7QUFrellBO0EyRGx2WUE7QTNEaEVBO0FBcXpZQTtBQWx6WUE7QUFDQTtBQUNBO0FBb3pZQTtBMkR6dllBO0EzRHpEQTtBQXF6WUE7QTJENXZZQTtBM0R6REE7QUF3ellBO0EyRC92WUE7QTNEekRBO0FBMnpZQTtBMkRsd1lBO0EzRHJEQTtBQTB6WUE7QTJEcndZQTtBM0RyREE7QUE2ellBO0EyRHh3WUE7QTNEckRBO0FBZzBZQTtBQUNBO0FBMXpZQTtBQUNBO0FBQ0E7QUE0ellBO0FBQ0E7QUExellBO0FBQ0E7QUFDQTtBQTR6WUE7QUFDQTtBQTF6WUE7QUFDQTtBQUNBO0FBNHpZQTtBQTF6WUE7QUFDQTtBQTR6WUE7QUFDQTtBQUNBO0FBbjBZQTtBQUNBO0FBQ0E7QUE0ellBO0FBMXpZQTtBQUNBO0FBNHpZQTtBQUNBO0FBenpZQTtBQUNBO0FBMnpZQTtBQUNBO0FBenpZQTtBQUNBO0FBQ0E7QUFDQTtBQTJ6WUE7QUF6ellBO0FBTEE7QUFNQTtBQTR6WUE7QUFDQTtBQUNBO0FBMXpZQTtBQUNBO0FBNHpZQTtBQTN6WUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE2ellBO0FBM3pZQTtBQUNBO0FBNnpZQTtBQTN6WUE7QUFDQTtBQTZ6WUE7QUFDQTtBQTF6WUE7QUFDQTtBQTR6WUE7QUFDQTtBQTF6WUE7QUFDQTtBQUNBO0FBNHpZQTtBQUNBO0FBenpZQTtBQUNBO0FBMnpZQTtBQUNBO0FBenpZQTtBQUNBO0FBQ0E7QUFDQTtBQTJ6WUE7QUExellBO0FBQ0E7QUE0ellBO0EyRHAxWUE7QTNEMEJBO0FBQ0E7QUE2ellBO0EyRHgxWUE7QTNEMEJBO0FBQ0E7QUFpMFlBO0EyRDUxWUE7QTNEMEJBO0FBQ0E7QUFxMFlBO0FBQ0E7QUFoMFlBO0FBQ0E7QUFrMFlBO0FBaDBZQTtBQUNBO0FBazBZQTtBQUNBO0FBNXpZQTtBQUNBO0FBQ0E7QUE4ellBO0FBQ0E7QUE1ellBO0FBQUE7QUErellBO0FBQ0E7QUE5ellBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFnMFlBO0FBQ0E7QUE5ellBOztBQUdBO0FBK3pZQTtBQUNBO0FBN3pZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBK3pZQTtBMkQ5NFlBO0EzRGlGQTtBQUNBO0FBZzBZQTtBMkRsNVlBO0EzRGlGQTtBQUNBO0FBbzBZQTtBMkR0NVlBO0EzRGlGQTtBQUNBO0FBdzBZQTtBQXIwWUE7QUFDQTtBQXUwWUE7QUFDQTtBQWwwWUE7QUFDQTtBQW8wWUE7QTJEajZZQTtBM0QrRkE7QUFxMFlBO0EyRHA2WUE7QTNEK0ZBO0FBdzBZQTtBMkR2NllBO0EzRCtGQTtBQTIwWUE7QUFDQTtBQXYwWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXkwWUE7QUFDQTtBQXYwWUE7QUFDQTtBQUNBO0FBeTBZQTtBQUNBO0FBdjBZQTtBQUNBO0FBeTBZQTtBeUhua1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OyIsInNvdXJjZVJvb3QiOiIifQ==*/