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

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

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

.adsbygoogle.ad-dev {
  background-color: #ddd;
  min-height: 64px;
}

.c-sidebar .sidebar-ad {
  text-align: center;
}

.articles__content-block--ad {
  text-align: center;
  margin-top: 1em;
  margin-bottom: 2.5em;
}

.Post_footer__ad {
  max-width: 50rem;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 1.5rem;
  margin-top: 1.5rem;
}

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

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

.video-ad div {
  margin: 0 auto;
}

.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;
}
.Header__userpic .Userpic {
  width: 36px !important;
  height: 36px !important;
}
@media only screen and (min-width: 47.5em) {
  .Header__userpic .Userpic {
    width: 40px !important;
    height: 40px !important;
    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;
}
.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLjA3OTllNWZkOTkwOTA3MDlhZTkyLmNzcyIsInNvdXJjZXMiOlsiLi9zcmMvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hcHAuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19mbGV4LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24tZ3JvdXAuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FsbG91dC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFyLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3M/dW5kZWZpbmVkIiwiLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2Nzcz91bmRlZmluZWQiLCIuL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2xheW91dC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX3RoZW1lcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvbWl4aW5zLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mb3VuZGF0aW9uLW92ZXJyaWRlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2FuaW1hdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZm9ybXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL21hcmtkb3duLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvQXBwLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvY2FyZHMvQmVuZWZpY2lhcnlTZWxlY3Rvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2NhcmRzL0NvbW1lbnQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9NYXJrZG93blZpZXdlci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2NhcmRzL1Bvc3RTdW1tYXJ5LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvY2FyZHMvUG9zdEZ1bGwuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9Qb3N0c0xpc3Quc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9jYXJkcy9Ob3RpZmljYXRpb25zTGlzdC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0ljb24uc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9Mb2FkaW5nSW5kaWNhdG9yLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvVXNlcnBpYy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZvdGluZy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Zvcm1hdHRlZEFzc2V0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvUmVwbHlFZGl0b3Iuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TbGF0ZUVkaXRvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Ryb3Bkb3duTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZlcnRpY2FsTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1ZvdGVzQW5kQ29tbWVudHMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9UYWdMaXN0LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvUmVwdXRhdGlvbi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1JlYmxvZy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1NoYXJlTWVudS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0F1dGhvci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9BdXRob3JEcm9wZG93bi5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1VzZXJOYW1lcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1NvcnRPcmRlci9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9FbGFzdGljU2VhcmNoSW5wdXQvc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvSWNvbkJ1dHRvbi9zdHlsZXMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TdGVlbUxvZ28vc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlZW1NYXJrZXQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9TYW5pdGl6ZWRMaW5rL3N0eWxlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0Ryb3Bkb3duLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvTm90aWNlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL0dvb2dsZUFkLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvR3B0QWQuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9Qb3N0Q2F0ZWdvcnlCYW5uZXIuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9lbGVtZW50cy9GbGFnQnV0dG9uLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvZWxlbWVudHMvVmlkZW9BZC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL2VsZW1lbnRzL1Zpc3VhbEVkaXRvci5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvSGVhZGVyL3N0eWxlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvTG9naW5Gb3JtLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9TaWRlUGFuZWwvc3R5bGVzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvbW9kdWxlcy9TZXR0aW5ncy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvVXNlcldhbGxldC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL21vZHVsZXMvUG9zdEFkdmFuY2VkU2V0dGluZ3Muc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Qb3N0c0luZGV4LnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvVG9waWNzLnNjc3M/dW5kZWZpbmVkIiwiLi9zcmMvYXBwL2NvbXBvbmVudHMvcGFnZXMvUG9zdC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1ByaXZhY3kuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Ub3Muc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Vc2VyUHJvZmlsZS5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1RhZ3NJbmRleC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1dlbGNvbWUuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9BYm91dC5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL0NvbW11bml0aWVzSW5kZXguc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9Db21tdW5pdHlSb2xlcy5zY3NzP3VuZGVmaW5lZCIsIi4vc3JjL2FwcC9jb21wb25lbnRzL3BhZ2VzL1Jld2FyZHMuc2Nzcz91bmRlZmluZWQiLCIuL3NyYy9hcHAvY29tcG9uZW50cy9wYWdlcy9MaXN0TWFuYWdlbWVudC5zY3NzP3VuZGVmaW5lZCIsIi4vbm9kZV9tb2R1bGVzL3JlYWN0LXRhYnMvc3R5bGUvcmVhY3QtdGFicy5jc3M/dW5kZWZpbmVkIl0sInNvdXJjZXNDb250ZW50IjpbIlxuQGltcG9ydCBcIi4vZm91bmRhdGlvbi1zZXR0aW5nc1wiO1xuQGltcG9ydCBcIn5mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvblwiO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcodHJ1ZSk7XG5cbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9sYXlvdXRcIjtcbkBpbXBvcnQgXCIuL3RoZW1lc1wiO1xuXG5AaW1wb3J0IFwiLi9mb3VuZGF0aW9uLW92ZXJyaWRlc1wiO1xuXG5AaW1wb3J0ICcuL2FuaW1hdGlvbic7XG5cbkBpbXBvcnQgXCIuL2ZvbnRzXCI7XG5AaW1wb3J0IFwiLi9mb3Jtc1wiO1xuXG5AaW1wb3J0IFwiLi9tYXJrZG93blwiO1xuQGltcG9ydCBcInNyYy9hcHAvY29tcG9uZW50cy9hbGxcIjtcblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIGJvZHkge1xuICAgIGZvbnQtc2l6ZTogODYlO1xuICB9XG59XG5cbi8qIE1lZGl1bSBvbmx5ICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIGJvZHkge1xuICAgIGZvbnQtc2l6ZTogOTIlO1xuICB9XG59XG5cbmEsIHBhdGgsIGNpcmNsZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHksIGZpbGwsIHN0cm9rZSAuM3MgZWFzZSAwcztcbn1cblxuLnNwYWNlLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjRyZW07XG59XG5cbi5jbGVhci1yaWdodCB7XG4gIGNsZWFyOiByaWdodDtcbn1cblxuLmNsZWFyLWxlZnQge1xuICBjbGVhcjogbGVmdDtcbn1cblxuLmNsZWFyLWJvdGgge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnN0cmlrZXRocm91Z2gge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cblxuLnVwcGVyY2FzZSwgbGFiZWwge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ud2hpc3RsZS12aWV3IHtcbiAgICAud2hpc3RsZS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cblxuXG4uc2Vjb25kYXJ5IHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cbiAgZm9udC1zaXplOiA5MCU7XG4gIGEge1xuICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICAgIDpob3ZlciB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLmJ1dHRvbi5ob2xsb3cubm8tYm9yZGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmJ1dHRvbi5zbGltIHtcbiAgcGFkZGluZzogNXB4O1xuICBtYXJnaW46IDVweDtcbn1cblxuQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLm1hcmdpbkxlZnQxcmVtIHtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG5cbi5Ob3RGb3VuZCB7XG4gIHdpZHRoOiA2NDBweDtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vIHNtYWxsIG9ubHlcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICB3aWR0aDogMzQwcHg7XG4gIH1cbn1cblxuLk5vdEZvdW5kX19tZW51IHtcbiB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMSU7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuICAgIGxpOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgfFwiO1xuICAgIH1cbiAgICBsaTpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG59XG5cbi5Ob3RGb3VuZF9faGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubm9QcmludCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50O1xufVxuXG4uYy1zaWRlYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjQwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICZfX21vZHVsZSB7XG4gICAgICBwYWRkaW5nOiAxLjVlbSAyZW07XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gIH1cbn1cblxuLnRoZW1lLWRhcmsgLmMtc2lkZWJhcl9faXRlbSB7XG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHN2ZyB7XG4gICAgICBmaWxsOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi5waGlzaHkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5wYWdlciB7bGlzdC1zdHlsZTogbm9uZX1cblxuYVtyZWw9XCJub29wZW5lclwiXTphZnRlcixcbmFbcmVsPVwibm9mb2xsb3cgbm9vcGVuZXJcIl06YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7IHV0ZjgsIDxzdmcgaGVpZ2h0PVwiMTAyNFwiIHdpZHRoPVwiNzY4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNjQwIDc2OEgxMjhWMjU3LjkwNTk5OTk5OTk5OTk1TDI1NiAyNTZWMTI4SDB2NzY4aDc2OFY1NzZINjQwVjc2OHpNMzg0IDEyOGwxMjggMTI4TDMyMCA0NDhsMTI4IDEyOCAxOTItMTkyIDEyOCAxMjhWMTI4SDM4NHpcIi8+PC9zdmc+Jyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNmVtO1xuICBoZWlnaHQ6IDAuNzVlbTtcbiAgdG9wOiAwLjA1ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMC4yZW07XG4gIG1hcmdpbi1yaWdodDogMC4yZW07XG4gIG9wYWNpdHk6IC41O1xufVxuXG4uUG9zdEZ1bGxfX2JvZHkgYVtyZWw9XCJub29wZW5lclwiXTphZnRlcixcbi5Qb3N0RnVsbF9fYm9keSBhW3JlbD1cIm5vZm9sbG93IG5vb3BlbmVyXCJdOmFmdGVyIHtcbiAgLy8gJGNvbG9yLXRleHQtZ3JheVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDsgdXRmOCwgPHN2ZyBoZWlnaHQ9XCIxMDI0XCIgd2lkdGg9XCI3NjhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02NDAgNzY4SDEyOFYyNTcuOTA1OTk5OTk5OTk5OTVMMjU2IDI1NlYxMjhIMHY3NjhoNzY4VjU3Nkg2NDBWNzY4ek0zODQgMTI4bDEyOCAxMjhMMzIwIDQ0OGwxMjggMTI4IDE5Mi0xOTIgMTI4IDEyOFYxMjhIMzg0elwiIGZpbGw9XCIlMjM3ODgxODdcIi8+PC9zdmc+Jyk7XG59XG5cbi5hZmZpbGlhdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgcGFkZGluZzogMCAwLjJyZW0gMC4wNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cbiAgLmFmZmlsaWF0aW9uLWVkaXQge1xuICAgIC5JY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmFmZmlsaWF0aW9uLWVkaXQge1xuICAuSWNvbiB7XG4gICAgbWFyZ2luOiAwIDAuMjVlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi51c2VyX3JvbGUge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogZ3JheTtcbiAgICBtYXJnaW46IDAgMC4yZW07XG59XG5cbi5hY2NvdW50X3dhcm4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiByZWQ7XG59XG5cbi5wb2ludGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi4zLjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogZmFsc2UsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxuXG4gIEBpZiAkcHJvdG90eXBlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuICB9XG59XG4iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJzsgICAgXG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUgb3IgYnJlYWtwb2ludCBuYW1lIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7IFxuICAgICAgXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuXG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWxheW91dCgkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAvLyBTaXppbmcgKGV4cGFuZClcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZGlyZWN0aW9uIGhlbHBlciBjbGFzc2VzXG4gICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGNoaWxkIGhlbHBlciBjbGFzc2VzXG4gICAgICAuI3skLXpmLXNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuI3skLXpmLXNpemV9LWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuI3skLXpmLXNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpOyAgXG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuXG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3IsIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gY2xlYXIge1xuICAgICAgJi5jbGVhciB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG5cbiAgICAgICAgICAgICYsICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBib3JkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG4gIC5hY2NvcmRpb24tbWVudSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICAgIGJvcmRlci10b3A6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdWJtZW51IGxpIHN0eWxpbmdcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJiA+IGEge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3VibWVudSB0b2dnbGVcbiAgICAuc3VibWVudS10b2dnbGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcblxuICAgICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ7XG5cbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gICAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB9XG5cbiAgICAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiBhcnJvd3MgYXJlIGVuYWJsZWQsIGRpc3BsYXkgdGhlbVxuICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBzbGFzaC5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gIC5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYW4gaG92ZXJlZCBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBmb3IgYm9yZGVyZWQgbWVudVxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cblxuICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgPiBsaSAgPiBhIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFNldCB0byBgbnVsbGAgdG8gZG8gbm90IGdlbmVyYXRlIHN0eWxlcyBmb3IgZGlyZWN0aW9uLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCkge1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgQGlmICRkaXIgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRkaXIpO1xuICB9XG59XG5cbi8vLyBEaXJlY3Rpb24gbW9kaWZpZXIgZm9yIGEgc2ltcGxlIE1lbnVcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnVcbkBtaXhpbiBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGRpcjogJGdsb2JhbC1sZWZ0KSB7XG4gICRuby1tYXJnaW4tZGlyOiAkZGlyO1xuICAkbWFyZ2luLWRpcjogZGlyZWN0aW9uLW9wcG9zaXRlKCRkaXIpO1xuXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skbm8tbWFyZ2luLWRpcn06IDA7XG4gICAgbWFyZ2luLSN7JG1hcmdpbi1kaXJ9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRtYXJnaW4tZGlyKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRwYWRkaW5nIFthdXRvXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbn1cblxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbc2lkZV0gLSBQb3NpdGlvbmluZyBmb3IgaWNvbnMuIENhbiBiZSBgc2lkZWAgKGxlZnQsIG9yIHJpZ2h0IG9uIFJUTCkgb3IgYHRvcGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcbiAgQGlmICRiYXNlIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICsgc3BhbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcG9zaXRpb24gPT0gc2lkZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWVudS1pY29uLXNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcblxuICAgICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRnbG9iYWwtcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICAgIC8vIE1ha2UgdmVydGljYWwgbWVudSB3aXRoIGljb25zIG9uIHRvcCB3b3JrXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgYSA+IHNwYW4ge1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC8vIE1lbnUgd2l0aCBib3JkZXJcbiAgICAmLm1lbnUtYm9yZGVyZWQge1xuICAgICAgbGkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbWVudS1ib3JkZXI7XG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZW51IHdpdGggYmFja2dyb3VuZCBob3ZlclxuICAgICYubWVudS1ob3ZlciB7XG4gICAgICBsaTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVudS10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gIH1cblxuICAvLyBBbGlnbiBjZW50ZXJcbiAgLm1lbnUtY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgID4gLm1lbnUge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IHRvcCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICAgICYudmVydGljYWwgPiBsaSA+IGEge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbGllZCB0byBuZXN0ZWQgPHVsPnNcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICB9XG4gIH1cblxuICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJpbGxkb3duLWFycm93LXNpemU7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuXG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuQG1peGluIGxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAxLjVyZW07XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8gV0FSTklORzogV2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gNi40XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbzogZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xuXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGxhYmVsLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGxhYmVsLWNvbG9yLCAkbGFiZWwtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJi5ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplOiAyNTBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgb3ZlcmxhcGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHVzaW5nIHRoZSBgcmV2ZWFsLWZvci0qYCBjbGFzc2VzIG9yIG1peGluLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuICAvLyBIaWRlcyBvdmVyZmxvdyBvbiBib2R5IHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIE92ZXJsYXAgb25seSBzdHlsZXMuXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4O1xuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldHMgdHJhbnNmb3JtIHRvIDAgdG8gc2hvdyBhbiBvZmYtY2FudmFzIHBhbmVsLlxuICAmLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBwb3NpdGlvbiBhbiBvZmYtY2FudmFzIHBhbmVsIHRvIHRoZSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20uXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzaXplOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLXNoYWRvdyBpcyBzZXQsIGFkZCBpdCBhcyBhIHBzZXVkby1lbGVtZW50LlxuICAvLyBUaGlzIG1pbWljcyB0aGUgb2ZmLWNhbnZhcyBwYW5lbCBoYXZpbmcgYSBsb3dlciB6LWluZGV4LCB3aXRob3V0IGhhdmluZyB0byBoYXZlIG9uZS5cbiAgQGlmICRvZmZjYW52YXMtc2hhZG93IHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vIHRyYW5zZm9ybSBvbiBvdmVybGFwIHRyYW5zaXRpb25cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzc1xuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAkb2ZmY2FudmFzLXNpemU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgfVxuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuQG1peGluIHNsaWRlci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQG1peGluIHNsaWRlci12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xuICAvLyBDb250YWluZXJcbiAgLnNsaWRlciB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEZpbGwgYXJlYVxuICAuc2xpZGVyLWZpbGwge1xuICAgIEBpbmNsdWRlIHNsaWRlci1maWxsO1xuICB9XG5cbiAgLy8gRHJhZ2dhYmxlIGhhbmRsZVxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWhhbmRsZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5zbGlkZXIuZGlzYWJsZWQsXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBzbGlkZXJcbiAgLnNsaWRlci52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gUlRMIHN1cHBvcnRcbiAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAuc2xpZGVyOm5vdCgudmVydGljYWwpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4gICAgLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc3dpdGNoXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgYWN0aXZlIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAudGlueSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5zbWFsbCBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLmxhcmdlIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaFxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHN3aXRjaCBjb250YWluZXIgYW5kIHBhZGRsZS5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGEgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2ggcGFkZGxlXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gc3dpdGNoIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIG1ha2UgdGhlbSB2YXJpYWJsZXNcbi8vIGFzayBhYm91dCBhY2Nlc3NpYmlsaXR5IG9uIGxhYmVsXG4vLyBjaGFuZ2UgY2xhc3MgbmFtZSBmb3IgdGV4dFxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGNvbnRhaW5lciBjbGFzcy5cbkBtaXhpbiBzd2l0Y2gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcblxuICAvLyBSZXNldHRpbmcgdGhlc2UgPGxhYmVsPiBwcmVzZXRzIHNvIHR5cGUgc3R5bGVzIGNhc2NhZGUgZG93blxuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXBhZGRsZS1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSB2aXN1YWwgc3R5bGUgd2hlbiB0aGUgc3dpdGNoIGlzIGFjdGl2ZVxuICBpbnB1dDpjaGVja2VkIH4gJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICAgIH1cbiAgfVxuXG4gIGlucHV0OmZvY3VzIH4gJiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXG5AbWl4aW4gc3dpdGNoLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xuICAjeyRnbG9iYWwtbGVmdH06IDglO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMTUlO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3dpdGNoLWhlaWdodCBbMnJlbV0gLSBIZWlnaHQgb2YgdGhlIHN3aXRjaCBib2R5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHN3aXRjaC1oZWlnaHQ6IDJyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcblxuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHBhZGRsZS1vZmZzZXQ7XG5cbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogJHBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLW9mZnNldDtcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcbiAgLy8gQ29udGFpbmVyIGNsYXNzXG4gIC5zd2l0Y2gge1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAkc3dpdGNoLWhlaWdodC10aW55LCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2gubGFyZ2Uge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDE2KSwgJHN3aXRjaC1oZWlnaHQtbGFyZ2UsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1lbGVtZW50LW5lc3RpbmcsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGN1cnNvciBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoYXMtdGlwLWN1cnNvcjogaGVscCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIExpc3RcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBmb250LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXggd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogJGhhcy10aXAtY3Vyc29yO1xufVxuXG5AbWl4aW4gdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgei1pbmRleDogMTIwMDtcblxuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi50b3A6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxuXG4gICYubGVmdDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJi5yaWdodDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcbiAgLy8gVG9wIGJhciBjb250YWluZXJcbiAgLnRvcC1iYXIge1xuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xuXG4gICAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludCkge1xuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbjogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzIHtcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdXNpbmcganVzdGlmeS1jb250ZW50XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnbGVmdCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnbGVmdCcsICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHsgXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6ICR2ZGlyKTtcbiAgICB9XG5cbiAgICAuYWxpZ24tc2VsZi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHk6ICR2ZGlyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmFsIGFsaWdubWVudCBvZiBjb250ZW50XG4gIC5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiBtaWRkbGUpO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gYnJlYWtwb2ludHNcbiAgIFxuJFM6IDIwZW07ICAvLyAzMjBweCAvIDE2XG4kRk06IDQwZW07IC8vIENvbmZvcm0gdG8gZm91bmRhdGlvbiAnbWVkaXVtJyBjc3MgYnJlYWtwb2ludFxuJE06IDQ3LjVlbTsgIC8vIDc2MHB4IC8gMTZcbiRGTDogNjRlbTsgLy8gQ29uZm9ybSB0byBmb3VuZGF0aW9uICdsYXJnZScgY3NzIGJyZWFrcG9pbnRcbiRMOiA3NWVtOyAvLyAxMjAwcHggLyAxNlxuXG4kWEw6IDEwMGVtOyAvLyAgMTYwMHB4IC8gMTZcblxuLy8gbWVkaWEgcXVlcmllc1xuXG5AbWl4aW4gTVEoJGNhbnZhcykge1xuICBAaWYgJGNhbnZhcyA9PSBTIHtcbiAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJFMpIHsgQGNvbnRlbnQ7IH0gXG4gIH1cbiAgQGlmICRjYW52YXMgPT0gRk0ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJEZNKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gTSB7XG4gICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRNKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gRkwge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJEZMKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gTCB7XG4gICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRMKSB7IEBjb250ZW50OyB9IFxuICB9XG4gIEBlbHNlIGlmICRjYW52YXMgPT0gWEwge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJFhMKSB7IEBjb250ZW50OyB9IFxuICB9XG59XG5cbi8vIEZvdW5kYXRpb24tbGlrZSBDbGFzc2VzXG4uc2hvdy1mb3ItbXEtbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4uaGlkZS1mb3ItbXEtbGFyZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBAaW5jbHVkZSBNUShMKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmhpZGUtZm9yLW1xLW1lZGl1bSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zaG93LWZvci1tcS1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufSIsIiR0aGVtZS1tYXA6IG51bGw7XG4kdGhlbWVzOiAoXG4gIG9yaWdpbmFsOiAoXG4gICAgY29sb3JBY2NlbnQ6ICRjb2xvci1ibHVlLFxuICAgIGNvbG9yQWNjZW50SG92ZXI6ICRjb2xvci1ibHVlLW9yaWdpbmFsLWxpZ2h0LFxuICAgIGNvbG9yQWNjZW50UmV2ZXJzZTogJGNvbG9yLWJsdWUtb3JpZ2luYWwtbGlnaHQsXG4gICAgY29sb3JXaGl0ZTogJGNvbG9yLXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvckVtcGhhc2lzOiAkY29sb3ItYmFja2dyb3VuZC1hbG1vc3Qtd2hpdGUsXG4gICAgYmFja2dyb3VuZENvbG9yT3BhcXVlOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGUsXG4gICAgYmFja2dyb3VuZFRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICBtb2R1bGVCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBtZW51QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrLFxuICAgIG1vZHVsZU1lZGl1bUJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIG5hdkJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIGhpZ2hsaWdodEJhY2tncm91bmRDb2xvcjogI2YzZmFmMCxcbiAgICBhbGVydEJhY2tncm91bmRDb2xvcjogI2ZmYTZhNixcbiAgICB0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3I6ICNmNGY0ZjQsXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodCxcbiAgICBib3JkZXJMaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQtbGlnaHRlc3QsXG4gICAgYm9yZGVyRGFyazogMXB4IHNvbGlkICRjb2xvci10ZXh0LWdyYXksXG4gICAgYm9yZGVyQWNjZW50OiAxcHggc29saWQgJGNvbG9yLWJsdWUsXG4gICAgYm9yZGVyRG90dGVkOiAxcHggZG90dGVkICRjb2xvci1ib3JkZXItbGlnaHQsXG4gICAgYm9yZGVyVHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50LFxuICAgIHJvdW5kZWRDb3JuZXJzOiA1cHgsXG4gICAgcm91bmRlZENvcm5lcnNUb3A6IDVweCA1cHggMCAwLFxuICAgIHJvdW5kZWRDb3JuZXJzQm90dG9tOiAwcHggMHB4IDVweCA1cHgsXG4gICAgaWNvbkNvbG9yU2Vjb25kYXJ5OiAjY2FjYWNhLFxuICAgIHRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LWRhcmssXG4gICAgdGV4dENvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LFxuICAgIHRleHRDb2xvckFjY2VudDogJGNvbG9yLXRleHQtYmx1ZSxcbiAgICB0ZXh0Q29sb3JBY2NlbnRIb3ZlcjogJGNvbG9yLWJsdWUtb3JpZ2luYWwtZGFyayxcbiAgICB0ZXh0Q29sb3JFcnJvcjogJGNvbG9yLXRleHQtcmVkLFxuICAgIGNvbnRlbnRCb3JkZXJBY2NlbnQ6ICRjb2xvci10cmFuc3BhcmVudCxcbiAgICBidXR0b25CYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS1vcmlnaW5hbC1kYXJrLFxuICAgIGJ1dHRvbkJhY2tncm91bmRIb3ZlcjogJGNvbG9yLWJsdWUtb3JpZ2luYWwtbGlnaHQsXG4gICAgYnV0dG9uVGV4dDogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgYnV0dG9uVGV4dFNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApLFxuICAgIGJ1dHRvblRleHRIb3ZlcjogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgYnV0dG9uQm94U2hhZG93OiAkY29sb3ItdHJhbnNwYXJlbnQsXG4gICAgbW9kYWxCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWFsbW9zdC13aGl0ZSxcbiAgICBtb2RhbFRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LWRhcmssXG4gICksXG4gIGxpZ2h0OiAoXG4gICAgY29sb3JBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBjb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQtZGFyayxcbiAgICBjb2xvckFjY2VudFJldmVyc2U6ICRjb2xvci1oaXZlLWJsYWNrLFxuICAgIGNvbG9yV2hpdGU6ICRjb2xvci13aGl0ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZS1kYXJrLFxuICAgIGJhY2tncm91bmRDb2xvckVtcGhhc2lzOiAkY29sb3ItYmFja2dyb3VuZC1hbG1vc3Qtd2hpdGUsXG4gICAgYmFja2dyb3VuZENvbG9yT3BhcXVlOiAkY29sb3ItYmFja2dyb3VuZC1vZmYtd2hpdGUsXG4gICAgYmFja2dyb3VuZFRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICBtb2R1bGVCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci13aGl0ZSxcbiAgICBtZW51QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrLFxuICAgIG1vZHVsZU1lZGl1bUJhY2tncm91bmRDb2xvcjogJGNvbG9yLXRyYW5zcGFyZW50LFxuICAgIG5hdkJhY2tncm91bmRDb2xvcjogJGNvbG9yLXdoaXRlLFxuICAgIGhpZ2hsaWdodEJhY2tncm91bmRDb2xvcjogI2YzZmFmMCxcbiAgICBhbGVydEJhY2tncm91bmRDb2xvcjogI2ZmYTZhNixcbiAgICB0YWJsZVJvd09kZEJhY2tncm91bmRDb2xvcjogI2U1ZTVlNSxcbiAgICB0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3I6ICNmNGY0ZjQsXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodCxcbiAgICBib3JkZXJMaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQtbGlnaHRlc3QsXG4gICAgYm9yZGVyRGFyazogMXB4IHNvbGlkICRjb2xvci10ZXh0LWdyYXksXG4gICAgYm9yZGVyQWNjZW50OiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJvcmRlckRvdHRlZDogMXB4IGRvdHRlZCAkY29sb3ItYm9yZGVyLWxlc3MtbGlnaHQsXG4gICAgYm9yZGVyVHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50LFxuICAgIHJvdW5kZWRDb3JuZXJzOiA1cHgsXG4gICAgcm91bmRlZENvcm5lcnNUb3A6IDVweCA1cHggMCAwLFxuICAgIHJvdW5kZWRDb3JuZXJzQm90dG9tOiAwcHggMHB4IDVweCA1cHgsXG4gICAgaWNvbkNvbG9yU2Vjb25kYXJ5OiAjY2FjYWNhLFxuICAgIHRleHRDb2xvclByaW1hcnk6ICRjb2xvci10ZXh0LWRhcmssXG4gICAgdGV4dENvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LFxuICAgIHRleHRDb2xvckFjY2VudDogJGNvbG9yLXRleHQtaGl2ZS1yZWQsXG4gICAgdGV4dENvbG9yQWNjZW50SG92ZXI6ICRjb2xvci1oaXZlLXJlZCxcbiAgICB0ZXh0Q29sb3JFcnJvcjogJGNvbG9yLXRleHQtcmVkLFxuICAgIGNvbnRlbnRCb3JkZXJBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBidXR0b25CYWNrZ3JvdW5kOiAkY29sb3ItaGl2ZS1ibGFjayxcbiAgICBidXR0b25CYWNrZ3JvdW5kSG92ZXI6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBidXR0b25UZXh0OiAkY29sb3ItdGV4dC13aGl0ZSxcbiAgICBidXR0b25UZXh0U2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsMC4yMCksXG4gICAgYnV0dG9uVGV4dEhvdmVyOiAkY29sb3Itd2hpdGUsXG4gICAgYnV0dG9uQm94U2hhZG93OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYnV0dG9uQm94U2hhZG93SG92ZXI6ICRjb2xvci1oaXZlLWJsYWNrLFxuICAgIG1vZGFsQmFja2dyb3VuZENvbG9yOiAkY29sb3Itd2hpdGUsXG4gICAgbW9kYWxUZXh0Q29sb3JQcmltYXJ5OiAkY29sb3ItdGV4dC1kYXJrLFxuICApLFxuICBkYXJrOiAoXG4gICAgY29sb3JBY2NlbnQ6ICRjb2xvci1oaXZlLXJlZCxcbiAgICBjb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgY29sb3JBY2NlbnRSZXZlcnNlOiAkY29sb3Itd2hpdGUsXG4gICAgY29sb3JXaGl0ZTogJGNvbG9yLXdoaXRlLFxuICAgIGJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBiYWNrZ3JvdW5kQ29sb3JFbXBoYXNpczogJGNvbG9yLWJhY2tncm91bmQtc3VwZXItZGFyayxcbiAgICBiYWNrZ3JvdW5kQ29sb3JPcGFxdWU6ICRjb2xvci1ibHVlLWRhcmssXG4gICAgbW9kdWxlQmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1sZXNzLWRhcmssXG4gICAgYmFja2dyb3VuZFRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCxcbiAgICBtZW51QmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmx1ZS1kYXJrLFxuICAgIG1vZHVsZU1lZGl1bUJhY2tncm91bmRDb2xvcjogJGNvbG9yLWJhY2tncm91bmQtZGFyayxcbiAgICBuYXZCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLWxlc3MtZGFyayxcbiAgICBoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3I6ICRjb2xvci1oaXZlLWJsYWNrLWRhcmtlc3QsXG4gICAgYWxlcnRCYWNrZ3JvdW5kQ29sb3I6ICNmZmE2YTYsXG4gICAgdGFibGVSb3dPZGRCYWNrZ3JvdW5kQ29sb3I6ICMyODMyMzksXG4gICAgdGFibGVSb3dFdmVuQmFja2dyb3VuZENvbG9yOiAjMjEyQzMzLFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItZGFyay1saWdodGVzdCxcbiAgICBib3JkZXJMaWdodDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItZGFyay1saWdodGVzdCxcbiAgICBib3JkZXJEYXJrOiAxcHggc29saWQgJGNvbG9yLXRleHQtZ3JheS1saWdodCxcbiAgICBib3JkZXJBY2NlbnQ6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYm9yZGVyRG90dGVkOiAxcHggZG90dGVkICRjb2xvci1ib3JkZXItZGFyayxcbiAgICBib3JkZXJUcmFuc3BhcmVudDogdHJhbnNwYXJlbnQsXG4gICAgcm91bmRlZENvcm5lcnM6IDVweCxcbiAgICByb3VuZGVkQ29ybmVyc1RvcDogNXB4IDVweCAwIDAsXG4gICAgcm91bmRlZENvcm5lcnNCb3R0b206IDBweCAwcHggNXB4IDVweCxcbiAgICBpY29uQ29sb3JTZWNvbmRhcnk6ICRjb2xvci10ZXh0LWdyYXktbGlnaHQsXG4gICAgdGV4dENvbG9yUHJpbWFyeTogJGNvbG9yLXRleHQtd2hpdGUsXG4gICAgdGV4dENvbG9yU2Vjb25kYXJ5OiAkY29sb3ItdGV4dC1ncmF5LWxpZ2h0LFxuICAgIHRleHRDb2xvckFjY2VudDogJGNvbG9yLWhpdmUtcmVkLFxuICAgIHRleHRDb2xvckFjY2VudEhvdmVyOiAkY29sb3ItaGl2ZS1yZWQtbGlnaHQsXG4gICAgdGV4dENvbG9yRXJyb3I6ICRjb2xvci10ZXh0LXJlZCxcbiAgICBjb250ZW50Qm9yZGVyQWNjZW50OiAkY29sb3ItaGl2ZS1yZWQsXG4gICAgYnV0dG9uQmFja2dyb3VuZDogJGNvbG9yLXdoaXRlLFxuICAgIGJ1dHRvbkJhY2tncm91bmRIb3ZlcjogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJ1dHRvblRleHQ6ICRjb2xvci1ibHVlLWRhcmssXG4gICAgYnV0dG9uVGV4dFNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDApLFxuICAgIGJ1dHRvblRleHRIb3ZlcjogJGNvbG9yLXdoaXRlLFxuICAgIGJ1dHRvbkJveFNoYWRvdzogJGNvbG9yLWhpdmUtcmVkLFxuICAgIGJ1dHRvbkJveFNoYWRvd0hvdmVyOiAkY29sb3Itd2hpdGUsXG4gICAgaW5wdXRQcmljZVdhcm5pbmc6IHJnYmEoMjU1LCAxNTMsIDAsIDAuODMpLFxuICAgIG1vZGFsQmFja2dyb3VuZENvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrLFxuICAgIG1vZGFsVGV4dENvbG9yUHJpbWFyeTogJGNvbG9yLXRleHQtd2hpdGUsXG4gICksXG4pO1xuXG4vKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlbWVzXG4gKi9cbkBtaXhpbiB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgQGVhY2ggJHRoZW1lLCAkbWFwIGluICR0aGVtZXMge1xuICAgIC50aGVtZS0jeyR0aGVtZX0gJiB7XG4gICAgICAkdGhlbWUtbWFwOiAoKSAhZ2xvYmFsO1xuICAgICAgQGVhY2ggJGtleSwgJHN1Ym1hcCBpbiAkbWFwIHtcbiAgICAgICAgJHZhbHVlOiBtYXAtZ2V0KG1hcC1nZXQoJHRoZW1lcywgJHRoZW1lKSwgJyN7JGtleX0nKTtcbiAgICAgICAgJHRoZW1lLW1hcDogbWFwLW1lcmdlKCR0aGVtZS1tYXAsICgka2V5OiAkdmFsdWUpKSAhZ2xvYmFsO1xuICAgICAgfVxuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkdGhlbWUtbWFwOiBudWxsICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG5cbkBmdW5jdGlvbiB0aGVtZWQoJGtleSkge1xuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW1hcCwgJGtleSk7XG59XG5cblxuLnRoZW1lLW9yaWdpbmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBjb2xvcjogJGNvbG9yLXRleHQtZGFyaztcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZTtcbiAgfVxufVxuLnRoZW1lLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQtb2ZmLXdoaXRlO1xuICBjb2xvcjogJGNvbG9yLXRleHQtZGFyaztcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZTtcbiAgfVxufVxuLnRoZW1lLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmFja2dyb3VuZC1kYXJrO1xuICBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG59XG5cblxuLy8gVXRpbGl0eSBjbGFzc2VzIHRvIGJlIHVzZWQgd2l0aCBAZXh0ZW5kXG5cbi5saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgJi0tcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICAgICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLXNlY29uZGFyeSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gICAgJjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1hY2NlbnQge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgfVxuICAgICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnRIb3ZlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZS1idG4taG9sbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJBY2NlbnQnKTtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJEYXJrJyk7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi5lLWJ0biB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKSwgMnB4IDJweCAwcHggMHB4IHRoZW1lZCgnYnV0dG9uQm94U2hhZG93Jyk7XG4gICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuICB9XG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kSG92ZXInKTtcbiAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMnB4IDAgcmdiYSgwLDAsMCwwLjEpLCA0cHggNHB4IDAgMCB0aGVtZWQoJ2J1dHRvbkJveFNoYWRvd0hvdmVyJyk7XG4gICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0SG92ZXInKTtcbiAgICAgIHRleHQtc2hhZG93OiB0aGVtZWQoJ2J1dHRvblRleHRTaGFkb3cnKTtcbiAgICB9XG4gIH1cbiAgJjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgfVxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHRIb3ZlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIGJ1dHRvbiBjbGFzcyBkb2Vzbid0IGFwcGx5aW5nIHRoZW1pbmcgKGp1c3Qgc3RyYWlnaHQgc3R5bGVzKS4gVG8gYmUgdXNlZCB3aGVuIHRoZXJlIGFyZSBubyB0aGVtaW5nIGNsYXNzZXMgYXZhaWxhYmxlIChlLmcuIGluIG1vZGFscyBhbmQgc3RhdGljIHNlcnZlciBwYWdlcyBpbiBzaWdudXApXG5cbi5lLWJ0biB7XG4gICYtLWJsYWNrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDVweCA1cHggMCAwICRjb2xvci1oaXZlLXJlZDtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgYm94LXNoYWRvdzogMnB4IDJweCAycHggMCByZ2JhKDAsMCwwLDAuMSksIDdweCA3cHggMCAwICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsMC4yMCk7XG4gICAgfVxuICAgICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDVweCA1cHggMCAwICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgfVxuICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICAgICYuaG9sbG93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWdyYXk7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS1kYXJrO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMCk7XG4gICAgICB9XG4gICAgICAmOnZpc2l0ZWQsICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWdyYXk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLnRoZW1lLWRhcmssXG4udGhlbWUtbGlnaHQge1xuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICBvdXRsaW5lLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG92ZXJVbmRlcmxpbmUoKSB7XG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5cbi8vIHJlbSBmYWxsYmFjayAtIGNyZWRpdHM6IGh0dHA6Ly96ZXJvc2l4dGhyZWUuc2UvXG5cbkBmdW5jdGlvbiBjYWxjdWxhdGVSZW0oJHNpemUpIHtcbiAgJHJlbVNpemU6ICRzaXplIC8gMTZweDtcbiAgQHJldHVybiAkcmVtU2l6ZSAqIDFyZW07XG59XG5cbkBtaXhpbiBmb250LXNpemUoJHNpemUpIHtcbiAgZm9udC1zaXplOiAkc2l6ZTtcbiAgZm9udC1zaXplOiBjYWxjdWxhdGVSZW0oJHNpemUpO1xufVxuXG4vLyBFbmFibGVzIG9wYWNpdHkgdG8gYmUgc2FmZWx5IHVzZWQgd2l0aCBvbGRlciBicm93c2Vyc1xuXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xuICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgJG9wYWNpdHktaWU6ICRvcGFjaXR5ICogMTAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9JG9wYWNpdHktaWUpOyAvL0lFOFxufVxuXG4iLCIubWVudSA+IGxpID4gYSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG59XG5cbi50b29sdGlwIHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG59XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xuICB6LWluZGV4OiAxMDAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcblxuICAuVmVydGljYWxNZW51IHtcbiAgICBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7XG4gICAgICBjb2xvcjogJGNvbG9yLWhpdmUtcmVkLWRhcms7XG4gICAgfVxuICB9XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gIH1cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnRIb3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5kaXZbcm9sZT1kaWFsb2ddIHtcbiAgei1pbmRleDogNTAwO1xufVxuXG5pbnB1dFt0eXBlPXN1Ym1pdF0uZGlzYWJsZWQsIGlucHV0W3R5cGU9c3VibWl0XS5kaXNhYmxlZDpmb2N1cyB7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1lZGl1bS1ncmF5O1xufVxuXG5idXR0b24sIC5idXR0b24ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2FsbG91dCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2hpZ2hsaWdodEJhY2tncm91bmRDb2xvcicpO1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxuICAmLmFsZXJ0IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYWxlcnRCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gIH1cbn1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTk5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRvcDogMC41cmVtO1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgfVxuICB9XG59XG5cbmhyIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxufVxuXG50YWJsZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIC0xcHggcmVkO1xufVxuXG5cbnRoZWFkLCB0Ym9keSwgdGZvb3Qge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICB9XG59XG5cbnRoZWFkIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3InKTtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gIH1cbn1cblxudGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxufVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODgpO1xuICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbn1cblxuLnJldmVhbCB7XG4gIGJveC1zaGFkb3c6IDJweCAycHggMnB4IDAgcmdiYSgwLDAsMCwwLjEpLCA3cHggN3B4IDAgMCAkY29sb3ItaGl2ZS1yZWQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgMzBweDtcbiAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kYWxCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICBjb2xvcjogdGhlbWVkKCdtb2RhbFRleHRDb2xvclByaW1hcnknKTtcbiAgfVxuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCdtb2RhbFRleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gIH1cbiAgLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAuZS1idG47XG4gICAgQGV4dGVuZCAuZS1idG4tLWJsYWNrO1xuICAgIG1pbi13aWR0aDogMTAwcHg7XG4gIH1cbiAgaDQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbi5wcm9ncmVzcyB7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6JGNvbG9yLWJvcmRlci1saWdodDtcbiAgZGl2IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgfVxufVxuIiwiLy8gQW5pbWF0aW9uIGhlbHBlcnNcblxuJGZhZGUtaW4tYW5pbWF0aW9uLWxlbmd0aDogMXM7XG4kZmFkZS1pbi1hbmltYXRpb24tZGVsYXk6IDAuMDNzO1xuXG5cbi5mYWRlLWluIHtcbiAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMCB7XG4gICAgJi0tI3skaX0geyBcbiAgICAgIGFuaW1hdGlvbjogZmFkZS1pblxuICAgICAgICRmYWRlLWluLWFuaW1hdGlvbi1sZW5ndGggZWFzZS1pbi1vdXQgJGZhZGUtaW4tYW5pbWF0aW9uLWRlbGF5KiRpIGJvdGg7XG4gICAgfVxuICB9IFxufVxuXG5Aa2V5ZnJhbWVzIGZhZGUtaW4ge1xuXHQwJSB7XG5cdFx0QGluY2x1ZGUgb3BhY2l0eSgwKTtcblx0fVxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBvcGFjaXR5KDEpO1xuXHR9XG59XG5cblxuQGtleWZyYW1lcyBmYWRlLWluLXVwIHtcbiAgMCUge1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI0cHgsIDI0cHgpO1xuICB9XG4gIDEwMCUge1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICB9XG59IiwiZm9ybSB7XG4gIC5lcnJvciB7XG4gICAgaW5wdXQsIGlucHV0OmFjdGl2ZSwgaW5wdXQ6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgfVxuICAgIGxhYmVsLCAuaGVscC10ZXh0IHtcbiAgICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgfVxuICAgIC5oZWxwLXRleHQge1xuICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xuICAgIH1cbiAgfVxuICAuc3VjY2VzcyB7XG4gICAgY29sb3I6ICRzdWNjZXNzLWNvbG9yO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICB9XG59XG5idXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogMTVweCAhaW1wb3J0YW50O1xufVxuaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuICAgIC8vIE92ZXJ3cml0ZSAxNnB4IG1hcmdpbi1ib3R0b20sIGl0IHdhcyBwdXNoaW5nIGVycm9yIG1lc3NhZ2VzIGRvd24gYXdheSBmcm9tIHRoZSBmb3JtIGVsZW1lbnRcbiAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cbi5lcnJvciB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xufVxucC5lcnJvciB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG4ud2FybmluZyB7XG4gICAgY29sb3I6IGRhcmtnb2xkZW5yb2Q7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbn1cbi5kYXJrcmVkIHtcbiAgICBjb2xvcjogZGFya3JlZDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmluZm8ge1xuICAgIGNvbG9yOiBkaW1ncmV5O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uaG92ZXJCYWNrZ3JvdW5kOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhbnRpcXVld2hpdGU7XG59XG4uZGUtZW1waGFzaXplIHtcbiAgY29sb3I6ICRkYXJrLWdyYXk7XG59XG4ub3ZlcmZsb3ctZWxsaXBzaXMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uZGFya2J0biB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuXG4vLyAvLyB3aGF0IGFib3V0IHRvdWNoLXNjcmVlbiBvbmx5P1xuLy8gLmhvdmVyU2hvdyB7XG4vLyAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuLy8gfVxuLy8gLy8gd2hhdCBhYm91dCB0b3VjaC1zY3JlZW4gb25seT9cbi8vIC5ob3ZlclNob3dUcmlnZ2VyOmhvdmVyID4gLmhvdmVyU2hvdyB7XG4vLyAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbi8vIH1cblxubGFiZWwge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7ICBcbiAgfSAgICBcbn1cblxuJGlucHV0LWZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kaW5wdXQtZm9udC1zaXplOiAxNnB4OyIsIi5NYXJrZG93biB7XG4gIGZvbnQtZmFtaWx5OiAnU291cmNlIFNlcmlmIFBybycsIHNlcmlmO1xuICBmb250LXNpemU6IDEyMCU7XG5cbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG59XG5cbi8vIHVzZWQgZm9yIGNvbW1lbnRzXG4uTWFya2Rvd24uTWFya2Rvd25WaWV3ZXItLXNtYWxsIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTEwJTtcblxuICBpbWcge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gIH1cblxuICBkaXYudmlkZW9XcmFwcGVyIHtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNzBweDtcbiAgfVxufVxuXG4uTWFya2Rvd24ge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGh5cGhlbnM6IG5vbmU7XG5cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICBoMSB7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAuM3JlbTtcbiAgICBmb250LXNpemU6IDE2MCVcbiAgfVxuICBoMiB7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAuM3JlbTtcbiAgICBmb250LXNpemU6IDE0MCU7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbjogMnJlbSAwIDAuM3JlbTtcbiAgICBmb250LXNpemU6IDEyMCU7XG4gIH1cbiAgaDQge1xuICAgIG1hcmdpbjogMS41cmVtIDAgMC4ycmVtO1xuICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgfVxuICBoNSB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMC4ycmVtO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgfVxuICBoNiB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMC4ycmVtO1xuICAgIGZvbnQtc2l6ZTogOTAlO1xuICB9XG5cbiAgY29kZSB7XG4gICAgcGFkZGluZzogMC4ycmVtO1xuICAgIGZvbnQtc2l6ZTogODUlO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICB9XG5cbiAgcHJlID4gY29kZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICBvbCwgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICB9XG5cbiAgdGFibGUgdGQge1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDsgLy8gaXNzdWUgIzE0NlxuICB9XG5cbiAgdGFibGUgdGhlYWQgdGgge1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMTUwJTtcbiAgICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgfVxuICBhIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLWFjY2VudDtcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICB9XG5cbiAgaWZyYW1lIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogNzV2dztcbiAgfVxuXG4gIGlmcmFtZS50cnV2dmwtaWZyYW1lIHtcbiAgICBtYXgtaGVpZ2h0OiBpbml0aWFsO1xuICB9XG5cbiAgLnR3ZWV0V3JhcHBlciBpZnJhbWUge1xuICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIGRpdi5wdWxsLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG5cbiAgZGl2LnB1bGwtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuXG4gIGRpdi50ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cblxuICBkaXYudGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICBkaXYudGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIGRpdi50ZXh0LXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cblxuICBkaXYudmlkZW9XcmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaWZyYW1lIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbiAgfVxuICBkaXYuaWZyYW1lV3JhcHBlciB7XG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG4gIH1cbiAgZGl2LnR3ZWV0V3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbiAgfVxuICBibG9ja3F1b3RlIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiB0aGVtZWQoJ2JvcmRlckRhcmsnKTtcbiAgICB9XG4gIH1cbiAgYmxvY2txdW90ZSA+IHAge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cblxuIiwiLkFwcCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uQXBwX19jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLndlbGNvbWVXcmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5SaWdodE1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG4gIC5tZW51ID4gbGkge1xuICAgID4gYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNzc3O1xuICAgIH1cbiAgICA+IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjtcbiAgICB9XG4gIH1cbiAgLm1lbnUgPiBsaS5sYXN0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc3NztcbiAgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbi5QbGFpbkxpbmsge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xufVxuXG4udGV4dC1tdXRlZCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndlbGNvbWVCYW5uZXIge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuICBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjhweCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzNHB4KTtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG5cbiAgaDQge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiA4NSU7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTdweCk7XG4gICAgfVxuICB9XG5cbiAgLnJvdyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5idXR0b24ge1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCksIDJweCAycHggMCAwICRjb2xvci1oaXZlLXJlZDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwLjEpLCA0cHggNHB4IDAgMCAkY29sb3Itd2hpdGU7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsMCwwLDAuMjApO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgICBtaW4td2lkdGg6IDEzMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5idXR0b24tLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG4gIH1cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgdG9wOiAwLjhyZW07XG4gICAgcmlnaHQ6IDA7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLmJ1dHRvbi5naG9zdCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzA0MTRBO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgIzMwNDE0QSwgMnB4IDJweCAwIDAgIzMwNDE0QTtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMCAjMzA0MTRBLCA0cHggNHB4IDAgMCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgfVxuICB9XG5cbiAgLmhlcm9JbWFnZSB7XG4gICAgbWF4LWhlaWdodDogMzYwcHg7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICBhbmltYXRpb246IGZhZGUtaW4tdXAgMC42cyBlYXNlLW91dCBib3RoO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgIH1cbiAgfVxuXG4gIC53ZWxjb21lSW1hZ2Uge1xuICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgIHBhZGRpbmc6IDJlbSAwO1xuICAgIH1cbiAgfVxuXG4gIC53ZWxjb21lUGl0Y2gge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLmRvd252b3RlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIC8vLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgxKTsgLy8gaW1hZ2VcbiAgICAvL2ZpbHRlcjogZ3JheTsgLy8gaW1hZ2UgZ3JheXNjYWxlXG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgY29sb3I6ICM4NDgyODI7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG4gICAgLkNvbW1lbnRfX2hlYWRlci11c2VyIHtcbiAgICAgIGNvbG9yOiAjODQ4MjgyO1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgfVxuICAgIH1cbn1cbi5kb3dudm90ZWQ6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBub25lO1xuICAgIC13ZWJraXQtZmlsdGVyOiBub25lO1xufVxuXG4uQXBwX19hbm5vdW5jZW1lbnQge1xuICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cblxuXG4uYmV0YS1kaXNjbGFpbWVyIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICA0NWRlZyxcbiAgICAgICAgICB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpLFxuICAgICAgICAgIHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJykgMTBweCxcbiAgICAgICAgICB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpIDEwcHgsXG4gICAgICAgICAgdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKSAyMHB4XG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLkJlbmVmaWNpYXJ5U2VsZWN0b3JfX3BlcmNlbnRib3gge1xuICBtaW4td2lkdGg6IDIuMnJlbTtcbiAgbWF4LXdpZHRoOiAyLjZyZW07XG59XG4uQmVuZWZpY2lhcnlTZWxlY3Rvcl9fcGVyY2VudHJvdyB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctbGVmdDogMnB4O1xufVxuXG4uQmVuZWZpY2lhcnlTZWxlY3RvciAuaW5wdXQtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG4ucmVhY3QtYXV0b2NvbXBsZXRlLWlucHV0IHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBtYXgtaGVpZ2h0OiAxNmVtO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO1xuICBib3R0b206IGF1dG87XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggcmdiYSgwLDAsMCwwLjE3NSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB6LWluZGV4OiAyMDAwMDtcbn1cblxuLnJlYWN0LWF1dG9jb21wbGV0ZS1pbnB1dCA+IGRpdiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMTBweDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbn1cblxuLnJlYWN0LWF1dG9jb21wbGV0ZS1pbnB1dCA+IC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDZENkE5O1xuICBjb2xvcjogIzMzMztcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnRIb3ZlcicpO1xuICB9XG59XG4iLCIuQ29tbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcbiAgLk1hcmtkb3duIHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMC4xcmVtIDAgMC42cmVtIDA7XG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICB9XG4gIH1cblxuICAuUmVwbHlFZGl0b3IgLmNvbHVtbi5sYXJnZS02IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG5cbiAgLlJlcGx5RWRpdG9yIC5zaWRlLWJ5LXNpZGUge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5Db21tZW50X19Vc2VycGljIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwLjRyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNnJlbTtcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIHRvcDogMC4ycmVtO1xuICB9XG5cbiAgLlVzZXJwaWMge1xuICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gIH1cbn1cblxuLkNvbW1lbnRfX1VzZXJwaWMtc21hbGwge1xuICBAaW5jbHVkZSBoaWRlLWZvcihtZWRpdW0pO1xuICAuVXNlcnBpYyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogM3B4O1xuICAgIG1hcmdpbi1yaWdodDogMC4ycmVtO1xuICAgIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLkNvbW1lbnQgLmhpZ2hsaWdodGVkIHtcbiAgcGFkZGluZzogMTRweDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlckFjY2VudCcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnaGlnaGxpZ2h0QmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbn1cblxuLkNvbW1lbnQuY29sbGFwc2VkIC5Db21tZW50X19ibG9jayxcbi5Db21tZW50IC5Db21tZW50X19ibG9jay5kb3dudm90ZWQ6bm90KC5yZXZlYWxlZCkge1xuICA+IC5Db21tZW50X19Vc2VycGljIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMjZweDtcbiAgICAuVXNlcnBpYyB7XG4gICAgICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIC5Db21tZW50X19oZWFkZXIge1xuICAgIC5Wb3Rpbmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuQ29tbWVudF9fYm9keSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuICAuQ29tbWVudF9fZm9vdGVyIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5Db21tZW50X19oZWFkZXIge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBtYXJnaW4tbGVmdDogNjJweDtcbiAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzVG9wJyk7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGJhY2tncm91bmQ6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgfVxuICBzdmcge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLkNvbW1lbnRfX2hlYWRlci11c2VyIHtcbiAgY29sb3I6ICRibGFjaztcbiAgZm9udC1zaXplOiAxMDAlO1xuICBhIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gIH1cbn1cblxuLkNvbW1lbnRfX2hlYWRlcl9jb2xsYXBzZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgPiBhIHtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFyZW07XG4gICAgcGFkZGluZzogMCAwLjVyZW07XG4gIH1cbiAgLkljb24ge1xuICAgIHRvcDogNXB4O1xuICB9XG59XG5cbi5Db21tZW50IC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fYm9keSB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgZm9udC1zaXplOiA5MCU7XG4gICAgYmFja2dyb3VuZDogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxufVxuXG4uQ29tbWVudCAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2Zvb3RlciB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzQm90dG9tJyk7XG4gICAgcGFkZGluZzogM3B4IDEwcHggNXB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfVxuICBhIHtcbiAgIEBleHRlbmQgLmxpbms7XG4gICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICB9XG4gIC5Wb3RpbmdfX3ZvdGVyc19saXN0IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1yaWdodDogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgcGFkZGluZy1yaWdodDogMC40cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICAgIC5kcm9wZG93bi1hcnJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDNweDtcbiAgICAgIGxlZnQ6IC0ycHg7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgLkljb24uZHJvcGRvd24tYXJyb3cgcG9seWdvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuQ29tbWVudF9fZm9vdGVyX19jb250cm9scyB7XG4gICAgYSB7bWFyZ2luOiAwIDAuMnJlbTt9XG4gIH1cbn1cblxuLkNvbW1lbnRfX3JlcGxpZXMge1xuICBtYXJnaW4tdG9wOiAxLjRyZW07XG4gIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItbGVmdDogdGhlbWVkKCdib3JkZXJEb3R0ZWQnKTtcbiAgfVxuICAuQ29tbWVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS40cmVtO1xuICB9XG59XG5cbi5Db21tZW50X19uZWdhdGl2ZV9ncm91cCB7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDAuMzU7XG4gICAgICAmOmhvdmVyIHtvcGFjaXR5OiAwLjU7fVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5yb290IHtcbiAgICAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2hlYWRlcixcbiAgICAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2Zvb3RlcixcbiAgICAuQ29tbWVudF9fYmxvY2sgLkNvbW1lbnRfX2JvZHksXG4gICAgLkNvbW1lbnRfX3JlcGxpZXMge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucmVwbHkge1xuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9faGVhZGVyLFxuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fZm9vdGVyLFxuICAgIC5Db21tZW50X19ibG9jayAuQ29tbWVudF9fYm9keSxcbiAgICAuQ29tbWVudF9fcmVwbGllcyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLkNvbW1lbnQgLkNvbW1lbnRfX2Jsb2NrIC5oaWdobGlnaHRlZCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG4iLCIuTWFya2Rvd25WaWV3ZXJfX25lZ2F0aXZlX2dyb3VwIHtcbiAgICBjb2xvcjogY3JpbXNvbjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4uTWFya2Rvd25WaWV3ZXIge1xuICBtYXgtd2lkdGg6IDQ4cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4iLCIudm90ZV93ZWlnaHRzIHtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMC41cmVtO1xuICAgIGNvbG9yOiBncmVlbjtcbiAgICBzcGFuIHtjb2xvcjogcmVkO31cbn1cblxudWwuUG9zdHNMaXN0X19zdW1tYXJpZXMge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxudWwuUG9zdHNMaXN0X19zdW1tYXJpZXMgPiBsaSB7XG4gIHBhZGRpbmc6IDAuMWVtIDAuNWVtIDAgMC41ZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOGVtO1xuXG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnMnKTtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgfVxuXG4gIC8qICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDNweCAwIHRoZW1lZCgnY29udGVudEJvcmRlckFjY2VudCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSovXG59XG5cbi5Qb3N0U3VtbWFyeSB7XG4gIC8vIHBhZGRpbmc6IDAgMCAwLjVyZW07XG4gIG1hcmdpbjogMCAwIDEuMjV2dztcbiAgY2xlYXI6IGxlZnQ7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIC5Qb3N0U3VtbWFyeV9fbnNmdy13YXJuaW5nIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIC5Qb3N0U3VtbWFyeV9fZm9vdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgICAgIC5SZWJsb2dfX2J1dHRvbiB7ZGlzcGxheTogbm9uZTt9XG4gICAgICAuVm90aW5nX19idXR0b24ge2Rpc3BsYXk6IG5vbmU7fVxuICAgIH1cbiAgICAuUG9zdFN1bW1hcnlfX3RpbWVfYXV0aG9yX2NhdGVnb3J5X3NtYWxsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICB9XG4gIH1cblxuICAubnNmdy1mbGFnIHtcbiAgICBjb2xvcjogJGNvbG9yLXJlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcmVkO1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbDtcbiAgICBtYXJnaW46IDAgMC4xcmVtO1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X19pbWFnZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMzBweDtcbiAgaGVpZ2h0OiA0LjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDIwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VFRTtcbn1cblxuLlBvc3RTdW1tYXJ5X19pbWFnZS1tb2JpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI0Y4RjhGODtcblxuICBpbWcge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA4MHZ3O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5LndpdGgtaW1hZ2UgLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnksXG4uUG9zdFN1bW1hcnkud2l0aC1pbWFnZSAuUG9zdFN1bW1hcnlfX2NvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogOC4yNXJlbTtcbn1cblxuLlBvc3RTdW1tYXJ5X19oZWFkZXIge1xuICA+IGgzIHtcbiAgICBmb250OiA2MDAgMTAwJSBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiTHVjaWRhIFNhbnNcIiwgR2VuZXZhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICA+IGEge1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgfVxuICAgID4gYTp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNzc3O1xuICAgIH1cbiAgICAuSWNvbiB7XG4gICAgICBtYXJnaW46IDAgMC4yNXJlbTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAwLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuODVyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiA1JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm5zZnctZmxhZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fYm9keSB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwIDAgMC4xNXJlbTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgfVxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICB9XG59XG5cbi5sYXlvdXQtbGlzdCAuUG9zdFN1bW1hcnlfX2JvZHkge1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4uUG9zdFN1bW1hcnlfX2Zvb3RlciB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYXRoIHtcbiAgICBmaWxsOiAkZGFyay1ncmF5O1xuICB9XG4gIGEge1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICB9XG4gIC5JY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fdGltZV9hdXRob3JfY2F0ZWdvcnkge1xuICBjb2xvcjogJGRhcmstZ3JheTtcbiAgYSB7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItbGVmdDogdGhlbWVkKCdib3JkZXJMaWdodCcpO1xuICB9XG5cbiAgLlJlYmxvZ19fYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBib3JkZXItcmlnaHQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5Qb3N0U3VtbWFyeV9fdGltZV9hdXRob3JfY2F0ZWdvcnlfc21hbGwgYSB7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlBvc3RTdW1tYXJ5LndpdGgtaW1hZ2UgLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnkgLkljb24ucmVibG9nIHtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gIH1cbn1cblxuLlBvc3RTdW1tYXJ5X19yZWJsb2dnZWRfYnkge1xuICAuSWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjY2FjYWNhO1xuICB9XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xuICBmb250LXNpemU6IDkwJTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Qb3N0U3VtbWFyeSB7XG4gICAgLy8gcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLy8gYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICB9XG4gIC5Qb3N0U3VtbWFyeV9faW1hZ2Uge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MHZ3O1xuICB9XG4gIC5Qb3N0U3VtbWFyeV9fYm9keSB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4zcmVtO1xuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIC5Qb3N0U3VtbWFyeS53aXRoLWltYWdlIC5Qb3N0U3VtbWFyeV9fcmVibG9nZ2VkX2J5LFxuICAuUG9zdFN1bW1hcnkud2l0aC1pbWFnZSAuUG9zdFN1bW1hcnlfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5Qb3N0U3VtbWFyeV9fZm9vdGVyIC5Wb3RpbmcsIC5Qb3N0U3VtbWFyeV9fZm9vdGVyIC5Wb3RpbmdfX2lubmVyIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbiAgLlBvc3RTdW1tYXJ5X190aW1lX2F1dGhvcl9jYXRlZ29yeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgIC5SZWJsb2dfX2J1dHRvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uYXJ0aWNsZXNfX3N1bW1hcnkge1xuICAubnNmdy1mbGFnIHtcbiAgICBjb2xvcjogJGNvbG9yLXJlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcmVkO1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbDtcbiAgICBtYXJnaW46IDAgMC4xcmVtO1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIH1cblxuICAuYXJ0aWNsZXNfX3Jlc3RlZW0sXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLmFydGljbGVzX19jcm9zc3Bvc3Qge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMHB4O1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdC1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5hcnRpY2xlc19fY3Jvc3Nwb3N0LXRleHQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5hcnRpY2xlc19fZmVhdHVyZS1pbWcgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogNTYuMjV2dztcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG5cbiAgLmFydGljbGVzX19jb250ZW50LWJsb2NrLS10ZXh0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIuUG9zdCB7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgndHJhbnNwYXJlbnQnKTtcbiAgfVxuICAucm93LmNvbW1lbnQtZWRpdG9yIHtcbiAgICAgIG1heC13aWR0aDogNTUuOXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4uUG9zdEZ1bGwge1xuICBwYWRkaW5nOiAycmVtIDFyZW0gMXJlbSAxcmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiA1NHJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiB0aGVtZWQoJ3JvdW5kZWRDb3JuZXJzJyk7XG4gICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyQWNjZW50Jyk7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cblxuICAuUmVwbHlFZGl0b3Ige1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdCB7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDAgMjBweDtcblxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG4gIH1cblxuICAuYXJ0aWNsZXNfX2Nyb3NzcG9zdC1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5SZXBseUVkaXRvciAuY29sdW1uLmxhcmdlLTYge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gIH1cblxuICAuUmVwbHlFZGl0b3IgLnNpZGUtYnktc2lkZSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAuUG9zdEZ1bGxfX2F1dGhvcmVkX2J5IHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3RpbWVfYXV0aG9yX2NhdGVnb3J5IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG5cbiAgcGFkZGluZy1yaWdodDogLjZyZW07XG4gIG1hcmdpbi1yaWdodDogLjZyZW07XG4gID4gc3BhbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3RpbWVfYXV0aG9yX2NhdGVnb3J5X2xhcmdlIHtcbiAgbWFyZ2luOiAxcmVtIDAgMXJlbSAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxuICBzdHJvbmcsIGEge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICB9XG4gIGZvbnQtc2l6ZTogMTIwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgPiAuVXNlcnBpYyB7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICA+IC5yaWdodC1zaWRlIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICB9XG59XG5cbi5Qb3N0RnVsbF9faGVhZGVyLCAuUG9zdEZ1bGxfX2JvZHkge1xuICBtYXgtd2lkdGg6IDQ4cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLlBvc3RGdWxsX19oZWFkZXIge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICB9XG4gIGgxIHtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICB9XG4gICAgLkljb24ge1xuICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogLTMwJTtcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1zZWNvbmRhcnk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICB9XG4gIC5Qb3N0RnVsbF9fdGltZV9hdXRob3JfY2F0ZWdvcnkge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAuSWNvbi5jbG9jayB7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLlBvc3RGdWxsX19ib2R5IHtcbiAgcGFkZGluZzogMXJlbSAwIDFyZW0gMDtcbiAgY2xlYXI6IGxlZnQ7XG4gIGEge1xuICAgIEBleHRlbmQgLmxpbms7XG4gICAgQGV4dGVuZCAubGluay0tYWNjZW50O1xuICB9XG59XG5cbi5Qb3N0RnVsbF9fZm9vdGVyIHtcbiAgY2xlYXI6IHJpZ2h0O1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC1zaXplOiA5NCU7XG4gIHN2ZyB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgfVxuICAuUmlnaHRTaGFyZV9fTWVudSB7XG4gICAgQGluY2x1ZGUgTVEoRkwpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG5cbiAgLlJlYmxvZ19fYnV0dG9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC40cmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLXJpZ2h0OiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgfVxuICAuUG9zdEZ1bGxfX2Nyb3NzcG9zdC1mb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5Qb3N0RnVsbF9fY3Jvc3Nwb3N0LWZvb3RlciAuYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICBAZXh0ZW5kIC5lLWJ0bi0tYmxhY2s7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3Jlc3BvbnNlcyB7XG4gIHBhZGRpbmctcmlnaHQ6IC40cmVtO1xufVxuXG4uUG9zdEZ1bGxfX3ZpZXdzIHtcbiAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gIG1hcmdpbi1yaWdodDogLjRyZW07XG4gIGZvbnQtc2l6ZTogOTQlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmlnaHQ6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgfVxufVxuXG4uUG9zdEZ1bGxfX3JlcGx5IHtcbiAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gIG1hcmdpbi1yaWdodDogLjRyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGJvcmRlci1yaWdodDogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxuICBhIHttYXJnaW46IDAgMC4xNXJlbTt9XG59XG5cbi5Qb3N0RnVsbF9fbGlmZXRpbWUge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICB9XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4uQXV0aG9yX19kcm9wZG93biB7XG4gIHBhZGRpbmc6IDFyZW07XG4gID4gYSB7XG4gICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gIH1cbn1cblxuLmV4cGxvcmUtcG9zdCB7XG4gIG1hcmdpbi1yaWdodDogMHB4IWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgZmlsbDogJGNvbG9yLWhpdmUtcmVkO1xuICAgIH1cbiAgfVxufVxuXG5pbnB1dC5zaGFyZS1ib3gge1xuICB3aWR0aDogNzUlIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uRXhwbG9yZVBvc3Qge1xuICBzcGFuLmV4dGxpbmsge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgfVxuICBoNSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG4gIC5FeHBsb3JlUG9zdF9fY29weS1idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uY2hhaW4tcm90YXRlZCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTtcbn1cblxuLyogU21hbGwgb25seSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5Qb3N0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuUG9zdEZ1bGxfX2Zvb3RlciA+IC5jb2x1bW4ge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG4gIGlucHV0LnNoYXJlLWJveCB7XG4gICAgaGVpZ2h0OiAyLjhlbTtcbiAgICBmb250LXNpemU6IC44ZW07XG4gIH1cbn1cblxuLyogTWVkaXVtIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgaW5wdXQuc2hhcmUtYm94IHtcbiAgICBoZWlnaHQ6IDIuOGVtO1xuICAgIGZvbnQtc2l6ZTogLjhlbTtcbiAgfVxufVxuIiwiLlBvc3RzTGlzdF9fc3VtbWFyaWVzIHtcbiAgICAuYXJ0aWNsZXNfX3N1bW1hcnkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLkZlYXR1cmVkVGFnLCAuUHJvbW90ZWRUYWcge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjJyZW07XG4gICAgICAgIG1hcmdpbjogMCAxcmVtIDAgMC41cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlByb21vdGVkVGFnIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQS5Qb3N0RGlzbWlzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuMTVyZW07XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5mbGV4LXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZmxleC1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsZXgtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm5vdGlmaWNhdGlvbl9fZmlsdGVyIHtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDVweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYWJhYmFiO1xufVxuXG4ubm90aWZpY2F0aW9uX19maWx0ZXI6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4ubm90aWZpY2F0aW9uX19maWx0ZXIuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm5vdGlmaWNhdGlvbl9fZmlsdGVyLnNlbGVjdGVkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm5vdGlmaWNhdGlvbl9faXRlbS5ldmVuIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCd0YWJsZVJvd0V2ZW5CYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG59XG5cbi5ub3RpZmljYXRpb25fX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ3RhYmxlUm93T2RkQmFja2dyb3VuZENvbG9yJyk7XG4gICAgfVxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41ZW0gMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm5vdGlmaWNhdGlvbl9fdW5yZWFkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwLjRlbTtcbiAgICAgICAgdG9wOiAwLjc1ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLlVzZXJwaWMge1xuICAgICAgICBtYXJnaW46IDAgMWVtO1xuICAgIH1cblxuICAgIC5JY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaXJjbGUge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX2RhdGUge1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm90aWZpY2F0aW9uX19tZXNzYWdlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG5cbiAgICAubm90aWZpY2F0aW9uX19tZXNzYWdlIGEge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX21lc3NhZ2UgYTp2aXNpdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpZmljYXRpb25fX3Njb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gICAgfVxuXG4gICAgLm5vdGlmaWNhdGlvbl9fc2NvcmVfYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci10ZXh0LWhpdmUtcmVkO1xuICAgIH1cbn1cblxuIiwiLkljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gID4gc3ZnLCBzcGFuLmljb24ge1xuICAgIHdpZHRoOiAxLjEycmVtO1xuICAgIGhlaWdodDogMS4xMnJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJi5maWxsLWJsYWNrID4gc3ZnID4gcGF0aCB7XG4gICAgZmlsbDpibGFjaztcbiAgfVxufVxuXG4uSWNvbl8wXzh4ID4gc3ZnLCBzcGFuLkljb25fMF84eCB7XG4gIHdpZHRoOiAwLjhyZW07XG4gIGhlaWdodDogMC44cmVtO1xufVxuXG4uSWNvbl8xXzV4ID4gc3ZnLCBzcGFuLkljb25fMV81eCB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xufVxuXG4uSWNvbl8yeCA+IHN2Zywgc3Bhbi5JY29uXzJ4IHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbn1cblxuLkljb25fM3ggPiBzdmcsIHNwYW4uSWNvbl8zeCB7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG59XG5cbi5JY29uXzR4ID4gc3ZnLCBzcGFuLkljb25fNHgge1xuICB3aWR0aDogNC42MHJlbTtcbiAgaGVpZ2h0OiA0LjYwcmVtO1xufVxuXG4uSWNvbl81eCA+IHN2Zywgc3Bhbi5JY29uXzV4IHtcbiAgd2lkdGg6IDUuNzVyZW07XG4gIGhlaWdodDogNS43NXJlbTtcbiAgbWFyZ2luOiAyNHB4IDAgMjRweCAwO1xufVxuXG4uSWNvbl8xMHggPiBzdmcsIHNwYW4uSWNvbl8xMHgge1xuICB3aWR0aDogMTByZW07XG4gIGhlaWdodDogMTByZW07XG4gIG1hcmdpbjogMjRweCAwIDI0cHggMDtcbn1cblxuLkljb24uZHJvcGRvd24tYXJyb3cgcG9seWdvbiB7XG4gIGZpbGw6ICRkYXJrLWdyYXk7XG59XG4iLCIvLy5sb2FkaW5nLW92ZXJsYXkge1xuLy8gIGhlaWdodDogMTAwJTtcbi8vICB3aWR0aDogMTAwJTtcbi8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgdG9wOiAwOyBsZWZ0OiA5NXB4OyBib3R0b206IDA7IHJpZ2h0OiAwO1xuLy8gIHotaW5kZXg6IDEgIWltcG9ydGFudDtcbi8vICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgbGluZWFyIDAuNXM7XG4vLyAgdHJhbnNpdGlvbjogb3BhY2l0eSBsaW5lYXIgMC41cztcbi8vfVxuXG4vLy5sb2FkaW5nLW92ZXJsYXkubmctaGlkZSB7XG4vLyAgb3BhY2l0eTogMDtcbi8vfVxuXG4ubG9hZGluZy1wYW5lbCB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHJlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWF4LWhlaWdodDogMTEwcHg7XG4gIHdpZHRoOiAxMHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgb3BhY2l0eTogMC40O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi8vLnNwbGFzaCAubG9hZGluZy1wYW5lbCB7XG4vLyAgbGVmdDogLTM4MHB4O1xuLy99XG5cbi5wcm9ncmVzcy1pbmRpY2F0b3Ige1xuICBoZWlnaHQ6IDUwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogNDZweCAyMHB4IDIwcHggMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb2dyZXNzLWluZGljYXRvciA+IHNwYW4ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4ud2l0aC1wcm9ncmVzcyAucHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5zcGlubmVyIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDtcbn1cblxuLndpdGgtcHJvZ3Jlc3MgLnNwaW5uZXIge1xuICBtYXJnaW46IDIwcHggYXV0byAwIGF1dG87XG59XG5cbi5zcGlubmVyID4gZGl2IHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LWFuaW1hdGlvbjogYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uOiBib3VuY2VkZWxheSAxLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAvKiBQcmV2ZW50IGZpcnN0IGZyYW1lIGZyb20gZmxpY2tlcmluZyB3aGVuIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG4uc3Bpbm5lciAuYm91bmNlMSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMzJzO1xufVxuXG4uc3Bpbm5lciAuYm91bmNlMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZWRlbGF5IHtcbiAgMCUsIDgwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjApO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApO1xuICB9XG59XG5cbi8vIHRocmVlIGJvdW5jZVxuXG4udGhyZWUtYm91bmNlID4gZGl2IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3NztcblxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFuaW1hdGlvbjogYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgLyogUHJldmVudCBmaXJzdCBmcmFtZSBmcm9tIGZsaWNrZXJpbmcgd2hlbiBhbmltYXRpb24gc3RhcnRzICovXG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi50aHJlZS1ib3VuY2UgLmJvdW5jZTEge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjMycztcbn1cblxuLnRocmVlLWJvdW5jZSAuYm91bmNlMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlZGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCkgfVxuICA0MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKSB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlZGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7XG4gIH0gNDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICB9XG59XG5cbi5Mb2FkaW5nSW5kaWNhdG9yLmNpcmNsZSB7XG4gICAgJGNpcmNsZS1yYWRpdXM6IDE2cHg7XG4gICAgJi5pbmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA2cHg7XG4gICAgfVxuICAgICYuY2lyY2xlLXN0cm9uZyB7XG4gICAgICAgIHBhZGRpbmctdG9wOjJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MmVtO1xuICAgICAgICBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOjFweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGl2IHtcbiAgICAgICAgd2lkdGg6ICRjaXJjbGUtcmFkaXVzO1xuICAgICAgICBoZWlnaHQ6ICRjaXJjbGUtcmFkaXVzO1xuICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBhbmltYXRpb246IGxvYWRpbmcgNTAwbXMgaW5maW5pdGUgbGluZWFyO1xuICAgIH1cbn1cblxuXG4iLCIuVXNlcnBpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbn1cbiIsIi5Wb3Rpbmcge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIHNwYW4ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyRGFyaycpO1xuICAgIH1cbiAgfVxufVxuXG4uVm90aW5nX19idXR0b24ge1xuICAuSWNvbiB7XG4gICAgLy8gUHV0IHRoZSBpY29uIGluIGEgbGF5ZXIgdG8gaW1wcm92ZSByZW5kZXJpbmcgcGVyZm9ybWFuY2UgKHNjcm9sbGluZyBlc3BlY2lhbGx5KVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICB9XG4gIHBhdGgge1xuICAgIGZpbGw6ICRkYXJrLWdyYXk7XG4gIH1cbiAgY2lyY2xlIHtcbiAgICBzdHJva2U6ICRkYXJrLWdyYXk7XG4gIH1cbiAgPiBhOmhvdmVyIHBhdGgge1xuICAgIGZpbGw6ICRibGFjaztcbiAgfVxufVxuXG4uVm90aW5nX19hYm91dC1mbGFnIHtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAuYnV0dG9uIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKSwgNXB4IDVweCAwIDAgdGhlbWVkKCdidXR0b25Cb3hTaGFkb3cnKTtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICB9XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kSG92ZXInKTtcbiAgICAgICAgYm94LXNoYWRvdzogMnB4IDJweCAycHggMCByZ2JhKDAsMCwwLDAuMSksIDdweCA3cHggMCAwIHRoZW1lZCgnYnV0dG9uQm94U2hhZG93SG92ZXInKTtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dEhvdmVyJyk7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsMC4yMCk7XG4gICAgICB9XG4gICAgfVxuICAgICY6dmlzaXRlZCwgJjphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLXVwIHtcbiAgLkljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxuICBkaXYgPiBhIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIH1cbiAgPiBhIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjRyZW07XG4gIH1cbiAgcGF0aCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpO1xuICAgIH1cbiAgfVxuICBjaXJjbGUge1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIHN0cm9rZTogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgIH1cbiAgfVxuICAvLyBleGNsdWRlIHNtYWxsIGRldmljZXNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAuSWNvbjpob3ZlciB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSg3NSwgMTYyLCAyNDIsIDEpO1xuICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgaW5maW5pdGU7XG4gICAgICB9XG4gIH1cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gIH1cbiAgPiAuZHJvcGRvd24tY29tcCA+IC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTMwcHg7XG4gICAgbGVmdDogLTI2cHg7XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLXVwID4gYTpob3ZlciwgYS5jb25maXJtX3dlaWdodDpob3ZlciB7XG4gICAgcGF0aCB7XG4gICAgICAgIGZpbGw6ICNmZmY7XG4gICAgfVxuICAgIGNpcmNsZSB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGZpbGw6IHRoZW1lZCgnY29sb3JBY2NlbnQnKTtcbiAgICAgICAgICBzdHJva2U6IHRoZW1lZCgnY29sb3JBY2NlbnQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdmcge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi11cC52b3RpbmdVcCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgc3ZnIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDUwMG1zIGluZmluaXRlIGxpbmVhcjtcbiAgfVxufVxuXG4uVm90aW5nX19idXR0b24tZG93bi52b3RpbmdEb3duIHN2ZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1yZWQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbjogbG9hZGluZyA1MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi1kb3duIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIC5Wb3RpbmdfX2J1dHRvbi1kb3dudm90ZXMge1xuICAgIGNvbG9yOiAjYWFhO1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiAxNSU7XG4gICAgcGFkZGluZy1yaWdodDogMC4xcmVtO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIGEgcGF0aCB7XG4gICAgZmlsbDogIzAwMDtcbiAgfVxuICBhIGNpcmNsZSB7XG4gICAgc3Ryb2tlOiAjMDAwO1xuICB9XG4gIGE6aG92ZXIgY2lyY2xlIHtcbiAgICBmaWxsOiAjNTU1O1xuICB9XG4gIGE6aG92ZXIgcGF0aCB7XG4gICAgZmlsbDogI2ZmZjtcbiAgfVxuXG4gICYuVm90aW5nX19idXR0b24tLWRvd252b3RlZCB7XG4gICAgYSBwYXRoIHtcbiAgICAgIGZpbGw6ICNmZmY7XG4gICAgfVxuICAgIGEgY2lyY2xlIHtcbiAgICAgIGZpbGw6ICNmOTk7XG4gICAgfVxuICAgIGE6aG92ZXIgY2lyY2xlIHtcbiAgICAgIGZpbGw6ICNmNjY7XG4gICAgfVxuICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi0tdXB2b3RlZCB7XG4gIC5JY29uOmhvdmVyIHtcbiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBwYXRoIHtcbiAgICBmaWxsOiAjZmZmICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLlZvdGluZ19fYnV0dG9uLS11cHZvdGVkIGNpcmNsZSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgICBzdHJva2U6IHRoZW1lZCgnY29sb3JBY2NlbnQnKTtcbiAgICB9XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi0tdXB2b3RlZCBhOmhvdmVyIHBhdGgge1xuICBmaWxsOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5Wb3RpbmdfX2J1dHRvbi0tdXB2b3RlZCBhOmhvdmVyIGNpcmNsZSB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50SG92ZXInKTtcbiAgICAgIHN0cm9rZTogdGhlbWVkKCdjb2xvckFjY2VudEhvdmVyJyk7XG4gICAgfVxufVxuXG4uVm90aW5nX19idXR0b24tLWRvd252b3RlZCBwYXRoIHtcbiAgZmlsbDogJGNvbG9yLXJlZDtcbn1cblxuXG4uUG9zdEZ1bGwgLlZvdGluZyAuRHJvcGRvd25NZW51LlZvdGluZ19fdm90ZXJzX2xpc3Qge1xuICAgIC8qIHJlc2VydmUgZW5vdWdoIHNwYWNlIGZvciBkcm9wZG93biAob3RoZXJ3aXNlIG92ZXJmbG93KSAqL1xuICAgIG1pbi13aWR0aDogMTQwcHg7XG59XG5cbi5Wb3RpbmcgLkRyb3Bkb3duTWVudS5Wb3RpbmdfX3BhbmUgdWwge1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAyNjBweDtcbn1cblxuLlZvdGluZyAuRHJvcGRvd25NZW51IHVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMTQwcHg7XG4gIG1heC13aWR0aDogMzYwcHg7XG5cbiAgbGkgPiBhIHtcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgfVxuXG4gIGxpID4gc3BhbiB7XG4gICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIH1cbn1cblxuLkRyb3Bkb3duTWVudS5Wb3RpbmdfX3ZvdGVyc19saXN0IHVsIHtcbiAgbWluLXdpZHRoOiAxNDBweDtcblxuICBsaSA+IHNwYW4ge1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogODIuNSU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gIH1cbn1cblxuLlZvdGluZ19faW5uZXIge1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmlnaHQ6IHRoZW1lZCgnYm9yZGVyTGlnaHQnKTtcbiAgfVxuICBwYWRkaW5nLXJpZ2h0OiAuOHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuNnJlbTtcbiAgLkRyb3Bkb3duTWVudSAuSWNvbi5kcm9wZG93bi1hcnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgfVxuICAuY2FuY2VsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgICBwYWRkaW5nOiAwIDAuNGVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RhZGFkYTtcbiAgICBjb2xvcjogIzhhOGE4YTtcbiAgfVxufVxuXG4uVm90aW5nX19hZGp1c3Rfd2VpZ2h0X2Rvd24ge1xuICAgIEBleHRlbmQgLlZvdGluZ19fYWRqdXN0X3dlaWdodDtcblxuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICB9XG5cbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG5cbiAgICBkaXYuY2xlYXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIHAsIHNwYW4ge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAud2VpZ2h0LWRpc3BsYXkge1xuICAgICAgY29sb3I6ICRjb2xvci1yZWQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnJhbmdlc2xpZGVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICB9XG59XG5cbi5Wb3RpbmdfX2FkanVzdF93ZWlnaHQge1xuICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB3aWR0aDogMzUwcHg7XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC5JY29uOmhvdmVyIHtcbiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAud2VpZ2h0LWRpc3BsYXkge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gIH1cbiAgYS5jb25maXJtX3dlaWdodCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gIH1cbiAgLnJhbmdlc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgICAucmFuZ2VzbGlkZXJfX2ZpbGwsIC5yYW5nZXNsaWRlcl9faGFuZGxlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgJiwgLnJhbmdlc2xpZGVyX19maWxsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gICAgLnJhbmdlc2xpZGVyX19oYW5kbGUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApO1xuICAgICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5yYW5nZXNsaWRlci1ob3Jpem9udGFsIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICAucmFuZ2VzbGlkZXJfX2ZpbGwge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIC5Wb3RpbmdfX2FkanVzdF93ZWlnaHRfY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIH1cbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlZvdGluZ19fYnV0dG9uLXVwIHtcbiAgICAuZHJvcGRvd24tcGFuZSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMzZweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbi8qIE1lZGl1bSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlZvdGluZ19fYnV0dG9uLXVwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5kcm9wZG93bi1wYW5lIHtcbiAgICAgIHRvcDogLTE4cHg7XG4gICAgICBsZWZ0OiAtMjhweDtcbiAgICB9XG4gIH1cbn1cblxuLyogUHVsc2UgZm9yIHVwdm90ZSBhY3Rpb24gKi9cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2LCAyMTQsIDE2OSwgMik7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYsIDIxNCwgMTY5LCAxKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAxKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAyKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDYsIDIxNCwgMTY5LCAyKTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoNiwgMjE0LCAxNjksIDApO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoNiwgMjE0LCAxNjksIDApO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNiwgMjE0LCAxNjksIDApO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNiwgMjE0LCAxNjksIDApO1xuICAgIH1cbn1cblxuLndlaWdodC1jb250YWluZXIge1xuICBtaW4td2lkdGg6IDMwMHB4O1xuICB3aWR0aDogOTAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cbiIsIi5Gb3JtYXR0ZWRBc3NldCB7XG4gIC5wcmVmaXgge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMXJlbTtcbiAgfVxufVxuIiwiLlJlcGx5RWRpdG9yIHtcbiAgbWF4LXdpZHRoOiA2MHJlbTtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogdGhlbWVkKCdyb3VuZGVkQ29ybmVycycpO1xuICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXInKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ21vZHVsZUJhY2tncm91bmRDb2xvcicpO1xuICB9XG4gICYuc2lkZS1ieS1zaWRlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnByZXZpZXctY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDQ4cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiA1cmVtO1xuICAgICYuc2lkZS1ieS1zaWRlIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgLnZmcmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLnB1YmxpYy1EcmFmdEVkaXRvci1jb250ZW50IHtcbiAgICAgIGhlaWdodDogMjBlbTtcbiAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICB9XG4gIH1cbiAgLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAuZS1idG47XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICB9XG4gIC5idXR0b24uaG9sbG93Lm5vLWJvcmRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLDAsMCwwLjApO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtc2hhZG93OiAwIDAgMCByZ2JhKDAsMCwwLDAuMCk7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgfVxuICAuc2lkZS1ieS1zaWRlIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE0MHB4KTtcbiAgfVxuICAuUHJldmlldy1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW46IDAuNGVtIDAgMWVtO1xuICB9XG59XG5cbmlucHV0LlJlcGx5RWRpdG9yX19hbHRBdXRob3Ige1xuICAgIHdpZHRoOiAzMDBweDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5SZXBseUVkaXRvciAuc2lkZS1ieS1zaWRlIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLmNvbW1lbnQtZWRpdG9yIC5SZXBseUVkaXRvciAuY29sdW1uIHtcbiAgZmxleDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY29tbWVudC1lZGl0b3IgLlJlcGx5RWRpdG9yIC5zaWRlLWJ5LXNpZGUge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi51cGxvYWQtZW5hYmxlZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjZGRkO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5kcmFnLWFuZC1kcm9wIHtcbiAgICBmb250LXNpemU6IDg1JTtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzc2NzY3NjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDM7XG59XG5cbi5Qb3N0RnVsbCAuUmVwbHlFZGl0b3JfX2JvZHkge1xuICBtYXJnaW46IDFyZW0gMCAwO1xufVxuXG4uUmVwbHlFZGl0b3JfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMC41cmVtO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5SZXBseUVkaXRvcl9fZHJhZnQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjkpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGNvbG9yOiAjQkJCO1xuICBmb250LXNpemU6IDEuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuLlJlcGx5RWRpdG9yX19kcmFmdC1oaWRlIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5SZXBseUVkaXRvcl9fZHJhZnQtc2F2ZWQge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgM3MgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAzcyBlYXNlLWluLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgM3MgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgM3MgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgM3MgZWFzZS1pbi1vdXQ7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5SZXBseUVkaXRvciAuUHJldmlldyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLlJlcGx5RWRpdG9yIC5QcmV2aWV3IC5NYXJrZG93biB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICBwYWRkaW5nOiAwIDAuNXJlbTtcbn1cblxuLlJlcGx5RWRpdG9yX19ib2R5IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5SZXBseUVkaXRvcl9fb3B0aW9ucyB7XG4gIGZvbnQtc2l6ZTogODUlO1xuICBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICB3aWR0aDogMTByZW07XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICB9XG4gIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLkRyb3Bkb3duX19yb290X19fMUI5dGEge1xuICBjb2xvcjogYmxhY2shaW1wb3J0YW50O1xufVxuXG4uUmVwbHlFZGl0b3JfX29wdGlvbnNfX2NvdmVyX2ltYWdlX3NlbGVjdG9yIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uUmVwbHlFZGl0b3JfX29wdGlvbnNfX2ltYWdlX3NlbGVjdG9yIHtcbiAgICAuUmVwbHlFZGl0b3JfX29wdGlvbnNfX2ltYWdlX3NlbGVjdG9yX19pbWFnZV9jb250YWluZXIge1xuICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBncmV5O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNXMsIGhlaWdodCAwLjVzO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLlJlcGx5RWRpdG9yLS1zdWJtaXQtYnV0dG9ucy1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cbiIsIi5TbGF0ZUVkaXRvciA+IGRpdltjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdIHtcbiAgbWluLWhlaWdodDogMTJyZW07XG5cbiAgLy9AaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgLy8gIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gIC8vfVxuXG4gIGNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cblxuLlNsYXRlRWRpdG9yLk1hcmtkb3duIHtcbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDBmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBpbWcge2JvcmRlcjogMXB4IGRvdHRlZCAjMDBmfVxuICB9XG4gIGRpdi5hY3RpdmUge2JveC1zaGFkb3c6IDAgMCA0cHggMnB4ICM0OEM7fVxuICBpbWcuYWN0aXZlIHtib3gtc2hhZG93OiAwIDAgMnB4IDFweCAjNDhDO31cbiAgaHIuYWN0aXZlICB7Ym94LXNoYWRvdzogMCAwIDJweCAxcHggIzQ4Qzt9XG5cbiAgYTpob3ZlcjphZnRlcntcbiAgICBmb250LWZhbWlseTogQXJpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBjb250ZW50OiBhdHRyKGhyZWYpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMTEwJTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogOXB0O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgei1pbmRleDogOTk5OTk7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBjb2xvcjogI2RkZDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC43NXM7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywjNDY0NjQ2LCMxNTE1MTUpO1xuICB9XG59XG5cblxuLlNsYXRlRWRpdG9yX19zaWRlYmFyIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgZm9udC1zaXplOiAxMTAlO1xuICBwYWRkaW5nOiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAtMTAwMDBweDtcbiAgbGVmdDogLTEwMDAwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC43NXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIzQ2NDY0NiwjMTUxNTE1KTtcblxuICAmOmhvdmVyIHtvcGFjaXR5OiAxO31cbiAgJjphZnRlciB7XG4gICAgdG9wOiAwLjZyZW07XG4gICAgbGVmdDogMTAwJTtcbiAgICBib3JkZXI6IHRyYW5zcGFyZW50IHNvbGlkO1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICM0NjQ2NDY7XG4gICAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgfVxufVxuXG4uU2xhdGVFZGl0b3JfX3NpZGViYXItYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMXB4IDJweDtcbiAgbWluLXdpZHRoOiAxLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHN2ZyB7ZmlsbDogd2hpdGV9XG4gICY6aG92ZXIge3N2ZyB7ZmlsbDogIzMyY2QzMjt9fVxufVxuXG5cbi5TbGF0ZUVkaXRvcl9fbWVudSB7XG4gIGZvbnQtc2l6ZTogMTEwJTtcbiAgcGFkZGluZzogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogLTEwMDAwcHg7XG4gIGxlZnQ6IC0xMDAwMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICBvcGFjaXR5OiAwLjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNzVzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCM0NjQ2NDYsIzE1MTUxNSk7XG5cbiAgJjpob3ZlciB7b3BhY2l0eTogMX1cbiAgJjphZnRlciB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzE1MTUxNTtcbiAgICBib3JkZXItd2lkdGg6IDVweDtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgfVxuICA+ICoge2Rpc3BsYXk6IGlubGluZS1ibG9jazt9XG59XG5cbi5TbGF0ZUVkaXRvcl9fbWVudS1idXR0b24ge1xuICBmb250LWZhbWlseTogJ0dlb3JnaWEnLCBzZXJpZjtcbiAgY29sb3I6ICNGRkY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAxLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICA+IHNwYW4ge1xuICAgIHBhdGgge2ZpbGw6IHdoaXRlfVxuICB9XG59XG5cbi5TbGF0ZUVkaXRvcl9fbWVudS1idXR0b25bZGF0YS1hY3RpdmU9XCJmYWxzZVwiXTpob3Zlcixcbi5TbGF0ZUVkaXRvcl9fbWVudS1idXR0b25bZGF0YS1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgY29sb3I6ICMzMmNkMzI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTtcbiAgPiBzcGFuIHtcbiAgICBwYXRoIHtmaWxsOiAjMzJjZDMyO31cbiAgfVxufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uLWNvZGUgPiBzcGFuID4gY29kZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDkwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLlNsYXRlRWRpdG9yX19tZW51LWJ1dHRvbi1zdXAgPiBzcGFuID4gc3BhbiAsXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uLXN1YiA+IHNwYW4gPiBzcGFuIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICBmb250LXNpemU6IDgwJTtcbiAgdmVydGljYWwtYWxpZ246IDQlO1xufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uLWxpbmsge1xuICAuSWNvbixcbiAgLkljb24gPiBzdmcge3dpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07fVxufVxuXG4uU2xhdGVFZGl0b3JfX21lbnUtYnV0dG9uLWJsb2NrLXF1b3RlID4gc3BhbiA+IHNwYW4ge1xuICBmb250LXNpemU6IDIyMCU7XG4gIHZlcnRpY2FsLWFsaWduOiAtNDUlO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuIiwiLkRyb3Bkb3duTWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC5JY29uLmRyb3Bkb3duLWFycm93IHtcbiAgICB0b3A6IDJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICA+IC5WZXJ0aWNhbE1lbnUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBtaW4td2lkdGg6IDE0NXB4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBwYWRkaW5nOiAycHg7XG5cbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyRGFyaycpOyAgICBcbiAgICB9XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwJSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4zcztcbiAgICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcblxuICB9XG5cbiAgJi5zaG93ID4gLlZlcnRpY2FsTWVudSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG5cbiAgICBhIHtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTsgIFxuICAgICAgfSAgICAgICBcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTsgIFxuICAgICAgICB9IFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubGVmdCA+IC5WZXJ0aWNhbE1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMCU7XG4gIH1cbiAgJi5yaWdodCA+IC5WZXJ0aWNhbE1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwJTtcbiAgfVxuICAuRHJvcGRvd25NZW51Lm1vdmUtbGVmdCB7XG4gICAgLlZlcnRpY2FsTWVudSB7XG4gICAgICBsZWZ0OiAtNTAlO1xuICAgIH1cbiAgfVxufVxuIiwiLlZlcnRpY2FsTWVudSB7XG5cbiAgd2lkdGg6IDIwMHB4O1xuXG4gIC5JY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgc3ZnIHBhdGgsIHN2ZyBwb2x5Z29uIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTsgIFxuICAgIH0gICAgICBcbiAgfVxuXG4gID4gbGkgPiBhIHtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgfVxuXG4gID4gbGkgPiBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvck9wYXF1ZScpO1xuICAgIH1cbiAgfVxuXG4gID4gbGkudGl0bGUge1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9ICAgIFxuICB9XG59XG5cbiIsIi5Wb3Rlc0FuZENvbW1lbnRzIHtcbiAgcGF0aCB7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgIGZpbGw6IHRoZW1lZCgnaWNvbkNvbG9yU2Vjb25kYXJ5Jyk7IFxuICAgIH0gICAgICAgXG4gIH1cbiAgY2lyY2xlIHtcbiAgICBzdHJva2U6IG5vbmU7XG4gIH1cbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uVm90ZXNBbmRDb21tZW50c19fdm90ZXMge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXItcmlnaHQ6IHRoZW1lZCgnYm9yZGVyTGlnaHQnKTsgXG4gIH0gICBcbn1cblxuLlZvdGVzQW5kQ29tbWVudHNfX2NvbW1lbnRzIHtcbiAgcGFkZGluZzogMCAxcmVtO1xufVxuXG4vKiBTbWFsbCBvbmx5ICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLlZvdGVzQW5kQ29tbWVudHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuIiwiLlRhZ0xpc3RfX2hvcml6b250YWwge1xuICBtYXgtd2lkdGg6IDQ4cmVtO1xuICBtYXJnaW46IDAgYXV0byAwLjVyZW07XG4gIGEge1xuICAgIGZvbnQtc2l6ZTogOTUlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAuMXJlbSAwLjRyZW0gMC4xcmVtIDA7XG4gICAgcGFkZGluZzogMC4xcmVtIDAuM3JlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvck9wYXF1ZScpO1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJEYXJrJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuUmVwdXRhdGlvbiB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgxM3B4KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlLWluLW91dDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICB9ICBcbiAgQGluY2x1ZGUgTVEoTSkge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgfVxufVxuIiwiLlJlYmxvZ19fYnV0dG9uIHtcbiAgcGF0aCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgfVxufVxuXG4uUmVibG9nX19idXR0b24tYWN0aXZlIHtcbiAgcGF0aCB7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50Jyk7XG4gICAgfVxuICB9XG59XG5cbi5SZWJsb2dfX2J1dHRvbi5sb2FkaW5nIHtcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICBzdmcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1oaXZlLXJlZDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDUwMG1zIGluZmluaXRlIGxpbmVhcjtcbiAgICBwYXRoIHtvcGFjaXR5OiAwfVxuICB9XG59XG4iLCIuc2hhcmVNZW51IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDJlbTtcblxuICAgID4gdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIH1cbiAgICAgICAgbGkgPiBhOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdjb2xvckFjY2VudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLkF1dGhvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAuZHJvcGRvd24tYXJyb3cge1xuICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXHR0b3A6IDNweDtcbiAgXHRsZWZ0OiAtMnB4O1xuICB9XG5cbiAgLyogY29heCBmb290ZXIgbGluayB0byBiZWhhdmUgc2ltaWxhcmx5ICovXG4gID4gc3BhbiA+IHN0cm9uZyA+IGEge1xuICAgICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgICAgfVxuICAgICB9XG4gIH1cbn1cbiIsIi5BdXRob3JfX2NvbnRhaW5lciB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcbiAgei1pbmRleDogMTA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMzAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvckVtcGhhc2lzJyk7XG4gICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICB9XG5cbiAgLkF1dGhvcl9fZHJvcGRvd24ge1xuICAgIHdpZHRoOiAyOTBweDtcbiAgICBtaW4taGVpZ2h0OiAxMDhweDtcblxuXG4gICAgLlVzZXJwaWMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDo3NXB4O1xuICAgICAgICBoZWlnaHQ6NzVweDtcbiAgICB9XG5cbiAgICAuQXV0aG9yX19uYW1lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxMTAlO1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgfVxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC5BdXRob3JfX3VzZXJuYW1lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5BdXRob3JfX2JpbyB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgICAgcGFkZGluZzogMTBweCAxMHB4IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuVXNlck5hbWVzIC5WZXJ0aWNhbE1lbnUge1xuICBsaSA+IGEge1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB9XG59XG4iLCIubmF2X19ibG9jay1saXN0IHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG5saS5uYXZfX2Jsb2NrLWxpc3QtaXRlbSB7XG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAxLjEyNXJlbSAwLjI1cmVtO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgYSB7XG4gICAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgfVxuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMHB4IC0ycHggJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMHB4IC0ycHggJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiZm9ybS5zZWFyY2gtaW5wdXQge1xuXG4gICAgaGVpZ2h0OiA0MnB4O1xuXG4gICAgc3ZnLnNlYXJjaC1pbnB1dF9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICB9XG4gICAgICAgIHN0cm9rZS13aWR0aDogMS4yO1xuICAgICAgICBmaWxsOiBub25lO1xuICAgIH1cblxuICAgIGlucHV0LnNlYXJjaC1pbnB1dF9faW5uZXIge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiA5cHggMTBweCAxMXB4IDMycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cGM7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB3aWR0aDogNDJweDtcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAyLCAyMDIsIDIwMiwgMC42KTtcblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdGhlbWVkKCdtb2R1bGVCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhpdmUtcmVkO1xuICAgICAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDEwOSwyMDcsMjQ2LC41KTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1ibHVlLWRhcms7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNtYWxsICovXG4gICAgaW5wdXQuc2VhcmNoLWlucHV0X19pbm5lci5zZWFyY2gtaW5wdXRfX2lubmVyLS1zbWFsbCB7XG5cbiAgICB9XG59XG5cbmZvcm0uc2VhcmNoLWlucHV0LS1leHBhbmRlZCB7XG5cbiAgICBoZWlnaHQ6IDQycHg7XG5cbiAgICBzdmcuc2VhcmNoLWlucHV0X19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBzdHJva2U6IHRoZW1lZCgnY29sb3JBY2NlbnRSZXZlcnNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjI7XG4gICAgICAgIGZpbGw6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHN2Zy5zZWFyY2gtaW5wdXRfX2ljb24ge1xuICAgICAgICAgICAgLy8gc3Ryb2tlOiAkY29sb3Itd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dC5zZWFyY2gtaW5wdXRfX2lubmVyIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHggMTFweCAzMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXBjO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDEwOSwyMDcsMjQ2LC41KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDIsIDIwMiwgMjAyLCAwLjYpO1xuXG5cbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgICAgICAvLyBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgICB9XG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIC8vIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNtYWxsICovXG4gICAgaW5wdXQuc2VhcmNoLWlucHV0X19pbm5lci5zZWFyY2gtaW5wdXRfX2lubmVyLS1zbWFsbCB7XG5cbiAgICB9XG59XG5cbi5zZWFyY2gtc29ydC1vcmRlciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnNlYXJjaC1zb3J0LW9yZGVyLS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuXG4uc2VhcmNoLXNvcnQtb3JkZXItLXNlbGVjdCBzZWxlY3Qge1xuICAgIHdpZHRoOiAyMDBweDtcbn1cbiIsIlxuLmljb24tYnV0dG9uX19zdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICYuaWNvbi1idXR0b25fX3N2Zy0tc21hbGwge1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmLmljb24tYnV0dG9uX19zdmctLW1lZGl1bSB7XG4gICAgICB3aWR0aDogMzZweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgICB3aWR0aDogNDJweDtcbiAgICAgICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICB9XG4gICAgfVxuICAgICYuaWNvbi1idXR0b25fX3N2Zy0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IDQycHg7XG4gICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmLmljb24tYnV0dG9uX19zdmctLWdyZWVuIHtcbiAgICAgIGZpbGw6ICRjb2xvci1oaXZlLXJlZDtcbiAgICB9XG4gICAgJi5pY29uLWJ1dHRvbl9fc3ZnLS10cmFuc3BhcmVudCB7XG4gICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gICAgLmljb24tYnV0dG9ue1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAwLjU7XG4gICAgICAgICYuaWNvbi1idXR0b25fX2JvcmRlci0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2ljb25Db2xvclNlY29uZGFyeScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuaWNvbi1idXR0b25fX2JvcmRlci0tZ3JlZW57XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICRjb2xvci1oaXZlLXJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmljb24tYnV0dG9uLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7XG4gICAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pY29uLWJ1dHRvbl9fbWFnbmlmeWluZ0dsYXNze1xuICAgICAgICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoOiAxO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRoZW1lZCgnY29sb3JBY2NlbnRSZXZlcnNlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuaWNvbi1idXR0b24tLWdyZWVuIHtcbiAgICAgICAgICAgIGZpbGwtcnVsZTogZXZlbm9kZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgIGZpbGw6IHRoZW1lZCgnY29sb3JXaGl0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIDpob3ZlciB7XG4gICAgICAgIHN0cm9rZTogJGNvbG9yLWJvcmRlci1saWdodDtcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAwLjU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgZmlsbDogdGhlbWVkKCdidXR0b25CYWNrZ3JvdW5kJyk7XG4gICAgICAgIH1cbiAgICAgICAgLmljb24tYnV0dG9uIHtcbiAgICAgICAgICAgICYuaWNvbi1idXR0b25fX2JvcmRlciB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoOiAyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWNvbi1idXR0b25fX3N2ZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmQnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pY29uLWJ1dHRvbi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5pY29uLWJ1dHRvbl9fbWFnbmlmeWluZ0dsYXNze1xuICAgICAgICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDE7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaWNvbi1idXR0b24tLWdyZWVue1xuICAgICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgZmlsbDogdGhlbWVkKCdidXR0b25UZXh0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubG9nbyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIC5sb2dvX19zdGVlbWl0e1xuICAgICAgICBmaWxsOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMjVzIGFsbCBlYXNlLWluLW91dDtcbiAgICB9XG4gICAgLy8gRml4ZXMgIzI2MzkgLSBEb24ndCBhcHBseSBob3ZlciBzdHlsZXMgb24gZGV2aWNlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGl0LlxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICY6aG92ZXIsICY6YWN0aXZlIHtcbiAgICAgICAgICAgIC5sb2dvX19zdGVlbWl0e1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiB0aGVtZWQoJ2NvbG9yQWNjZW50UmV2ZXJzZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5zdGVlbS1tYXJrZXQge1xuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgfVxuICAuY29pbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG4gIC5jaGFydCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5jYXB0aW9uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjEpO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXNpemU6IDAuNWVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICB9XG4gIH1cbiAgLmNvaW4tbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIC5zeW1ib2wge1xuICAgICAgY29sb3I6ICM3ODgxODc7XG4gICAgfVxuICAgIC5wcmljZSB7XG4gICAgICBjb2xvcjogIzA5ZDZhODtcbiAgICB9XG4gIH1cbiAgLmJyb3VnaHQge1xuICAgIGZvbnQtc2l6ZTogMC42NzVlbTtcbiAgICBjb2xvcjogIzc4ODE4NztcbiAgfVxufVxuXG4udGhlbWUtZGFyayB7XG4gIC5zdGVlbS1tYXJrZXQge1xuICAgIC5jaGFydCB7XG4gICAgICAuY2FwdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5TYW5pdGl6ZWRMaW5rLS1waGlzaHlMaW5rIHtcbiAgY29sb3I6IGRhcmtlbigkY29sb3ItcmVkLCAxMCUpO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIC5waGlzaHlsaW5rLXJldmVhbC1saW5rIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41ZW07XG4gICAgb3BhY2l0eTogLjU7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cbiIsIi5kcm9wZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgXG4gICAgLkljb24uZHJvcGRvd24tYXJyb3cge1xuICAgICAgdG9wOiAycHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICBcbiAgICA+IC5kcm9wZG93bl9fY29udGVudCB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBtaW4td2lkdGg6IDE0NXB4O1xuICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgcGFkZGluZzogMnB4O1xuICBcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyRGFyaycpO1xuICAgICAgfVxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwJSk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjNzO1xuICAgICAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG4gIFxuICAgIH1cbiAgXG4gICAgJi5zaG93ID4gLmRyb3Bkb3duX19jb250ZW50IHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgICAgYSB7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvckFjY2VudCcpOyAgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLmxlZnQgPiAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDAlO1xuICAgIH1cbiAgICAmLnJpZ2h0ID4gLmRyb3Bkb3duX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDAlO1xuICAgIH1cbiAgfVxuICAiLCIuTm90aWNlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgJl9fbm90aWNlIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcblxuICAgIH1cbiAgICAmX19mZWF0dXJlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2U7XG4gICAgICAgIHBhZGRpbmc6IDNweCA0cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMXB4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgfVxuICAgICZfX2ZlYXR1cmVkICsgJl9fdGl0bGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cbiAgICAmX19mZWF0dXJlZCArICZfX3RpdGxlICsgJl9fbWV0YWRhdGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgfSAgICBcbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpOyAgICBcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgICAmX19tZXRhZGF0YSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMnB4KTsgICAgXG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfSAgICAgICAgICAgICAgICAgIFxuICAgIH1cbiAgICAmX19hdXRob3ItbGluayB7XG4gICAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICB9ICAgIFxuICAgICZfX3RpdGxlLWxpbmsge1xuICAgICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgIH0gICAgICAgIFxuICAgICZfX2J5IHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgfVxufSIsIi5hZHNieWdvb2dsZS5hZC1kZXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgbWluLWhlaWdodDogNjRweDtcbn1cblxuLmMtc2lkZWJhciAuc2lkZWJhci1hZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYXJ0aWNsZXNfX2NvbnRlbnQtYmxvY2stLWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDIuNWVtO1xufVxuXG4uUG9zdF9mb290ZXJfX2FkIHtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG4iLCIuZ3B0LWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLlBvc3RDYXRlZ29yeUJhbm5lciB7XG4gIG1hcmdpbjogLjVlbSAxZW0gMWVtIDA7XG4gIGRpc3BsYXk6IGlubGluZTtcblxuICAucG9zdFRvIHtcbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6IDEwMCU7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICAgIC5zbWFsbExhYmVsIHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jYXRlZ29yeU5hbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBoMyB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgMCAwIC41ZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi5Qb3N0Q2F0ZWdvcnlCYW5uZXItLWNvbW11bml0eS1zZWxlY3RvciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIHdpZHRoOiAyMDBweDtcbn1cbiIsIiAgLmZsYWdfX2J1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5mbGFnMiB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgLmZsYWcxIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgICAuZmxhZzIge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6IHJlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmxhZ19fYnV0dG9uLS1wb3N0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDFlbTtcbiAgfVxuIiwiLnZpZGVvLWFkIHtcbiAgICBkaXYge21hcmdpbjogMCBhdXRvO31cbn1cbiIsIi52aXN1YWwtZWRpdG9yIHtcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuRHJhZnRFZGl0b3ItZWRpdG9yQ29udGFpbmVyIHtcbiAgICA+IGRpdiB7XG4gICAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5IZWFkZXIge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjA1KTtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCduYXZCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICB9XG59XG5cbi5IZWFkZXJfX25hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogNHJlbTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5Db25uZWN0aW9uRXJyb3Ige1xuICBtYXJnaW4tcmlnaHQ6IDRyZW07XG4gIGNvbG9yOiAjZWM1ODQwO1xufVxuXG4uSGVhZGVyX19sb2dvdHlwZSB7XG4gIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICBoZWlnaHQ6IDM3cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgLmljb24tc3ZnIHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgnY29sb3JBY2NlbnQnKTtcbiAgICB9XG4gIH1cblxuICAmLWJldGF7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMzhweDtcbiAgICBsZWZ0OiAxMzZweDtcbiAgfVxufVxuXG4uSGVhZGVyX19zb3J0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uSGVhZGVyX19zZWFyY2gge1xuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJi0tZGVza3RvcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uSGVhZGVyX19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgPiAuSGVhZGVyX191c2VyLXNpZ251cCB7XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICAgICAgICAgJi5IZWFkZXJfX3NpZ251cC1saW5rIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNzVyZW0gMCAuNXJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5IZWFkZXJfX2xvZ2luLWxpbmsge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgLmxpbms7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICA+IGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIEBpbmNsdWRlIE1RKFMpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRpdi5Mb2FkaW5nSW5kaWNhdG9yIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICB9XG59XG5cbi5IZWFkZXJfX3VzZXJwaWMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgLlVzZXJwaWMge1xuICAgIHdpZHRoOiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICB3aWR0aDogNDBweCFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTJweDtcbiAgICB9XG4gIH1cbn1cblxuLkhlYWRlcl9fbm90aWZpY2F0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHRvcDogLTEwcHg7XG4gICAgcmlnaHQ6IC0xMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZWQ7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgICYtLWxvYWRpbmcge1xuICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgXG4gICAgfVxufVxuXG5zcGFuLkhlYWRlcl9faGFtYnVyZ2VyLnRvZ2dsZS1tZW51IHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCk7XG4gICAgLy8gVGhpcyBtYXJnaW4gaXMgdG8gcHJldmVudCB1c2VyIGF2YXRhciBvdmVybGFwcGluZyB0aGUgaGFtYnVyZ2VyIGluIHRoZSBoZWFkZXIuXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgQGluY2x1ZGUgTVEoUykge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xuICAgIH1cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5JyksIDAgMTRweCAwIHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCAwIHRoZW1lZCgndGV4dENvbG9yQWNjZW50JyksIDAgMTRweCAwIHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG59XG5cbi5hbm5vdWNlbWVudC1iYW5uZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICMxNzFGQzk7IC8vTm90aWNlIEJsdWVcbiAgLy8gYmFja2dyb3VuZDogI2ZmZjNjZDtcbiAgY29sb3I6ICNmZmY7XG4gIC8vIGNvbG9yOiAjODU2NDA0O1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyTGlnaHQnKTtcbiAgfVxuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJweDtcbiAgICByaWdodDogMHB4O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICB9XG4gIH1cbn1cblxuLmFubm91bmNlbWVudC1iYW5uZXJfX3RleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDQ0cHggMTBweCAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gfVxuXG4uYW5ub3VuY2VtZW50LWJhbm5lcl9fbGluayB7XG4gICBjb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xuICAgLy8gY29sb3I6ICM4NTY0MDQgIWltcG9ydGFudDs7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi5Mb2dpbkZvcm0ge1xuICBtYXgtd2lkdGg6IDI4cmVtO1xuICBtYXJnaW46IDFyZW0gYXV0byAwLjVyZW0gYXV0bztcbiAgbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIGZvcm0ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgfVxuICAuYnV0dG9ucyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4ucGRmLWRvd25sb2FkIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIGJ1dHRvbiB7XG4gICAgY29sb3I6ICMxQTUwOTk7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4uc2lnbi11cCB7XG4gIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5idXR0b24uaG9sbG93IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGNvbG9yOiAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1oaXZlLXJlZC1kYXJrO1xuICAgICAgY29sb3I6ICRjb2xvci1oaXZlLXJlZC1kYXJrO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjA1KTtcbiAgICB9XG4gIH1cbiAgZW0ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBociB7XG4gICAgICBtYXJnaW46IDEuNzVyZW0gYXV0byAycmVtIGF1dG87XG4gIH1cbiAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG59XG5cbi5Mb2dpbkZvcm1fX3NhdmUtbG9naW4ge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5kaXZpZGVye1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGl2aWRlcjo6YmVmb3JlLC5kaXZpZGVyOjphZnRlcntcbiAgY29udGVudDogJyc7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xufVxuLmRpdmlkZXI6OmJlZm9yZXtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmRpdmlkZXI6OmFmdGVye1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuI2J0bi1oaXZlc2lnbmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2QxZDVkYTtcbiAgYmFja2dyb3VuZDogI2QxZDVkYTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjQTZBNkE2O1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTQwcHg7XG4gIH1cbn1cbiIsIiRtZW51LXdpZHRoOiAyNTBweDtcblxuLlNpZGVQYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gICZfX2hpZGUtc2lnbnVwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWVudSA+IGxpLmxhc3Qge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWRhcms7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWdyYXktbGlnaHQ7XG4gIH1cblxuICA+IGRpdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2stZGFya2VzdDtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIC5jbG9zZS1idXR0b24ge1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gICAgLm1lbnUgPiBsaSB7XG4gICAgICA+IGEge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWhpdmUtYmxhY2stZGFya2VzdDtcbiAgICAgIH1cbiAgICAgID4gYTpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICAkY29sb3ItaGl2ZS1ibGFjaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1oaXZlLXJlZDtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAkY29sb3ItaGl2ZS1yZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiAkY29sb3ItdGV4dC1ncmF5LWxpZ2h0O1xuICAgICAgfVxuICAgICAgYS5tZW51LXNlY3Rpb24ge1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtZ3JheS1saWdodDtcbiAgICAgIH1cbiAgICAgIGEubWVudS1zZWN0aW9uOmhvdmVyLCBhLm1lbnUtc2VjdGlvbjpmb2N1cyB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1oaXZlLWJsYWNrLWRhcmtlc3Q7XG4gICAgICB9XG4gICAgfVxuICAgIHVsOm50aC1vZi10eXBlKG4rMykge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRtZW51LXdpZHRoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMjUwbXMsIHRyYW5zZm9ybSBlYXNlIDI1MG1zO1xuXG4gICAgJi5sZWZ0IHtcbiAgICAgIGxlZnQ6IC0kbWVudS13aWR0aDtcbiAgICB9XG5cbiAgICAmLnZpc2libGUubGVmdCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCRtZW51LXdpZHRoLCAwLCAwKTtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgIHJpZ2h0OiAtJG1lbnUtd2lkdGg7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgICYudmlzaWJsZS5yaWdodCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0kbWVudS13aWR0aCwgMCwgMCk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAuSWNvbi5leHRsaW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAzcHg7XG4gICAgbGVmdDogMnB4O1xuICB9XG59XG5cbi8qIFNtYWxsIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuU2lkZVBhbmVsIHtcbiAgICBkaXYgdWw6bnRoLW9mLXR5cGUobisyKSB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbiAgICA+IGRpdiA+IC5tZW51ID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDAuM3JlbSAxcmVtO1xuICAgIH1cbn1cbn1cbiIsIi5TZXR0aW5ncyB7XG5cdC5idXR0b24ge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlLWluLW91dDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcblx0XHRAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuXHRcdFx0Ym94LXNoYWRvdzogMHB4IDBweCAwcHggMCByZ2JhKDAsMCwwLDApLCA1cHggNXB4IDAgMCB0aGVtZWQoJ2J1dHRvbkJveFNoYWRvdycpO1xuXHRcdFx0Y29sb3I6IHRoZW1lZCgnYnV0dG9uVGV4dCcpO1xuXHRcdH1cblx0XHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRcdEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2J1dHRvbkJhY2tncm91bmRIb3ZlcicpO1xuXHRcdFx0XHRib3gtc2hhZG93OiAycHggMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xKSwgN3B4IDdweCAwIDAgdGhlbWVkKCdidXR0b25Cb3hTaGFkb3dIb3ZlcicpO1xuXHRcdFx0XHRjb2xvcjogdGhlbWVkKCdidXR0b25UZXh0SG92ZXInKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Jjp2aXNpdGVkLCAmOmFjdGl2ZSB7XG5cdFx0XHRAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcblx0XHRcdFx0Y29sb3I6IHRoZW1lZCgnQnV0dG9uVGV4dCcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG5cdCAgICBvcGFjaXR5OiAwLjI1O1xuXHQgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblx0ICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDAgcmdiYSgwLDAsMCwwKTtcblx0ICAgICY6aG92ZXIge1xuXHRcdFx0QGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYnV0dG9uQmFja2dyb3VuZCcpO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwcHggMHB4IDBweCAwIHJnYmEoMCwwLDAsMCk7XG5cdFx0XHRcdGNvbG9yOiB0aGVtZWQoJ2J1dHRvblRleHQnKTtcblx0XHRcdH1cblx0ICAgIH1cblx0fVxuXHQuc3VjY2VzcywgLmVycm9yIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblx0XHRwYWRkaW5nLWxlZnQ6IDhweDtcblx0fVxuXHQuc3VjY2VzcyB7XG5cdFx0QGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG5cdFx0XHRjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcblx0XHR9XG5cdH1cblx0cC5lcnJvciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogNHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdH1cblx0ZGl2LmVycm9yIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cbiAgICBsYWJlbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lIWltcG9ydGFudDtcbiAgICB9XG4gICAgaDQge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW0haW1wb3J0YW50O1xuICAgIH1cbiAgICBmb3JtIC5mb3JtX19maWVsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgLmZvcm1fX2ZpZWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxuICAgIH1cbn1cbiIsIi5Vc2VyV2FsbGV0X19jbGFpbWJveCB7XG4gIG1hcmdpbjogMXJlbSAwO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdoaWdobGlnaHRCYWNrZ3JvdW5kQ29sb3InKTtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBAZXh0ZW5kIC5lLWJ0bjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCIucG9zdF9hZHZhbmNlZF9zZXR0aW5ncyB7XG4gICAgaDQge1xuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1MHJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5Qb3N0c0xpc3Qge1xuICBjbGVhcjogcmlnaHQ7XG59XG5cbi5jLXNpZGViYXJfX21vZHVsZS5Db21tdW5pdHlQYW5lTW9iaWxlIHtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtIDBlbTtcbn1cblxuLlBvc3RzTGlzdF9fc3VtbWFyaWVzIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLlBvc3RzSW5kZXgge1xuICAuYXJ0aWNsZXNfX2gxLS1uby13cmFwIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi5Qb3N0c0luZGV4X190b3BpY3Mge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xufVxuXG4uUG9zdHNJbmRleF9fdG9waWNzX2NvbXBhY3Qge1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAxNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjhyZW07XG4gID4gc2VsZWN0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8qIFNtYWxsIG9ubHkgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuUG9zdHNJbmRleF9fbGVmdCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAuUG9zdHNJbmRleF9fdG9waWNzX2NvbXBhY3Qge1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8qIE1lZGl1bSBhbmQgdXAgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM5Ljk0ZW0pIHtcbiAgLlBvc3RzSW5kZXhfX3N1bW1hcmllcyB7XG4gICAgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAuUG9zdFN1bW1hcnkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyAuY29udGFpbmVyIHtcbi8vICAgd2lkdGg6IDEwMCU7XG4vLyAgIHBhZGRpbmctYm90dG9tOiA0ZW07XG4vLyAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4vLyAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbi8vICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvcicpO1xuLy8gICAgIH1cbi8vIH1cblxuXG4uY29udGVudC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIC8vIHBhZGRpbmctdG9wOiA2NXB4O1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgLy8gcGFkZGluZy10b3A6IDg5cHg7XG4gIH1cbn1cblxuLy8gU2lkZWJhciBjb21wb25lbnRzIG9uIHRoZSBob21lcGFnZVxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5jLXNpZGViYXIge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMCAwIDMyMHB4O1xuICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAmX19tb2R1bGUge1xuICAgIHBhZGRpbmc6IDEuNWVtIDJlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHRoZW1lZCgncm91bmRlZENvcm5lcnMnKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBib3gtc2hhZG93OiAwcHggNXB4IDEwcHggMCByZ2JhKDAsMCwwLDApO1xuICAgIHRyYW5zaXRpb246IDAuMnMgYm94LXNoYWRvdyBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb246IDFzIGVhc2Utb3V0IDBzIDEgZmFkZUluO1xuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDEwcHggMCByZ2JhKDAsMCwwLDAuMDMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWxlZnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgb3JkZXI6IDE7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cbiAgfVxuICAmLS1yaWdodCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcmRlcjogMztcbiAgICBAaW5jbHVkZSBNUShMKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgIH1cbiAgfVxuICAmX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmxpIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbiAgJl9faDMge1xuICAgIC8vIEBleHRlbmQgLmgzO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbiAgICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gICAgJi0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cbiAgJl9fbGluayB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICBAZXh0ZW5kIC5saW5rLS1wcmltYXJ5O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuICAgICYtLWVtcGhhc2lzIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cbiAgJl9fbW9yZS1saW5rIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xuICAgIEBleHRlbmQgLmxpbmstLWFjY2VudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4zZW07XG4gIH1cbiAgJl9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cbiAgJl9fc2NvcmUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxN3B4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG59XG5cbi5Qb3N0c0luZGV4LnJvdyB7XG4gIG1heC13aWR0aDogODYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBtYXJnaW46IDAgYXV0bztcbiAgQGluY2x1ZGUgTVEoTCkge1xuICAgIG1heC13aWR0aDogMTI0MHB4O1xuICB9XG59XG5cbi5Qb3N0c0luZGV4LnJvdy5sYXlvdXQtbGlzdCB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgQGluY2x1ZGUgTVEoTCkge1xuICAgIG1heC13aWR0aDogMTYwMHB4O1xuICB9XG59XG5cbi5hcnRpY2xlcyB7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDBlbSAxZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICBtaW4td2lkdGg6IDMwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGgyIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgfVxuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgcGFkZGluZzogMGVtIDFlbTtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIG1heC13aWR0aDogNjY0cHg7XG4gICAgb3JkZXI6IDI7XG5cbiAgfVxuICBAaW5jbHVkZSBNUShMKSB7XG4gICAgbWluLXdpZHRoOiA1NTBweDtcbiAgICBtYXgtd2lkdGg6IDY2NHB4O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlclRyYW5zcGFyZW50Jyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ3RyYW5zcGFyZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgJl9faHIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19sYXlvdXQtc2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIE1RKEZMKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShGTSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICB9XG4gICZfX2ljb24tLWxheW91dCB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAmX19zdW1tYXJ5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnbW9kdWxlQmFja2dyb3VuZENvbG9yJyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIG1hcmdpbjogMCAwIDQwcHg7XG4gICAgICBib3gtc2hhZG93OiAwcHggNXB4IDEwcHggMCByZ2JhKDAsMCwwLDAuMCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBib3JkZXI6IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDEwcHggMCByZ2JhKDAsMCwwLDAuMDMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19yZXN0ZWVtLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgcGFkZGluZy1yaWdodDogMnB4O1xuICB9XG4gICZfX3N1bW1hcnktaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNnB4IDAgOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDE2cHggNXB4O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICB9XG4gICAgfVxuICAgICYtLWZvb3RlciB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fc3VtbWFyeS1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE1cHgpO1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogdGhlbWVkKCdib3JkZXInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgYSB7XG4gICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgQGV4dGVuZCAubGluay0tcHJpbWFyeTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNXB4KTtcbiAgICB9XG4gIH1cbiAgJl9faGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDo1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICAgICYtc2VsZWN0IHtcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2hlYWRlci1jb2wge1xuICAgICYtLXJpZ2h0IHtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3MHB4KSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fcmVzdGVlbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG5cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHRoZW1lZCgnYm9yZGVyJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3Jlc3RlZW0tdGV4dCB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDEzcHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgfVxuICB9XG4gICZfX3Jlc3RlZW0tdXNlcm5hbWUge1xuICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgJl9faWNvbi0xMDAge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG5cbiAgfVxuICAmX19oMSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgfVxuICB9XG4gICZfX2gyIHtcbiAgICAvLyBAZXh0ZW5kIC5oMjtcbiAgICBtYXJnaW46IDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgIG92ZXJmbG93IDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICB9XG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgfVxuICB9XG4gICZfX2gzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICAmX190YWctc2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBzZWxlY3QuVG9waWNzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTk5O1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTRweDtcbiAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgICB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3MHB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIE1RKEwpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICZfX3Age1xuICAgIC8vIEBleHRlbmQgLnA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgb3ZlcmZsb3cgOiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAmX19saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgfVxuICB9XG4gIC8vICZfX3Byb2ZpbGUtaW1nIHtcbiAgLy8gICBkaXNwbGF5OiBub25lO1xuICAvLyAgIHdpZHRoOiA1NHB4O1xuICAvLyAgIGhlaWdodDogYXV0bztcbiAgLy8gfVxuICAmX190ZXh0LWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHBhZGRpbmc6IDAgMS4yZW07XG4gICAgfVxuICB9XG4gICZfX3RhZ3Mge1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICB9XG4gICZfX3RhZy1saW5rIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICB9XG4gICAgYSB7XG4gICAgICBAZXh0ZW5kIC5saW5rO1xuICAgICAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xuICAgIH1cbiAgfVxuICAmX19mbGFnIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtNHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHRvcDogMTJweDtcbiAgICB9XG5cbiAgICAuaWNvbi1mbGFnLXN2ZyB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgIH1cbiAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIC5pY29uLWZsYWctc3ZnIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JFcnJvcicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2NvbnRlbnQtYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgJi0tdGV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50LWJsb2NrLS1pbWcgKyAmX19jb250ZW50LWJsb2NrLS10ZXh0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICZfX3Jlc3RlZW0sICZfX2NvbnRlbnQtYmxvY2stLXRleHQsICZfX21ldGFkYXRhIHtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuMWVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMS4xZW07XG4gICAgfVxuICB9XG59XG5cbi8vICx1c2VyIGxheW91dC1ibG9ja1xuXG4udXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICAmX19jb2wge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICYtLXJpZ2h0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTJweDtcbiAgICB9XG4gIH1cbiAgJl9fbGluayB7XG4gICAgQGV4dGVuZCAubGluaztcbiAgICAmOmhvdmVyIHtcbiAgICAgIC51c2VyX191c2VybmFtZSB7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JBY2NlbnQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19wcm9maWxlLWltZyB7XG4gICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2Utb3V0O1xuICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgIHdpZHRoOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG4gIH1cbiAgJl9fbmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgIGEge1xuICAgICAgQGV4dGVuZCAubGluaztcbiAgICAgIEBleHRlbmQgLmxpbmstLXByaW1hcnk7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgICAgIEBpbmNsdWRlIE1RKE0pIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX191c2VybmFtZSwgJl9fcmVwdXRhdGlvbiB7XG4gICAgQGV4dGVuZCAubGluay0tc2Vjb25kYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICB9XG59XG5cblxuXG4udGltZXN0YW1wIHtcbiAgJl9fbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gICZfX3RpbWUge1xuICAgIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNHB4KTtcbiAgfVxufVxuXG5cblxuLmljb24tc3ZnIHtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgMC4wNXMgZWFzZS1pbi1vdXQ7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cbiAgJi0tYWNjZW50IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgfVxuICB9XG4gICYtLWxheW91dC1saW5lMSwgJi0tbGF5b3V0LWxpbmUyLCAmLS1sYXlvdXQtbGluZTMge1xuICAgIGhlaWdodDogMnB4O1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMSk7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUyIHtcbiAgICB5OiAxMXB4O1xuICB9XG4gICYtLWxheW91dC1saW5lMSB7XG4gICAgeTogNnB4O1xuICB9XG4gICYtLWxheW91dC1saW5lMyB7XG4gICAgeTogMTZweDtcbiAgfVxufVxuXG5cbi5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAuaWNvbi1zdmcge1xuICAgICYtLWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgZmlsbDogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmFydGljbGVzX19sYXlvdXQtc2VsZWN0b3I6aG92ZXIgLmljb24tc3ZnIHtcbiAgJi0tYWNjZW50IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBDb21wcmVzc2VkIGxpc3QgdmlldyBDU1NcblxuYSNjaGFuZ2VMYXlvdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubGF5b3V0LWxpc3Qge1xuICBAaW5jbHVkZSBNUShNKSB7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG5cbiAgICAuaWNvbi1zdmcge1xuICAgICAgJi0tbGF5b3V0LWxpbmUzIHtcbiAgICAgICAgeTogMjJweDtcbiAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICAgIH1cbiAgICAgICYtLWxheW91dC1saW5lMSwgJi0tbGF5b3V0LWxpbmUyIHtcblxuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgIH1cbiAgICAgICYtLWxheW91dC1saW5lMiB7XG4gICAgICAgIHk6IDE0cHg7XG4gICAgICB9XG4gICAgICAmLS1sYXlvdXQtbGluZTEge1xuICAgICAgICB5OiA2cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jLXNpZGViYXIge1xuICAgICAgJi0tcmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgICAgICBvcmRlcjogMztcbiAgICAgICAgQGluY2x1ZGUgTVEoTCkge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5hcnRpY2xlcyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBtYXgtd2lkdGg6IDEwNTZweDtcbiAgICAgIEBpbmNsdWRlIE1RKFhMKSB7XG4gICAgICAgIG1pbi13aWR0aDogODUwcHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogdGhlbWVkKCdib3JkZXJUcmFuc3BhcmVudCcpO1xuICAgICAgfVxuICAgICAgJl9faHIge1xuICAgICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJl9fc3VtbWFyeSB7XG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmX19oMiB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNXB4KTtcblxuICAgICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIE1RKFhMKSB7XG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgICZfX2ZlYXR1cmUtaW1nLWNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMzBweDtcbiAgICAgICAgaGVpZ2h0OiA3N3B4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICAgICZfX2ZlYXR1cmUtaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKVxuICAgICAgfVxuICAgICAgJl9fc3VtbWFyeS1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAycHggMDtcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICAgICZfX3N1bW1hcnktZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMnB4IDAgNXB4O1xuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgICAgIC8vIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAvLyAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXJMaWdodCcpO1xuICAgICAgICAvLyAgIH1cbiAgICAgIH1cbiAgICAgICZfX3Age1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTVweCk7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICB9XG4gICAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHRvcDtcbiAgICAgIH1cbiAgICAgICZfX2Zvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGJvcmRlci10b3A6IHRoZW1lZCgnYm9yZGVyTGlnaHQnKTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjI1ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZfX2NvbnRlbnQtYmxvY2sge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAmLS1pbWcge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTRweDtcbiAgICAgICAgfVxuICAgICAgICAmLS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZfX3RhZ3Mge1xuICAgICAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgICB9XG4gICAgICAmX19mbGFnIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuICAgICAgJl9fcmVzdGVlbSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICAgICZfX3Jlc3RlZW0sICZfX2NvbnRlbnQtYmxvY2stLXRleHQsICZfX21ldGFkYXRhIHtcbiAgICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuYXJ0aWNsZXNfX2hyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC8vICx1c2VyIGxheW91dC1saXN0XG4gICAgLnVzZXIge1xuICAgICAgJl9fbmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNXB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5sYXlvdXQtbGlzdCAudXNlciA+IC51c2VyX19jb2wgPiAudXNlcl9fbGluayA+IC5Vc2VycGljIHtcbiAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4ubGF5b3V0LWJsb2NrIC5Vc2VycGljIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIEBpbmNsdWRlIE1RKE0pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIH1cbn1cblxuLmljb24tc3ZnIHtcbiAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZS1pbi1vdXQ7XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yU2Vjb25kYXJ5Jyk7XG4gIH1cbiAgJi0tYWNjZW50IHtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yQWNjZW50Jyk7XG4gICAgfVxuICB9XG4gICYtLWxheW91dC1saW5lMSwgJi0tbGF5b3V0LWxpbmUyLCAmLS1sYXlvdXQtbGluZTMge1xuICAgIGhlaWdodDogMnB4O1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoMSk7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZS1pbi1vdXQ7XG4gIH1cbiAgJi0tbGF5b3V0LWxpbmUyIHtcbiAgICB5OiAxMXB4O1xuICB9XG4gICYtLWxheW91dC1saW5lMSB7XG4gICAgeTogNnB4O1xuICB9XG4gICYtLWxheW91dC1saW5lMyB7XG4gICAgeTogMTZweDtcbiAgfVxufVxuXG4uUG9zdHNJbmRleCAuVm90aW5nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG5cbi5hcnRpY2xlc19fcmVzdGVlbSAudXNlcm5hbWUsXG4uYXJ0aWNsZXNfX2Nyb3NzcG9zdCAudXNlcm5hbWUsXG57XG4gIEBleHRlbmQgLmxpbms7XG4gIEBleHRlbmQgLmxpbmstLXNlY29uZGFyeTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5cbi5hcnRpY2xlc19fcmVzdGVlbS1pY29uIHBhdGgsXG4uYXJ0aWNsZXNfX2Nyb3NzcG9zdC1pY29uIHBhdGgge1xuICBmaWxsOiAjY2FjYWNhO1xufVxuIiwidWwuVG9waWNzIHtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgPiBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB9XG4gID4gbGkgPiBhLmFjdGl2ZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAuc2hvdy1tb3JlIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgfVxufVxuXG4uYy1zaWRlYmFyX19oZWFkZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuIiwiLlBvc3RfX2NvbW1lbnRzX3NvcnRfb3JkZXIge1xuICBtYXJnaW46IDAuNXJlbSAwO1xuICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JTZWNvbmRhcnknKTsgIFxuICB9ICBcbiAgZm9udC1zaXplOiA5NCU7XG4gIHN2ZyBwb2x5Z29uIHtcbiAgICBmaWxsOiAkZGFyay1ncmF5O1xuICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICBmaWxsOiB0aGVtZWQoJ3RleHRDb2xvclNlY29uZGFyeScpOyAgXG4gICAgfSBcbiAgfVxuICA+IHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbi5Qb3N0X19wcm9tbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDFyZW0gMDtcbiAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTsgIFxuICB9IFxuICAuYnV0dG9uIHsgXG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLlBvc3RfY29tbWVudHNfX2NvbnRlbnQge1xuICBtYXgtd2lkdGg6IDU0cmVtO1xuICBtYXJnaW46IDAgYXV0byAzLjVyZW07XG4gIGZvbnQtc2l6ZTogOTIlO1xufVxuIiwiLlByaXZhY3kge1xuXHRtYXgtd2lkdGg6IDgwMHB4O1xuXHRwYWRkaW5nOiAxLjVlbSAwIDNlbTtcbiAgLnNlY3Rpb24ge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgIGZpbGw6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgIH0gICAgICBcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gIH1cbn1cbiIsIi8vIEZJWE1FIHRoaXMgbmVlZHMgZGVzaWduIHJldmlld1xuXG4uVG9zIHtcblx0bWF4LXdpZHRoOiA4MDBweDtcblx0cGFkZGluZzogMS41ZW0gMCAzZW07XG4gIC5jMS5oIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG59XG4iLCIuVXNlclByb2ZpbGUge1xuICAgIG1hcmdpbi10b3A6IC0xLjVyZW07XG5cbiAgICAuYXJ0aWNsZXMge1xuICAgICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fYmxhY2tsaXN0cyB7XG4gICAgLmFjY291bnRfd2FybiB7Zm9udC1zaXplOiAwLjhlbTt9XG4gICAgLlZlcnRpY2FsTWVudSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aGVtZWQoJ2JhY2tncm91bmRDb2xvcicpO1xuICAgICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICAgIH1cbiAgICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fcG9zdG1lbnUge1xuICAgIG1hcmdpbjogLTAuNXJlbSAwIDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBAaW5jbHVkZSB0aGVtaWZ5KCR0aGVtZXMpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgICB9XG4gICAgZGl2IHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgMC41cmVtOyBtYXJnaW46IDAgMC41cmVtO31cbn1cblxuLlVzZXJQcm9maWxlX190YWJfY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG4uVXNlclByb2ZpbGVfX3RvcC1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmx1ZS1kYXJrO1xuICBwYWRkaW5nOiAwO1xuICAubWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm1lbnUgPiBsaSA+IGEge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW47XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCAwLCAwLCAwKTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMC43cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1oaXZlLWJsYWNrO1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgICAgIGNvbG9yOiB0aGVtZWQoJ3RleHRDb2xvclByaW1hcnknKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgIH1cbiAgfVxuXG4gIGRpdi5Vc2VyUHJvZmlsZV9fdG9wLW1lbnUge1xuICAgICAgbWF4LXdpZHRoOiA3MS40Mjg1N3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgc3ZnIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgLkljb24gPiBzdmcsIC5JY29uIHNwYW4uaWNvbiB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5jb2x1bW5zLnNtYWxsLTkge1xuICAgICAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICB9XG59XG5cbi5Vc2VyUHJvZmlsZV9fc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRUU7XG59XG5cbi5Vc2VyUHJvZmlsZV9fYmFubmVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgPiBkaXYuY29sdW1uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJhY2tncm91bmQtbGVzcy1kYXJrO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggYmxhY2s7XG4gICAgICAgIC5idXR0b24ge3RleHQtc2hhZG93OiBub25lO31cblxuICAgICAgICBtaW4taGVpZ2h0OiAxNTVweDtcbiAgICB9XG4gICAgaDEge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjg0NTI0cmVtIWltcG9ydGFudDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTMwOTVyZW0haW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5JY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgIHN2ZyB7ZmlsbDogI2RlZjt9XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19yZXAge1xuICAgICAgICBmb250LXNpemU6IDgwJTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcblxuICAgICAgICBsYWJlbC5idXR0b24ge1xuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2JpbyB7XG4gICAgICAgIG1hcmdpbjogLTAuNHJlbSBhdXRvIDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiA5NSU7XG4gICAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgfVxuICAgIC5Vc2VyUHJvZmlsZV9faW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgIH1cblxuICAgIC5Vc2VyUHJvZmlsZV9fc3RhdHMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogOTAlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHQgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0NDQztcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge2JvcmRlci1sZWZ0OiBub25lO31cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpIHtib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0NDQ31cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG5cbiAgICBkaXYuVXNlclByb2ZpbGVfX3RvcC1uYXYgLm1lbnUgbGk+YSB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX3RvcC1tZW51ID4gZGl2LmNvbHVtbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJwaWMge1xuICAgICAgICB3aWR0aDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2Jhbm5lciAuVXNlclByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICBsYWJlbC5idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuVXNlclByb2ZpbGVfX2Jhbm5lciAuVXNlclByb2ZpbGVfX2J1dHRvbnNfbW9iaWxlIHtcbiAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFRlbXBvcmFyeSBmaXggdG8gcHJldmVudCBhbHRlcm5hdGUgVXNlciBQcm9maWxlIHBhZ2VzIG91dHNpZGUgdGhlIGJsb2cgZnJvbSB0YWtpbmcgdGhlIG5hcnJvdyBsYXlvdXQuXG5cbi5Vc2VyUHJvZmlsZSB7XG4gIC5hcnRpY2xlcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0ZW07XG4gICAgJl9faDEge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLnNldHRpbmdzLCAmX190YWJfY29udGVudC5sYXlvdXQtYmxvY2suY3VyYXRpb24tcmV3YXJkcywgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLmF1dGhvci1yZXdhcmRzIHtcbiAgICAuYXJ0aWNsZXMge1xuICAgICAgICBwYWRkaW5nOiAxLjVlbSAxLjVlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDU2cHg7XG4gICAgICAgIEBpbmNsdWRlIE1RKFhMKSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDUwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNldHRpbmdzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yLCAuY3VyYXRpb24tcmV3YXJkcyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciwgLmF1dGhvci1yZXdhcmRzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yICB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLlVzZXJQcm9maWxlX19Vc2VycGljIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLlVzZXJQcm9maWxlX19iYWRnZV9pbWFnZV9oaXZlYnV6emxldmVsIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgdG9wOiAzMHB4O1xuICAgIGxlZnQ6IDMwcHg7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMsIGhlaWdodCAwLjI1cywgdG9wIDAuMjVzLCBsZWZ0IDAuMjVzO1xuICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICBsZWZ0OiAyNnB4O1xuICAgIH1cbn1cbiIsIi5UYWdzSW5kZXgge1xuICBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtIWltcG9ydGFudDtcbiAgfVxuXG4gIHRhYmxlIHRyIHtcbiAgICB0aCBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2UtaW4tb3V0O1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE3cHgpO1xuICAgIH1cbiAgICB0aCBhOmhvdmVyOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwyMTkzJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICB9XG5cbiAgICB0ZCwgdGgge1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgJjpmaXJzdC1jaGlsZCB7dGV4dC1hbGlnbjogbGVmdDt9XG4gICAgfVxuICB9XG59XG5cbiIsIi5XZWxjb21lX19iYW5uZXIge1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuV2VsY29tZV9fd2VsY29tZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogNzAlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDE2MCU7XG4gICAgcGFkZGluZy1sZWZ0OiAzOCU7XG4gIH1cblxuICAuV2VsY29tZV9fY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogNjUlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDExNSU7XG4gICAgcGFkZGluZy1sZWZ0OiA0NCU7XG4gICAgcGFkZGluZy1yaWdodDogMiU7XG4gIH1cblxufVxuXG4uSGVscENvbnRlbnQge1xuXG4gIGhlaWdodDogaW5oZXJpdDtcblxuICBwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfSAgXG59XG4iLCIuQWJvdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG5cbiAgLmgyLCAuQWJvdXRNaXNzaW9uX19oZWFkaW5nIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuMTdlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5oMiwgLkFib3V0TWlzc2lvbl9faGVhZGluZyB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogNHB4O1xuICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgZm9udC1zaXplOiAyLjYyNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMmVtIDA7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5BYm91dE1pc3Npb25fX3NlY3Rpb24ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uLS12aXNpb24gLkFib3V0TWlzc2lvbl9fc2VjdGlvbl9fdGV4dC1jb250YWluZXIge1xuICAgIGNvbG9yOiBibHVlO1xuICAgIG9yZGVyOiAyO1xuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fdGV4dC1jb250YWluZXIsIC5BYm91dE1pc3Npb25fX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5BYm91dE1pc3Npb25fX3RleHQtY29udGFpbmVyLCAuQWJvdXRNaXNzaW9uX19pbWFnZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMmVtIDAgMmVtIDQlO1xuICAgICAgd2lkdGg6IDQ2JTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX190ZXh0LWNvbnRhaW5lciwgLkFib3V0TWlzc2lvbl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDJlbSAwIDJlbSA4JTtcbiAgICAgIHdpZHRoOiA0MiU7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fdGV4dC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zcXVhcmUge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogIzA2RDZBOTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYmFja2dyb3VuZDogIzA2RDZBOTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX190ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19zdWJoZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkge1xuICAgIC5BYm91dE1pc3Npb25fX3N1YmhlYWRpbmcge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX2xpc3Qge1xuICAgIG1hcmdpbjogNnB4IDA7XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19saXN0LWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxuXG4gIC5BYm91dE1pc3Npb25fX2ltZyB7XG4gICAgYm94LXNoYWRvdzogMTBweCAxMnB4IDE0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwZW0pIHtcbiAgICAuQWJvdXRNaXNzaW9uX19zZWN0aW9uOm50aC1jaGlsZChldmVuKSAuQWJvdXRNaXNzaW9uX190ZXh0LWNvbnRhaW5lciB7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG4gIH1cblxuICAuQWJvdXQtY29udGVudC1jb250YWluZXIsIC5BYm91dFRlYW1fX2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICAuQWJvdXRNaXNzaW9uX19oZWFkaW5nLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE0cHg7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiAwLjgzZW0gYXV0bztcbiAgICAuQWJvdXRNaXNzaW9uX19oZWFkaW5nIHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgLkFib3V0TWlzc2lvbl9fc3F1YXJlLS0yIHtcbiAgICBtYXJnaW4tdG9wOiA2cmVtO1xuICB9XG59XG4iLCIuQ29tbXVuaXRpZXNJbmRleCB7XG4gICAgdGFibGUge21hcmdpbi10b3A6IDFlbTt9XG4gICAgdGFibGUgdGJvZHkge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O31cbiAgICB0YWJsZSB0Ym9keSB0ciB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDt9XG4gICAgdGFibGUgdGgge3RleHQtYWxpZ246IGxlZnQ7IGZvbnQtd2VpZ2h0OiBub3JtYWx9XG4gICAgdGFibGUgdGggYS50aXRsZSB7Zm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAxLjNlbTt9XG4gICAgdGFibGUgdGQge3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGNvbG9yOiAjNjY2OyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxuICAgIHRhYmxlIHNtYWxsIHtjb2xvcjogIzk5OTsgZGlzcGxheTogYmxvY2s7fVxuICAgIHRhYmxlIC5idXR0b24ge21hcmdpbjogMH1cblxuICAgICYuYy1zaWRlYmFyX19tb2R1bGUge1xuICAgICAgICAvKiBMYXJnZXIgdGhhbiBNZWRpdW0gKi9cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVlbSA0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB0Ym9keSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICB0YWJsZSB0ciB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgICAgYm9yZGVyOiB0aGVtZWQoJ2JvcmRlcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUgdGgge1xuICAgICAgICB3aWR0aDogNjAwcHg7XG5cbiAgICAgICAgLyogTGFyZ2VyIHRoYW4gU21hbGwgKi9cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYyNWVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2JTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHRkIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgfVxufVxuXG4uQmFkZ2VzQWNoaWV2ZW1lbnRzIHtcbiAgICAuQmFkZ2VzQWNoaWV2ZW1lbnRzX3RhYnNfY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5CYWRnZXNBY2hpZXZlbWVudHNfX2JhZGdlX2ltYWdlIHtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZWFjdC10YWJzX190YWItbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kLW9mZi13aGl0ZTtcbiAgICB9XG5cbiAgICAucmVhY3QtdGFic19fdGFiIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWRhcms7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5yZWFjdC10YWJzX190YWItLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtZGFyaztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgIC5yZWFjdC10YWJzX190YWItcGFuZWwge1xuICAgICAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgIH1cbn1cblxuLmFydGljbGVfc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cbiIsIi5Db21tdW5pdHlSb2xlcyB7XG4gICAgdGFibGUgdGJvZHkge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O31cbiAgICB0YWJsZSB0Ym9keSB0ciB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDt9XG59XG5cbi5jb21tdW5pdHktdXNlci0tcm9sZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYS5jb21tdW5pdHktLXN1YnNjcmliZTpob3ZlciB7XG4gICAgJi5ob2xsb3cge1xuICAgICAgICBzcGFuIHtkaXNwbGF5OiBub25lfVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnTGVhdmUnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLlJld2FyZHNfX2NoYXJ0IHtcblxuICAgIC5oZWFkIHtmb250LXNpemU6IDAuOGVtOyBtYXJnaW46IC02cHggMCA4cHg7fVxuXG4gICAgI3Jld2FyZF9jaGFydCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAgICAgICAuYm94IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwwLjI1KTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLDAsMCwxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYm94LWEgLnRpdGxlIHtmb250LXN0eWxlOiBpdGFsaWN9XG4gICAgICAgICAgICBhLmJveC1pbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmRldGFpbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIC5kZXRhaWwge2Rpc3BsYXk6IGJsb2NrfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbiIsIi5Vc2VyUHJvZmlsZSB7XG4gIG1hcmdpbi10b3A6IC0xLjVyZW07XG5cbiAgLmFydGljbGVzIHtcbiAgICBAaW5jbHVkZSBNUShNKSB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLlVzZXJQcm9maWxlX19ibGFja2xpc3RzIHtcbiAgLmFjY291bnRfd2FybiB7Zm9udC1zaXplOiAwLjhlbTt9XG4gIC5WZXJ0aWNhbE1lbnUge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRoZW1lZCgnYmFja2dyb3VuZENvbG9yJyk7XG4gICAgICAgICAgY29sb3I6IHRoZW1lZCgndGV4dENvbG9yUHJpbWFyeScpO1xuICAgICAgICB9XG4gIH1cbn1cblxuLlVzZXJQcm9maWxlX19wb3N0bWVudSB7XG4gIG1hcmdpbjogLTAuNXJlbSAwIDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIEBpbmNsdWRlIHRoZW1pZnkoJHRoZW1lcykge1xuICAgICAgYm9yZGVyLWJvdHRvbTogdGhlbWVkKCdib3JkZXInKTtcbiAgfVxuICBkaXYge2Rpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMCAwLjVyZW07IG1hcmdpbjogMCAwLjVyZW07fVxufVxuXG4uVXNlclByb2ZpbGVfX3RhYl9jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG4uVXNlclByb2ZpbGVfX3RvcC1uYXYge1xuYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsdWUtZGFyaztcbnBhZGRpbmc6IDA7XG4ubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm1lbnUgPiBsaSA+IGEge1xuICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoIDAsIDAsIDApO1xuICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuN3JlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhpdmUtYmxhY2s7XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWlmeSgkdGhlbWVzKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdGhlbWVkKCdiYWNrZ3JvdW5kQ29sb3InKTtcbiAgICAgICAgICBjb2xvcjogdGhlbWVkKCd0ZXh0Q29sb3JQcmltYXJ5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG59XG5cbmRpdi5Vc2VyUHJvZmlsZV9fdG9wLW1lbnUge1xuICAgIG1heC13aWR0aDogNzEuNDI4NTdyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvLyBPdmVycmlkZSBkZWZhdWx0IHN2ZyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAuSWNvbiA+IHN2ZywgLkljb24gc3Bhbi5pY29uIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSFpbXBvcnRhbnQ7XG4gICAgfVxufVxufVxuXG4uVXNlclByb2ZpbGVfX3NlY3Rpb24tdGl0bGUge1xubWFyZ2luLWJvdHRvbTogMS41cmVtO1xucGFkZGluZy1ib3R0b206IDAuNXJlbTtcbmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFO1xufVxuXG4uVXNlclByb2ZpbGVfX2Jhbm5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgYSB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICB9XG4gID4gZGl2LmNvbHVtbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmFja2dyb3VuZC1sZXNzLWRhcms7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggYmxhY2s7XG4gICAgICAuYnV0dG9uIHt0ZXh0LXNoYWRvdzogbm9uZTt9XG5cbiAgICAgIG1pbi1oZWlnaHQ6IDE1NXB4O1xuICB9XG4gIGgxIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS44NDUyNHJlbSFpbXBvcnRhbnQ7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMTMwOTVyZW0haW1wb3J0YW50O1xuICAgICAgfVxuICB9XG4gIC5JY29uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgc3ZnIHtmaWxsOiAjZGVmO31cbiAgfVxuXG4gIC5Vc2VycGljIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX3JlcCB7XG4gICAgICBmb250LXNpemU6IDgwJTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX2J1dHRvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgcmlnaHQ6IDVweDtcblxuICAgICAgbGFiZWwuYnV0dG9uIHtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iaW8ge1xuICAgICAgbWFyZ2luOiAtMC40cmVtIGF1dG8gMC41cmVtO1xuICAgICAgZm9udC1zaXplOiA5NSU7XG4gICAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxuICAuVXNlclByb2ZpbGVfX2luZm8ge1xuICAgICAgZm9udC1zaXplOiA5MCU7XG4gIH1cblxuICAuVXNlclByb2ZpbGVfX3N0YXRzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICBmb250LXNpemU6IDkwJTtcblxuICAgICAgYSB7XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXJVbmRlcmxpbmU7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQ0NDO1xuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge2JvcmRlci1sZWZ0OiBub25lO31cbiAgICAgICAgICAmOm50aC1jaGlsZCg2KSB7Ym9yZGVyLWxlZnQ6IG5vbmU7fVxuICAgICAgfVxuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuXG4gIGRpdi5Vc2VyUHJvZmlsZV9fdG9wLW5hdiAubWVudSBsaT5hIHtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgfVxuXG4gIC5Vc2VyUHJvZmlsZV9fdG9wLW1lbnUgPiBkaXYuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJwaWMge1xuICAgICAgd2lkdGg6IDM2cHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJQcm9maWxlX19idXR0b25zIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICBsYWJlbC5idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICB9XG5cbiAgLlVzZXJQcm9maWxlX19iYW5uZXIgLlVzZXJQcm9maWxlX19idXR0b25zX21vYmlsZSB7XG4gICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gIH1cbn1cblxuLy8gVGVtcG9yYXJ5IGZpeCB0byBwcmV2ZW50IGFsdGVybmF0ZSBVc2VyIFByb2ZpbGUgcGFnZXMgb3V0c2lkZSB0aGUgYmxvZyBmcm9tIHRha2luZyB0aGUgbmFycm93IGxheW91dC5cblxuLlVzZXJQcm9maWxlIHtcbi5hcnRpY2xlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICAmX19oMSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgQGluY2x1ZGUgTVEoTSkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwcHgpO1xuICAgIH1cbiAgfVxufVxuJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLnNldHRpbmdzLCAmX190YWJfY29udGVudC5sYXlvdXQtYmxvY2suY3VyYXRpb24tcmV3YXJkcywgJl9fdGFiX2NvbnRlbnQubGF5b3V0LWJsb2NrLmF1dGhvci1yZXdhcmRzIHtcbiAgLmFydGljbGVzIHtcbiAgICAgIHBhZGRpbmc6IDEuNWVtIDEuNWVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDU2cHg7XG4gICAgICBAaW5jbHVkZSBNUShYTCkge1xuICAgICAgICBtaW4td2lkdGg6IDEwNTBweDtcbiAgICAgIH1cbiAgfVxufVxuLnNldHRpbmdzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yLCAuY3VyYXRpb24tcmV3YXJkcyAuYXJ0aWNsZXNfX2xheW91dC1zZWxlY3RvciwgLmF1dGhvci1yZXdhcmRzIC5hcnRpY2xlc19fbGF5b3V0LXNlbGVjdG9yICB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cbiIsIi5yZWFjdC10YWJzIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi1saXN0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5yZWFjdC10YWJzX190YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3R0b206IC0xcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi0tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNhYWE7XG4gIGNvbG9yOiBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG5cbi5yZWFjdC10YWJzX190YWItLWRpc2FibGVkIHtcbiAgY29sb3I6IEdyYXlUZXh0O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5yZWFjdC10YWJzX190YWI6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IGhzbCgyMDgsIDk5JSwgNTAlKTtcbiAgYm9yZGVyLWNvbG9yOiBoc2woMjA4LCA5OSUsIDUwJSk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5yZWFjdC10YWJzX190YWI6Zm9jdXM6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogNXB4O1xuICBsZWZ0OiAtNHB4O1xuICByaWdodDogLTRweDtcbiAgYm90dG9tOiAtNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ucmVhY3QtdGFic19fdGFiLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnJlYWN0LXRhYnNfX3RhYi1wYW5lbC0tc2VsZWN0ZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTs7Ozs7QUFBQTtBQzZDQTtBQUdBO0FBQUE7QUFHQTs7Ozs7QUFBQTtBQU9BO0FBQ0E7QUFBQTtBQVFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBRjdDQTtBQUNBO0FFaURBO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QUZqREE7QUFDQTtBRW1EQTs7QUFBQTtBQUlBOzs7Ozs7QUFNQTtBRmxEQTtBQUNBO0FFb0RBOzs7QUFBQTtBQUtBO0FDOUVBO0FEeUZBO0FGNURBO0FBQ0E7QUVpR0E7QUFBQTtBQXdDQTs7QUFBQTtBQUlBOztBQUVBO0FGdElBO0FBQ0E7QUV3SUE7O0FBQUE7QUFJQTtBQUtBO0FGM0lBO0FBQ0E7QUU4SUE7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUYxSUE7QUFDQTtBRTRJQTs7QUFBQTtBQUlBO0FBQ0E7QUYzSUE7QUFDQTtBRXdKQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FGckpBO0FBQ0E7QUV5SkE7QUFBQTtBQUdBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUZ2SkE7QUFDQTtBRXlKQTs7O0FBQUE7QUFLQTs7QUFFQTtBRnhKQTtBQUNBO0FFNEpBO0FBQUE7QUFHQTs7O0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FGekpBO0FBQ0E7QUUySkE7O0FBQUE7QUFJQTs7QUFFQTtBRjFKQTtBQUNBO0FFNEpBOztBQUFBO0FBSUE7O0FBRUE7QUYzSkE7QUFDQTtBRTZKQTs7O0FBQUE7QUFLQTs7O0FBR0E7QUFBQTtBQUNBO0FBQUE7QUYxSkE7QUFDQTtBRTRKQTs7QUFBQTtBQUlBO0FBQ0E7QUYzSkE7QUFDQTtBRTZKQTs7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBRjVKQTtBQUNBO0FFOEpBOztBQUFBO0FBSUE7QUFDQTtBRjdKQTtBQUNBO0FFK0pBOzs7QUFBQTtBQUtBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FGOUpBO0FBQ0E7QUVnS0E7QUFDQTtBRjlKQTtBQUNBO0FFZ0tBO0FBQ0E7QUY5SkE7QUFDQTtBRWtLQTtBQUFBO0FBR0E7O0FBQUE7QUFJQTs7QUFFQTtBRmxLQTtBQUNBO0FFb0tBOztBQUFBO0FBSUE7QUFDQTtBQUNBO0FGbktBO0FBQ0E7QUVxS0E7O0FBQUE7QUFJQTtBQUNBO0FGcEtBO0FBQ0E7QUVzS0E7O0FBQUE7QUFJQTtBQUNBO0FGcktBO0FBQ0E7QUV5S0E7QUFBQTtBQUdBOzs7QUFBQTtBQUtBOzs7OztBQUtBO0FBQUE7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUVBO0FBQUE7QUYxS0E7QUFDQTtBRTRLQTs7QUFBQTtBQUlBO0FBQ0E7QUYzS0E7QUFDQTtBRTZLQTs7O0FBQUE7QUFLQTs7QUFDQTtBQUNBO0FGM0tBO0FBQ0E7QUU2S0E7Ozs7QUFBQTtBQU1BOzs7O0FBSUE7QUFBQTtBRjNLQTtBQUNBO0FFNktBOzs7O0FBS0E7O0FBQUE7QUFTQTs7QUFBQTtBRmhMQTtBRTJLQTs7OztBQUNBO0FBQ0E7QUZ0S0E7QUU2S0E7Ozs7QUFDQTtBRnhLQTtBQUNBO0FFMktBOztBQUFBO0FBSUE7QUFDQTtBRjFLQTtBQUNBO0FFNEtBOzs7QUFBQTtBQUtBOztBQUVBO0FBQUE7QUFDQTtBQUFBO0FGektBO0FBQ0E7QUUyS0E7O0FBQUE7QUFJQTs7QUFFQTtBRjFLQTtBQUNBO0FFNEtBOzs7QUFBQTtBQUtBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTs7QUFBQTtBRnhLQTtBRTRLQTtBQUVBO0FGM0tBO0FBQ0E7QUU4S0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBRjNLQTtBQUNBO0FFNktBOztBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUY1S0E7QUFDQTtBRThLQTs7Ozs7QUFBQTtBQU9BO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FGdktBO0FBQ0E7QUV5S0E7OztBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBRnRLQTtBQUNBO0FFd0tBOztBQUFBO0FBSUE7QUFDQTtBRnZLQTtBQUNBO0FFMktBO0FBQUE7QUFHQTs7QUFBQTtBQUlBO0FBQ0E7QUYzS0E7QUFDQTtBRTZLQTs7QUFBQTtBQUlBO0FBQ0E7QUY1S0E7QUFDQTtBRThLQTs7QUFBQTtBQUlBO0FBQ0E7QUY3S0E7QUFDQTtBRXFNQTtBQUFBO0FBR0E7O0FBQUE7QUFJQTtBQUNBO0FGck1BO0FBQ0E7QUV1TUE7O0FBQUE7QUFJQTtBQUNBO0FGdE1BO0FBQ0E7QUUwTUE7QUFBQTtBQUdBOztBQUFBO0FBSUE7QUFDQTtBRjFNQTtBQUNBO0FJeFZBO0FBQ0E7QUowVkE7QUFDQTtBSXhWQTtBQUNBO0FBQ0E7QUowVkE7QUFDQTtBSXZWQTs7O0FBR0E7QUp5VkE7QUFDQTtBSXRWQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBSm9WQTtBQUNBO0FJalZBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBSmdWQTtBQUNBO0FJN1VBO0FBQ0E7QUFDQTtBQUNBO0FKK1VBO0FBQ0E7QUk1VUE7QUFDQTtBQUNBO0FBQ0E7QUo4VUE7QUFDQTtBSXhVQTs7Ozs7O0FBR0E7QUo2VUE7QUFDQTtBSXpVQTtBQUdBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUp1VUE7QUt0V0E7QUFDQTtBTHdXQTtBQUNBO0FJdlVBO0FBQ0E7QUp5VUE7QUFDQTtBSXRVQTs7Ozs7QUFLQTtBSndVQTtBQUNBO0FJclVBO0FBQ0E7QUp1VUE7QUFDQTtBSXJVQTtBQUNBO0FKdVVBO0FBQ0E7QU03YUE7QUNqQ0E7QUQ1REE7QUFDQTtBQUlBO0FBQ0E7QU4yZ0JBO0FNaGJBO0FDbERBO0FBQ0E7QVBxZUE7QVEvWkE7QUZyQkE7QUNsREE7QUFDQTtBUDBlQTtBQUNBO0FRcmFBO0FGckJBO0FDbERBO0FBQ0E7QVBnZkE7QUFDQTtBTTdiQTtBQUNBO0FBQ0E7QU4rYkE7QU0xYkE7QUMvQ0E7QVA0ZUE7QU0xYkE7QUFDQTtBQUNBO0FONGJBO0FNeGJBO0FDeERBO0FQbWZBO0FNdGJBO0FHeElBO0FBQ0E7QVRpa0JBO0FNbmJBO0FBRUE7QUFDQTtBTm9iQTtBQUNBO0FNaGJBO0FBdERBO0FHakdBO0FBQ0E7QUhpRUE7QU4yZ0JBO0FReGNBO0FGa0JBO0FHdkpBO0FBQ0E7QVRpbEJBO0FBQ0E7QUFDQTtBTXZiQTtBQUNBO0FBQ0E7QU55YkE7QUFDQTtBTXRiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FOd2JBO0FBQ0E7QU1yYkE7QUl6S0E7QVZpbUJBO0FBQ0E7QU1yYkE7QUFDQTtBTnViQTtBQUNBO0FNcmJBO0FBQ0E7QU51YkE7QUFDQTtBTXJiQTtBQUNBO0FOdWJBO0FBQ0E7QU1wYkE7QUkvSEE7QVZzakJBO0FBQ0E7QU14YkE7QUkvSEE7QVYwakJBO0FBQ0E7QU01YkE7QUkvSEE7QVY4akJBO0FBQ0E7QU1oY0E7QUkvSEE7QVZra0JBO0FBQ0E7QU01YkE7QUFDQTtBQUNBO0FOOGJBO0FBQ0E7QU16YkE7QUt4TEE7QVhvbkJBO0FBQ0E7QU1yY0E7QUFDQTtBQUNBO0FOdWNBO0FBQ0E7QU1sY0E7QUt4TEE7QVg2bkJBO0FBQ0E7QU05Y0E7QUFDQTtBQUNBO0FOZ2RBO0FBQ0E7QU0zY0E7QUt4TEE7QVhzb0JBO0FBQ0E7QU12ZEE7QUFDQTtBQUNBO0FOeWRBO0FBQ0E7QU1wZEE7QUt4TEE7QVgrb0JBO0FBQ0E7QU1oZUE7QUFDQTtBQUNBO0FOa2VBO0FBQ0E7QU03ZEE7QUt4TEE7QVh3cEJBO0FBQ0E7QU16ZUE7QUFDQTtBQUNBO0FOMmVBO0FBQ0E7QU10ZUE7QUt4TEE7QVhpcUJBO0FBQ0E7QU1sZkE7QUFDQTtBQUNBO0FOb2ZBO0FBQ0E7QU0vZUE7QUt4TEE7QVgwcUJBO0FBQ0E7QU0zZkE7QUFDQTtBQUNBO0FONmZBO0FBQ0E7QU14ZkE7QUt4TEE7QVhtckJBO0FBQ0E7QU1wZ0JBO0FBQ0E7QUFDQTtBTnNnQkE7QUFDQTtBTWpnQkE7QUt4TEE7QVg0ckJBO0FBQ0E7QU03Z0JBO0FBQ0E7QUFDQTtBTitnQkE7QUFDQTtBTTFnQkE7QUt4TEE7QVhxc0JBO0FBQ0E7QU10aEJBO0FBQ0E7QUFDQTtBTndoQkE7QUFDQTtBTW5oQkE7QUt4TEE7QVg4c0JBO0FBQ0E7QU0vaEJBO0FBQ0E7QUFDQTtBTmlpQkE7QUFDQTtBTTVoQkE7QUt4TEE7QVh1dEJBO0FBQ0E7QU16aEJBO0FJaEtBO0FWNHJCQTtBQUNBO0FNN2hCQTtBSWhLQTtBVmdzQkE7QUFDQTtBTWppQkE7QUloS0E7QVZvc0JBO0FBQ0E7QU1yaUJBO0FJaEtBO0FWd3NCQTtBQUNBO0FNemlCQTtBSWhLQTtBVjRzQkE7QUFDQTtBTTdpQkE7QUloS0E7QVZndEJBO0FBQ0E7QU0xaUJBO0FBeElBO0FOcXJCQTtBTW5yQkE7QUFHQTtBQUNBO0FObXJCQTtBQUNBO0FNbGpCQTtBQXhJQTtBTjZyQkE7QU0zckJBO0FBR0E7QUFDQTtBTjJyQkE7QUFDQTtBTTFqQkE7QUF4SUE7QU5xc0JBO0FNbnNCQTtBQUdBO0FBQ0E7QU5tc0JBO0FBQ0E7QU1sa0JBO0FBeElBO0FONnNCQTtBTTNzQkE7QUFHQTtBQUNBO0FOMnNCQTtBQUNBO0FNMWtCQTtBQXhJQTtBTnF0QkE7QU1udEJBO0FBR0E7QUFDQTtBTm10QkE7QUFDQTtBTWxsQkE7QUF4SUE7QU42dEJBO0FNM3RCQTtBQUdBO0FBQ0E7QU4ydEJBO0FBQ0E7QU0xbEJBO0FBeElBO0FOcXVCQTtBTW51QkE7QUFHQTtBQUNBO0FObXVCQTtBQUNBO0FNbG1CQTtBQXhJQTtBTjZ1QkE7QU0zdUJBO0FBR0E7QUFDQTtBTjJ1QkE7QUFDQTtBTTFqQkE7QUcxUUE7QUFDQTtBVHUwQkE7QUFDQTtBTTNqQkE7QUc5UUE7QUFDQTtBVDQwQkE7QUFDQTtBUXpzQkE7QUYrREE7QUFDQTtBQUNBO0FONm9CQTtBQUNBO0FNeG9CQTtBS3hMQTtBWG0wQkE7QUFDQTtBTXBwQkE7QUFDQTtBQUNBO0FOc3BCQTtBQUNBO0FNanBCQTtBS3hMQTtBWDQwQkE7QUFDQTtBTTdwQkE7QUFDQTtBQUNBO0FOK3BCQTtBQUNBO0FNMXBCQTtBS3hMQTtBWHExQkE7QUFDQTtBTXRxQkE7QUFDQTtBQUNBO0FOd3FCQTtBQUNBO0FNbnFCQTtBS3hMQTtBWDgxQkE7QUFDQTtBTS9xQkE7QUFDQTtBQUNBO0FOaXJCQTtBQUNBO0FNNXFCQTtBS3hMQTtBWHUyQkE7QUFDQTtBTXhyQkE7QUFDQTtBQUNBO0FOMHJCQTtBQUNBO0FNcnJCQTtBS3hMQTtBWGczQkE7QUFDQTtBTWpzQkE7QUFDQTtBQUNBO0FObXNCQTtBQUNBO0FNOXJCQTtBS3hMQTtBWHkzQkE7QUFDQTtBTTFzQkE7QUFDQTtBQUNBO0FONHNCQTtBQUNBO0FNdnNCQTtBS3hMQTtBWGs0QkE7QUFDQTtBTW50QkE7QUFDQTtBQUNBO0FOcXRCQTtBQUNBO0FNaHRCQTtBS3hMQTtBWDI0QkE7QUFDQTtBTTV0QkE7QUFDQTtBQUNBO0FOOHRCQTtBQUNBO0FNenRCQTtBS3hMQTtBWG81QkE7QUFDQTtBTXJ1QkE7QUFDQTtBQUNBO0FOdXVCQTtBQUNBO0FNbHVCQTtBS3hMQTtBWDY1QkE7QUFDQTtBTTl1QkE7QUFDQTtBQUNBO0FOZ3ZCQTtBQUNBO0FNM3VCQTtBS3hMQTtBWHM2QkE7QUFDQTtBTXh1QkE7QUloS0E7QVYyNEJBO0FBQ0E7QU01dUJBO0FJaEtBO0FWKzRCQTtBQUNBO0FNaHZCQTtBSWhLQTtBVm01QkE7QUFDQTtBTXB2QkE7QUloS0E7QVZ1NUJBO0FBQ0E7QU14dkJBO0FJaEtBO0FWMjVCQTtBQUNBO0FNNXZCQTtBSWhLQTtBVis1QkE7QUFDQTtBTXp2QkE7QUF4SUE7QU5vNEJBO0FNbDRCQTtBQUdBO0FBQ0E7QU5rNEJBO0FBQ0E7QU1qd0JBO0FBeElBO0FONDRCQTtBTTE0QkE7QUFHQTtBQUNBO0FOMDRCQTtBQUNBO0FNendCQTtBQXhJQTtBTm81QkE7QU1sNUJBO0FBR0E7QUFDQTtBTms1QkE7QUFDQTtBTWp4QkE7QUF4SUE7QU40NUJBO0FNMTVCQTtBQUdBO0FBQ0E7QU4wNUJBO0FBQ0E7QU16eEJBO0FBeElBO0FObzZCQTtBTWw2QkE7QUFHQTtBQUNBO0FOazZCQTtBQUNBO0FNanlCQTtBQXhJQTtBTjQ2QkE7QU0xNkJBO0FBR0E7QUFDQTtBTjA2QkE7QUFDQTtBTXp5QkE7QUF4SUE7QU5vN0JBO0FNbDdCQTtBQUdBO0FBQ0E7QU5rN0JBO0FBQ0E7QU1qekJBO0FBeElBO0FONDdCQTtBTTE3QkE7QUFHQTtBQUNBO0FOMDdCQTtBQUNBO0FROTRCQTtBRjZGQTtBQUNBO0FOb3pCQTtBQUNBO0FRbjVCQTtBRm9HQTtBSTVLQTtBVis5QkE7QUFDQTtBUXg1QkE7QUZvR0E7QUk1S0E7QVZvK0JBO0FBQ0E7QVE3NUJBO0FGb0dBO0FJNUtBO0FWeStCQTtBQUNBO0FRbDZCQTtBRm9HQTtBSTVLQTtBVjgrQkE7QUFDQTtBUXY2QkE7QUZ5R0E7QUFDQTtBTmkwQkE7QUFDQTtBUTU2QkE7QUY2R0E7QUFDQTtBTmswQkE7QUFDQTtBUWo3QkE7QUZpSEE7QUFDQTtBTm0wQkE7QUFDQTtBTTl6QkE7QUFDQTtBTmcwQkE7QVF6N0JBO0FGd0hBO0FBSUE7QU5pMEJBO0FBQ0E7QUFDQTtBUS83QkE7QUZxSUE7QUcxUUE7QUFDQTtBVHdrQ0E7QUFDQTtBUXI4QkE7QUZ5SUE7QUc5UUE7QUFDQTtBVDhrQ0E7QUFDQTtBUTM4QkE7QUYrREE7QUFDQTtBQUNBO0FOKzRCQTtBQUNBO0FNMTRCQTtBS3hMQTtBWHFrQ0E7QUFDQTtBTXQ1QkE7QUFDQTtBQUNBO0FOdzVCQTtBQUNBO0FNbjVCQTtBS3hMQTtBWDhrQ0E7QUFDQTtBTS81QkE7QUFDQTtBQUNBO0FOaTZCQTtBQUNBO0FNNTVCQTtBS3hMQTtBWHVsQ0E7QUFDQTtBTXg2QkE7QUFDQTtBQUNBO0FOMDZCQTtBQUNBO0FNcjZCQTtBS3hMQTtBWGdtQ0E7QUFDQTtBTWo3QkE7QUFDQTtBQUNBO0FObTdCQTtBQUNBO0FNOTZCQTtBS3hMQTtBWHltQ0E7QUFDQTtBTTE3QkE7QUFDQTtBQUNBO0FONDdCQTtBQUNBO0FNdjdCQTtBS3hMQTtBWGtuQ0E7QUFDQTtBTW44QkE7QUFDQTtBQUNBO0FOcThCQTtBQUNBO0FNaDhCQTtBS3hMQTtBWDJuQ0E7QUFDQTtBTTU4QkE7QUFDQTtBQUNBO0FOODhCQTtBQUNBO0FNejhCQTtBS3hMQTtBWG9vQ0E7QUFDQTtBTXI5QkE7QUFDQTtBQUNBO0FOdTlCQTtBQUNBO0FNbDlCQTtBS3hMQTtBWDZvQ0E7QUFDQTtBTTk5QkE7QUFDQTtBQUNBO0FOZytCQTtBQUNBO0FNMzlCQTtBS3hMQTtBWHNwQ0E7QUFDQTtBTXYrQkE7QUFDQTtBQUNBO0FOeStCQTtBQUNBO0FNcCtCQTtBS3hMQTtBWCtwQ0E7QUFDQTtBTWgvQkE7QUFDQTtBQUNBO0FOay9CQTtBQUNBO0FNNytCQTtBS3hMQTtBWHdxQ0E7QUFDQTtBTTErQkE7QUloS0E7QVY2b0NBO0FBQ0E7QU05K0JBO0FJaEtBO0FWaXBDQTtBQUNBO0FNbC9CQTtBSWhLQTtBVnFwQ0E7QUFDQTtBTXQvQkE7QUloS0E7QVZ5cENBO0FBQ0E7QU0xL0JBO0FJaEtBO0FWNnBDQTtBQUNBO0FNOS9CQTtBSWhLQTtBVmlxQ0E7QUFDQTtBTTMvQkE7QUF4SUE7QU5zb0NBO0FNcG9DQTtBQUdBO0FBQ0E7QU5vb0NBO0FBQ0E7QU1uZ0NBO0FBeElBO0FOOG9DQTtBTTVvQ0E7QUFHQTtBQUNBO0FONG9DQTtBQUNBO0FNM2dDQTtBQXhJQTtBTnNwQ0E7QU1wcENBO0FBR0E7QUFDQTtBTm9wQ0E7QUFDQTtBTW5oQ0E7QUF4SUE7QU44cENBO0FNNXBDQTtBQUdBO0FBQ0E7QU40cENBO0FBQ0E7QU0zaENBO0FBeElBO0FOc3FDQTtBTXBxQ0E7QUFHQTtBQUNBO0FOb3FDQTtBQUNBO0FNbmlDQTtBQXhJQTtBTjhxQ0E7QU01cUNBO0FBR0E7QUFDQTtBTjRxQ0E7QUFDQTtBTTNpQ0E7QUF4SUE7QU5zckNBO0FNcHJDQTtBQUdBO0FBQ0E7QU5vckNBO0FBQ0E7QU1uakNBO0FBeElBO0FOOHJDQTtBTTVyQ0E7QUFHQTtBQUNBO0FONHJDQTtBQUNBO0FRaHBDQTtBRjZGQTtBQUNBO0FOc2pDQTtBQUNBO0FRcnBDQTtBRm9HQTtBSTVLQTtBVml1Q0E7QUFDQTtBUTFwQ0E7QUZvR0E7QUk1S0E7QVZzdUNBO0FBQ0E7QVEvcENBO0FGb0dBO0FJNUtBO0FWMnVDQTtBQUNBO0FRcHFDQTtBRm9HQTtBSTVLQTtBVmd2Q0E7QUFDQTtBUXpxQ0E7QUZ5R0E7QUFDQTtBTm1rQ0E7QUFDQTtBUTlxQ0E7QUY2R0E7QUFDQTtBTm9rQ0E7QUFDQTtBUW5yQ0E7QUZpSEE7QUFDQTtBTnFrQ0E7QUFDQTtBTWhrQ0E7QUFDQTtBTmtrQ0E7QVEzckNBO0FGd0hBO0FBSUE7QU5ta0NBO0FBQ0E7QUFDQTtBUWpzQ0E7QUZxSUE7QUcxUUE7QUFDQTtBVDAwQ0E7QUFDQTtBUXZzQ0E7QUZ5SUE7QUc5UUE7QUFDQTtBVGcxQ0E7QUFDQTtBTS9qQ0E7QUFDQTtBQUNBO0FOaWtDQTtBQUNBO0FNOWpDQTtBR3BPQTtBVHF5Q0E7QVNueUNBO0FBQ0E7QVRxeUNBO0FReHRDQTtBRm9KQTtBR3BPQTtBVDR5Q0E7QVMxeUNBO0FBQ0E7QVQ0eUNBO0FBQ0E7QUFDQTtBWTduQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkE7QUFDQTtBWituQ0E7QUFDQTtBWTVuQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBWjZuQ0E7QUFDQTtBWTFuQ0E7O0FBRUE7QUFDQTtBWjRuQ0E7QUFDQTtBWXpuQ0E7O0FBRUE7QUFDQTtBWjJuQ0E7QUFDQTtBWXhuQ0E7QUFDQTtBQUNBO0FaMG5DQTtBQUNBO0FZdm5DQTs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWnluQ0E7QVl2bkNBOzs7Ozs7QUFDQTtBQUNBO0FaOG5DQTtBQUNBO0FZdG5DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaNmxDQTtBQUNBO0FZN25DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0Fab21DQTtBQUNBO0FZcG9DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaMm1DQTtBQUNBO0FZM29DQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0Faa25DQTtBQUNBO0FZbHBDQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaeW5DQTtBQUNBO0FZenBDQTtBQUlBO0FBWUE7QUFRQTtBQU9BO0FaZ29DQTtBQUNBO0FRaDFDQTtBSWdMQTtBQUlBO0FaZ3FDQTtBQUNBO0FZcnFDQTtBQUlBO0Fab3FDQTtBQUNBO0FZenFDQTtBQUlBO0Fad3FDQTtBQUNBO0FZN3FDQTtBQUlBO0FaNHFDQTtBQUNBO0FZanJDQTtBQUlBO0FaZ3JDQTtBQUNBO0FZcnJDQTtBQUlBO0Fab3JDQTtBQUNBO0FZbHBDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FabXBDQTtBWWpwQ0E7QUFFQTtBWmtwQ0E7QVk1b0NBO0FBQ0E7QVo4b0NBO0FBQ0E7QVkxb0NBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBWjBvQ0E7QUFDQTtBWXZvQ0E7OztBQUdBO0FBQ0E7QUFDQTtBWnlvQ0E7QUFDQTtBWXRvQ0E7QUFDQTtBWndvQ0E7QUFDQTtBWXJvQ0E7QUFDQTtBQUNBO0FadW9DQTtBQUNBO0FZcG9DQTtBQUNBO0Fac29DQTtBQUNBO0FZbG9DQTtBQUNBO0FBQ0E7QVpvb0NBO0FBQ0E7QVlob0NBO0FBQ0E7QVprb0NBO0FZaG9DQTtBQUNBO0FBQ0E7QVprb0NBO0FBQ0E7QVk5bkNBO0FBQ0E7QUFDQTtBQUNBO0FaZ29DQTtBWTluQ0E7QUFDQTtBQUNBO0FaZ29DQTtBQUNBO0FZNW5DQTtBQUNBO0FBQ0E7QUFDQTtBWjhuQ0E7QVk1bkNBO0FBQ0E7QVo4bkNBO0FBQ0E7QVkxbkNBO0FBQ0E7QUFDQTtBQUNBO0FaNG5DQTtBQUNBO0FZem5DQTtBQUNBO0FaMm5DQTtBQUNBO0FZeG5DQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBWnduQ0E7QUFDQTtBWXJuQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QVptbkNBO0FBQ0E7QWE5akRBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBYitqREE7QUFDQTtBYTVqREE7QUFDQTtBQUNBO0FiOGpEQTtBQUNBO0FhM2pEQTtBQUNBO0FBQ0E7QWI2akRBO0FhM2pEQTtBQUNBO0FiNmpEQTtBQUNBO0FheGpEQTtBQUNBO0FBQ0E7QWIwakRBO0FBQ0E7QWN6bkRBO0FBQ0E7QWQybkRBO0FBQ0E7QWM3bkRBO0FBQ0E7QWQrbkRBO0FBQ0E7QWNqb0RBO0FBQ0E7QWRtb0RBO0FBQ0E7QWNyb0RBO0FBQ0E7QWR1b0RBO0FBQ0E7QVE1L0NBO0FNbEpBO0FBQ0E7QWRpcERBO0FBQ0E7QWNucERBO0FBQ0E7QWRxcERBO0FBQ0E7QWN2cERBO0FBQ0E7QWR5cERBO0FBQ0E7QWMzcERBO0FBQ0E7QWQ2cERBO0FBQ0E7QVE3Z0RBO0FNbEpBO0FBQ0E7QWRrcURBO0FBQ0E7QWNwcURBO0FBQ0E7QWRzcURBO0FBQ0E7QWN4cURBO0FBQ0E7QWQwcURBO0FBQ0E7QWM1cURBO0FBQ0E7QWQ4cURBO0FBQ0E7QWU1cURBO0FBQUE7QWYrcURBO0FBQ0E7QWU5cURBO0FBQ0E7QUFFQTtBQUdBO0FBRUE7QUFDQTtBZjRxREE7QUFDQTtBZTFxREE7QUFBQTtBZjZxREE7QUFDQTtBZTdxREE7QUFBQTtBZmdyREE7QUFDQTtBZS9xREE7QUFBQTtBZmtyREE7QUFDQTtBZWxyREE7QUFBQTtBZnFyREE7QUFDQTtBZXJyREE7QUFBQTtBZndyREE7QUFDQTtBZXhyREE7QUFBQTtBZjJyREE7QUFDQTtBZTNyREE7QUFBQTtBZjhyREE7QUFDQTtBZTlyREE7QUFBQTtBZmlzREE7QUFDQTtBZS9yREE7O0FBQ0E7QWZrc0RBO0FBQ0E7QWVqc0RBO0FBQUE7QWZvc0RBO0FBQ0E7QWVqc0RBOzs7QUFFQTtBZm9zREE7QUFDQTtBZWxzREE7QUFBQTtBZnFzREE7QUFDQTtBZW5zREE7O0FBRUE7QUFDQTtBZnFzREE7QUFDQTtBZWxzREE7QUFBQTtBZnFzREE7QUFDQTtBZXBzREE7O0FBQ0E7QWZ1c0RBO0FBQ0E7QWV0c0RBO0FBQUE7QWZ5c0RBO0FBQ0E7QWV4c0RBO0FBQUE7QWYyc0RBO0FlenNEQTs7O0FBR0E7QUFDQTtBZjJzREE7QUFDQTtBZXhzREE7O0FBQ0E7QWYyc0RBO0FBQ0E7QWV6c0RBO0FBQ0E7QWYyc0RBO0FBQ0E7QWdCbHFEQTs7QUFyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFxQkE7QUFBQTtBQUFBO0FoQm1yREE7QWdCcHNEQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FoQnFzREE7QUFDQTtBZ0J4ckRBO0FBQ0E7QWhCMHJEQTtBZ0J4ckRBO0FBQ0E7QWhCMHJEQTtBQUNBO0FnQnByREE7QUFDQTtBaEJ1ckRBO0FBQ0E7QWdCenJEQTtBQUNBO0FoQnVyREE7QUFDQTtBZ0J6ckRBOztBQUNBO0FoQnVyREE7QWdCbnJEQTs7O0FBRUE7QUFDQTtBaEJzckRBO0FBQ0E7QWdCbHJEQTs7QUFFQTtBQUFBO0FBQUE7QUFDQTtBaEJvckRBO0FBQ0E7QWdCanJEQTtBQUNBO0FoQm1yREE7QUFDQTtBaUI5MERBOzs7QUFHQTtBakJnMURBO0FBQ0E7QWlCNzBEQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FqQjgwREE7QWlCNTBEQTs7QUFDQTtBakIrMERBO0FBQ0E7QWlCMzBEQTs7QUFFQTtBakI2MERBO0FBQ0E7QWlCMTBEQTtBQUNBO0FqQjQwREE7QUFDQTtBa0J6MERBO0FBakJBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBbEI0MURBO0FrQjkwREE7QUFSQTtBQUNBO0FsQnkxREE7QUFDQTtBbUIzMkRBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QW5CMjJEQTtBQUNBO0FvQjcyREE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBcEI2MkRBO0FvQjEyREE7QUFDQTtBcEI0MkRBO0FvQngyREE7QUFDQTtBcEIwMkRBO0FBQ0E7QW9CdDJEQTs7OztBQUNBO0FBQ0E7QXBCMjJEQTtBQUNBO0FvQnAyREE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QXBCazJEQTtBb0IxMURBO0FBQ0E7QXBCNDFEQTtBb0J6MURBO0FBQ0E7QXBCMjFEQTtBQUNBO0FvQnYxREE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBcEJzMURBO0FBQ0E7QW9CaDFEQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FwQiswREE7QW9CeDBEQTs7OztBQUtBO0FBQ0E7QUFDQTtBQUVBO0FwQncwREE7QUFDQTtBcUI5NURBO0FBQ0E7QUFDQTtBQUNBO0FyQmc2REE7QUFDQTtBcUI5NURBO0FBQ0E7QUFDQTtBckJnNkRBO0FBQ0E7QXFCOTVEQTtBQXpCQTtBQUNBO0FBQ0E7QXJCMDdEQTtBcUJ4N0RBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QXJCeTdEQTtBQUNBO0FzQjE0REE7QUEzREE7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakIwRkE7QWlCdEZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBdEJnOERBO0FLajNEQTtBaUI5Q0E7QWpCaURBO0FMazNEQTtBQUNBO0FzQmo4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0F0Qmk4REE7QXNCNTdEQTtBQUNBO0FBQ0E7QXRCODdEQTtBc0IxN0RBO0FBQ0E7QXRCNDdEQTtBc0J6N0RBO0FBQ0E7QUFDQTtBdEIyN0RBO0FBQ0E7QXVCNzlEQTtBQUNBO0FBQ0E7QXZCKzlEQTtBdUI5OURBO0FBQ0E7QXZCZytEQTtBdUJqK0RBO0FBQ0E7QXZCZytEQTtBdUJqK0RBO0FBQ0E7QXZCZytEQTtBQUNBO0F1QnY4REE7QUFDQTtBdkJ5OERBO0FBQ0E7QXVCcjhEQTtBQXpCQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXZCZytEQTtBdUIxOERBO0FBQ0E7QXZCNDhEQTtBQUNBO0F3QjV4REE7QUFoTEE7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QUFDQTtBeEIrNURBO0FLajREQTtBQUNBO0FMbTREQTtBd0JoNkRBO0FBQ0E7QUFDQTtBeEJrNkRBO0F3Qi95REE7QUFDQTtBeEJpekRBO0F3Qmx6REE7QUFDQTtBeEJvekRBO0F3QnJ6REE7QUFDQTtBeEJ1ekRBO0F3Qm56REE7QUEzSkE7QUFDQTtBQUNBO0FBQ0E7QXhCaTlEQTtBd0JwekRBO0FBbElBO0FBQ0E7QXhCeTdEQTtBd0J2N0RBO0FBQ0E7QUFDQTtBeEJ5N0RBO0F3QjV6REE7QUFsSUE7QUFDQTtBeEJpOERBO0F3Qi83REE7QUFDQTtBQUNBO0F4Qmk4REE7QXdCcDBEQTtBQWxJQTtBQUNBO0F4Qnk4REE7QXdCdjhEQTtBQUNBO0FBQ0E7QXhCeThEQTtBd0I1MERBO0FBbElBO0FBQ0E7QXhCaTlEQTtBd0IvOERBO0FBQ0E7QUFDQTtBeEJpOURBO0F3QnAxREE7QUFsSUE7QUFDQTtBeEJ5OURBO0F3QnY5REE7QUFDQTtBQUNBO0F4Qnk5REE7QXdCNTBEQTtBQXpGQTtBQUNBO0F4Qnc2REE7QXdCdDZEQTtBQUNBO0FBQ0E7QXhCdzZEQTtBd0IvMERBO0FBOUZBO0FBQ0E7QXhCZzdEQTtBd0I5NkRBO0FBQ0E7QUFDQTtBeEJnN0RBO0F3QnYxREE7QUE5RkE7QUFDQTtBeEJ3N0RBO0F3QnQ3REE7QUFDQTtBQUNBO0F4Qnc3REE7QXdCLzFEQTtBQTlGQTtBQUNBO0F4Qmc4REE7QXdCOTdEQTtBQUNBO0FBQ0E7QXhCZzhEQTtBd0J2MkRBO0FBOUZBO0FBQ0E7QXhCdzhEQTtBd0J0OERBO0FBQ0E7QUFDQTtBeEJ3OERBO0F3Qi8yREE7QUE5RkE7QUFDQTtBeEJnOURBO0F3Qjk4REE7QUFDQTtBQUNBO0F4Qmc5REE7QXdCLzJEQTtBQS9IQTtBQUNBO0F4QmkvREE7QXdCdmdFQTtBQUVBO0F4QndnRUE7QXdCbmdFQTtBQUVBO0F4Qm9nRUE7QXdCci9EQTtBQUNBO0FBQ0E7QXhCdS9EQTtBd0J0L0RBO0FBRUE7QUFDQTtBeEJ1L0RBO0F3QjUzREE7QUFwSUE7QUFDQTtBeEJtZ0VBO0F3QmpnRUE7QUFDQTtBQUNBO0F4Qm1nRUE7QXdCbGdFQTtBQUVBO0FBQ0E7QXhCbWdFQTtBd0J4NERBO0FBcElBO0FBQ0E7QXhCK2dFQTtBd0I3Z0VBO0FBQ0E7QUFDQTtBeEIrZ0VBO0F3QjlnRUE7QUFFQTtBQUNBO0F4QitnRUE7QXdCcDVEQTtBQXBJQTtBQUNBO0F4QjJoRUE7QXdCemhFQTtBQUNBO0FBQ0E7QXhCMmhFQTtBd0IxaEVBO0FBRUE7QUFDQTtBeEIyaEVBO0F3Qmg2REE7QUFwSUE7QUFDQTtBeEJ1aUVBO0F3QnJpRUE7QUFDQTtBQUNBO0F4QnVpRUE7QXdCdGlFQTtBQUVBO0FBQ0E7QXhCdWlFQTtBd0I1NkRBO0FBcElBO0FBQ0E7QXhCbWpFQTtBd0JqakVBO0FBQ0E7QUFDQTtBeEJtakVBO0F3QmxqRUE7QUFFQTtBQUNBO0F4Qm1qRUE7QXdCLzZEQTtBQTdJQTtBQUNBO0F4QitqRUE7QXdCcmxFQTtBQUVBO0F4QnNsRUE7QXdCamxFQTtBQUVBO0F4QmtsRUE7QXdCbmtFQTtBQUNBO0FBQ0E7QXhCcWtFQTtBd0Jwa0VBO0FBRUE7QUFDQTtBeEJxa0VBO0F3QjU3REE7QUFDQTtBeEI4N0RBO0F3Qno3REE7QUF4SkE7QUFDQTtBeEJvbEVBO0F3QmxsRUE7QUFDQTtBQUNBO0F4Qm9sRUE7QXdCbmxFQTtBQUVBO0FBQ0E7QXhCb2xFQTtBd0JoOERBO0FBR0E7QXhCZzhEQTtBd0J4OERBO0FBeEpBO0FBQ0E7QXhCbW1FQTtBd0JqbUVBO0FBQ0E7QUFDQTtBeEJtbUVBO0F3QmxtRUE7QUFFQTtBQUNBO0F4Qm1tRUE7QXdCLzhEQTtBQUdBO0F4Qis4REE7QXdCdjlEQTtBQXhKQTtBQUNBO0F4QmtuRUE7QXdCaG5FQTtBQUNBO0FBQ0E7QXhCa25FQTtBd0JqbkVBO0FBRUE7QUFDQTtBeEJrbkVBO0F3Qjk5REE7QUFHQTtBeEI4OURBO0F3QnQrREE7QUF4SkE7QUFDQTtBeEJpb0VBO0F3Qi9uRUE7QUFDQTtBQUNBO0F4QmlvRUE7QXdCaG9FQTtBQUVBO0FBQ0E7QXhCaW9FQTtBd0I3K0RBO0FBR0E7QXhCNitEQTtBd0JyL0RBO0FBeEpBO0FBQ0E7QXhCZ3BFQTtBd0I5b0VBO0FBQ0E7QUFDQTtBeEJncEVBO0F3Qi9vRUE7QUFFQTtBQUNBO0F4QmdwRUE7QXdCNS9EQTtBQUdBO0F4QjQvREE7QXdCam5FQTtBbkIzTUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBbUJrTUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBeEJ5bkVBO0F3QngvREE7QUFDQTtBeEIwL0RBO0F3QnIvREE7QUFDQTtBeEJ1L0RBO0F3QngvREE7QUFDQTtBeEIwL0RBO0F3QjMvREE7QUFDQTtBeEI2L0RBO0F3QjkvREE7QUFDQTtBeEJnZ0VBO0F3QmpnRUE7QUFDQTtBeEJtZ0VBO0F3QjMvREE7QUFDQTtBQUNBO0FBQ0E7QXhCNi9EQTtBQUNBO0F5QjF1RUE7QUF2RkE7QUFDQTtBQUNBO0F6Qm8wRUE7QXlCbDBFQTtBQUNBO0F6Qm8wRUE7QUFDQTtBeUI5ekVBO0FBQ0E7QXpCZzBFQTtBeUI3ekVBO0FBQ0E7QXpCK3pFQTtBQUNBO0F5Qmx2RUE7QUFsRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBekJxekVBO0F5Qm56RUE7QUFDQTtBQUNBO0F6QnF6RUE7QXlCbHpFQTtBQUVBO0F6Qm16RUE7QXlCL3lFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpCaXpFQTtBeUI5eUVBO0FBQ0E7QXpCZ3pFQTtBQUNBO0F5QjF3RUE7QUEzQkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0F6QnN5RUE7QXlCcHlFQTtBQUNBO0F6QnN5RUE7QUFDQTtBMEJwNEVBO0FBRUE7QTFCcTRFQTtBMEJsNEVBO0FBRUE7QUFDQTtBQUNBO0ExQm00RUE7QTBCLzNFQTtBQUVBO0FBQ0E7QTFCZzRFQTtBMEJyM0VBO0FBQ0E7QTFCdTNFQTtBMEJyM0VBO0FBQ0E7QTFCdTNFQTtBMEJsM0VBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0ExQmszRUE7QTBCMzJFQTtBckIxRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBcUJrRUE7QUFDQTtBQUNBO0ExQm0zRUE7QTBCOTJFQTtBQUNBO0FBQ0E7QTFCZzNFQTtBMEI3MkVBO0FyQitFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBTGl5RUE7QUFDQTtBMEJsM0VBO0FBQ0E7QTFCbzNFQTtBMEJsM0VBO0FyQm5HQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FxQjJGQTtBQUNBO0FBQ0E7QUFDQTtBMUIwM0VBO0FBQ0E7QTBCdjNFQTtBQUNBO0FBQ0E7QTFCeTNFQTtBQUNBO0EyQjE4RUE7QUFYQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFPQTtBQUNBO0EzQmc5RUE7QTJCNzhFQTtBQUNBO0FBQ0E7QTNCKzhFQTtBMkJqOUVBO0FBQ0E7QUFDQTtBM0JtOUVBO0EyQnI5RUE7QUFDQTtBQUNBO0EzQnU5RUE7QTJCejlFQTtBQUNBO0FBQ0E7QTNCMjlFQTtBMkI3OUVBO0FBQ0E7QUFDQTtBM0IrOUVBO0FBQ0E7QTRCLzdFQTtBQTVDQTtBQUNBO0E1QjgrRUE7QUs3NEVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUw0NEVBO0FLeDRFQTtBQUNBO0FMMDRFQTtBNEJwL0VBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBNUJtL0VBO0E0QjUrRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVCOCtFQTtBNEJyK0VBO0FBQ0E7QTVCdStFQTtBNEJyK0VBO0FBQ0E7QTVCdStFQTtBNEI5OUVBO0FBQ0E7QUFDQTtBNUJnK0VBO0FBQ0E7QTZCOTNFQTtBQS9KQTtBQUdBO0FBQ0E7QUFDQTtBN0I4aEZBO0FLdDdFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMcTdFQTtBS2o3RUE7QUFDQTtBTG03RUE7QTZCamlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QTdCaWlGQTtBNkI5aEZBO0FBQ0E7QTdCZ2lGQTtBNkJsNUVBO0FBQ0E7QTdCbzVFQTtBNkJyNUVBO0FBQ0E7QTdCdTVFQTtBNkJ4NUVBO0FBQ0E7QTdCMDVFQTtBNkJwZ0ZBO0FBRUE7QTdCcWdGQTtBNkJuNUVBO0FMakVBO0FBQ0E7QXhCdTlFQTtBd0JyOUVBO0FBQ0E7QUFDQTtBeEJ1OUVBO0E2QjM1RUE7QUxqRUE7QUFDQTtBeEIrOUVBO0F3Qjc5RUE7QUFDQTtBQUNBO0F4Qis5RUE7QTZCbjZFQTtBTGpFQTtBQUNBO0F4QnUrRUE7QXdCcitFQTtBQUNBO0FBQ0E7QXhCdStFQTtBNkIzNkVBO0FMakVBO0FBQ0E7QXhCKytFQTtBd0I3K0VBO0FBQ0E7QUFDQTtBeEIrK0VBO0E2Qm43RUE7QUxqRUE7QUFDQTtBeEJ1L0VBO0F3QnIvRUE7QUFDQTtBQUNBO0F4QnUvRUE7QTZCLzZFQTtBQTlGQTtBN0JnaEZBO0E2QjdnRkE7QUFFQTtBN0I4Z0ZBO0E2QnhnRkE7QUFDQTtBN0IwZ0ZBO0FRNS9FQTtBcUJhQTtBQUVBO0FBS0E7QTdCNitFQTtBQUNBO0FRbGdGQTtBcUJhQTtBQUVBO0FBS0E7QTdCbS9FQTtBQUNBO0FRbmdGQTtBcUJpRkE7QUFFQTtBN0JvN0VBO0E2Qmw3RUE7QUFDQTtBQUNBO0E3Qm83RUE7QUFDQTtBQUNBO0E4QnJsRkE7QUExQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQWlCQTtBQUNBO0E5QmluRkE7QThCaG9GQTtBQUNBO0E5QmtvRkE7QThCL25GQTtBQUNBO0E5QmlvRkE7QThCaG1GQTtBQXhCQTtBQUNBO0E5QjJuRkE7QThCcG1GQTtBQXhCQTtBQUNBO0E5QituRkE7QThCeG1GQTtBQXhCQTtBQUNBO0E5Qm1vRkE7QThCNW1GQTtBQXhCQTtBQUNBO0E5QnVvRkE7QThCaG5GQTtBQXhCQTtBQUNBO0E5QjJvRkE7QThCL21GQTtBQXhCQTtBQUNBO0FBQ0E7QUFDQTtBOUIwb0ZBO0E4QmpuRkE7QUE1QkE7QUFDQTtBQUNBO0FBQ0E7QTlCZ3BGQTtBQUNBO0ErQjltRkE7QUF2REE7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QS9CbXFGQTtBK0JqcUZBO0FBQ0E7QS9CbXFGQTtBQUNBO0ErQjFuRkE7QUFoQ0E7QUFDQTtBQUdBO0FBQ0E7QS9CMnBGQTtBK0J6cEZBO0FBQ0E7QS9CMnBGQTtBQUNBO0ErQmhvRkE7QUFuQkE7QUFHQTtBL0JvcEZBO0ErQmxwRkE7QUFDQTtBL0JvcEZBO0FBQ0E7QWdDaHFGQTtBQVhBO0FBQ0E7QUFDQTtBaEM4cUZBO0FLbmxGQTtBQUNBO0FMcWxGQTtBZ0MvcUZBO0FBRUE7QWhDZ3JGQTtBZ0N4cUZBO0FBMUJBO0FBQ0E7QUFDQTtBQUNBO0FoQ3FzRkE7QWdDN3FGQTtBQTNCQTtBQUNBO0FBQ0E7QUFDQTtBaEMyc0ZBO0FBQ0E7QWlDemhGQTtBQXBOQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QWpDOHVGQTtBaUMxdUZBO0FBSUE7QWpDeXVGQTtBS2puRkE7QUFDQTtBTG1uRkE7QWlDbnVGQTtBQUNBO0FBQ0E7QUFDQTtBakNxdUZBO0FpQ2p1RkE7Ozs7QUFJQTtBakNtdUZBO0FpQ3puRkE7QUFDQTtBakMybkZBO0FpQ3htRkE7QUFFQTtBakN5bUZBO0FpQ3RtRkE7OztBQUdBO0FqQ3dtRkE7QWlDeGpGQTtBQTNKQTtBakNzdEZBO0FpQ3B0RkE7QUFDQTtBakNzdEZBO0FpQzd1RkE7QUFDQTtBakMrdUZBO0FpQ3R1RkE7QUFDQTtBakN3dUZBO0FpQzFqRkE7QUF2SkE7QWpDb3RGQTtBaUNsdEZBO0FBQ0E7QUFDQTtBakNvdEZBO0FpQ2p0RkE7QUFDQTtBQUNBO0FqQ210RkE7QVF2ckZBO0F5QnVIQTtBQTFLQTtBakM4dUZBO0FpQzV1RkE7QUFDQTtBakM4dUZBO0FpQ3J3RkE7QUFDQTtBakN1d0ZBO0FpQzl2RkE7QUFDQTtBakNnd0ZBO0FpQ3JrRkE7QUFwS0E7QWpDNHVGQTtBaUMxdUZBO0FBQ0E7QUFDQTtBakM0dUZBO0FpQ3p1RkE7QUFDQTtBQUNBO0FqQzJ1RkE7QUFDQTtBUWh0RkE7QXlCdUhBO0FBMUtBO0FqQ3V3RkE7QWlDcndGQTtBQUNBO0FqQ3V3RkE7QWlDOXhGQTtBQUNBO0FqQ2d5RkE7QWlDdnhGQTtBQUNBO0FqQ3l4RkE7QWlDOWxGQTtBQXBLQTtBakNxd0ZBO0FpQ253RkE7QUFDQTtBQUNBO0FqQ3F3RkE7QWlDbHdGQTtBQUNBO0FBQ0E7QWpDb3dGQTtBQUNBO0FpQ3B2RkE7QUFDQTtBQUNBO0FBQ0E7QWpDc3ZGQTtBaUNudkZBO0FBQ0E7QWpDcXZGQTtBaUN2dUZBO0FBQ0E7QUFDQTtBakN5dUZBO0FpQzN1RkE7QUFDQTtBQUNBO0FqQzZ1RkE7QWlDM21GQTtBQUVBO0FqQzRtRkE7QWlDM3JGQTtBQUVBO0FqQzRyRkE7QWlDdHJGQTs7O0FBUUE7QUFDQTtBQUNBO0FqQ21yRkE7QWlDdG1GQTtBQUNBO0FqQ3dtRkE7QWlDbG1GQTtBQXBKQTtBakN5dkZBO0FpQ2htRkE7QUFDQTtBQUNBO0FqQ2ttRkE7QWlDN2xGQTtBQUNBO0FqQytsRkE7QWlDOWxGQTtBQUNBO0FqQ2dtRkE7QWlDemxGQTtBQUNBO0FqQzJsRkE7QUFDQTtBaUN2bEZBO0FBeEdBO0FBRUE7QUFDQTtBQUNBO0FqQ2lzRkE7QUFDQTtBaUN6bEZBO0FBQ0E7QWpDMmxGQTtBaUN6bEZBO0F2QnBUQTtBQUNBO0FWZzVGQTtBaUNybEZBO0FBQ0E7QWpDdWxGQTtBQUNBO0FpQ2xsRkE7QUFDQTtBakNvbEZBO0FBQ0E7QWtDMThGQTtBN0JnRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMNjNGQTtBSzEzRkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUx5M0ZBO0FLOTJGQTtBQUNBO0FBQ0E7QUxnM0ZBO0FBQ0E7QWtDOTlGQTtBN0I0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMcTVGQTtBS2w1RkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUxpNUZBO0FLdDRGQTtBQUNBO0FBQ0E7QUx3NEZBO0FBQ0E7QW1DNzlGQTtBQUNBO0FBQ0E7QW5DKzlGQTtBbUM3OUZBO0FBQ0E7QW5DKzlGQTtBbUM1OUZBO0FBQ0E7QW5DODlGQTtBQUNBO0FtQzE5RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBbkMyOUZBO0FtQ3o5RkE7QUFDQTtBQUNBO0FBQ0E7QW5DMjlGQTtBbUN4OUZBO0FBQ0E7QW5DMDlGQTtBQUNBO0FtQ3Y5RkE7QUFDQTtBbkN5OUZBO0FBQ0E7QW1DdDlGQTtBQUNBO0FuQ3c5RkE7QW1DdDlGQTtBOUJ2REE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWFBO0FBQ0E7QUFDQTtBOEJvQ0E7QUFDQTtBQUNBO0FBQ0E7QW5DKzlGQTtBQUNBO0FtQzU5RkE7QTlCaEVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFrQkE7QUFDQTtBQUNBO0E4QndDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FuQ28rRkE7QUFDQTtBb0N6L0ZBO0FBM0JBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FwQ29oR0E7QW9DaGhHQTtBQUNBO0FwQ2toR0E7QW9DL2dHQTtBQUNBO0FBQ0E7QXBDaWhHQTtBQUNBO0FvQ3hnR0E7QUFDQTtBcEMwZ0dBO0FBQ0E7QW9DNWdHQTtBQUNBO0FwQzhnR0E7QUFDQTtBb0NoaEdBO0FBQ0E7QXBDa2hHQTtBQUNBO0FxQ3hpR0E7QUFDQTtBQUNBO0FBQ0E7QXJDMGlHQTtBcUNyaUdBO0FBQ0E7QUFDQTtBQUNBO0FyQ3VpR0E7QXFDbGlHQTtBQUNBO0FBQ0E7QXJDb2lHQTtBcUNqaUdBO0FoQ3pEQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FnQ2dEQTtBQUNBO0FyQzBpR0E7QUt2OEZBO0FBQ0E7QUx5OEZBO0FxQ25nR0E7QUFDQTtBckNxZ0dBO0FxQzFpR0E7QUFDQTtBckM0aUdBO0FxQ3hpR0E7QUFDQTtBQUNBO0FyQzBpR0E7QXFDcmlHQTtBQUNBO0FBQ0E7QXJDdWlHQTtBcUNubUdBO0FBQ0E7QXJDcW1HQTtBcUNsbUdBO0FoQ3hCQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBa0JBO0FBQ0E7QUFDQTtBTDBtR0E7QXFDeG1HQTtBaEM1QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWFBO0FBQ0E7QUFDQTtBTHluR0E7QVFyZ0dBO0E2QnJHQTtBQUNBO0FBQ0E7QUFDQTtBckM2bUdBO0FxQ3htR0E7QUFDQTtBQUNBO0FBQ0E7QXJDMG1HQTtBcUNybUdBO0FBQ0E7QUFDQTtBckN1bUdBO0FxQ3BtR0E7QWhDekRBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QWdDZ0RBO0FBQ0E7QXJDNm1HQTtBcUN2bUdBO0FBQ0E7QXJDeW1HQTtBcUNybUdBO0FBQ0E7QUFDQTtBckN1bUdBO0FxQ2xtR0E7QUFDQTtBQUNBO0FyQ29tR0E7QXFDaHFHQTtBQUNBO0FyQ2txR0E7QXFDL3BHQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUx1cUdBO0FxQ3JxR0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUxzckdBO0FBQ0E7QVFua0dBO0E2QnJHQTtBQUNBO0FBQ0E7QUFDQTtBckMycUdBO0FxQ3RxR0E7QUFDQTtBQUNBO0FBQ0E7QXJDd3FHQTtBcUNucUdBO0FBQ0E7QUFDQTtBckNxcUdBO0FxQ2xxR0E7QWhDekRBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QWdDZ0RBO0FBQ0E7QXJDMnFHQTtBcUNycUdBO0FBQ0E7QXJDdXFHQTtBcUNucUdBO0FBQ0E7QUFDQTtBckNxcUdBO0FxQ2hxR0E7QUFDQTtBQUNBO0FyQ2txR0E7QXFDOXRHQTtBQUNBO0FyQ2d1R0E7QXFDN3RHQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUxxdUdBO0FxQ251R0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUxvdkdBO0FBQ0E7QXFDN29HQTtBQUNBO0FBQ0E7QUFDQTtBckMrb0dBO0FBQ0E7QXFDM29HQTtBQUNBO0FyQzZvR0E7QXFDM29HQTtBQUNBO0FyQzZvR0E7QUFDQTtBcUMxb0dBO0FBQ0E7QXJDNG9HQTtBcUMxb0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJDNG9HQTtBcUN6b0dBO0FBRUE7QUFLQTtBckNzb0dBO0FxQ2xvR0E7QUFDQTtBQUNBO0FyQ29vR0E7QXFDam9HQTtBQUNBO0FBQ0E7QXJDbW9HQTtBQUNBO0FxQ2hvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FyQ2dvR0E7QXFDbnlHQTtBQUNBO0FyQ3F5R0E7QXFDbHlHQTtBaEN4QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWtCQTtBQUNBO0FBQ0E7QUwweUdBO0FxQ3h5R0E7QWhDNUJBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFhQTtBQUNBO0FBQ0E7QUx5ekdBO0FxQzlvR0E7QUFDQTtBckNncEdBO0FxQzVvR0E7QUFDQTtBckM4b0dBO0FxQ3pvR0E7QUFDQTtBckMyb0dBO0FBQ0E7QXNDM3pHQTs7QUFuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdENrMUdBO0FzQ2gxR0E7Ozs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdENzMUdBO0FzQzEwR0E7O0FBQ0E7QXRDNjBHQTtBQUNBO0F1Q24xR0E7QUFaQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QXZDMDFHQTtBdUN2MUdBO0FBQ0E7QUFDQTtBdkN5MUdBO0F1QzMxR0E7QUFDQTtBQUNBO0F2QzYxR0E7QXVDLzFHQTtBQUNBO0FBQ0E7QXZDaTJHQTtBdUNuMkdBO0FBQ0E7QUFDQTtBdkNxMkdBO0F1Q3YyR0E7QUFDQTtBQUNBO0F2Q3kyR0E7QUFDQTtBd0M1MUdBO0FBbkRBO0FBQ0E7QUFHQTtBeENnNUdBO0F3QzkxR0E7QUFDQTtBeENnMkdBO0FRN3dHQTtBZ0MvRUE7QUFFQTtBeEM4MUdBO0FBQ0E7QVFseEdBO0FnQ3hFQTtBQWhDQTtBQUNBO0FBR0E7QUFDQTtBeEM0M0dBO0F3Q3QzR0E7QUFDQTtBeEN3M0dBO0FBQ0E7QUFDQTtBd0MvMUdBO0FBN0RBO0F4Qys1R0E7QXdDeDVHQTtBQUNBO0F4QzA1R0E7QXdDdjVHQTtBQUNBO0F4Q3k1R0E7QXdDdDVHQTtBQUNBO0F4Q3c1R0E7QXdDdjJHQTtBQUNBO0F4Q3kyR0E7QUFDQTtBeUNwNUdBO0FBQ0E7QXpDczVHQTtBQUNBO0F5Q241R0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBekNnNUdBO0F5Qzk0R0E7QUFDQTtBQUNBO0F6Q2c1R0E7QXlDNzRHQTtBQUNBO0F6Qys0R0E7QXlDNTRHQTtBQUNBO0F6Qzg0R0E7QXlDMzRHQTtBQUNBO0F6QzY0R0E7QUFDQTtBeUNsdEdBO0FBckxBO0FBQ0E7QXpDMDRHQTtBQUNBO0F5Q2x0R0E7QUE3S0E7QUFNQTtBQUVBO0FBQ0E7QUFBQTtBQUVBO0F6QzIzR0E7QUt2MEdBO0FBQ0E7QUx5MEdBO0F5QzMzR0E7QUFDQTtBekM2M0dBO0F5QzMzR0E7QUFDQTtBekM2M0dBO0F5Q3gzR0E7QUFDQTtBekMwM0dBO0FBQ0E7QXlDanVHQTtBQS9LQTtBQUdBO0FBRUE7QUFDQTtBQUFBO0FBRUE7QXpDKzRHQTtBSzMxR0E7QUFDQTtBTDYxR0E7QXlDLzRHQTtBQUNBO0F6Q2k1R0E7QXlDLzRHQTtBQUNBO0F6Q2k1R0E7QXlDNTRHQTtBQUNBO0F6Qzg0R0E7QUFDQTtBeUNodkdBO0FBcEpBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBekNzNEdBO0F5Q240R0E7QUFDQTtBekNxNEdBO0F5Q2wxR0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBd0JBO0FBQ0E7QXpDMHpHQTtBeUNyekdBO0FBQ0E7QXpDdXpHQTtBQUNBO0F5Q3Z3R0E7QUF2SUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0F6Q2c1R0E7QXlDNzRHQTtBQUNBO0F6Qys0R0E7QXlDMTJHQTtBQUNBO0FBVUE7QUFDQTtBQUVBO0FBQ0E7QUFpQkE7QUFDQTtBekNrMUdBO0F5QzcwR0E7QUFDQTtBekMrMEdBO0FBQ0E7QXlDOXhHQTtBQTFIQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QXpDeTVHQTtBeUN0NUdBO0FBQ0E7QXpDdzVHQTtBeUNsNEdBO0FBQ0E7QUFpQkE7QUFDQTtBQUVBO0FBQ0E7QUFVQTtBQUNBO0F6QzAyR0E7QXlDcjJHQTtBQUNBO0F6Q3UyR0E7QUFDQTtBeUNyekdBO0FBNUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBekNrNkdBO0F5Qy81R0E7QUFDQTtBekNpNkdBO0F5QzE1R0E7QUFDQTtBQXdCQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QXpDazRHQTtBeUM3M0dBO0FBQ0E7QXpDKzNHQTtBQUNBO0F5QzMwR0E7QUEvQ0E7QUFDQTtBQUFBO0F6QzYzR0E7QUFDQTtBUW4rR0E7QWlDMkpBO0FBN0NBO0FBQ0E7QUFDQTtBekN5M0dBO0F5Q24zR0E7QUFDQTtBekNxM0dBO0FBQ0E7QXlDOTBHQTtBQWpEQTtBQUNBO0FBQ0E7QXpDazRHQTtBeUM1M0dBO0FBQ0E7QXpDODNHQTtBQUNBO0F5Q24xR0E7QUFyREE7QUFDQTtBQUNBO0F6QzI0R0E7QXlDcjRHQTtBQUNBO0F6Q3U0R0E7QUFDQTtBeUN4MUdBO0FBekRBO0FBQ0E7QUFDQTtBekNvNUdBO0F5Qzk0R0E7QUFDQTtBekNnNUdBO0FBQ0E7QVF4Z0hBO0FpQzJKQTtBQTdDQTtBQUNBO0FBQ0E7QXpDODVHQTtBeUN4NUdBO0FBQ0E7QXpDMDVHQTtBQUNBO0F5Q24zR0E7QUFqREE7QUFDQTtBQUNBO0F6Q3U2R0E7QXlDajZHQTtBQUNBO0F6Q202R0E7QUFDQTtBeUN4M0dBO0FBckRBO0FBQ0E7QUFDQTtBekNnN0dBO0F5QzE2R0E7QUFDQTtBekM0NkdBO0FBQ0E7QXlDNzNHQTtBQXpEQTtBQUNBO0FBQ0E7QXpDeTdHQTtBeUNuN0dBO0FBQ0E7QXpDcTdHQTtBQUNBO0EwQzlpSEE7QUFwR0E7QTFDcXBIQTtBQUNBO0EwQzlpSEE7QUFuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUNvcEhBO0FBQ0E7QTBDbGpIQTtBQTlGQTtBMUNtcEhBO0EwQ2hwSEE7QUFDQTtBQUNBO0ExQ2twSEE7QUFDQTtBMEN0akhBO0FBdkZBO0ExQ2dwSEE7QUFDQTtBMEN0akhBO0FBdEZBO0FBQ0E7QUFDQTtBMUMrb0hBO0FBQ0E7QTBDeGpIQTtBQW5GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBMUM2b0hBO0FBQ0E7QTBDOWpIQTtBckNpQ0E7QUFDQTtBQUNBO0FxQzVHQTtBQUNBO0FBQ0E7QTFDNm9IQTtBS3ZrSEE7QUFDQTtBTHlrSEE7QTBDOW9IQTtBQUdBO0ExQzhvSEE7QUFDQTtBMEN6a0hBO0FBaEVBO0ExQzRvSEE7QUFDQTtBMEN4a0hBO0FBaEVBO0FBQ0E7QTFDMm9IQTtBQUNBO0EwQ3hrSEE7QUE5REE7QUFDQTtBQUNBO0FBQ0E7QTFDeW9IQTtBSzdsSEE7QUFDQTtBTCtsSEE7QTBDMW9IQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTFDMm9IQTtBMEN6b0hBO0FBQ0E7QTFDMm9IQTtBMEN4b0hBO0FBQ0E7QTFDMG9IQTtBQUNBO0EyQzluSEE7QUFuRkE7QUFDQTtBM0NvdEhBO0FLbHBIQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMaXBIQTtBSzdvSEE7QUFDQTtBTCtvSEE7QTJDMXRIQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0EzQ3V0SEE7QTJDcnRIQTtBQUVBO0EzQ3N0SEE7QVExcEhBO0FtQ3pFQTtBQXVCQTtBM0NndEhBO0FBQ0E7QTJDM3NIQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBM0M2c0hBO0EyQzNzSEE7O0FBQ0E7QTNDOHNIQTtBMkNqcUhBO0FBbENBO0FBQ0E7QUFDQTtBQUNBO0EzQ3NzSEE7QTJDbnFIQTtBQTNCQTtBQUNBO0FBQ0E7QTNDaXNIQTtBMkMvckhBO0FBQ0E7QTNDaXNIQTtBMkN2cUhBO0FBakJBO0FBQ0E7QUFDQTtBM0MyckhBO0FBQ0E7QTJDdnFIQTs7QUFFQTtBQUNBO0FBQ0E7QTNDeXFIQTtBQUNBO0EyQ3ZxSEE7O0FBRUE7QUFDQTtBQUNBO0EzQ3lxSEE7QUFDQTtBNEM3ekhBO0FBcENBO0FBQ0E7QUFDQTtBQUNBO0E1Q28ySEE7QTRDOXpIQTtBQUNBO0E1Q2cwSEE7QTRDajBIQTtBQUNBO0E1Q20wSEE7QTRDcDBIQTtBQUNBO0E1Q3MwSEE7QTRDdjBIQTtBQUNBO0E1Q3kwSEE7QTRDMTBIQTtBQUNBO0E1QzQwSEE7QUFDQTtBNEN0MEhBO0FBekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBNUNnM0hBO0FBQ0E7QTRDMTBIQTtBdkN1S0E7QUFDQTtBQUNBO0FBQ0E7QXVDMU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0E1QysySEE7QUFDQTtBNkMxeUhBO0FBckZBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QTdDaTRIQTtBQUNBO0E2Q2h6SEE7QUE3RUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBN0M4M0hBO0E2QzUzSEE7QUFDQTtBN0M4M0hBO0FBQ0E7QTZDenpIQTtBeEMrRkE7QUFDQTtBQUNBO0F3Qy9KQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBN0MyM0hBO0FLM3dIQTtBQUNBO0FMNndIQTtBNkM1M0hBO0FBQ0E7QTdDODNIQTtBNkMzM0hBO0FBQ0E7QTdDNjNIQTtBQUNBO0E2QzcwSEE7O0FBNUNBO0FBQ0E7QTdDNjNIQTtBQUNBO0E2QzcwSEE7QUE3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0M2M0hBO0E2QzMzSEE7QUFDQTtBQUNBO0FBQ0E7QTdDNjNIQTtBNkMxM0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3QzQzSEE7QUFDQTtBOEM1OUhBO0FBQ0E7QTlDODlIQTtBQUNBO0E4QzU5SEE7QUFDQTtBQUNBO0FBQ0E7QTlDODlIQTtBQUNBO0E4QzU5SEE7QUFDQTtBQUNBO0FBQ0E7QTlDODlIQTtBOEM1OUhBO0FBQ0E7QTlDODlIQTtBOEMzOUhBO0FBQ0E7QTlDNjlIQTtBQUNBO0E4QzE5SEE7QUFDQTtBQUNBO0FBQ0E7QTlDNDlIQTtBOEMxOUhBO0FBQ0E7QTlDNDlIQTtBQUNBO0ErQzU0SEE7QUFDQTtBL0M4NEhBO0FBQ0E7QStDMzRIQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBL0M2NEhBO0FBQ0E7QStDMTRIQTtBQXZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QS9DbStIQTtBQUNBO0ErQ2o1SEE7QUE3RUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQXVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvQ3c1SEE7QUtyM0hBO0FBQ0E7QUx1M0hBO0FROTRIQTtBdUNwQkE7QUFqRUE7QS9DdStIQTtBQUNBO0ErQ3ArSEE7QUFDQTtBL0NzK0hBO0ErQ2wrSEE7QUFDQTtBL0NvK0hBO0FRejVIQTtBdUNwQkE7QUExQ0E7QUFDQTtBL0MyOUhBO0FBQ0E7QVEvNUhBO0F1Q1JBO0FBQ0E7QUFDQTtBQUNBO0EvQzA2SEE7QUFDQTtBK0N0NkhBO0FBQ0E7QS9DdzZIQTtBUXo2SEE7QXVDS0E7QUFuRUE7QUFDQTtBL0MyK0hBO0FBQ0E7QVEvNkhBO0F1Q01BO0FBcEVBO0FBQ0E7QS9DaS9IQTtBQUNBO0FRcjdIQTtBdUNPQTtBQXJFQTtBQUNBO0EvQ3UvSEE7QUFDQTtBK0NqN0hBO0FBakVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0EvQ20vSEE7QVFsOEhBO0F1Q3pCQTtBQW5DQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBL0NnZ0lBO0FBQ0E7QStDbjhIQTtBQUNBO0EvQ3E4SEE7QUFDQTtBZ0QxNkhBO0FBQ0E7QUE3SUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QWhEdWpJQTtBQUNBO0FnRC82SEE7QUFwSUE7QUFDQTtBQUNBO0FoRHNqSUE7QUFDQTtBZ0RoN0hBO0FBN0hBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FoRDRpSUE7QWdEemlJQTtBQUNBO0FoRDJpSUE7QWdEdmlJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEdWlJQTtBZ0RuaUlBO0FBQ0E7QWhEcWlJQTtBZ0RuaUlBO0FBQ0E7QWhEcWlJQTtBS3QvSEE7QUFDQTtBTHcvSEE7QUFDQTtBZ0RqOUhBO0FBN0VBO0FBQ0E7QUFDQTtBaERpaUlBO0FBQ0E7QWdEbDlIQTtBQTNFQTtBQUNBO0FoRGdpSUE7QWdEOWhJQTtBQUNBO0FoRGdpSUE7QUFDQTtBZ0RwOUhBO0FBdkVBO0FoRDhoSUE7QWdENWhJQTtBQUNBO0FoRDhoSUE7QUFDQTtBZ0RyOUhBO0FBdkRBO0FoRCtnSUE7QWdEN2dJQTtBQUNBO0FBQ0E7QUFDQTtBaEQrZ0lBO0FnRDVnSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEQ4Z0lBO0FnRDNnSUE7QUFDQTtBaEQ2Z0lBO0FBQ0E7QWdEbitIQTtBQTNEQTtBaERpaUlBO0FnRC9oSUE7QUFDQTtBQUNBO0FBQ0E7QWhEaWlJQTtBZ0Q5aElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhEZ2lJQTtBZ0Q3aElBO0FBQ0E7QWhEK2hJQTtBQUNBO0FnRGovSEE7QUEvREE7QWhEbWpJQTtBZ0RqaklBO0FBQ0E7QUFDQTtBQUNBO0FoRG1qSUE7QWdEaGpJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoRGtqSUE7QWdEL2lJQTtBQUNBO0FoRGlqSUE7QUFDQTtBaUR0OEhBO0FBOUdBO0FBQ0E7QUFDQTtBQUNBO0FqRHVqSUE7QWlEOW9JQTs7O0FBR0E7QUFDQTtBakRncElBO0FBQ0E7QWlEN29JQTtBQUNBO0FBQ0E7QWpEK29JQTtBQUNBO0FpRDVvSUE7QUFDQTtBQUNBO0FqRDhvSUE7QUFDQTtBaUQzb0lBO0FBQ0E7QUFDQTtBakQ2b0lBO0FBQ0E7QWlEdm9JQTs7QUFDQTtBakQwb0lBO0FpRHRvSUE7Ozs7QUFFQTtBQUNBO0FBQ0E7QWpEMG9JQTtBQUNBO0FpRHJvSUE7O0FBRUE7QWpEdW9JQTtBQUNBO0FpRDlzSUE7QUFDQTtBQUNBO0FqRGd0SUE7QUFDQTtBaURsb0lBO0FBRUE7QWpEbW9JQTtBaUR0c0lBO0FBQ0E7QUFDQTtBQUNBO0FqRHdzSUE7QUFDQTtBUWxwSUE7QXlDMkhBO0FBQ0E7QWpEMGhJQTtBaUR0aElBO0FBQ0E7QWpEd2hJQTtBaURyaElBOzs7QUFHQTtBakR1aElBO0FpRHBoSUE7QUFDQTtBakRzaElBO0FBQ0E7QUFDQTtBaUR6Z0lBO0FBdkdBO0FBQ0E7QUFDQTtBakRtbklBO0FBQ0E7QWlEN21JQTtBQUNBO0FqRCttSUE7QWlEem1JQTtBQUNBO0FqRDJtSUE7QWlEcm1JQTtBQUNBO0FqRHVtSUE7QWlEaG1JQTtBQUNBO0FqRGttSUE7QUFDQTtBaURwaElBO0FBQ0E7QWpEc2hJQTtBaURwaElBO0FBQ0E7QWpEc2hJQTtBQUNBO0FrRDNzSUE7QUFoRkE7QUFDQTtBQUNBO0FBQ0E7QWxEOHhJQTtBS2x0SUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBTGl0SUE7QUs3c0lBO0FBQ0E7QUwrc0lBO0FBQ0E7QWtEbnlJQTtBQUNBO0FBQ0E7QUFDQTtBbERxeUlBO0FBQ0E7QWtEdHRJQTtBQUNBO0FsRHd0SUE7QWtEdHRJQTtBQUNBO0FsRHd0SUE7QUFDQTtBa0RudElBO0FBQ0E7QWxEcXRJQTtBa0RudElBO0FBQ0E7QWxEcXRJQTtBa0RudElBO0FBRUE7QWxEb3RJQTtBQUNBO0FrRGh0SUE7QUExRkE7QWxENnlJQTtBa0QzeUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbEQ2eUlBO0FrRDN5SUE7QUFDQTtBQUNBO0FsRDZ5SUE7QWtEMXlJQTtBQUVBO0FBQ0E7QWxEMnlJQTtBQUNBO0FrRC90SUE7QUFsRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbERveUlBO0FBQ0E7QWtEbnVJQTtBQTNEQTtBQUNBO0FsRGl5SUE7QUFDQTtBa0RwdUlBO0FBdkRBO0FBQ0E7QWxEOHhJQTtBa0Q1eElBO0FBQ0E7QWxEOHhJQTtBQUNBO0FtRGozSUE7QUF6QkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QW5EMjRJQTtBQUNBO0FtRHYzSUE7QUFqQkE7QW5EMjRJQTtBbUR6NElBO0FBRUE7QW5EMDRJQTtBbUR2NElBO0FBQ0E7QW5EeTRJQTtBQUNBO0FvRDM1SUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QXBEMjVJQTtBb0RyNUlBO0FBQ0E7QUFDQTtBcER1NUlBO0FBQ0E7QW9EbjVJQTs7QUFFQTtBcERxNUlBO0FBQ0E7QW9EbjVJQTtBQUNBO0FwRHE1SUE7QUFDQTtBb0R4NElBO0FBQ0E7QUFDQTtBQUNBO0FwRDA0SUE7QUFDQTtBcURqM0lBO0FBdERBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXJEeTZJQTtBQUNBO0FxRHIzSUE7QUFqREE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FyRHU2SUE7QXFEcjZJQTtBaER4REE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQVFBO0FBQ0E7QUFDQTtBZ0QwQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEODZJQTtBcUQzNklBO0FoRGhFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FnRHVEQTtBQUNBO0FyRG83SUE7QXFEajdJQTtBaER0RUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQWFBO0FBQ0E7QUFDQTtBZ0RtREE7QUFDQTtBQUNBO0FBQ0E7QXJEMDdJQTtBcUR2N0lBO0FoRDlFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBa0JBO0FBQ0E7QUFDQTtBZ0RzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckRnOElBO0FBQ0E7QXNEOTZJQTtBQXRGQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBa0NBO0F0RGkrSUE7QXNEamdKQTs7QUFFQTtBdERtZ0pBO0FzRHgvSUE7QUFDQTtBQUNBO0F0RDAvSUE7QXNEdC9JQTtBQUNBO0FBQ0E7QXREdy9JQTtBc0RyL0lBO0FBQ0E7QXREdS9JQTtBc0Q3K0lBOztBQUVBO0FBQ0E7QXREKytJQTtBUXg2SUE7QThDbENBO0FBdEJBO0F0RG8rSUE7QXNEbCtJQTtBQUNBO0FBQ0E7QXREbytJQTtBc0RqK0lBO0FBQ0E7QUFDQTtBdERtK0lBO0FBQ0E7QVFoN0lBO0E4QzFCQTtBQXhEQTtBdERzZ0pBO0FzRG5nSkE7O0FBRUE7QUFDQTtBdERxZ0pBO0FBQ0E7QVExN0lBO0E4QzFCQTtBQXhEQTtBdERnaEpBO0FzRDdnSkE7O0FBRUE7QUFDQTtBdEQrZ0pBO0FBQ0E7QUFDQTtBc0RwOUlBO0FBQ0E7QUFDQTtBdERzOUlBO0FBQ0E7QXNEcDlJQTs7QUFFQTtBdERzOUlBO0FBQ0E7QXVEbGpKQTtBQUNBO0F2RG9qSkE7QUFDQTtBdURsakpBO0FBQ0E7QXZEb2pKQTtBQUNBO0FRdjlJQTtBK0MvRUE7QUExQkE7QXZEb2tKQTtBQUNBO0FBQ0E7QXVEemxKQTtBQWlEQTtBQWhEQTtBdkQ0bEpBO0FBQ0E7QUFDQTtBUXgrSUE7QStDbkZBO0FBekJBO0F2RHdsSkE7QUFDQTtBQUNBO0FReitJQTtBK0NwRkE7QUFqRUE7QXZEa29KQTtBQUNBO0FBQ0E7QVEvK0lBO0ErQy9FQTtBQTFCQTtBdkQ0bEpBO0FBQ0E7QUFDQTtBdURqbkpBO0FBaURBO0FBaERBO0F2RG9uSkE7QUFDQTtBQUNBO0FRaGdKQTtBK0NuRkE7QUF6QkE7QXZEZ25KQTtBQUNBO0FBQ0E7QVFqZ0pBO0ErQ3BGQTtBQWpFQTtBdkQwcEpBO0FBQ0E7QUFDQTtBUXZnSkE7QStDL0VBO0FBMUJBO0F2RG9uSkE7QUFDQTtBQUNBO0F1RHpvSkE7QUFpREE7QUFoREE7QXZENG9KQTtBQUNBO0FBQ0E7QXVEdmxKQTs7QWxEOEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FMNi9JQTtBQUNBO0F1RDdsSkE7QWxEb0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUw0L0lBO0FBQ0E7QXVEaG1KQTs7QUFFQTtBdkRrbUpBO0FROWlKQTtBK0N0REE7O0FBS0E7QXZEb21KQTtBQUNBO0FRcGpKQTtBK0N0REE7O0FBU0E7QXZEc21KQTtBQUNBO0FBQ0E7QXVEcG1KQTs7QUFFQTtBdkRzbUpBO0FRL2pKQTtBK0N6Q0E7O0FBS0E7QXZEd21KQTtBQUNBO0FRcmtKQTtBK0N6Q0E7O0FBU0E7QXZEMG1KQTtBQUNBO0FBQ0E7QXdEbnVKQTtBQUNBO0F4RHF1SkE7QUFDQTtBd0RudUpBO0FBQ0E7QXhEcXVKQTtBQUNBO0F3RG51SkE7QUFDQTtBQUNBO0FBQ0E7QXhEcXVKQTtBQUNBO0FLem1KQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FMd21KQTtBS3BtSkE7QUFDQTtBTHNtSkE7QUFDQTtBeURqd0pBO0EvQytDQTtBVnF0SkE7QUFDQTtBeURyd0pBO0EvQytDQTtBVnl0SkE7QUFDQTtBeUR6d0pBO0EvQytDQTtBVjZ0SkE7QUFDQTtBeUQ3d0pBO0EvQytDQTtBVml1SkE7QUFDQTtBeUR6d0pBO0EvQ3VDQTtBVnF1SkE7QUFDQTtBeUQ3d0pBO0EvQ3VDQTtBVnl1SkE7QUFDQTtBeUR6d0pBO0EvQ2dDQTtBVjR1SkE7QUFDQTtBeUR6d0pBO0EvQzRDQTtBVmd1SkE7QUFDQTtBeURqeEpBO0EvQ2dDQTtBVm92SkE7QUFDQTtBeURqeEpBO0EvQzRDQTtBVnd1SkE7QUFDQTtBeUR6eEpBO0EvQ2dDQTtBVjR2SkE7QUFDQTtBeUR6eEpBO0EvQzRDQTtBVmd2SkE7QUFDQTtBeURqeUpBO0EvQ2dDQTtBVm93SkE7QUFDQTtBeURqeUpBO0EvQzRDQTtBVnd2SkE7QUFDQTtBeUQveEpBO0EvQ3FCQTtBQUNBO0ErQ3BCQTtBekRreUpBO0FBQ0E7QXlEN3hKQTtBL0NvQ0E7QVY0dkpBO0FBQ0E7QXlEanlKQTtBL0NvQ0E7QVZnd0pBO0FBQ0E7QXlEcnlKQTtBL0NvQ0E7QVZvd0pBO0FBQ0E7QXlEenlKQTtBL0NvQ0E7QVZ3d0pBO0FBQ0E7QXlEN3lKQTtBL0NvQ0E7QVY0d0pBO0FBQ0E7QXlEanpKQTtBL0NvQ0E7QVZneEpBO0FBQ0E7QVEvckpBO0FpRHRIQTtBL0NvQ0E7QVZxeEpBO0FBQ0E7QXlEMXpKQTtBL0NvQ0E7QVZ5eEpBO0FBQ0E7QXlEOXpKQTtBL0NvQ0E7QVY2eEpBO0FBQ0E7QXlEbDBKQTtBL0NvQ0E7QVZpeUpBO0FBQ0E7QXlEdDBKQTtBL0NvQ0E7QVZxeUpBO0FBQ0E7QXlEMTBKQTtBL0NvQ0E7QVZ5eUpBO0FBQ0E7QVF4dEpBO0FpRHRIQTtBL0NvQ0E7QVY4eUpBO0FBQ0E7QXlEbjFKQTtBL0NvQ0E7QVZrekpBO0FBQ0E7QXlEdjFKQTtBL0NvQ0E7QVZzekpBO0FBQ0E7QXlEMzFKQTtBL0NvQ0E7QVYwekpBO0FBQ0E7QXlELzFKQTtBL0NvQ0E7QVY4ekpBO0FBQ0E7QXlEbjJKQTtBL0NvQ0E7QVZrMEpBO0FBQ0E7QTBEMTJKQTtBQUNBO0ExRDQySkE7QTBEcjNKQTtBQVFBO0FBR0E7QTFEODJKQTtBQUNBO0FBQ0E7QTBENTJKQTtBQUNBO0ExRDgySkE7QTBEOTNKQTtBQWVBO0FBR0E7QTFEZzNKQTtBQUNBO0FBQ0E7QTBEOTJKQTtBQUNBO0ExRGczSkE7QTBENzRKQTtBQTRCQTtBQUdBO0ExRGszSkE7QUFDQTtBQUNBO0EwRGgzSkE7QUFDQTtBMURrM0pBO0EwRHQ1SkE7QUFtQ0E7QUFHQTtBMURvM0pBO0FBQ0E7QUFDQTtBMkQ1eUpBOztBQUFBO0FBc0JBO0FBQ0E7QUFDQTtBM0QyeEpBO0EwRG42SkE7QUNzSUE7QUFJQTtBM0Q2eEpBO0FBQ0E7QUFDQTtBMkQ1eEpBO0FBQ0E7QUFDQTtBM0Q4eEpBO0EwRDc2SkE7QUM2SUE7QUFJQTtBM0RneUpBO0FBQ0E7QUFDQTtBMkQveEpBO0FBQ0E7QUFDQTtBM0RpeUpBO0FBQ0E7QTJENXhKQTs7QUFDQTtBQUNBO0EzRCt4SkE7QTJEeDBKQTtBQTRDQTtBM0QreEpBO0EyRDMwSkE7QUE0Q0E7QTNEa3lKQTtBMkQ5MEpBO0FBNENBO0EzRHF5SkE7QTJEajFKQTtBQWdEQTtBM0RveUpBO0EyRHAxSkE7QUFnREE7QTNEdXlKQTtBMkR2MUpBO0FBZ0RBO0EzRDB5SkE7QTJEMTFKQTtBQXFEQTtBM0R3eUpBO0EyRDcxSkE7QUFxREE7QTNEMnlKQTtBMkRoMkpBO0FBcURBO0EzRDh5SkE7QTJEbjJKQTs7O0FBMkRBO0EzRDZ5SkE7QTJEeDJKQTs7O0FBMkRBO0EzRGt6SkE7QTJENzJKQTs7O0FBMkRBO0EzRHV6SkE7QTJEbDNKQTs7Ozs7QUErREE7QTNEMHpKQTtBMkR6M0pBOzs7OztBQStEQTtBM0RpMEpBO0EyRGg0SkE7Ozs7O0FBK0RBO0EzRHcwSkE7QTJEdjRKQTs7Ozs7QUFvRUE7QTNEMDBKQTtBMkQ5NEpBOzs7OztBQW9FQTtBM0RpMUpBO0EyRHI1SkE7Ozs7O0FBb0VBO0EzRHcxSkE7QTJENTVKQTtBQTBFQTtBM0RxMUpBO0EyRC81SkE7QUEwRUE7QTNEdzFKQTtBMkRsNkpBO0FBMEVBO0EzRDIxSkE7QTJEcjZKQTtBQThFQTtBM0QwMUpBO0EyRHg2SkE7QUE4RUE7QTNENjFKQTtBMkQzNkpBO0FBOEVBO0EzRGcySkE7QTJEOTZKQTtBQW1GQTtBM0Q4MUpBO0EyRGo3SkE7QUFtRkE7QTNEaTJKQTtBMkRwN0pBO0FBbUZBO0EzRG8ySkE7QUFDQTtBMkQvMUpBO0FBQ0E7QUFDQTtBQUNBO0EzRGkySkE7QTJENzdKQTtBQThGQTtBQUNBO0EzRGsySkE7QTJEajhKQTtBQThGQTtBQUNBO0EzRHMySkE7QTJEcjhKQTtBQThGQTtBQUNBO0EzRDAySkE7QTJEejhKQTtBQW1HQTtBQUNBO0EzRHkySkE7QTJENzhKQTtBQW1HQTtBQUNBO0EzRDYySkE7QTJEajlKQTtBQW1HQTtBQUNBO0EzRGkzSkE7QUFDQTtBMkQ3MkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDMU9BO0FBQ0E7QTVEMGxLQTtBMkRoK0pBO0FBa0hBO0FBQ0E7QUFDQTtBM0RpM0pBO0EyRHIrSkE7QUFrSEE7QUFDQTtBQUNBO0EzRHMzSkE7QTJEMStKQTtBQWtIQTtBQUNBO0FBQ0E7QTNEMjNKQTtBMkQvK0pBO0FBd0hBO0FBQ0E7QUFDQTtBQUNBO0EzRDAzSkE7QTJEci9KQTtBQXdIQTtBQUNBO0FBQ0E7QUFDQTtBM0RnNEpBO0EyRDMvSkE7QUF3SEE7QUFDQTtBQUNBO0FBQ0E7QTNEczRKQTtBMkRqZ0tBO0FBZ0lBO0EzRG80SkE7QTJEcGdLQTtBQWdJQTtBM0R1NEpBO0EyRHZnS0E7QUFnSUE7QTNEMDRKQTtBMkQxZ0tBO0FBb0lBO0EzRHk0SkE7QTJEN2dLQTtBQW9JQTtBM0Q0NEpBO0EyRGhoS0E7QUFvSUE7QTNEKzRKQTtBQUNBO0EyRDE0SkE7QUFDQTtBQUNBO0FBQ0E7QTNENDRKQTtBMkR6aEtBO0FBK0lBO0FBQ0E7QUFDQTtBM0Q2NEpBO0EyRDloS0E7QUErSUE7QUFDQTtBQUNBO0EzRGs1SkE7QTJEbmlLQTtBQStJQTtBQUNBO0FBQ0E7QTNEdTVKQTtBMkR4aUtBO0FBcUpBO0FBQ0E7QUFDQTtBM0RzNUpBO0EyRDdpS0E7QUFxSkE7QUFDQTtBQUNBO0EzRDI1SkE7QTJEbGpLQTtBQXFKQTtBQUNBO0FBQ0E7QTNEZzZKQTtBQUNBO0EyRHo1SkE7QUFDQTtBQUNBO0FBQ0E7QTNEMjVKQTtBMkQxNUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNENDVKQTtBMkQxNUpBO0FBQ0E7QUFDQTtBQUNBO0EzRDQ1SkE7QTJEMTVKQTtBQUNBO0FBQ0E7QUFDQTtBM0Q0NUpBO0EyRDM1SkE7QUFDQTtBQUNBO0FBQ0E7QTNENjVKQTtBMkQxNUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRDQ1SkE7QTJEMzVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNENjVKQTtBMkQzNUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTNENjVKQTtBQUNBO0EyRHA1SkE7OztBQUNBO0FBQ0E7QUFDQTtBM0R3NUpBO0FBQ0E7QTZEenZLQTtBQUNBO0E3RDJ2S0E7QUFDQTtBNkR6dktBO0FBQ0E7QTdEMnZLQTtBQUNBO0E2RHp2S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEMnZLQTtBNkR4dktBO0FBQ0E7QUFDQTtBN0QwdktBO0FBQ0E7QTZEdHZLQTtBQUNBO0E3RHd2S0E7QTJEeG9LQTtBRTlHQTtBN0R5dktBO0EyRDNvS0E7QUU5R0E7QTdENHZLQTtBMkQ5b0tBO0FFOUdBO0E3RCt2S0E7QTJEanBLQTtBRTFHQTtBN0Q4dktBO0EyRHBwS0E7QUUxR0E7QTdEaXdLQTtBMkR2cEtBO0FFMUdBO0E3RG93S0E7QUFDQTtBNkRod0tBO0FBQ0E7QTdEa3dLQTtBQUNBO0E2RGh3S0E7QUFDQTtBQUNBO0FBQ0E7QTdEa3dLQTtBQUNBO0E2RGh3S0E7QUFDQTtBN0Rrd0tBO0FBQ0E7QTZEaHdLQTtBQUNBO0E3RGt3S0E7QUFDQTtBNkRod0tBO0FBQ0E7QTdEa3dLQTtBMkRocktBO0FFaEZBO0FBQ0E7QUFDQTtBN0Rtd0tBO0EyRHJyS0E7QUVoRkE7QUFDQTtBQUNBO0E3RHd3S0E7QTJEMXJLQTtBRWhGQTtBQUNBO0FBQ0E7QTdENndLQTtBMkQvcktBO0FFMUVBO0FBQ0E7QUFDQTtBN0Q0d0tBO0EyRHBzS0E7QUUxRUE7QUFDQTtBQUNBO0E3RGl4S0E7QTJEenNLQTtBRTFFQTtBQUNBO0FBQ0E7QTdEc3hLQTtBQUNBO0E2RGx4S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0RveEtBO0EyRHh0S0E7QUUxREE7QTdEcXhLQTtBMkQzdEtBO0FFMURBO0E3RHd4S0E7QTJEOXRLQTtBRTFEQTtBN0QyeEtBO0EyRGp1S0E7QUV0REE7QTdEMHhLQTtBMkRwdUtBO0FFdERBO0E3RDZ4S0E7QTJEdnVLQTtBRXREQTtBN0RneUtBO0FBQ0E7QTJEM3VLQTtBRS9DQTtBN0Q2eEtBO0EyRDl1S0E7QUUvQ0E7QTdEZ3lLQTtBMkRqdktBO0FFL0NBO0E3RG15S0E7QUFDQTtBNkRoeUtBO0FBQ0E7QTdEa3lLQTtBQUNBO0EyRHp2S0E7QUVwQ0E7QTdEZ3lLQTtBMkQ1dktBO0FFcENBO0E3RG15S0E7QTJEL3ZLQTtBRXBDQTtBN0RzeUtBO0FBQ0E7QTJEbndLQTtBRTlCQTtBQUNBO0E3RG95S0E7QTJEdndLQTtBRTlCQTtBQUNBO0E3RHd5S0E7QTJEM3dLQTtBRTlCQTtBQUNBO0E3RDR5S0E7QUFDQTtBMkRoeEtBO0FFdkJBO0E3RDB5S0E7QTJEbnhLQTtBRXZCQTtBN0Q2eUtBO0EyRHR4S0E7QUV2QkE7QTdEZ3pLQTtBQUNBO0E2RDd5S0E7QUFDQTtBQUNBO0E3RCt5S0E7QUFDQTtBNkQ3eUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0QreUtBO0EyRHR5S0E7QUVQQTtBQUNBO0E3RGd6S0E7QTJEMXlLQTtBRVBBO0FBQ0E7QTdEb3pLQTtBMkQ5eUtBO0FFUEE7QUFDQTtBN0R3ektBO0EyRGx6S0E7QUVGQTtBN0R1ektBO0EyRHJ6S0E7QUVGQTtBN0QwektBO0EyRHh6S0E7QUVGQTtBN0Q2ektBO0E2RDF6S0E7QUFHQTtBN0QwektBO0E2RHh6S0E7QUFDQTtBN0QwektBO0FBQ0E7QTZEdnpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEeXpLQTtBNkR4ektBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdEMHpLQTtBQUNBO0E4RG45S0E7QUZlQTtBQUVBO0E1RHM4S0E7QThEcDlLQTtBQUNBO0FBQUE7QTlEczlLQTtBOER2OUtBO0FBQ0E7QUFBQTtBOUR5OUtBO0E4RDE5S0E7QUFDQTtBQUFBO0E5RDQ5S0E7QThENzlLQTtBQUNBO0FBQUE7QTlEKzlLQTtBOERoK0tBO0FBQ0E7QUFBQTtBOURrK0tBO0E4RG4rS0E7QUFDQTtBQUFBO0E5RHErS0E7QThEdCtLQTtBQUNBO0FBQUE7QTlEdytLQTtBOER6K0tBO0FBQ0E7QUFBQTtBOUQyK0tBO0E4RDUrS0E7QUFDQTtBQUFBO0E5RDgrS0E7QThELytLQTtBQUNBO0FBQUE7QTlEaS9LQTtBQUNBO0E4RDUrS0E7QUFDQTtBRklBO0FBRUE7QTVEMCtLQTtBOEQ3K0tBO0FGQ0E7QUFFQTtBNUQ4K0tBO0FBQ0E7QUFDQTtBOER2L0tBO0FBQ0E7QUZJQTtBQUVBO0E1RDArS0E7QThENytLQTtBRkNBO0FBRUE7QTVEOCtLQTtBQUNBO0E4RDUrS0E7QUFDQTtBRk5BO0FBRUE7QUVNQTtBOUQrK0tBO0E4RDcrS0E7QUZWQTtBQUVBO0FFVUE7QTlEZy9LQTtBQUNBO0E4RHgvS0E7QUFDQTtBRk5BO0FBRUE7QUVNQTtBOUQrK0tBO0E4RDcrS0E7QUZWQTtBQUVBO0FFVUE7QTlEZy9LQTtBQUNBO0ErRGhoTEE7QUFDQTtBL0RraExBO0ErRGhoTEE7QUFDQTtBL0RraExBO0ErRGhoTEE7QUFDQTtBL0RraExBO0ErRC9nTEE7QUFDQTtBQUNBO0EvRGloTEE7QUFDQTtBK0QvZ0xBO0FBQ0E7QS9EaWhMQTtBQUNBO0ErRGhoTEE7QUFFQTtBL0RpaExBO0FBQ0E7QStEaGhMQTtBQUNBO0FBQ0E7QUFDQTtBL0RraExBO0FBQ0E7QStEamhMQTtBQUNBO0FBQ0E7QS9EbWhMQTtBQUNBO0ErRGxoTEE7QUFDQTtBQUNBO0FBQ0E7QS9Eb2hMQTtBQUNBO0ErRG5oTEE7QUFDQTtBQUNBO0EvRHFoTEE7QUFDQTtBK0RwaExBO0FBQ0E7QUFDQTtBL0RzaExBO0FBQ0E7QStEcmhMQTtBQUNBO0EvRHVoTEE7QUFDQTtBK0R0aExBO0FBQ0E7QS9Ed2hMQTtBQUNBO0ErRHZoTEE7QUFDQTtBQUNBO0EvRHloTEE7QUFDQTtBK0R4aExBO0FBQ0E7QUFDQTtBL0QwaExBO0FBQ0E7QTJENThLQTtBSWpFQTtBL0RnaExBO0EyRC84S0E7QUlqRUE7QS9EbWhMQTtBMkRsOUtBO0FJakVBO0EvRHNoTEE7QUFDQTtBZ0UvbExBO0FBQ0E7QUFDQTtBQUVBO0FoRWdtTEE7QUFDQTtBZ0U3bExBO0FBQ0E7QUFDQTtBaEUrbExBO0FnRTdsTEE7QUFDQTtBQUNBO0FoRStsTEE7QWdFNWxMQTtBQUNBO0FBQ0E7QWhFOGxMQTtBQUNBO0FnRTNsTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QWhFNmxMQTtBZ0UzbExBO0FBQ0E7QUFDQTtBaEU2bExBO0FnRTFsTEE7QUFDQTtBQUNBO0FoRTRsTEE7QWdFMWxMQTtBQUNBO0FBQ0E7QWhFNGxMQTtBZ0UxbExBO0FBQ0E7QUFDQTtBaEU0bExBO0FnRTFsTEE7QUFDQTtBQUNBO0FoRTRsTEE7QWdFMWxMQTtBQUNBO0FBQ0E7QWhFNGxMQTtBZ0UxbExBO0FBQ0E7QUFDQTtBaEU0bExBO0FnRXpsTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEUybExBO0FnRXhsTEE7QUFDQTtBaEUwbExBO0FnRXZsTEE7QUFDQTtBaEV5bExBO0FnRXRsTEE7QUFDQTtBaEV3bExBO0FnRXJsTEE7QUFDQTtBaEV1bExBO0FnRXBsTEE7QUFDQTtBaEVzbExBO0FnRW5sTEE7QUFDQTtBQUNBO0FBQ0E7QWhFcWxMQTtBZ0U5a0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhFZ2xMQTtBZ0U3a0xBO0FBQ0E7QUFDQTtBaEUra0xBO0FnRTVrTEE7QUFDQTtBaEU4a0xBO0FnRTNrTEE7QUFDQTtBaEU2a0xBO0FnRTFrTEE7QUFDQTtBQUNBO0FBQ0E7QWhFNGtMQTtBZ0V6a0xBO0FBQ0E7QUFDQTtBQUNBO0FoRTJrTEE7QWdFeGtMQTtBQUNBO0FoRTBrTEE7QWdFdmtMQTtBQUNBO0FoRXlrTEE7QWdFdGtMQTtBQUNBO0FoRXdrTEE7QWdFcmtMQTtBQUNBO0FoRXVrTEE7QWdFcGtMQTtBQUNBO0FBQ0E7QWhFc2tMQTtBZ0Vwa0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEVza0xBO0FnRW5rTEE7QUFDQTtBaEVxa0xBO0FnRWprTEE7QUFDQTtBaEVta0xBO0FnRWhrTEE7QUFDQTtBaEVra0xBO0FnRWhrTEE7QUFDQTtBaEVra0xBO0EyRHJtTEE7QUt3Q0E7QWhFZ2tMQTtBMkR4bUxBO0FLd0NBO0FoRW1rTEE7QTJEM21MQTtBS3dDQTtBaEVza0xBO0EyRDltTEE7QUs2Q0E7QWhFb2tMQTtBMkRqbkxBO0FLNkNBO0FoRXVrTEE7QTJEcG5MQTtBSzZDQTtBaEUwa0xBO0FBQ0E7QWlFandMQTtBQUNBO0FBQ0E7QWpFbXdMQTtBQUNBO0FpRWp3TEE7QUFDQTtBakVtd0xBO0FBQ0E7QWlFandMQTtBQUNBO0FqRW13TEE7QUFDQTtBaUVqd0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpFbXdMQTtBaUVsd0xBO0FBQ0E7QWpFb3dMQTtBaUVqd0xBO0FBQ0E7QUFDQTtBakVtd0xBO0FpRWp3TEE7QUFDQTtBakVtd0xBO0FpRWh3TEE7QUFDQTtBakVrd0xBO0FpRWh3TEE7QUFDQTtBQUNBO0FqRWt3TEE7QUFDQTtBMkQ3cExBO0FNM0ZBO0FqRTJ2TEE7QWlFMXZMQTtBQUNBO0FBQ0E7QWpFNHZMQTtBMkRwcUxBO0FNM0ZBO0FqRWt3TEE7QWlFandMQTtBQUNBO0FBQ0E7QWpFbXdMQTtBMkQzcUxBO0FNM0ZBO0FqRXl3TEE7QWlFeHdMQTtBQUNBO0FBQ0E7QWpFMHdMQTtBQUNBO0FpRXR3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpFd3dMQTtBaUV0d0xBO0FBQ0E7QUFDQTtBTGxEQTtBQUNBO0FLbURBO0FBQ0E7QUw5Q0E7QUFFQTtBNUR1ekxBO0EwRDF6TEE7QU8wQ0E7QUxoREE7QUFDQTtBS3dEQTtBakU2d0xBO0FBQ0E7QWlFMXdMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMcEVBO0FBQ0E7QUFNQTtBQUVBO0E1RDIwTEE7QTBEOTBMQTtBT3VEQTtBTDdEQTtBQUNBO0E1RHcxTEE7QUFDQTtBaUU5d0xBO0FBQ0E7QWpFZ3hMQTtBaUU3d0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUw3RkE7QUFDQTtBSzhGQTtBQUNBO0FqRWd4TEE7QWlFL3dMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqRWl4TEE7QTBEaDNMQTtBTzBFQTtBTGhGQTtBQUNBO0FLd0dBO0FqRW14TEE7QUFDQTtBaUVoeExBO0FMdEdBO0FBRUE7QTVEdzNMQTtBaUVqeExBO0FBQ0E7QUFDQTtBakVteExBO0EwRC8zTEE7QU8wR0E7QUFJQTtBakVxeExBO0FBQ0E7QWlFbHhMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FMckhBO0FBRUE7QTVEeTRMQTtBaUVweExBO0FBQ0E7QWpFc3hMQTtBaUVseExBO0FBQ0E7QUw3SEE7QUFFQTtBSzZIQTtBQUFBO0FqRXF4TEE7QWlFcHhMQTtBQUpBO0FBS0E7QUFBQTtBTGpJQTtBQUVBO0E1RHc1TEE7QUFDQTtBaUVyeExBO0FBQ0E7QWpFdXhMQTtBMER6NUxBO0FPaUlBO0FBR0E7QWpFeXhMQTtBQUNBO0FpRXR4TEE7QUFDQTtBakV3eExBO0EwRHY2TEE7QU84SUE7QUFHQTtBakUweExBO0FBQ0E7QUFDQTtBaUV2eExBO0FBQ0E7QUFHQTtBQUNBO0FqRXV4TEE7QTJEN3pMQTtBTXdDQTtBakV3eExBO0EyRGgwTEE7QU13Q0E7QWpFMnhMQTtBMkRuMExBO0FNd0NBO0FqRTh4TEE7QWlFNXhMQTtBQUNBO0FqRTh4TEE7QTJEejBMQTtBTTZDQTtBakUreExBO0EyRDUwTEE7QU02Q0E7QWpFa3lMQTtBMkQvMExBO0FNNkNBO0FqRXF5TEE7QUFDQTtBaUVseUxBO0FBQ0E7QUFDQTtBQUNBO0FqRW95TEE7QUFDQTtBaUVseUxBO0FBQ0E7QUFDQTtBakVveUxBO0FpRW55TEE7QUFDQTtBakVxeUxBO0FBQ0E7QTJEajJMQTtBTWtFQTtBQUNBO0FBQ0E7QUFDQTtBakVreUxBO0EyRHYyTEE7QU1rRUE7QUFDQTtBQUNBO0FBQ0E7QWpFd3lMQTtBMkQ3MkxBO0FNa0VBO0FBQ0E7QUFDQTtBQUNBO0FqRTh5TEE7QUFDQTtBa0U3L0xBO0FBQ0E7QUFDQTtBbEUrL0xBO0FBQ0E7QWtFOS9MQTtBQUNBO0FBQ0E7QWxFZ2dNQTtBQUNBO0FrRTkvTEE7QUFDQTtBbEVnZ01BO0FBQ0E7QWtFOS9MQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxFZ2dNQTtBQUNBO0FrRTkvTEE7QUFDQTtBQUNBO0FBQ0E7QWxFZ2dNQTtBQUNBO0FrRTkvTEE7QUFDQTtBQUNBO0FsRWdnTUE7QTJENzVMQTtBT2pHQTtBQUNBO0FsRWlnTUE7QTJEajZMQTtBT2pHQTtBQUNBO0FsRXFnTUE7QTJEcjZMQTtBT2pHQTtBQUNBO0FsRXlnTUE7QUFDQTtBbUVuak1BO0FBQ0E7QUFDQTtBQUNBO0FuRXFqTUE7QW1FbmpNQTtBQUNBO0FuRXFqTUE7QW1FbGpNQTtBQUNBO0FuRW9qTUE7QW1FaGpNQTtBQUNBO0FBQ0E7QW5Fa2pNQTtBbUUvaU1BO0FBQ0E7QW5FaWpNQTtBQUNBO0FtRTlpTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVnak1BO0EwRHhqTUE7QVNJQTtBQU1BO0FuRWtqTUE7QUFDQTtBbUVoak1BO0FBQ0E7QW5Fa2pNQTtBQUNBO0FRMTdMQTtBMkRySEE7QVpTQTtBdkQwaU1BO0FBQ0E7QW1FbGpNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVvak1BO0FBQ0E7QW1FampNQTtBQUNBO0FuRW1qTUE7QTJENzlMQTtBUXBGQTtBQUNBO0FuRW9qTUE7QTJEaitMQTtBUXBGQTtBQUNBO0FuRXdqTUE7QTJEcitMQTtBUXBGQTtBQUNBO0FuRTRqTUE7QUFDQTtBbUV2ak1BOztBQUNBO0FBQ0E7QW5FMGpNQTtBbUV6ak1BOztBQUNBO0FBQ0E7QW5FNGpNQTtBbUV4ak1BOztBQUNBO0FBQ0E7QW5FMmpNQTtBMkR6L0xBOztBUTlEQTtBbkUyak1BO0EyRDcvTEE7O0FROURBO0FuRStqTUE7QTJEamdNQTs7QVE5REE7QW5FbWtNQTtBMkRyZ01BOztBUXhEQTtBQUNBO0FuRWlrTUE7QTJEMWdNQTs7QVF4REE7QUFDQTtBbkVza01BO0EyRC9nTUE7O0FReERBO0FBQ0E7QW5FMmtNQTtBMkRwaE1BOztBUWxEQTtBQUNBO0FuRTBrTUE7QTJEemhNQTs7QVFsREE7QUFDQTtBbkUra01BO0EyRDloTUE7O0FRbERBO0FBQ0E7QW5Fb2xNQTtBQUNBO0EyRHBpTUE7QVExQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkVpbE1BO0EyRDNpTUE7QVExQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkV3bE1BO0EyRGxqTUE7QVExQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkUrbE1BO0EyRHpqTUE7QVFsQ0E7QW5FOGxNQTtBMkQ1ak1BO0FRbENBO0FuRWltTUE7QTJEL2pNQTtBUWxDQTtBbkVvbU1BO0FBQ0E7QW1FaG1NQTtBQUNBO0FBQ0E7QW5Fa21NQTtBbUUzbE1BO0FBQ0E7QW5FNmxNQTtBbUU1bE1BO0FBQ0E7QUFDQTtBQUNBO0FuRThsTUE7QW1FNWxNQTtBQUNBO0FuRThsTUE7QUFDQTtBMkRubE1BO0FRTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5FNGxNQTtBMkQ1bE1BO0FRTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5FcW1NQTtBMkRybU1BO0FRTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5FOG1NQTtBQUNBO0EyRC9tTUE7QVFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRTRtTUE7QTJEdG5NQTtBUU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5FbW5NQTtBMkQ3bk1BO0FRTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkUwbk1BO0EyRHBvTUE7QVFjQTtBbkV5bk1BO0EyRHZvTUE7QVFjQTtBbkU0bk1BO0EyRDFvTUE7QVFjQTtBbkUrbk1BO0FtRXpuTUE7QUFJQTtBQUNBO0FBQ0E7QW5Fd25NQTtBMkRscE1BO0FRc0JBO0FuRStuTUE7QTJEcnBNQTtBUXNCQTtBbkVrb01BO0EyRHhwTUE7QVFzQkE7QW5FcW9NQTtBbUVob01BO0FBQ0E7QUFDQTtBQUNBO0FuRWtvTUE7QTJEaHFNQTtBUW1DQTtBbkVnb01BO0EyRG5xTUE7QVFtQ0E7QW5FbW9NQTtBMkR0cU1BO0FRbUNBO0FuRXNvTUE7QW1FL25NQTtBQUFBO0FuRWtvTUE7QUFDQTtBbUUvbk1BO0FBQ0E7QUFDQTtBbkVpb01BO0EyRGpyTUE7QVFrREE7QW5Fa29NQTtBMkRwck1BO0FRa0RBO0FuRXFvTUE7QTJEdnJNQTtBUWtEQTtBbkV3b01BO0FtRXRvTUE7QUFDQTtBbkV3b01BO0FBQ0E7QW1Fcm9NQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRXVvTUE7QW1FdG9NQTtBQUNBO0FuRXdvTUE7QW1Fdm9NQTtBQUFBO0FuRTBvTUE7QUFDQTtBbUV2b01BO0FScEVBOzs7O0FRMkVBO0FuRXVvTUE7QTJEbHRNQTs7OztBUTJFQTtBbkU2b01BO0EyRHh0TUE7Ozs7QVEyRUE7QW5FbXBNQTtBQUNBO0EyRC90TUE7Ozs7QVFxRkE7QW5FZ3BNQTtBMkRydU1BOzs7O0FRcUZBO0FuRXNwTUE7QTJEM3VNQTs7OztBUXFGQTtBbkU0cE1BO0FBQ0E7QTJEbHZNQTtBUTRGQTtBbkV5cE1BO0EyRHJ2TUE7QVE0RkE7QW5FNHBNQTtBMkR4dk1BO0FRNEZBO0FuRStwTUE7QUFDQTtBb0VyNE1BO0FBQ0E7QUFDQTtBQUNBO0FwRXU0TUE7QUFDQTtBb0VyNE1BO0FBQ0E7QUFDQTtBQUNBO0FwRXU0TUE7QUFDQTtBcUVqNU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFbTVNQTtBcUVsNU1BO0FBQUE7QXJFcTVNQTtBQUNBO0FxRW41TUE7QUFDQTtBckVxNU1BO0FBQ0E7QXFFbjVNQTtBQUNBO0FBQ0E7QUFRQTs7Ozs7O0FBQUE7QXJFbzVNQTtBMkRqeU1BO0FVeEhBO0FBQ0E7QUFDQTtBckU0NU1BO0EyRHR5TUE7QVV4SEE7QUFDQTtBQUNBO0FyRWk2TUE7QTJEM3lNQTtBVXhIQTtBQUNBO0FBQ0E7QXJFczZNQTtBQUNBO0FxRTM1TUE7QUFFQTtBQUNBO0FyRTQ1TUE7QUs3eU1BO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUw0eU1BO0FLeHlNQTtBQUNBO0FMMHlNQTtBcUVsNk1BO0FBQ0E7QUFDQTtBQUNBO0FyRW82TUE7QXFFbjZNQTtBQUNBO0FyRXE2TUE7QXFFcDZNQTtBQUFBO0FyRXU2TUE7QXFFdDZNQTtBQUFBO0FyRXk2TUE7QXFFdjZNQTtBQUNBO0FyRXk2TUE7QXFFcjZNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFdTZNQTtBQUNBO0FxRXA2TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJFczZNQTtBQUNBO0FxRXA2TUE7QUFDQTtBQUNBO0FyRXM2TUE7QXFFcDZNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckVzNk1BO0FBQ0E7QXFFbjZNQTs7QUFFQTtBckVxNk1BO0FBQ0E7QXFFbDZNQTtBQUNBO0FBQ0E7QUFDQTtBckVvNk1BO0FxRW42TUE7QUFDQTtBckVxNk1BO0FxRW42TUE7QUFDQTtBckVxNk1BO0FxRW42TUE7QUFDQTtBckVxNk1BO0FxRXA2TUE7QUFDQTtBQUNBO0FBQ0E7QXJFczZNQTtBcUVsNk1BO0FBQ0E7QXJFbzZNQTtBQUNBO0FxRWo2TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBckVnNk1BO0EyRHg1TUE7QVVaQTtBckV1Nk1BO0EyRDM1TUE7QVVaQTtBckUwNk1BO0EyRDk1TUE7QVVaQTtBckU2Nk1BO0FxRXY2TUE7QUFDQTtBckV5Nk1BO0EyRHA2TUE7QVVIQTtBckUwNk1BO0EyRHY2TUE7QVVIQTtBckU2Nk1BO0EyRDE2TUE7QVVIQTtBckVnN01BO0FBQ0E7QTBEbmlOQTtBV3VIQTtBQUVBO0FyRTg2TUE7QUFDQTtBQUNBO0FxRTU2TUE7QUFDQTtBQUNBO0FyRTg2TUE7QXFFNzZNQTtBQUNBO0FyRSs2TUE7QXFFNzZNQTtBQUNBO0FyRSs2TUE7QXFFNzZNQTtBQUNBO0FBQ0E7QXJFKzZNQTtBQUNBO0FxRTU2TUE7QUFDQTtBQU1BO0FyRXk2TUE7QXFFOTZNQTtBQUNBO0FBQ0E7QXJFZzdNQTtBNERubE5BO0FBQ0E7QTVEcWxOQTtBMkQ5OE1BO0FVZ0NBO0FyRWk3TUE7QTJEajlNQTtBVWdDQTtBckVvN01BO0EyRHA5TUE7QVVnQ0E7QXJFdTdNQTtBcUVwN01BO0FBQ0E7QUFDQTtBQUNBO0FyRXM3TUE7QUFDQTtBcUVuN01BO0FBQ0E7QXJFcTdNQTtBQUNBO0FxRW43TUE7QUFDQTtBQUNBO0FyRXE3TUE7QUFDQTtBcUVsN01BO0FBSUE7QUFDQTtBQUNBO0FyRWk3TUE7QXFFdDdNQTtBQUNBO0FyRXc3TUE7QXFFbjdNQTtBQUNBO0FBQ0E7QXJFcTdNQTtBNEQxbk5BO0FBQ0E7QTVENG5OQTtBQUNBO0FxRXA3TUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBckVxN01BO0FBQ0E7QXFFbjdNQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QXJFbzdNQTtBQUNBO0FxRW43TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QXJFcTdNQTtBcUVwN01BO0FBQ0E7QXJFczdNQTtBQUNBO0FxRXA3TUE7O0FBRUE7QXJFczdNQTtBQUNBO0FxRXI3TUE7QUFDQTtBckV1N01BO0FBQ0E7QXFFdDdNQTtBQUNBO0FBQ0E7QXJFdzdNQTtBcUV2N01BO0FBQ0E7QUFDQTtBQUNBO0FyRXk3TUE7QUFDQTtBcUVwN01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRXM3TUE7QXFFbjdNQTs7QUFFQTtBQUNBO0FyRXE3TUE7QXFFbDdNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRW83TUE7QTJEM2pOQTtBVTBJQTtBckVvN01BO0EyRDlqTkE7QVUwSUE7QXJFdTdNQTtBMkRqa05BO0FVMElBO0FyRTA3TUE7QXFFdDdNQTtBQUNBO0FyRXc3TUE7QXFFcjdNQTtBQUNBO0FBQ0E7QUFDQTtBckV1N01BO0FxRXA3TUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBckVzN01BO0FxRW43TUE7QUFDQTtBckVxN01BO0FBQ0E7QXNFMXROQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RTR0TkE7QUFDQTtBc0V6dE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRFMnROQTtBMkRsbU5BO0FXdkhBO0FBQ0E7QUFDQTtBdEU0dE5BO0EyRHZtTkE7QVd2SEE7QUFDQTtBQUNBO0F0RWl1TkE7QTJENW1OQTtBV3ZIQTtBQUNBO0FBQ0E7QXRFc3VOQTtBc0VwdU5BO0FBVkE7QUFXQTtBdEV1dU5BO0FBQ0E7QTJEdG5OQTtBVzlHQTtBQUNBO0F0RXV1TkE7QTJEMW5OQTtBVzlHQTtBQUNBO0F0RTJ1TkE7QTJEOW5OQTtBVzlHQTtBQUNBO0F0RSt1TkE7QXNFM3VOQTtBQUNBO0F0RTZ1TkE7QXNFMXVOQTtBQUNBO0F0RTR1TkE7QTJEeG9OQTtBV2pHQTtBdEU0dU5BO0EyRDNvTkE7QVdqR0E7QXRFK3VOQTtBMkQ5b05BO0FXakdBO0F0RWt2TkE7QXNFOXVOQTtBQUNBO0F0RWd2TkE7QXNFN3VOQTtBQUNBO0FBQ0E7QXRFK3VOQTtBc0U1dU5BO0FBQ0E7QXRFOHVOQTtBc0UzdU5BO0FBQ0E7QXRFNnVOQTtBQUNBO0FzRTF1TkE7QUFDQTtBQUNBO0FBTUE7QUFDQTtBdEV1dU5BO0EyRHJxTkE7QVd2RUE7QUFDQTtBdEUrdU5BO0EyRHpxTkE7QVd2RUE7QUFDQTtBdEVtdk5BO0EyRDdxTkE7QVd2RUE7QUFDQTtBdEV1dk5BO0FzRWx2TkE7QUFDQTtBdEVvdk5BO0FBQ0E7QXNFanZOQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBQ0E7QXRFMnVOQTtBMkQ1ck5BO0FXeERBO0F0RXV2TkE7QTJEL3JOQTtBV3hEQTtBdEUwdk5BO0EyRGxzTkE7QVd4REE7QXRFNnZOQTtBMkRyc05BO0FXcERBO0F0RTR2TkE7QTJEeHNOQTtBV3BEQTtBdEUrdk5BO0EyRDNzTkE7QVdwREE7QXRFa3dOQTtBc0U1dk5BO0FBQ0E7QUFDQTtBdEU4dk5BO0FzRTV2TkE7QUFDQTtBQUNBO0FBQ0E7QXRFOHZOQTtBQUNBO0FzRTN2TkE7QUFDQTtBQUNBO0F0RTZ2TkE7QUFDQTtBMkQ3dE5BO0FXNUJBO0F0RTR2TkE7QTJEaHVOQTtBVzVCQTtBdEUrdk5BO0EyRG51TkE7QVc1QkE7QXRFa3dOQTtBc0Vod05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEVrd05BO0FzRWp3TkE7QUFOQTtBQU9BO0F0RW93TkE7QUFDQTtBc0Vud05BO0FBQ0E7QUFDQTtBdEVxd05BO0FzRWx3TkE7QUFHQTtBdEVrd05BO0FzRS92TkE7QUFDQTtBdEVpd05BO0FzRWh3TkE7QUFDQTtBdEVrd05BO0EyRC92TkE7QVdBQTtBdEVrd05BO0EyRGx3TkE7QVdBQTtBdEVxd05BO0EyRHJ3TkE7QVdBQTtBdEV3d05BO0FBQ0E7QXNFbHdOQTtBQUNBO0FBQ0E7QXRFb3dOQTtBc0U3dk5BO0FBQ0E7QUFDQTtBQUNBO0F0RSt2TkE7QTJEbHhOQTtBV3NCQTtBdEUrdk5BO0EyRHJ4TkE7QVdzQkE7QXRFa3dOQTtBMkR4eE5BO0FXc0JBO0F0RXF3TkE7QTBENzROQTtBWTJJQTtBQUVBO0F0RW93TkE7QUFDQTtBc0Vsd05BO0FBQ0E7QXRFb3dOQTtBc0Vqd05BO0FBQ0E7QUFDQTtBdEVtd05BO0EyRHZ5TkE7QVdzQ0E7QXRFb3dOQTtBMkQxeU5BO0FXc0NBO0F0RXV3TkE7QTJEN3lOQTtBV3NDQTtBdEUwd05BO0FzRXZ3TkE7QUFDQTtBQUNBO0F0RXl3TkE7QXNFdHdOQTtBQUdBO0F0RXN3TkE7QUFDQTtBc0Vud05BO0FBQ0E7QXRFcXdOQTtBQUNBO0FzRW53TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEVxd05BO0EyRGwwTkE7QVcrREE7QUFDQTtBdEVzd05BO0EyRHQwTkE7QVcrREE7QUFDQTtBdEUwd05BO0EyRDEwTkE7QVcrREE7QUFDQTtBdEU4d05BO0FBQ0E7QXNFM3dOQTtBQUNBO0FBQ0E7QXRFNndOQTtBMkRuMU5BO0FXd0VBO0F0RTh3TkE7QTJEdDFOQTtBV3dFQTtBdEVpeE5BO0EyRHoxTkE7QVd3RUE7QXRFb3hOQTtBc0VseE5BO0FBQUE7QXRFcXhOQTtBQUNBO0FzRW54TkE7QUFJQTtBdEVreE5BO0EyRG4yTkE7QVcrRUE7QXRFdXhOQTtBMkR0Mk5BO0FXK0VBO0F0RTB4TkE7QTJEejJOQTtBVytFQTtBdEU2eE5BO0FBQ0E7QXNFenhOQTtBQUNBO0F0RTJ4TkE7QTREeC9OQTtBQUNBO0E1RDAvTkE7QUFDQTtBc0V6eE5BO0FBQ0E7QUFDQTtBdEUyeE5BO0FzRXp4TkE7QUFDQTtBdEUyeE5BO0FBQ0E7QXNFdnhOQTtBQUNBO0FBQ0E7QXRFeXhOQTtBQUNBO0FzRXR4TkE7QUFDQTtBdEV3eE5BO0FzRXR4TkE7QUFDQTtBdEV3eE5BO0FzRXR4TkE7QUFDQTtBdEV3eE5BO0FBQ0E7QXNFcnhOQTtBQUtBO0F0RXV4TkE7QUFDQTtBc0VyeE5BO0FBQ0E7QUFDQTtBQUNBO0F0RXV4TkE7QUFDQTtBc0V0eE5BO0FBR0E7QXRFd3hOQTtBQUNBO0FzRXZ4TkE7QUFDQTtBQUNBO0F0RXl4TkE7QUFDQTtBc0V0eE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRFd3hOQTtBQUNBO0F1RW5qT0E7QUFDQTtBdkVxak9BO0F1RWxqT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZFb2pPQTtBMkR0N05BO0FZNUhBO0FBQ0E7QXZFcWpPQTtBMkQxN05BO0FZNUhBO0FBQ0E7QXZFeWpPQTtBMkQ5N05BO0FZNUhBO0FBQ0E7QXZFNmpPQTtBMkRsOE5BO0FZdEhBO0F2RTJqT0E7QTJEcjhOQTtBWXRIQTtBdkU4ak9BO0EyRHg4TkE7QVl0SEE7QXZFaWtPQTtBdUU3ak9BO0FBQ0E7QUFDQTtBdkUrak9BO0EyRC84TkE7QVk1R0E7QUFDQTtBQUNBO0FBQ0E7QXZFOGpPQTtBMkRyOU5BO0FZNUdBO0FBQ0E7QUFDQTtBQUNBO0F2RW9rT0E7QTJEMzlOQTtBWTVHQTtBQUNBO0FBQ0E7QUFDQTtBdkUwa09BO0F1RXJrT0E7QUFDQTtBdkV1a09BO0FBQ0E7QXdFOW1PQTtBQUNBO0FBQ0E7QXhFZ25PQTtBQUNBO0F3RTltT0E7QUFDQTtBQUNBO0F4RWduT0E7QUFDQTtBd0U5bU9BO0FBQ0E7QXhFZ25PQTtBQUNBO0F3RTltT0E7QUFDQTtBQUNBO0F4RWduT0E7QUFDQTtBd0U5bU9BO0FBQ0E7QXhFZ25PQTtBQUNBO0F3RTltT0E7QUFDQTtBeEVnbk9BO0FBQ0E7QXdFOW1PQTtBQUNBO0F4RWduT0E7QUFDQTtBMkRwZ09BO0FheEdBO0F4RSttT0E7QTJEdmdPQTtBYXhHQTtBeEVrbk9BO0EyRDFnT0E7QWF4R0E7QXhFcW5PQTtBQUNBO0F3RWxuT0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBeEVpbk9BO0EyRHBoT0E7QWFsR0E7QXhFeW5PQTtBMkR2aE9BO0FhbEdBO0F4RTRuT0E7QXdFcm5PQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4RXVuT0E7QTJEaGlPQTtBYXJGQTtBeEV3bk9BO0EyRG5pT0E7QWFyRkE7QXhFMm5PQTtBMkR0aU9BO0FhckZBO0F4RThuT0E7QXdFMW5PQTtBQUNBO0F4RTRuT0E7QXdFem5PQTtBQUNBO0F4RTJuT0E7QTJEL2lPQTtBYTFFQTtBeEU0bk9BO0F3RTNuT0E7QUFDQTtBeEU2bk9BO0F3RTNuT0E7QUFDQTtBeEU2bk9BO0EyRHhqT0E7QWExRUE7QXhFcW9PQTtBd0Vwb09BO0FBQ0E7QXhFc29PQTtBd0Vwb09BO0FBQ0E7QXhFc29PQTtBMkRqa09BO0FhMUVBO0F4RThvT0E7QXdFN29PQTtBQUNBO0F4RStvT0E7QXdFN29PQTtBQUNBO0F4RStvT0E7QXdFMW9PQTtBQUNBO0FBQ0E7QXhFNG9PQTtBMkQ5a09BO0FhNURBO0F4RTZvT0E7QTJEamxPQTtBYTVEQTtBeEVncE9BO0EyRHBsT0E7QWE1REE7QXhFbXBPQTtBd0Uvb09BO0FBQ0E7QUFDQTtBeEVpcE9BO0EyRDNsT0E7QWFqREE7QXhFK29PQTtBMkQ5bE9BO0FhakRBO0F4RWtwT0E7QTJEam1PQTtBYWpEQTtBeEVxcE9BO0EyRHBtT0E7QWEzQ0E7QXhFa3BPQTtBMkR2bU9BO0FhM0NBO0F4RXFwT0E7QTJEMW1PQTtBYTNDQTtBeEV3cE9BO0F3RXBwT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhFc3BPQTtBd0VucE9BO0FBQ0E7QUFDQTtBQUNBO0F4RXFwT0E7QUFDQTtBeUVwd09BO0FBQ0E7QXpFc3dPQTtBeUVwd09BO0FBQ0E7QUFDQTtBQUNBO0F6RXN3T0E7QXlFbndPQTtBQUNBO0F6RXF3T0E7QUFDQTtBeUVsd09BO0FBQ0E7QUFDQTtBekVvd09BO0FBQ0E7QXlFbHdPQTtBQUNBO0FBQ0E7QXpFb3dPQTtBQUNBO0F5RWx3T0E7QUFDQTtBQUNBO0F6RW93T0E7QUFDQTtBeUVsd09BO0FBQ0E7QUFDQTtBekVvd09BO0FBQ0E7QXlFbHdPQTtBQUNBO0FBQ0E7QXpFb3dPQTtBQUNBO0F5RWx3T0E7QUFDQTtBQUNBO0FBQ0E7QXpFb3dPQTtBQUNBO0F5RWx3T0E7QUFDQTtBQUNBO0FBQ0E7QXpFb3dPQTtBQUNBO0F5RWx3T0E7QUFDQTtBekVvd09BO0FBQ0E7QTBFM3lPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUU2eU9BO0FBQ0E7QTBFdnlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUV5eU9BO0FBQ0E7QTBFdnlPQTtBQUNBO0FBQ0E7QTFFeXlPQTtBQUNBO0EwRXZ5T0E7QUFDQTtBMUV5eU9BO0FBQ0E7QTBFdnlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QTFFNHlPQTtBQUNBO0EwRTF5T0E7QUFDQTtBMUU0eU9BO0FBQ0E7QTBFMXlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExRTR5T0E7QUFDQTtBMEUxeU9BO0FBQ0E7QUFBQTtBMUU0eU9BO0FBQ0E7QTBFMXlPQTtBQUNBO0FBQUE7QTFFNHlPQTtBQUNBO0EwRTF5T0E7QUFDQTtBQUNBO0ExRTR5T0E7QTBFMXlPQTtBQUNBO0ExRTR5T0E7QUFDQTtBMEV2eU9BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QTFFd3lPQTtBQUNBO0EwRXR5T0E7QUFDQTtBQUFBO0ExRXd5T0E7QUFDQTtBMEV0eU9BO0FBQ0E7QUFBQTtBMUV3eU9BO0FBQ0E7QTBFdHlPQTtBQUNBO0FBQUE7QTFFeXlPQTtBMEV4eU9BO0FBQUE7QTFFMnlPQTtBQUNBO0EwRXp5T0E7QUFDQTtBQUNBO0ExRTJ5T0E7QTBFMXlPQTtBQUNBO0ExRTR5T0E7QUFDQTtBMEV2eU9BO0FBQ0E7QUFDQTtBQUNBO0ExRXl5T0E7QTBFdnlPQTtBQUNBO0FBQ0E7QTFFeXlPQTtBMEV4eU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFFMHlPQTtBMEV0eU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ExRXd5T0E7QUFDQTtBMkVuOE9BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTNFbThPQTtBQUNBO0E0RTc4T0E7QUFDQTtBNUUrOE9BO0E0RTk4T0E7QUFDQTtBNUVnOU9BO0EyRDEwT0E7QWlCbElBO0E1RSs4T0E7QTJENzBPQTtBaUJsSUE7QTVFazlPQTtBMkRoMU9BO0FpQmxJQTtBNUVxOU9BO0FBQ0E7QTRFaDlPQTtBQUVBO0E1RWk5T0E7QTRFLzhPQTtBQUNBO0E1RWk5T0E7QTRFLzhPQTtBQUNBO0E1RWk5T0E7QTRFLzhPQTtBQUNBO0E1RWk5T0E7QUFDQTtBNEU5OE9BO0FBQ0E7QTVFZzlPQTtBNEUvOE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEJyQkE7QUFDQTtBNUR1K09BO0EyRDcyT0E7QWlCbkdBO0FBQ0E7QUFDQTtBNUVtOU9BO0EyRGwzT0E7QWlCbkdBO0FBQ0E7QUFDQTtBNUV3OU9BO0EyRHYzT0E7QWlCbkdBO0FBQ0E7QUFDQTtBNUU2OU9BO0EyRDUzT0E7QWlCN0ZBO0FBQ0E7QUFDQTtBQUNBO0E1RTQ5T0E7QTJEbDRPQTtBaUI3RkE7QUFDQTtBQUNBO0FBQ0E7QTVFaytPQTtBMkR4NE9BO0FpQjdGQTtBQUNBO0FBQ0E7QUFDQTtBNUV3K09BO0EyRDk0T0E7QWlCckZBO0E1RXMrT0E7QTJEajVPQTtBaUJyRkE7QTVFeStPQTtBMkRwNU9BO0FpQnJGQTtBNUU0K09BO0FBQ0E7QTRFdCtPQTtBQUNBO0FBQ0E7QTVFdytPQTtBNEV0K09BO0FBQ0E7QTVFdytPQTtBNEV0K09BO0FBQ0E7QTVFdytPQTtBMkRsNk9BO0FpQmxFQTtBNUV1K09BO0EyRHI2T0E7QWlCbEVBO0E1RTArT0E7QTJEeDZPQTtBaUJsRUE7QTVFNitPQTtBMkQzNk9BO0FpQjdEQTtBNUUyK09BO0EyRDk2T0E7QWlCN0RBO0E1RTgrT0E7QTJEajdPQTtBaUI3REE7QTVFaS9PQTtBNEU3K09BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTVFKytPQTtBQUNBO0E0RTcrT0E7QUFDQTtBQUNBO0E1RSsrT0E7QTRFNytPQTtBQUNBO0FBQ0E7QUFDQTtBNUUrK09BO0FBQ0E7QTRFMytPQTtBQUNBO0E1RTYrT0E7QTJEdjhPQTtBaUJsQ0E7QUFDQTtBNUU0K09BO0EyRDM4T0E7QWlCbENBO0FBQ0E7QTVFZy9PQTtBMkQvOE9BO0FpQmxDQTtBQUNBO0E1RW8vT0E7QTRFai9PQTtBQUNBO0FBQ0E7QTVFbS9PQTtBQUNBO0E0RWgvT0E7QUFDQTtBNUVrL09BO0E0RWovT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTVFbS9PQTtBQUNBO0E0RWgvT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTVFay9PQTtBQUNBO0E0RWgvT0E7QUFDQTtBNUVrL09BO0E0RWovT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RW0vT0E7QTRFaC9PQTtBQUNBO0E1RWsvT0E7QTRFaC9PQTtBQUNBO0E1RWsvT0E7QTRFaC9PQTtBQUNBO0E1RWsvT0E7QTRFaC9PQTtBQUNBO0E1RWsvT0E7QTRFOStPQTtBQUNBO0E1RWcvT0E7QTRFOStPQTtBQUNBO0E1RWcvT0E7QTRFOStPQTtBQUNBO0E1RWcvT0E7QUFDQTtBNEUzK09BO0FBQ0E7QUFBQTtBNUU2K09BO0E0RTMrT0E7QUFDQTtBNUU2K09BO0FBQ0E7QTJEbGhQQTtBaUIwQ0E7QUFDQTtBNUUyK09BO0EyRHRoUEE7QWlCMENBO0FBQ0E7QTVFKytPQTtBMkQxaFBBO0FpQjBDQTtBQUNBO0E1RW0vT0E7QUFDQTtBNEVoL09BO0FBQ0E7QTVFay9PQTtBQUNBO0EyRG5pUEE7QWlCcURBO0FBQ0E7QTVFaS9PQTtBMkR2aVBBO0FpQnFEQTtBQUNBO0E1RXEvT0E7QTJEM2lQQTtBaUJxREE7QUFDQTtBNUV5L09BO0FBQ0E7QTRFdC9PQTtBQUNBO0E1RXcvT0E7QUFDQTtBNEVyL09BO0FBQ0E7QUFDQTtBNUV1L09BO0FBQ0E7QTRFci9PQTtBQUNBO0FBQ0E7QTVFdS9PQTtBQUNBO0E0RXIvT0E7QUFDQTtBQUNBO0FBQ0E7QTVFdS9PQTtBNEVyL09BO0FBQ0E7QUFDQTtBNUV1L09BO0E0RXAvT0E7QUFDQTtBQUNBO0E1RXMvT0E7QUFDQTtBNEVuL09BO0FBQ0E7QTVFcS9PQTtBNEVuL09BO0FBQ0E7QUFDQTtBQUNBO0E1RXEvT0E7QTJEcGxQQTtBaUJpR0E7QTVFcy9PQTtBMkR2bFBBO0FpQmlHQTtBNUV5L09BO0EyRDFsUEE7QWlCaUdBO0E1RTQvT0E7QUFDQTtBNEV4L09BO0FBSUE7QUFDQTtBNUV1L09BO0EyRGxtUEE7QWlCd0dBO0E1RTYvT0E7QTJEcm1QQTtBaUJ3R0E7QTVFZ2dQQTtBMkR4bVBBO0FpQndHQTtBNUVtZ1BBO0E0RS8vT0E7QUFDQTtBQUNBO0FBQ0E7QTVFaWdQQTtBNEUvL09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUVpZ1BBO0FBQ0E7QTRFOS9PQTtBQU9BO0FBQ0E7QUFDQTtBNUUwL09BO0EyRGhvUEE7QWlCaUlBO0E1RWtnUEE7QTJEbm9QQTtBaUJpSUE7QTVFcWdQQTtBMkR0b1BBO0FpQmlJQTtBNUV3Z1BBO0E0RWpnUEE7QUFDQTtBNUVtZ1BBO0E0RWpnUEE7QUFDQTtBNUVtZ1BBO0E0RWpnUEE7QUFDQTtBNUVtZ1BBO0E0RWpnUEE7QUFDQTtBNUVtZ1BBO0FBQ0E7QTRFaGdQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFa2dQQTtBNEVqZ1BBO0FBQ0E7QUFBQTtBNUVtZ1BBO0E0RWpnUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFbWdQQTtBNEVqZ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFbWdQQTtBNEVqZ1BBO0FBQ0E7QUFDQTtBQUNBO0E1RW1nUEE7QTRFbGdQQTtBQUNBO0E1RW9nUEE7QTRFbGdQQTtBQUNBO0FBQ0E7QUFDQTtBNUVvZ1BBO0E0RWxnUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E1RW9nUEE7QTRFbmdQQTtBQUNBO0FBQ0E7QTVFcWdQQTtBNEVqZ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUVtZ1BBO0E0RWxnUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUVvZ1BBO0E0RWpnUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUVtZ1BBO0FBQ0E7QTRFLy9PQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0E1RWdnUEE7QUFDQTtBNEU1L09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFOC9PQTtBNEU3L09BO0FBQ0E7QUFDQTtBNUUrL09BO0FBQ0E7QTRFMy9PQTtBQUNBO0FBQ0E7QUFDQTtBNUU2L09BO0E0RTMvT0E7QUFDQTtBNUU2L09BO0E0RTMvT0E7QUFDQTtBNUU2L09BO0FBQ0E7QTRFMy9PQTtBQUNBO0FBRUE7QTVFNi9PQTtBNEUzL09BO0FBRUE7QTVFNi9PQTtBNEUzL09BO0FBRUE7QTVFNi9PQTtBQUNBO0E0RTEvT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUU0L09BO0FBQ0E7QTZFeDVQQTtBQUNBO0E3RTA1UEE7QUFDQTtBOEU3NVBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlFKzVQQTtBMkQxeFBBO0FtQm5JQTtBQUNBO0FBQ0E7QTlFZzZQQTtBMkQveFBBO0FtQm5JQTtBQUNBO0FBQ0E7QTlFcTZQQTtBMkRweVBBO0FtQm5JQTtBQUNBO0FBQ0E7QTlFMDZQQTtBOEV4NlBBO0FBQ0E7QTlFMDZQQTtBOEV4NlBBO0FBQ0E7QUFDQTtBOUUwNlBBO0E4RXo2UEE7QUFDQTtBQUNBO0E5RTI2UEE7QThFeDZQQTtBQUNBO0E5RTA2UEE7QThFejZQQTtBQUNBO0FBQ0E7QUFDQTtBOUUyNlBBO0E4RXg2UEE7QUFFQTtBOUV5NlBBO0E4RXY2UEE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBbEJ6QkE7QUFDQTtBa0IwQkE7QUFDQTtBQUNBO0E5RXc2UEE7QThFdDZQQTtBQUNBO0E5RXc2UEE7QThFdDZQQTtBQUNBO0FBQ0E7QUFDQTtBOUV3NlBBO0FBQ0E7QThFcjZQQTtBQUNBO0E5RXU2UEE7QUFDQTtBOEVyNlBBO0FBQ0E7QUFDQTtBOUV1NlBBO0FBQ0E7QThFcDZQQTtBQUNBO0FBQ0E7QTlFczZQQTtBQUNBO0E4RXA2UEE7QUFDQTtBOUVzNlBBO0FBQ0E7QThFcDZQQTtBQUNBO0FBQ0E7QUFDQTtBOUVzNlBBO0FBQ0E7QThFcDZQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RXM2UEE7QUFDQTtBOEVwNlBBO0FBQ0E7QTlFczZQQTtBQUNBO0E4RXA2UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUVzNlBBO0FBQ0E7QThFcDZQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RXM2UEE7QUFDQTtBOEVyNlBBO0FBQ0E7QTlFdTZQQTtBQUNBO0E4RXQ2UEE7QUFLQTtBQUNBO0E5RXc2UEE7QUFDQTtBOEV0NlBBO0FBQ0E7QUFDQTtBQUNBO0E5RXc2UEE7QUFDQTtBOEV0NlBBO0FBQ0E7QUFDQTtBOUV3NlBBO0FBQ0E7QThFdDZQQTtBQUNBO0FBQ0E7QTlFdzZQQTtBQUNBO0E4RXQ2UEE7QUFDQTtBOUV3NlBBO0E4RXY2UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RXk2UEE7QThFdjZQQTtBQUNBO0FBQ0E7QTlFeTZQQTtBQUNBO0E4RXQ2UEE7QUFDQTtBOUV3NlBBO0FBQ0E7QThFdDZQQTtBQUNBO0E5RXc2UEE7QUFDQTtBOEVyNlBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlFdTZQQTtBOEVyNlBBO0FBQ0E7QTlFdTZQQTtBMkRuOVBBO0FtQjhDQTtBOUV3NlBBO0EyRHQ5UEE7QW1COENBO0E5RTI2UEE7QTJEejlQQTtBbUI4Q0E7QTlFODZQQTtBOEUxNlBBO0FBQ0E7QUFDQTtBQUNBO0E5RTQ2UEE7QUFDQTtBOEV4NlBBO0FBQ0E7QUFDQTtBOUUwNlBBO0E4RXg2UEE7QUFKQTtBQUtBO0E5RTI2UEE7QUFDQTtBQUNBO0ErRXJuUUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9Fa25RQTtBQUNBO0ErRS9tUUE7QUFDQTtBQUNBO0EvRWluUUE7QStFaG5RQTtBQUFBO0EvRW1uUUE7QStFam5RQTtBQUFBO0EvRW9uUUE7QStFbm5RQTtBQUFBO0EvRXNuUUE7QStFcm5RQTtBQUFBO0EvRXduUUE7QStFdG5RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0V3blFBO0FBQ0E7QStFcG5RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0VzblFBO0ErRXBuUUE7QUFBQTtBL0V1blFBO0ErRXRuUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRXduUUE7QUFDQTtBK0VyblFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0V1blFBO0ErRXRuUUE7QUFBQTtBL0V5blFBO0ErRXhuUUE7QUFBQTtBL0UyblFBO0FBQ0E7QStFeG5RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0UwblFBO0ErRXhuUUE7QUFBQTtBL0UyblFBO0ErRTFuUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRTRuUUE7QStFMW5RQTtBQUFBO0EvRTZuUUE7QUFDQTtBK0UzblFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRTZuUUE7QStFM25RQTtBQUFBO0EvRThuUUE7QUFDQTtBK0UzblFBOztBQUVBO0FBQ0E7QS9FNm5RQTtBK0UzblFBOztBQUFBO0EvRStuUUE7QUFDQTtBK0U1blFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvRThuUUE7QUFDQTtBK0U1blFBOztBQUVBO0FBQ0E7QUFDQTtBL0U4blFBO0FBQ0E7QStFM25RQTs7QUFDQTtBQUFBO0EvRStuUUE7QUFDQTtBK0U3blFBO0FBQ0E7QUFDQTtBQUNBO0EvRStuUUE7QUFDQTtBZ0Z2eVFBO0FBQ0E7QUFDQTtBaEZ5eVFBO0FnRnZ5UUE7QUFDQTtBQUNBO0FoRnl5UUE7QWdGdHlRQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBaEZteVFBO0EyRHJyUUE7QXFCbkhBO0FBQ0E7QWhGMnlRQTtBMkR6clFBO0FxQm5IQTtBQUNBO0FoRit5UUE7QTJEN3JRQTtBcUJuSEE7QUFDQTtBaEZtelFBO0FnRjN5UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEY2eVFBO0FnRjN5UUE7QUFDQTtBaEY2eVFBO0EyRDFzUUE7QXFCakdBO0FoRjh5UUE7QTJEN3NRQTtBcUJqR0E7QWhGaXpRQTtBMkRodFFBO0FxQmpHQTtBaEZvelFBO0EyRG50UUE7QXFCN0ZBO0FoRm16UUE7QTJEdHRRQTtBcUI3RkE7QWhGc3pRQTtBMkR6dFFBO0FxQjdGQTtBaEZ5elFBO0FnRm56UUE7QUFDQTtBQUNBO0FoRnF6UUE7QWdGbnpRQTtBQUNBO0FBQ0E7QWhGcXpRQTtBZ0ZselFBO0FBQ0E7QWhGb3pRQTtBQUNBO0FpRmozUUE7QUFFQTtBakZrM1FBO0FpRmgzUUE7QUFDQTtBQUNBO0FBQ0E7QWpGazNRQTtBMkRodlFBO0FzQjdIQTtBakZnM1FBO0EyRG52UUE7QXNCN0hBO0FqRm0zUUE7QTJEdHZRQTtBc0I3SEE7QWpGczNRQTtBaUZsM1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpGbzNRQTtBaUZqM1FBO0FBQ0E7QWpGbTNRQTtBMkRsd1FBO0FzQi9HQTtBakZvM1FBO0EyRHJ3UUE7QXNCL0dBO0FqRnUzUUE7QTJEeHdRQTtBc0IvR0E7QWpGMDNRQTtBaUZ0M1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpGdzNRQTtBMkRqeFFBO0FzQnJHQTtBakZ5M1FBO0EyRHB4UUE7QXNCckdBO0FqRjQzUUE7QTJEdnhRQTtBc0JyR0E7QWpGKzNRQTtBQUNBO0FrRnA2UUE7QUFhQTtBbEYwNVFBO0FrRnQ2UUE7QUFDQTtBbEZ3NlFBO0EyRGp5UUE7QXVCcklBO0FsRnk2UUE7QTJEcHlRQTtBdUJySUE7QWxGNDZRQTtBMkR2eVFBO0F1QnJJQTtBbEYrNlFBO0FrRjU2UUE7QUFDQTtBbEY4NlFBO0FrRjU2UUE7QUFDQTtBbEY4NlFBO0FBQ0E7QWtGMTZRQTtBQUNBO0FsRjQ2UUE7QTJEcHpRQTtBdUJ0SEE7QWxGNjZRQTtBMkR2elFBO0F1QnRIQTtBbEZnN1FBO0EyRDF6UUE7QXVCdEhBO0FsRm03UUE7QUFDQTtBa0ZoN1FBO0FBQ0E7QWxGazdRQTtBQUNBO0FrRmg3UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsRms3UUE7QUFDQTtBbUZuOVFBO0FBQ0E7QUFDQTtBbkZxOVFBO0FtRnA5UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5GczlRQTtBMkR0MVFBO0F3QjlIQTtBQUNBO0FBQ0E7QW5GdTlRQTtBMkQzMVFBO0F3QjlIQTtBQUNBO0FBQ0E7QW5GNDlRQTtBMkRoMlFBO0F3QjlIQTtBQUNBO0FBQ0E7QW5GaStRQTtBMkRyMlFBO0F3QnhIQTtBQUNBO0FBQ0E7QW5GZytRQTtBMkQxMlFBO0F3QnhIQTtBQUNBO0FBQ0E7QW5GcStRQTtBMkQvMlFBO0F3QnhIQTtBQUNBO0FBQ0E7QW5GMCtRQTtBQUNBO0FvRjkvUUE7QXhCY0E7QUFDQTtBd0JiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwRmlnUkE7QTJEOTNRQTtBeUJqSUE7QXBGa2dSQTtBMkRqNFFBO0F5QmpJQTtBcEZxZ1JBO0EyRHA0UUE7QXlCaklBO0FwRndnUkE7QTBENS9RQTtBMEJwQkE7QXhCY0E7QUFDQTtBNURzZ1JBO0FBQ0E7QUFDQTtBMkQ5NFFBO0EwQnRJQTtBckZ1aFJBO0EyRGo1UUE7QTBCdElBO0FyRjBoUkE7QTJEcDVRQTtBMEJ0SUE7QXJGNmhSQTtBQUNBO0EyRHg1UUE7QTBCOUhBO0FyRnloUkE7QTJEMzVRQTtBMEI5SEE7QXJGNGhSQTtBMkQ5NVFBO0EwQjlIQTtBckYraFJBO0FBQ0E7QXFGM2hSQTtBQUNBO0FyRjZoUkE7QXFGNWhSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBckY4aFJBO0FxRjdoUkE7QUFBQTtBckZnaVJBO0FBQ0E7QXNGempSQTtBQUNBO0FBQ0E7QUFDQTtBdEYyalJBO0FzRnpqUkE7QUFDQTtBQUNBO0FBQ0E7QXRGMmpSQTtBc0YxalJBO0FBQ0E7QUFDQTtBdEY0alJBO0EyRDk3UUE7QTJCMUhBO0F0RjJqUkE7QTJEajhRQTtBMkIxSEE7QXRGOGpSQTtBMkRwOFFBO0EyQjFIQTtBdEZpa1JBO0FBQ0E7QXVGamxSQTtBQUNBO0FBUUE7QXZGNGtSQTtBdUZsbFJBO0FBQ0E7QUFDQTtBQUNBO0F2Rm9sUkE7QXVGaGxSQTtBQUNBO0F2RmtsUkE7QTJEcDlRQTtBNEI1SEE7QXZGbWxSQTtBMkR2OVFBO0E0QjVIQTtBdkZzbFJBO0EyRDE5UUE7QTRCNUhBO0F2RnlsUkE7QTJENzlRQTtBNEJ2SEE7QXZGdWxSQTtBMkRoK1FBO0E0QnZIQTtBdkYwbFJBO0EyRG4rUUE7QTRCdkhBO0F2RjZsUkE7QUFDQTtBd0ZoblJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhGa25SQTtBMkRuL1FBO0E2QjdIQTtBQUNBO0F4Rm1uUkE7QTJEdi9RQTtBNkI3SEE7QUFDQTtBeEZ1blJBO0EyRDMvUUE7QTZCN0hBO0FBQ0E7QXhGMm5SQTtBd0Z4blJBO0FBQ0E7QUFDQTtBeEYwblJBO0F3RnZuUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEZ5blJBO0F3RnRuUkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0F4RnFuUkE7QTJEaGhSQTtBNkJ4R0E7QXhGMm5SQTtBMkRuaFJBO0E2QnhHQTtBeEY4blJBO0EyRHRoUkE7QTZCeEdBO0F4RmlvUkE7QXdGM25SQTtBQUNBO0FBQ0E7QUFDQTtBeEY2blJBO0EyRDloUkE7QTZCN0ZBO0F4RjhuUkE7QTJEamlSQTtBNkI3RkE7QXhGaW9SQTtBMkRwaVJBO0E2QjdGQTtBeEZvb1JBO0F3RmhvUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEZrb1JBO0EyRGhqUkE7QTZCaEZBO0F4Rm1vUkE7QTJEbmpSQTtBNkJoRkE7QXhGc29SQTtBMkR0alJBO0E2QmhGQTtBeEZ5b1JBO0FBQ0E7QXlGbHNSQTtBQUNBO0FBQ0E7QXpGb3NSQTtBQUNBO0EwRnhzUkE7QUFDQTtBQUNBO0ExRjBzUkE7QUFDQTtBMEZ4c1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUYwc1JBO0EwRnpzUkE7QUFHQTtBMUZ5c1JBO0EwRnZzUkE7QUFDQTtBMUZ5c1JBO0EwRnhzUkE7QUFDQTtBMUYwc1JBO0EwRnZzUkE7QUFDQTtBMUZ5c1JBO0EwRnhzUkE7QUFDQTtBMUYwc1JBO0FBQ0E7QTJGcHVSQTtBQUVBO0FBdURBO0EzRitxUkE7QTJGcHVSQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0EzRm11UkE7QTJEcm1SQTtBZ0NqSUE7QTNGeXVSQTtBMkR4bVJBO0FnQ2pJQTtBM0Y0dVJBO0EyRDNtUkE7QWdDaklBO0EzRit1UkE7QTJGenVSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRjJ1UkE7QTJGenVSQTtBQUNBO0EzRjJ1UkE7QTJGNXVSQTtBQUNBO0EzRjJ1UkE7QTJGNXVSQTtBQUNBO0EzRjJ1UkE7QTJGenVSQTtBQUNBO0EzRjJ1UkE7QTJGenVSQTtBQUNBO0FBSUE7QUFFQTtBQUlBO0FBQ0E7QTNGb3VSQTtBMkQxb1JBO0FnQ25HQTtBM0ZndlJBO0EyRDdvUkE7QWdDbkdBO0EzRm12UkE7QTJEaHBSQTtBZ0NuR0E7QTNGc3ZSQTtBMkRucFJBO0FnQzdGQTtBM0ZtdlJBO0EyRHRwUkE7QWdDN0ZBO0EzRnN2UkE7QTJEenBSQTtBZ0M3RkE7QTNGeXZSQTtBMkZydlJBO0FBQ0E7QTNGdXZSQTtBMkZ4dlJBO0FBQ0E7QTNGdXZSQTtBMkZ4dlJBO0FBQ0E7QTNGdXZSQTtBMkZ6dVJBO0FBRUE7QUFzREE7QTNGcXJSQTtBMkZ6dVJBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QTNGd3VSQTtBMkR6cVJBO0FnQ2xFQTtBM0Y4dVJBO0EyRDVxUkE7QWdDbEVBO0EzRml2UkE7QTJEL3FSQTtBZ0NsRUE7QTNGb3ZSQTtBMkZ4dVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBM0Z3dVJBO0EyRGxzUkE7QWdDbENBO0EzRnV1UkE7QTJEcnNSQTtBZ0NsQ0E7QTNGMHVSQTtBMkR4c1JBO0FnQ2xDQTtBM0Y2dVJBO0EyRDNzUkE7QWdDMUJBO0EzRnd1UkE7QTJEOXNSQTtBZ0MxQkE7QTNGd3VSQTtBMkQ5c1JBO0FnQzFCQTtBM0Z3dVJBO0EyRDlzUkE7QWdDMUJBO0EzRjJ1UkE7QTJEanRSQTtBZ0MxQkE7QTNGMnVSQTtBMkRqdFJBO0FnQzFCQTtBM0YydVJBO0EyRGp0UkE7QWdDMUJBO0EzRjh1UkE7QTJEcHRSQTtBZ0MxQkE7QTNGOHVSQTtBMkRwdFJBO0FnQzFCQTtBM0Y4dVJBO0EyRmh1UkE7QUFDQTtBM0ZrdVJBO0FBQ0E7QTJGaHVSQTtBQUNBO0EzRmt1UkE7QUFDQTtBMkZodVJBO0FBQ0E7QTNGa3VSQTtBQUNBO0E0RngyUkE7QUFDQTtBQUNBO0E1RjAyUkE7QTRGejJSQTtBQUNBO0FBQ0E7QTVGMjJSQTtBMEQ3MVJBO0FrQ2hCQTtBQUlBO0FBQ0E7QTVGNjJSQTtBQUNBO0E0RjMyUkE7QUFDQTtBQUNBO0E1RjYyUkE7QTBEdjJSQTtBa0NSQTtBQUlBO0FBQ0E7QTVGKzJSQTtBQUNBO0E0RjcyUkE7QUFDQTtBQUNBO0E1RisyUkE7QTBEajNSQTtBa0NBQTtBQUlBO0FBQ0E7QTVGaTNSQTtBQUNBO0E0Ri8yUkE7QUFDQTtBNUZpM1JBO0E0Ri8yUkE7QUFDQTtBNUZpM1JBO0E0Ri8yUkE7QUFDQTtBQUNBO0E1RmkzUkE7QTJENXdSQTtBaUNsR0E7QTVGaTNSQTtBMkQvd1JBO0FpQ2xHQTtBNUZvM1JBO0EyRGx4UkE7QWlDbEdBO0E1RnUzUkE7QTJEcnhSQTtBaUM3RkE7QTVGcTNSQTtBMkR4eFJBO0FpQzdGQTtBNUZ3M1JBO0EyRDN4UkE7QWlDN0ZBO0E1RjIzUkE7QTRGeDNSQTtBQUNBO0E1RjAzUkE7QTJEanlSQTtBaUN2RkE7QTVGMjNSQTtBMkRweVJBO0FpQ3ZGQTtBNUY4M1JBO0EyRHZ5UkE7QWlDdkZBO0E1Rmk0UkE7QTRGLzNSQTtBQUNBO0FBQ0E7QTVGaTRSQTtBMkQ5eVJBO0FpQ2pGQTtBNUZrNFJBO0EyRGp6UkE7QWlDakZBO0E1RnE0UkE7QTJEcHpSQTtBaUNqRkE7QTVGdzRSQTtBNEZwNFJBO0FBQ0E7QTVGczRSQTtBMkQxelJBO0FpQzFFQTtBNUZ1NFJBO0EyRDd6UkE7QWlDMUVBO0E1RjA0UkE7QTJEaDBSQTtBaUMxRUE7QTVGNjRSQTtBNEZ6NFJBO0FBQ0E7QUFDQTtBQUNBO0E1RjI0UkE7QTJEeDBSQTtBaUNqRUE7QTVGNDRSQTtBMkQzMFJBO0FpQ2pFQTtBNUYrNFJBO0EyRDkwUkE7QWlDakVBO0E1Rms1UkE7QTRGLzRSQTtBQUNBO0E1Rmk1UkE7QTJEcDFSQTtBaUMzREE7QTVGazVSQTtBMkR2MVJBO0FpQzNEQTtBNUZxNVJBO0EyRDExUkE7QWlDM0RBO0E1Rnc1UkE7QTJENzFSQTtBaUN0REE7QTVGczVSQTtBMkRoMlJBO0FpQ3REQTtBNUZ5NVJBO0EyRG4yUkE7QWlDdERBO0E1RjQ1UkE7QTJEdDJSQTtBaUNqREE7QTVGMDVSQTtBMkR6MlJBO0FpQ2pEQTtBNUY2NVJBO0EyRDUyUkE7QWlDakRBO0E1Rmc2UkE7QTRGOTVSQTtBQUNBO0FBQ0E7QTVGZzZSQTtBMkRuM1JBO0FpQzNDQTtBNUZpNlJBO0EyRHQzUkE7QWlDM0NBO0E1Rm82UkE7QTJEejNSQTtBaUMzQ0E7QTVGdTZSQTtBMkQ1M1JBO0FpQ3JDQTtBNUZvNlJBO0EyRC8zUkE7QWlDckNBO0E1RnU2UkE7QTJEbDRSQTtBaUNyQ0E7QTVGMDZSQTtBQUNBO0E2Ri9nU0E7QUFDQTtBQUNBO0E3RmloU0E7QTZGaGhTQTtBQUNBO0FBQ0E7QTdGa2hTQTtBNkYvZ1NBO0FsQ2lJQTtBa0M3SEE7QTdGK2dTQTtBMkRsNVJBO0FrQzdIQTtBN0ZraFNBO0EyRHI1UkE7QWtDN0hBO0E3RnFoU0E7QUFDQTtBQUNBO0E4RmxpU0E7QUFDQTtBOUZvaVNBO0E4RmxpU0E7QUFDQTtBOUZvaVNBO0E4RmxpU0E7QUFDQTtBOUZvaVNBO0E4Rm5pU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RnFpU0E7QThGbGlTQTtBQUNBO0FBQ0E7QTlGb2lTQTtBOEZuaVNBO0FBQ0E7QTlGcWlTQTtBOEZuaVNBO0FBQ0E7QTlGcWlTQTtBOEZsaVNBO0FBQ0E7QUFDQTtBOUZvaVNBO0FBQ0E7QThGOWhTQTtBQUNBO0FBQ0E7QUFDQTtBOUZnaVNBO0FBQ0E7QStGOWtTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9GZ2xTQTtBK0Yva1NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9GaWxTQTtBQUNBO0FnRzVsU0E7QUFDQTtBQUNBO0FoRzhsU0E7QWdHNWxTQTtBQUNBO0FBQ0E7QWhHOGxTQTtBZ0czbFNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FoR3dsU0E7QTJEeitSQTtBcUNwSEE7QUFDQTtBaEdnbVNBO0EyRDcrUkE7QXFDcEhBO0FBQ0E7QWhHb21TQTtBMkRqL1JBO0FxQ3BIQTtBQUNBO0FoR3dtU0E7QWdHaG1TQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoR2ttU0E7QWdHam1TQTtBQUNBO0FoR21tU0E7QTJEOS9SQTtBcUNsR0E7QWhHbW1TQTtBMkRqZ1NBO0FxQ2xHQTtBaEdzbVNBO0EyRHBnU0E7QXFDbEdBO0FoR3ltU0E7QWdHbm1TQTtBQUNBO0FBQ0E7QWhHcW1TQTtBZ0dubVNBO0FBQ0E7QUFDQTtBaEdxbVNBO0FBQ0E7QWlHenBTQTtBQUNBO0FBQ0E7QWpHMnBTQTtBaUcxcFNBO0FBQ0E7QUFDQTtBQUNBO0FqRzRwU0E7QWlHenBTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJDTkE7QUFDQTtBcUNPQTtBakc0cFNBO0FpRzFwU0E7QUFDQTtBakc0cFNBO0FpRzFwU0E7QUFDQTtBakc0cFNBO0FpRzFwU0E7QUFDQTtBckNqQkE7QUFDQTtBcUNrQkE7QUFDQTtBakc2cFNBO0FpRzNwU0E7QXJDdEJBO0FBQ0E7QXFDdUJBO0FBQ0E7QWpHOHBTQTtBMkQ1alNBO0FzQ2hHQTtBakcrcFNBO0EyRC9qU0E7QXNDaEdBO0FqR2txU0E7QTJEbGtTQTtBc0NoR0E7QWpHcXFTQTtBaUcxcFNBO0FBQ0E7QWpHNHBTQTtBQUNBO0FrR2x0U0E7QUFDQTtBQUNBO0FsR290U0E7QUFDQTtBa0dsdFNBO0FBQ0E7QWxHb3RTQTtBQUNBO0FrR2x0U0E7QUFDQTtBQUNBO0FBQ0E7QWxHb3RTQTtBQUNBO0FrR2x0U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsR290U0E7QUFDQTtBbUd6dVNBO0FBQ0E7QW5HMnVTQTtBQUNBO0FvRzd1U0E7QUFDQTtBQUNBO0FwRyt1U0E7QW9HNXVTQTtBQUNBO0FBQ0E7QXBHOHVTQTtBb0c3dVNBO0FBQ0E7QUFDQTtBcEcrdVNBO0FvRzF1U0E7QUFDQTtBQUNBO0FBQ0E7QXBHNHVTQTtBb0d6dVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEcydVNBO0FBQ0E7QW9HeHVTQTtBQUNBO0FBQ0E7QXBHMHVTQTtBQUNBO0FxRzN3U0E7QUFDQTtBckc2d1NBO0FxRzV3U0E7QUFDQTtBQUNBO0FyRzh3U0E7QXFHM3dTQTtBQUNBO0FBQ0E7QXJHNndTQTtBcUczd1NBO0FBQ0E7QUFDQTtBckc2d1NBO0FxRzN3U0E7QUFDQTtBckc2d1NBO0FBQ0E7QXFHendTQTtBQUNBO0FBQ0E7QXJHMndTQTtBQUNBO0FzR2x5U0E7QUFBQTtBdEdxeVNBO0FBQ0E7QXVHdHlTQTtBQUNBO0F2R3d5U0E7QXVHcnlTQTtBQUNBO0F2R3V5U0E7QUFDQTtBd0c5eVNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhHZ3pTQTtBMkQ3cVNBO0E2Q2pJQTtBQUNBO0F4R2l6U0E7QTJEanJTQTtBNkNqSUE7QUFDQTtBeEdxelNBO0EyRHJyU0E7QTZDaklBO0FBQ0E7QXhHeXpTQTtBQUNBO0F3R3R6U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEd3elNBO0FBQ0E7QXdHdHpTQTtBQUNBO0FBQ0E7QXhHd3pTQTtBQUNBO0F3R3R6U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEd3elNBO0EyRDVzU0E7QTZDekdBO0F4R3d6U0E7QTJEL3NTQTtBNkN6R0E7QXhHMnpTQTtBMkRsdFNBO0E2Q3pHQTtBeEc4elNBO0F3RzF6U0E7QUFDQTtBQUNBO0FBQ0E7QXhHNHpTQTtBQUNBO0F3R3p6U0E7QUFDQTtBQUNBO0F4RzJ6U0E7QUFDQTtBMEQvMFNBO0E4Q3NCQTtBQUVBO0F4RzJ6U0E7QUFDQTtBd0cxelNBO0FBQ0E7QXhHNHpTQTtBMER2MVNBO0E4QzBCQTtBQUdBO0F4Rzh6U0E7QUFDQTtBQUNBO0F3RzN6U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEc2elNBO0F3RzN6U0E7QUFDQTtBQUNBO0FBQ0E7QXhHNnpTQTtBd0c1elNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QXhHNnpTQTtBd0dyelNBO0FBQ0E7QUFDQTtBeEd1elNBO0EwRDkzU0E7QThDcUVBO0FBSUE7QUFDQTtBeEd5elNBO0FBQ0E7QXdHdnpTQTtBQUNBO0F4R3l6U0E7QUFDQTtBd0d0elNBO0FBQ0E7QUFDQTtBQUNBO0F4R3d6U0E7QXdHdnpTQTtBQUNBO0FBQ0E7QXhHeXpTQTtBMEQzNFNBO0E4Q2dGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0F4RzJ6U0E7QUFDQTtBQUNBO0F3R3h6U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEcwelNBO0F3R3p6U0E7QUFDQTtBeEcyelNBO0F3R3p6U0E7QUFDQTtBeEcyelNBO0FBQ0E7QXdHeHpTQTtBQUNBO0FBQ0E7QW5HcERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbUdrREE7QUFPQTtBeEd3elNBO0FLOTJTQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBTDYyU0E7QUtsMlNBO0FBQ0E7QUFDQTtBTG8yU0E7QTBEeDhTQTtBOENxSEE7QUFPQTtBeEdnMVNBO0FBQ0E7QTBEdjhTQTtBOEMrR0E7QUFVQTtBeEdrMVNBO0FBQ0E7QXdHaDFTQTtBQUNBO0F4R2sxU0E7QTJEMTFTQTtBNkNVQTtBQUNBO0F4R20xU0E7QTJEOTFTQTtBNkNVQTtBQUNBO0F4R3UxU0E7QTJEbDJTQTtBNkNVQTtBQUNBO0F4RzIxU0E7QTJEdDJTQTtBNkNpQkE7QUFDQTtBeEd3MVNBO0EyRDEyU0E7QTZDaUJBO0FBQ0E7QXhHNDFTQTtBMkQ5MlNBO0E2Q2lCQTtBQUNBO0F4R2cyU0E7QUFDQTtBd0czMVNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QXhHNDFTQTtBMkR6M1NBO0E2Q2dDQTtBeEc0MVNBO0EyRDUzU0E7QTZDZ0NBO0F4RysxU0E7QTJELzNTQTtBNkNnQ0E7QXhHazJTQTtBMER2L1NBO0E4QzZJQTtBQVdBO0F4R20yU0E7QUFDQTtBd0dsMlNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeEdvMlNBO0F3R24yU0E7QUFDQTtBeEdxMlNBO0FBQ0E7QXdHajJTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhHbTJTQTtBQUNBO0F3R2oyU0E7QUFDQTtBQUVBO0F4R2syU0E7QUFDQTtBeUd4aVRBO0FBQ0E7QUFDQTtBekcwaVRBO0F5R3ppVEE7QUFDQTtBekcyaVRBO0F5R3ppVEE7QUFDQTtBekcyaVRBO0F5R3ppVEE7QUFDQTtBekcyaVRBO0FBQ0E7QXlHemlUQTtBQUNBO0FBQ0E7QXpHMmlUQTtBeUcxaVRBO0FBQ0E7QUFDQTtBQUNBO0F6RzRpVEE7QUFDQTtBeUd6aVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekcyaVRBO0F5R3ppVEE7QUFDQTtBQUNBO0FBQ0E7QTdDbkJBO0FBQ0E7QTVEK2pUQTtBeUcxaVRBO0FBQ0E7QUFDQTtBQUNBO0F6RzRpVEE7QXlHemlUQTtBQUNBO0FBQ0E7QXpHMmlUQTtBeUd6aVRBO0FBQ0E7QXpHMmlUQTtBeUd6aVRBO0FBQ0E7QXpHMmlUQTtBQUNBO0F5R3hpVEE7QUFDQTtBekcwaVRBO0FBQ0E7QXlHeGlUQTtBQUNBO0FBQ0E7QUFDQTtBekcwaVRBO0FBQ0E7QXlHemlUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6RzJpVEE7QUFDQTtBeUcxaVRBO0FBQ0E7QXpHNGlUQTtBQUNBO0F5RzNpVEE7QUFDQTtBekc2aVRBO0FBQ0E7QXlHM2lUQTtBQUNBO0FBQ0E7QUFDQTtBekc2aVRBO0F5RzNpVEE7QUFDQTtBekc2aVRBO0F5RzFpVEE7QUFDQTtBekc0aVRBO0FBQ0E7QTBHam9UQTtBQUNBO0ExR21vVEE7QTBHam9UQTtBQUNBO0ExR21vVEE7QTBHaG9UQTtBQUNBO0FBQ0E7QTFHa29UQTtBMEcvblRBO0FBQ0E7QUFDQTtBQUNBO0FBbUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFHK2xUQTtBMEd4b1RBO0FBQ0E7QTFHMG9UQTtBMEd2b1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFHeW9UQTtBMEd2b1RBO0FBQ0E7QUFDQTtBMUd5b1RBO0EwR3ZvVEE7QUFDQTtBMUd5b1RBO0EwR3RvVEE7QUFDQTtBMUd3b1RBO0EwR3RvVEE7QUFDQTtBMUd3b1RBO0EwR3RvVEE7QUFDQTtBQUNBO0FBQ0E7QTFHd29UQTtBMEdyb1RBO0FBQ0E7QTFHdW9UQTtBMEczblRBO0FBQ0E7QTFHNm5UQTtBMEcxblRBO0FBQ0E7QTFHNG5UQTtBMEd6blRBO0FBQ0E7QUFDQTtBQUNBO0ExRzJuVEE7QTBHeG5UQTtBQUNBO0FBQ0E7QTFHMG5UQTtBMEd2blRBO0FBQ0E7QUFDQTtBQUNBO0ExR3luVEE7QUFDQTtBMEd0blRBO0FBQ0E7QUFFQTtBQUNBO0ExR3VuVEE7QTBHcm5UQTtBQUNBO0ExR3VuVEE7QUFDQTtBMkdydFRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0NRQTtBQUNBO0E1RGd0VEE7QTJEdGxUQTtBZ0RoSUE7QUFDQTtBQUNBO0EzR3l0VEE7QTJEM2xUQTtBZ0RoSUE7QUFDQTtBQUNBO0EzRzh0VEE7QTJEaG1UQTtBZ0RoSUE7QUFDQTtBQUNBO0EzR211VEE7QTJEcm1UQTtBZ0QxSEE7QUFDQTtBQUNBO0EzR2t1VEE7QTJEMW1UQTtBZ0QxSEE7QUFDQTtBQUNBO0EzR3V1VEE7QTJEL21UQTtBZ0QxSEE7QUFDQTtBQUNBO0EzRzR1VEE7QTJHbnVUQTtBQUNBO0FBQ0E7QUFDQTtBM0dxdVRBO0EyRHpuVEE7QWdEekdBO0FBQ0E7QUFDQTtBM0dxdVRBO0EyRDluVEE7QWdEekdBO0FBQ0E7QUFDQTtBM0cwdVRBO0EyRG5vVEE7QWdEekdBO0FBQ0E7QUFDQTtBM0crdVRBO0EyRzN1VEE7QUFDQTtBQUNBO0EzRzZ1VEE7QTJENW9UQTtBZ0Q3RkE7QTNHNHVUQTtBMkQvb1RBO0FnRDdGQTtBM0crdVRBO0EyRGxwVEE7QWdEN0ZBO0EzR2t2VEE7QTJHL3VUQTtBQUNBO0FBQ0E7QUFDQTtBM0dpdlRBO0EyRy91VEE7QUFDQTtBM0dpdlRBO0EyRy91VEE7QUFDQTtBM0dpdlRBO0EyRy91VEE7QUFDQTtBQUNBO0FBQ0E7QTNHaXZUQTtBMkcvdVRBO0FBQ0E7QTNHaXZUQTtBMkcvdVRBO0FBQ0E7QTNHaXZUQTtBQUNBO0E0R3J6VEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUd1elRBO0EyRHJyVEE7QWlEL0hBO0FBQ0E7QUFDQTtBNUd1elRBO0EyRDFyVEE7QWlEL0hBO0FBQ0E7QUFDQTtBNUc0elRBO0EyRC9yVEE7QWlEL0hBO0FBQ0E7QUFDQTtBNUdpMFRBO0E0Rzl6VEE7QWhEREE7QUFDQTtBZ0RHQTtBNUdnMFRBO0FBQ0E7QTZHajFUQTtBQURBO0FBRUE7QTdHbzFUQTtBQUNBO0FBQ0E7QThHejFUQTtBQUNBO0E5RzIxVEE7QUFDQTtBOEd6MVRBO0FBQ0E7QTlHMjFUQTtBQUNBO0E4R3oxVEE7QUFDQTtBQUNBO0E5RzIxVEE7QUFDQTtBOEd4MVRBO0FBQ0E7QTlHMDFUQTtBQUNBO0E4R3YxVEE7QUFDQTtBOUd5MVRBO0FBQ0E7QThHdjFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5R3kxVEE7QThHeDFUQTtBQUNBO0FBQ0E7QUFDQTtBOUcwMVRBO0FBQ0E7QThHdjFUQTtBQUNBO0FBQ0E7QUFDQTtBOUd5MVRBO0FBQ0E7QThHeDFUQTtBQUNBO0FBQ0E7QUFDQTtBOUcwMVRBO0FBQ0E7QThHdjFUQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0E5R3UxVEE7QUFDQTtBOEd0MFRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUd3MFRBO0EwRGg0VEE7QW9EbURBO0FBUUE7QUFDQTtBOUd5MFRBO0FBQ0E7QUFDQTtBOEdyMFRBO0FBQ0E7QUFDQTtBOUd1MFRBO0E4R3IwVEE7QUFDQTtBOUd1MFRBO0FBQ0E7QUFDQTtBOEc5MFRBO0FBQ0E7QUFDQTtBOUd1MFRBO0E4R3IwVEE7QUFDQTtBOUd1MFRBO0FBQ0E7QThHcDBUQTtBQUNBO0FBQ0E7QUFDQTtBOUdzMFRBO0E4R3IwVEE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTlHazBUQTtBMkR0eVRBO0FtRG5DQTtBQUNBO0FBQ0E7QTlHNDBUQTtBMkQzeVRBO0FtRG5DQTtBQUNBO0FBQ0E7QTlHaTFUQTtBMkRoelRBO0FtRG5DQTtBQUNBO0FBQ0E7QTlHczFUQTtBMEQxNlRBO0FvRDBGQTtBQUVBO0E5R2sxVEE7QUFDQTtBOEc5MFRBO0FBQ0E7QUFDQTtBOUdnMVRBO0EwRG43VEE7QW9EaUdBO0FBSUE7QUFDQTtBOUdrMVRBO0FBQ0E7QThHaDFUQTtBQUNBO0FBQ0E7QTlHazFUQTtBMER2N1RBO0FvRG1HQTtBQUlBO0FBQ0E7QTlHbzFUQTtBQUNBO0E4R2wxVEE7QUFDQTtBQUNBO0FBQ0E7QTlHbzFUQTtBOEdoMVRBO0FBQ0E7QTlHazFUQTtBOEcvMFRBO0FBRUE7QUFDQTtBbERySUE7QUFDQTtBa0RzSUE7QTlHaTFUQTtBOEdoMVRBO0FBQ0E7QTlHazFUQTtBOEcvMFRBO0FBR0E7QTlHKzBUQTtBOEc5MFRBO0FBQ0E7QUFDQTtBQUNBO0E5R2cxVEE7QThHNzBUQTtBQUdBO0FBQ0E7QTlHNjBUQTtBOEczMFRBO0FBQ0E7QWxEN0pBO0FBQ0E7QWtEOEpBO0E5RzgwVEE7QThHNTBUQTtBQUNBO0FsRGxLQTtBQUNBO0FrRG1LQTtBOUcrMFRBO0FBQ0E7QThHNTBUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RzgwVEE7QTBEOStUQTtBb0Q0SkE7QUFNQTtBOUdnMVRBO0FBQ0E7QUFDQTtBOEc5MFRBO0FBQ0E7QTlHZzFUQTtBMER2L1RBO0FvRHNLQTtBQUdBO0E5R2sxVEE7QUFDQTtBQUNBO0E4R2gxVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlHazFUQTtBOEdoMVRBO0FBQ0E7QTlHazFUQTtBMERqaFVBO0FvRG1MQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0E5R20xVEE7QUFDQTtBMERuaFVBO0FvRDZLQTtBQXNCQTtBQUNBO0E5R28xVEE7QTJEejZUQTtBbUR1RkE7QTlHcTFUQTtBMkQ1NlRBO0FtRHVGQTtBOUd3MVRBO0EyRC82VEE7QW1EdUZBO0E5RzIxVEE7QUFDQTtBOEd2MVRBO0FBQ0E7QUFDQTtBOUd5MVRBO0EyRHY3VEE7QW1EZ0dBO0E5RzAxVEE7QTJEMTdUQTtBbURnR0E7QTlHNjFUQTtBMkQ3N1RBO0FtRGdHQTtBOUdnMlRBO0EwRHJqVUE7QW9EaU5BO0FBT0E7QTlHaTJUQTtBQUNBO0E4RzkxVEE7QUFDQTtBQUNBO0E5R2cyVEE7QTBEM2pVQTtBb0R5TkE7QUFJQTtBQUNBO0E5R2syVEE7QUFDQTtBMER2a1VBO0FvRCtOQTtBQVFBO0FBQ0E7QTlHbzJUQTtBQUNBO0E4R2wyVEE7QUFDQTtBQUNBO0FBQ0E7QTlHbzJUQTtBOEdsMlRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlHbzJUQTtBMkRoK1RBO0FtRDhIQTtBOUdxMlRBO0EyRG4rVEE7QW1EOEhBO0E5R3cyVEE7QTJEdCtUQTtBbUQ4SEE7QTlHMjJUQTtBMEQ5bFVBO0FvRDZPQTtBQVNBO0FBQ0E7QUFDQTtBOUc0MlRBO0EyRC8rVEE7QW1EcUlBO0E5RzYyVEE7QTJEbC9UQTtBbURxSUE7QTlHZzNUQTtBMkRyL1RBO0FtRHFJQTtBOUdtM1RBO0FBQ0E7QTBEOW1VQTtBb0Q2UEE7QUFFQTtBOUdtM1RBO0FBQ0E7QThHaDNUQTtBQUNBO0FBQ0E7QUFDQTtBOUdrM1RBO0E4R2gzVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUdrM1RBO0EwRDluVUE7QW9Ed1FBO0FBTUE7QTlHbzNUQTtBMkQ3Z1VBO0FtRDJKQTtBOUdxM1RBO0EyRGhoVUE7QW1EMkpBO0E5R3czVEE7QTJEbmhVQTtBbUQySkE7QTlHMjNUQTtBQUNBO0EyRHZoVUE7QW1EZ0tBO0FBQ0E7QTlHMDNUQTtBMkQzaFVBO0FtRGdLQTtBQUNBO0E5RzgzVEE7QTJEL2hVQTtBbURnS0E7QUFDQTtBOUdrNFRBO0EwRHhwVUE7QUNxSEE7QW1EcUtBO0E5R2s0VEE7QTJEdmlVQTtBbURxS0E7QTlHcTRUQTtBMkQxaVVBO0FtRHFLQTtBOUd3NFRBO0FBQ0E7QThHcDRUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsRHpTQTtBQUNBO0E1RGdyVUE7QTBEM3FVQTtBb0QrUkE7QUFPQTtBOUd5NFRBO0EyRDFqVUE7QW1EbUxBO0E5RzA0VEE7QTJEN2pVQTtBbURtTEE7QTlHNjRUQTtBMkRoa1VBO0FtRG1MQTtBOUdnNVRBO0FBQ0E7QThHOTRUQTtBbERqVEE7QUFDQTtBNURrc1VBO0E4RzU0VEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlHODRUQTtBMER4c1VBO0FvRGlUQTtBQVdBO0E5R2c1VEE7QUFDQTtBOEc5NFRBO0FBQ0E7QTlHZzVUQTtBOEczNFRBO0FBQ0E7QUFDQTtBOUc2NFRBO0E4RzU0VEE7QUFIQTtBQUlBO0FBQ0E7QTlHKzRUQTtBQUNBO0E4RzU0VEE7QUFDQTtBQUNBO0E5Rzg0VEE7QTBEOXRVQTtBb0Q4VUE7QUFLQTtBOUcrNFRBO0EyRDdtVUE7QW1EZ09BO0E5R2c1VEE7QTJEaG5VQTtBbURnT0E7QTlHbTVUQTtBMkRublVBO0FtRGdPQTtBOUdzNVRBO0FBQ0E7QThHbjVUQTtBbEQvVkE7QUFDQTtBa0RnV0E7QTlHczVUQTtBMkQ1blVBO0FtRHdPQTtBOUd1NVRBO0EyRC9uVUE7QW1Ed09BO0E5RzA1VEE7QTJEbG9VQTtBbUR3T0E7QTlHNjVUQTtBMEQxdlVBO0FvRHlWQTtBQU9BO0FsRHRXQTtBQUNBO0E1RHF3VUE7QUFDQTtBOEc3NVRBO0FBRUE7QTlHODVUQTtBOEc1NVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5Rzg1VEE7QThHMzVUQTtBQUNBO0FBQ0E7QWxEelhBO0FBQ0E7QWtEMFhBO0E5Rzg1VEE7QTBEbnhVQTtBb0RpWEE7QWxEdlhBO0FBQ0E7QTVENnhVQTtBQUNBO0E4Ry81VEE7QUFFQTtBbERsWUE7QUFDQTtBa0RtWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUdpNlRBO0E4R2g2VEE7QUFDQTtBOUdrNlRBO0EyRGpyVUE7QW1EaVJBO0E5R202VEE7QTJEcHJVQTtBbURpUkE7QTlHczZUQTtBMkR2clVBO0FtRGlSQTtBOUd5NlRBO0EyRDFyVUE7QW1EcVJBO0E5R3c2VEE7QTJEN3JVQTtBbURxUkE7QTlHMjZUQTtBMkRoc1VBO0FtRHFSQTtBOUc4NlRBO0EwRHh6VUE7QW9EMFhBO0FsRGhZQTtBQUNBO0E1RGswVUE7QUFDQTtBOEc1NlRBO0FBQ0E7QTlHODZUQTtBOEczNlRBO0FBQ0E7QTlHNjZUQTtBOEc1NlRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUc4NlRBO0EyRHp0VUE7QW1ENlNBO0E5Rys2VEE7QTJENXRVQTtBbUQ2U0E7QTlHazdUQTtBMkQvdFVBO0FtRDZTQTtBOUdxN1RBO0E4R243VEE7QUFaQTtBQWFBO0E5R3M3VEE7QUFDQTtBMER0MVVBO0FvRGdaQTtBQW1CQTtBOUd1N1RBO0FBQ0E7QThHcjdUQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5R3M3VEE7QThHcDdUQTtBQUNBO0E5R3M3VEE7QTJEeHZVQTtBbURvVUE7QTlHdTdUQTtBMkQzdlVBO0FtRG9VQTtBOUcwN1RBO0EyRDl2VUE7QW1Eb1VBO0E5RzY3VEE7QTBEdDNVQTtBb0RpY0E7QUFFQTtBOUd1N1RBO0FBQ0E7QThHcjdUQTtBbEQ1Y0E7QUFDQTtBa0RnZEE7QTlHcTdUQTtBMkQzd1VBO0FtRG1WQTtBOUcyN1RBO0EyRDl3VUE7QW1EbVZBO0E5Rzg3VEE7QTJEanhVQTtBbURtVkE7QTlHaThUQTtBOEc1N1RBO0FsRG5kQTtBQUNBO0E1RGs1VUE7QTJEeHhVQTtBbUQyVkE7QTlHZzhUQTtBMkQzeFVBO0FtRDJWQTtBOUdtOFRBO0EyRDl4VUE7QW1EMlZBO0E5R3M4VEE7QThHLzdUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUdpOFRBO0EwRDk1VUE7QW9EdWRBO0FBUUE7QUFDQTtBOUdtOFRBO0FBQ0E7QThHajhUQTtBQUlBO0E5R2c4VEE7QTJEbHpVQTtBbURnWEE7QTlHcThUQTtBMkRyelVBO0FtRGdYQTtBOUd3OFRBO0EyRHh6VUE7QW1EZ1hBO0E5RzI4VEE7QThHdjhUQTtBQUNBO0E5R3k4VEE7QTJEOXpVQTtBbUR3WEE7QTlHeThUQTtBMkRqMFVBO0FtRHdYQTtBOUc0OFRBO0EyRHAwVUE7QW1Ed1hBO0E5Rys4VEE7QThHMThUQTtBQUNBO0E5RzQ4VEE7QTBELzdVQTtBb0RxZkE7QUFDQTtBOUc2OFRBO0FBQ0E7QThHejhUQTtBQUNBO0E5RzI4VEE7QTBEdjhVQTtBb0Q4ZkE7QUFFQTtBQUNBO0E5RzI4VEE7QUFDQTtBQUNBO0E4R3Q4VEE7QUFDQTtBQUNBO0FBQ0E7QTlHdzhUQTtBOEd2OFRBO0FBQ0E7QTlHeThUQTtBOEd4OFRBO0FBQ0E7QUFDQTtBOUcwOFRBO0E4R3A4VEE7QUFDQTtBOUdzOFRBO0EyRHgyVUE7QW1Eb2FBO0E5R3U4VEE7QTJEMzJVQTtBbURvYUE7QTlHMDhUQTtBMkQ5MlVBO0FtRG9hQTtBOUc2OFRBO0E4R3g4VEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUcwOFRBO0EwRDUrVUE7QW9EOGhCQTtBQU1BO0FBQ0E7QUFDQTtBOUc0OFRBO0FBQ0E7QThHMThUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlHNDhUQTtBOEcxOFRBO0FBR0E7QWxEempCQTtBQUNBO0E1RG9nVkE7QTBELy9VQTtBb0RnakJBO0FsRHRqQkE7QUFDQTtBNUR5Z1ZBO0FBQ0E7QThHMzhUQTtBQUVBO0FsRGxrQkE7QUFDQTtBNUQrZ1ZBO0FBQ0E7QThHdjhUQTtBQUNBO0E5R3k4VEE7QThHdjhUQTtBQUVBO0FsRC9rQkE7QUFDQTtBNUR3aFZBO0FBQ0E7QThHcDhUQTtBQUNBO0E5R3M4VEE7QTJEbDZVQTtBbUQ4ZEE7QTlHdThUQTtBMkRyNlVBO0FtRDhkQTtBOUcwOFRBO0EyRHg2VUE7QW1EOGRBO0E5RzY4VEE7QTJEMzZVQTtBbURrZUE7QTlHNDhUQTtBMkQ5NlVBO0FtRGtlQTtBOUcrOFRBO0EyRGo3VUE7QW1Ea2VBO0E5R2s5VEE7QThHLzhUQTtBQUNBO0FsRDFsQkE7QUFFQTtBa0QwbEJBO0E5R2s5VEE7QThHaDlUQTtBQUNBO0E5R2s5VEE7QThHaDlUQTtBQUNBO0E5R2s5VEE7QThHaDlUQTtBQUNBO0E5R2s5VEE7QUFDQTtBOEc5OFRBO0FBQ0E7QTlHZzlUQTtBMkR2OFVBO0FtRDJmQTtBOUcrOFRBO0EyRDE4VUE7QW1EMmZBO0E5R2s5VEE7QTJENzhVQTtBbUQyZkE7QTlHcTlUQTtBQUNBO0EyRGo5VUE7QW1Eb2dCQTtBOUdnOVRBO0EyRHA5VUE7QW1Eb2dCQTtBOUdtOVRBO0EyRHY5VUE7QW1Eb2dCQTtBOUdzOVRBO0FBQ0E7QThHaDlUQTtBQUNBO0E5R2s5VEE7QUFDQTtBMERwbFZBO0FvRG9vQkE7QUFFQTtBOUdrOVRBO0E4Ry84VEE7QUFDQTtBbER6b0JBO0FBRUE7QTVEMGxWQTtBOEdoOVRBO0FBRUE7QTlHaTlUQTtBOEcvOFRBO0FBQ0E7QTlHaTlUQTtBOEcvOFRBO0FBQ0E7QTlHaTlUQTtBOEc3OFRBO0FBQ0E7QUFDQTtBQUNBO0E5Rys4VEE7QUFDQTtBMER0bVZBO0FvRG1wQkE7QUFLQTtBQUNBO0E5R2s5VEE7QUFDQTtBMERsblZBO0FvRG1xQkE7QUFDQTtBQUNBO0E5R2s5VEE7QUFDQTtBMEQvbVZBO0FvRDBwQkE7QUFJQTtBOUdxOVRBO0FBQ0E7QTBEN25WQTtBQ3FIQTtBbURxakJBO0FBQ0E7QTlHdTlUQTtBQUNBO0EwRG5vVkE7QUNxSEE7QW1EcWpCQTtBQUNBO0E5RzY5VEE7QUFDQTtBMER6b1ZBO0FDcUhBO0FtRHFqQkE7QUFDQTtBOUdtK1RBO0FBQ0E7QTBEL29WQTtBb0Q2cUJBO0FBRUE7QTlHbytUQTtBMkQ5aFZBO0FtRDRqQkE7QTlHcStUQTtBMkRqaVZBO0FtRDRqQkE7QTlHdytUQTtBMkRwaVZBO0FtRDRqQkE7QTlHMitUQTtBQUNBO0EwRDdwVkE7QW9EcXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RzIrVEE7QUFDQTtBMERycVZBO0FvRHFyQkE7QUFNQTtBOUc4K1RBO0FBQ0E7QTBEMXFWQTtBb0Q4ckJBO0FsRHBzQkE7QUFDQTtBNURvclZBO0FBQ0E7QTBEaHJWQTtBb0Q4ckJBO0FBSUE7QTlHay9UQTtBQUNBO0EwRDVxVkE7QW9EcXJCQTtBQU9BO0E5R28vVEE7QUFDQTtBMEQxclZBO0FvRHlzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5R28vVEE7QUFDQTtBMERuc1ZBO0FvRGd0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUdzL1RBO0FBQ0E7QTBEM3NWQTtBb0RzdEJBO0FBQ0E7QUFDQTtBOUd3L1RBO0FBQ0E7QTBEanRWQTtBb0QwdEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlHMC9UQTtBQUNBO0EwRHp0VkE7QW9EbXVCQTtBbER6dUJBO0FBQ0E7QWtEMHVCQTtBQUNBO0FBQ0E7QUFDQTtBOUcwL1RBO0FBQ0E7QTBEbnVWQTtBb0QwdUJBO0FBQ0E7QUFDQTtBOUc0L1RBO0FBQ0E7QTBEenVWQTtBQ3FIQTtBbUQybkJBO0FBQ0E7QTlHNi9UQTtBMkR6blZBO0FtRDJuQkE7QUFDQTtBOUdpZ1VBO0EyRDduVkE7QW1EMm5CQTtBQUNBO0E5R3FnVUE7QUFDQTtBMER2dlZBO0FvRG92QkE7QUFDQTtBOUdzZ1VBO0E4R3JnVUE7QUFDQTtBOUd1Z1VBO0E4R3JnVUE7QUFDQTtBQUNBO0E5R3VnVUE7QUFDQTtBMERud1ZBO0FvRDh2QkE7QUFDQTtBOUd3Z1VBO0FBQ0E7QTBEeHdWQTtBb0Rpd0JBO0FBQ0E7QTlHMGdVQTtBQUNBO0EwRDd3VkE7QW9Eb3dCQTtBQUNBO0FBQ0E7QTlHNGdVQTtBQUNBO0EwRG54VkE7QW9Ed3dCQTtBQUVBO0FBQ0E7QTlHNmdVQTtBQUNBO0EwRHp4VkE7QW9EOHdCQTtBQUNBO0FBQ0E7QTlHOGdVQTtBQUNBO0EwRC94VkE7QW9EcXhCQTtBbEQzeEJBO0FBQ0E7QWtENHhCQTtBOUc4Z1VBO0E4RzdnVUE7QWxEOXhCQTtBQUNBO0E1RDh5VkE7QUFDQTtBQUNBO0E4RzNnVUE7QUFDQTtBQUNBO0FBQ0E7QTlHNmdVQTtBQUNBO0E4RzNnVUE7QUFDQTtBOUc2Z1VBO0EwRHB6VkE7QW9Ec3lCQTtBQUdBO0E5RytnVUE7QUFDQTtBQUNBO0E4RzdnVUE7QUFDQTtBOUcrZ1VBO0EyRHhzVkE7QW1EMnJCQTtBOUdnaFVBO0EyRDNzVkE7QW1EMnJCQTtBOUdtaFVBO0EyRDlzVkE7QW1EMnJCQTtBOUdzaFVBO0EyRGp0VkE7QW1EK3JCQTtBOUdxaFVBO0EyRHB0VkE7QW1EK3JCQTtBOUd3aFVBO0EyRHZ0VkE7QW1EK3JCQTtBOUcyaFVBO0E4R3hoVUE7QUFDQTtBbER2ekJBO0FBRUE7QWtEdXpCQTtBOUcyaFVBO0E4R3poVUE7QUFDQTtBOUcyaFVBO0E4R3poVUE7QUFDQTtBOUcyaFVBO0E4R3poVUE7QUFDQTtBOUcyaFVBO0FBQ0E7QThHeGhVQTtBQUNBO0E5RzBoVUE7QUFDQTtBOEd2aFVBOztBQUtBO0E5R3NoVUE7QUFDQTtBOEduaFVBOztBQUVBO0E5R3FoVUE7QUFDQTtBK0dqNFZBO0FBQ0E7QS9HbTRWQTtBK0dsNFZBO0FBQ0E7QS9HbzRWQTtBK0dsNFZBO0FBQ0E7QUFDQTtBL0dvNFZBO0ErR2w0VkE7QUFDQTtBQUNBO0FBQ0E7QS9HbzRWQTtBQUNBO0ErR2o0VkE7QUFDQTtBQUNBO0FBQ0E7QS9HbTRWQTtBQUNBO0FnSHY1VkE7QUFDQTtBQUlBO0FoSHM1VkE7QTJEbHhWQTtBcUR0SUE7QWhIMjVWQTtBMkRyeFZBO0FxRHRJQTtBaEg4NVZBO0EyRHh4VkE7QXFEdElBO0FoSGk2VkE7QWdIOTVWQTtBQUNBO0FoSGc2VkE7QTJEOXhWQTtBcURoSUE7QWhIaTZWQTtBMkRqeVZBO0FxRGhJQTtBaEhvNlZBO0EyRHB5VkE7QXFEaElBO0FoSHU2VkE7QWdIcDZWQTtBQUNBO0FoSHM2VkE7QUFDQTtBZ0huNlZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoSHE2VkE7QTJEbnpWQTtBcURoSEE7QWhIczZWQTtBMkR0elZBO0FxRGhIQTtBaEh5NlZBO0EyRHp6VkE7QXFEaEhBO0FoSDQ2VkE7QWdIMTZWQTtBQUNBO0FBQ0E7QWhINDZWQTtBQUNBO0FnSHo2VkE7QUFDQTtBQUNBO0FBQ0E7QWhIMjZWQTtBQUNBO0FpSGg5VkE7QUFDQTtBQUNBO0FqSGs5VkE7QWlIajlWQTtBQUNBO0FBSUE7QWpIZzlWQTtBMkQvMFZBO0FzRG5JQTtBakhxOVZBO0EyRGwxVkE7QXNEbklBO0FqSHc5VkE7QTJEcjFWQTtBc0RuSUE7QWpIMjlWQTtBQUNBO0FrSGgrVkE7QUFDQTtBQUNBO0FsSGsrVkE7QWtIaitWQTtBQUNBO0FsSG0rVkE7QUFDQTtBbUgxK1ZBO0FBQ0E7QW5INCtWQTtBMER6OVZBO0F5RGpCQTtBQUVBO0FuSDQrVkE7QUFDQTtBQUNBO0FtSHgrVkE7QUFBQTtBbkgyK1ZBO0FtSDErVkE7QUFDQTtBQUNBO0FuSDQrVkE7QTJEajNWQTtBd0R6SEE7QUFDQTtBbkg2K1ZBO0EyRHIzVkE7QXdEekhBO0FBQ0E7QW5IaS9WQTtBMkR6M1ZBO0F3RHpIQTtBQUNBO0FuSHEvVkE7QUFDQTtBbUhqL1ZBO0FBQ0E7QUFDQTtBbkhtL1ZBO0EyRGw0VkE7QXdEL0dBO0FuSG8vVkE7QTJEcjRWQTtBd0QvR0E7QW5IdS9WQTtBMkR4NFZBO0F3RC9HQTtBbkgwL1ZBO0FtSHgvVkE7QUFBQTtBQUFBO0FBQUE7QW5INi9WQTtBQUNBO0FtSDMvVkE7QUFDQTtBbkg2L1ZBO0FBQ0E7QW1IMy9WQTtBQUNBO0FBQ0E7QW5INi9WQTtBbUg1L1ZBO0FBQ0E7QW5IOC9WQTtBbUg1L1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuSDgvVkE7QW1INy9WQTtBQUNBO0FuSCsvVkE7QW1INy9WQTtBQUtBO0FBQ0E7QW5IMi9WQTtBMkQzNlZBO0F3RHBGQTtBQUNBO0FuSGtnV0E7QTJELzZWQTtBd0RwRkE7QUFDQTtBbkhzZ1dBO0EyRG43VkE7QXdEcEZBO0FBQ0E7QW5IMGdXQTtBbUhyZ1dBO0FBbEJBO0FBbUJBO0FuSHdnV0E7QUFDQTtBbUhyZ1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuSHVnV0E7QW1IcmdXQTtBQUNBO0FuSHVnV0E7QW1IcGdXQTtBQUNBO0FBQ0E7QW5Ic2dXQTtBQUNBO0FtSGxnV0E7QUFDQTtBQUNBO0FBQ0E7QW5Ib2dXQTtBQUNBO0FtSGxnV0E7QUFDQTtBQUNBO0FuSG9nV0E7QW1IbmdXQTtBQUNBO0FuSHFnV0E7QW1IbmdXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBbkhtZ1dBO0FtSHJnV0E7QUFBQTtBbkh3Z1dBO0FtSHBnV0E7QUFDQTtBQUNBO0FBQ0E7QW5Ic2dXQTtBbUhyZ1dBO0FBSkE7QUFLQTtBbkh3Z1dBO0FBQ0E7QW1IdGdXQTtBQUNBO0FuSHdnV0E7QW1IdmdXQTtBQUFBO0FuSDBnV0E7QW1IdmdXQTtBQUNBO0FBQ0E7QW5IeWdXQTtBbUh0Z1dBO0FBQ0E7QUFDQTtBQUNBO0FuSHdnV0E7QW1IdGdXQTtBQUNBO0FBQ0E7QUFDQTtBbkh3Z1dBO0FtSHBnV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkhzZ1dBO0FtSHBnV0E7QUFDQTtBbkhzZ1dBO0FtSG5nV0E7QUFDQTtBQUNBO0FBQ0E7QW5IcWdXQTtBbUhuZ1dBO0FBRUE7QW5Ib2dXQTtBNEQzcFdBO0FBQ0E7QTVENnBXQTtBbUhwZ1dBO0FBQ0E7QUFDQTtBbkhzZ1dBO0FtSHJnV0E7QUFBQTtBbkh3Z1dBO0FtSHZnV0E7QUFBQTtBQUFBO0FuSDJnV0E7QUFDQTtBbUh2Z1dBO0FBRUE7QUFDQTtBbkh3Z1dBO0FBQ0E7QW1IdGdXQTtBQUNBO0FBQ0E7QW5Id2dXQTtBQUNBO0FtSHRnV0E7QUFDQTtBQUNBO0FuSHdnV0E7QUFDQTtBbUh0Z1dBO0FBQ0E7QW5Id2dXQTtBbUh0Z1dBO0FBQ0E7QW5Id2dXQTtBQUNBO0FtSHJnV0E7QUFDQTtBQUNBO0FuSHVnV0E7QW1IdGdXQTtBQUNBO0FBQ0E7QW5Id2dXQTtBQUNBO0FtSGpnV0E7QUFDQTtBbkhtZ1dBO0FtSGxnV0E7QUFDQTtBbkhvZ1dBO0EwRDVyV0E7QXlEdUxBO0F2RDdMQTtBQUNBO0E1RHNzV0E7QUFDQTtBbUhuZ1dBO0FBQ0E7QUFDQTtBbkhxZ1dBO0EwRDdyV0E7QXlEc0xBO0FBSUE7QW5IdWdXQTtBQUNBO0FtSHBnV0E7QUFDQTtBbkhzZ1dBO0FBQ0E7QW1IbmdXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkhxZ1dBO0FBQ0E7QW1IbmdXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkhxZ1dBO0FtSG5nV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkhxZ1dBO0FBQ0E7QW9IMXZXQTtBQUNBO0FwSDR2V0E7QW9IeHZXQTtBQUNBO0FBQ0E7QXhETUE7QUFDQTtBNURxdldBO0FvSHp2V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEgydldBO0FvSHh2V0E7QUFDQTtBQUNBO0FwSDB2V0E7QW9IenZXQTtBQUFBO0FwSDR2V0E7QUFDQTtBcUhseFdBO0FBRUE7QXJIbXhXQTtBcUhqeFdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FySG14V0E7QXFIaHhXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FySGt4V0E7QUFDQTtBcUg5d1dBO0FBRUE7QXJIK3dXQTtBcUg3d1dBO0FBQ0E7QXJIK3dXQTtBcUg3d1dBO0FBQ0E7QXJIK3dXQTtBcUg3d1dBO0FBQ0E7QXJIK3dXQTtBQUNBO0FzSHB6V0E7QUFDQTtBQUNBO0F0SHN6V0E7QXNIcHpXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRIc3pXQTtBc0hueldBO0FBQ0E7QUFDQTtBQUNBO0F0SHF6V0E7QXNIbHpXQTtBQUNBO0FBQ0E7QXRIb3pXQTtBc0hqeldBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEhteldBO0FBQ0E7QXNIaHpXQTtBQUNBO0FBQ0E7QXRIa3pXQTtBc0gveVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0SGl6V0E7QXNIOXlXQTtBQUNBO0FBQ0E7QXRIZ3pXQTtBQUNBO0FzSDd5V0E7QUFDQTtBQUNBO0F0SCt5V0E7QXNINXlXQTtBQUNBO0FBQ0E7QXRIOHlXQTtBc0gzeVdBO0FBQ0E7QUFDQTtBQUNBO0F0SDZ5V0E7QUFDQTtBc0gxeVdBO0FBQ0E7QUFDQTtBQUNBO0F0SDR5V0E7QUFDQTtBc0h6eVdBO0FBQ0E7QXRIMnlXQTtBc0h4eVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRIMHlXQTtBc0h6eVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0SDJ5V0E7QXNIdnlXQTtBQUNBO0F0SHl5V0E7QXNIdHlXQTtBQUNBO0FBQ0E7QUFDQTtBdEh3eVdBO0FzSHJ5V0E7QUFDQTtBQUNBO0F0SHV5V0E7QUFDQTtBc0hweVdBO0FBQ0E7QUFDQTtBQUNBO0F0SHN5V0E7QXNIbnlXQTtBQUNBO0F0SHF5V0E7QXNIbHlXQTtBQUNBO0F0SG95V0E7QXNIanlXQTtBQUNBO0FBQ0E7QXRIbXlXQTtBc0hoeVdBO0FBQ0E7QUFDQTtBdEhreVdBO0FBQ0E7QXNIL3hXQTtBQUNBO0FBQ0E7QXRIaXlXQTtBc0g5eFdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRIZ3lXQTtBc0gveFdBO0FBQ0E7QUFDQTtBdEhpeVdBO0FzSDd4V0E7QUFDQTtBdEgreFdBO0FBQ0E7QXVIeDdXQTtBQUFBO0F2SDI3V0E7QXVIMTdXQTtBQUFBO0F2SDY3V0E7QXVINTdXQTtBQUFBO0F2SCs3V0E7QXVIOTdXQTtBQUFBO0FBQUE7QXZIazhXQTtBdUhqOFdBO0FBQUE7QUFBQTtBdkhxOFdBO0F1SHA4V0E7QUFBQTtBQUFBO0FBQUE7QXZIeThXQTtBdUh4OFdBO0FBQUE7QUFBQTtBdkg0OFdBO0F1SDM4V0E7QUFBQTtBdkg4OFdBO0F1SDU4V0E7QUFDQTtBdkg4OFdBO0F1SDc4V0E7QUFGQTtBQUdBO0F2SGc5V0E7QUFDQTtBdUg3OFdBO0FBQ0E7QXZIKzhXQTtBMkR4MVdBO0E0RGxIQTtBdkg2OFdBO0EyRDMxV0E7QTREbEhBO0F2SGc5V0E7QTJEOTFXQTtBNERsSEE7QXZIbTlXQTtBdUgvOFdBO0FBQ0E7QUFFQTtBdkhnOVdBO0F1SC84V0E7QUFKQTtBQUtBO0F2SGs5V0E7QUFDQTtBdUgvOFdBO0FBQ0E7QXZIaTlXQTtBQUNBO0F1SDc4V0E7QUFDQTtBdkgrOFdBO0F1SDU4V0E7QUFMQTtBQU1BO0F2SCs4V0E7QUFDQTtBdUg3OFdBO0FBQ0E7QXZIKzhXQTtBdUg1OFdBO0FBQ0E7QXZIODhXQTtBdUg3OFdBO0FBQ0E7QUFDQTtBdkgrOFdBO0F1SDk4V0E7QUFIQTtBQUlBO0F2SGk5V0E7QUFDQTtBdUg3OFdBO0FBQ0E7QXZIKzhXQTtBdUg1OFdBO0FBQ0E7QUFDQTtBdkg4OFdBO0F1SDM4V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkg2OFdBO0F1SDE4V0E7QUFDQTtBdkg0OFdBO0FBQ0E7QXVIejhXQTtBQUNBO0F2SDI4V0E7QUFDQTtBd0hsaVhBO0FBQUE7QXhIcWlYQTtBd0hwaVhBO0FBQUE7QXhIdWlYQTtBQUNBO0F3SHJpWEE7QUFDQTtBeEh1aVhBO0FBQ0E7QXdIbmlYQTtBQUFBO0F4SHNpWEE7QXdIcmlYQTtBQUNBO0F4SHVpWEE7QUFDQTtBeUhualhBO0FBQUE7QUFBQTtBekh1alhBO0F5SHJqWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekh1alhBO0F5SHJqWEE7QUFDQTtBQUNBO0F6SHVqWEE7QXlIdGpYQTtBQUNBO0F6SHdqWEE7QXlIdGpYQTtBQUFBO0F6SHlqWEE7QXlIeGpYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6SDBqWEE7QXlIeGpYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6SDBqWEE7QXlIeGpYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpIMGpYQTtBeUh4alhBO0FBQUE7QXpIMmpYQTtBQUNBO0EwSHRtWEE7QUFDQTtBMUh3bVhBO0EwRHJsWEE7QWdFakJBO0FBRUE7QTFId21YQTtBQUNBO0FBQ0E7QTBIcG1YQTtBQUFBO0ExSHVtWEE7QTBIdG1YQTtBQUNBO0FBQ0E7QTFId21YQTtBMkQ3K1dBO0ErRHpIQTtBQUNBO0ExSHltWEE7QTJEai9XQTtBK0R6SEE7QUFDQTtBMUg2bVhBO0EyRHIvV0E7QStEekhBO0FBQ0E7QTFIaW5YQTtBQUNBO0EwSDdtWEE7QUFDQTtBQUNBO0ExSCttWEE7QTJEOS9XQTtBK0QvR0E7QTFIZ25YQTtBMkRqZ1hBO0ErRC9HQTtBMUhtblhBO0EyRHBnWEE7QStEL0dBO0ExSHNuWEE7QTBIcG5YQTtBQUFBO0FBQUE7QUFBQTtBMUh5blhBO0FBQ0E7QTBIdm5YQTtBQUNBO0ExSHluWEE7QUFDQTtBMEh2blhBO0FBQ0E7QUFDQTtBMUh5blhBO0EwSHhuWEE7QUFDQTtBMUgwblhBO0EwSHhuWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFIMG5YQTtBMEh6blhBO0FBQ0E7QTFIMm5YQTtBMEh6blhBO0FBS0E7QUFDQTtBMUh1blhBO0EyRHZpWEE7QStEcEZBO0FBQ0E7QTFIOG5YQTtBMkQzaVhBO0ErRHBGQTtBQUNBO0ExSGtvWEE7QTJEL2lYQTtBK0RwRkE7QUFDQTtBMUhzb1hBO0EwSC9uWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFIaW9YQTtBMEgvblhBO0FBQ0E7QTFIaW9YQTtBQUNBO0EwSDduWEE7QUFDQTtBQUNBO0FBQ0E7QTFIK25YQTtBQUNBO0EwSDduWEE7QUFDQTtBQUNBO0ExSCtuWEE7QTBIOW5YQTtBQUNBO0ExSGdvWEE7QTBIOW5YQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBMUg4blhBO0EwSGhvWEE7QUFBQTtBMUhtb1hBO0EwSC9uWEE7QUFDQTtBQUNBO0FBQ0E7QTFIaW9YQTtBMEhob1hBO0FBSkE7QUFLQTtBMUhtb1hBO0FBQ0E7QTBIam9YQTtBQUNBO0ExSG1vWEE7QTBIbG9YQTtBQUFBO0ExSHFvWEE7QTBIbG9YQTtBQUNBO0FBQ0E7QTFIb29YQTtBMEhqb1hBO0FBQ0E7QUFDQTtBMUhtb1hBO0EwSGhvWEE7QUFDQTtBQUNBO0FBQ0E7QTFIa29YQTtBMEhob1hBO0FBQ0E7QUFDQTtBQUNBO0ExSGtvWEE7QTBIOW5YQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExSGdvWEE7QTBIOW5YQTtBQUNBO0ExSGdvWEE7QTBIN25YQTtBQUNBO0FBQ0E7QUFDQTtBMUgrblhBO0EwSDduWEE7QUFFQTtBMUg4blhBO0E0RGx4WEE7QUFDQTtBNURveFhBO0EwSDluWEE7QUFDQTtBQUNBO0ExSGdvWEE7QTBIL25YQTtBQUFBO0ExSGtvWEE7QTBIam9YQTtBQUFBO0ExSG9vWEE7QUFDQTtBMEhob1hBO0FBRUE7QUFDQTtBMUhpb1hBO0FBQ0E7QTBIL25YQTtBQUNBO0FBQ0E7QTFIaW9YQTtBQUNBO0EwSC9uWEE7QUFDQTtBQUNBO0ExSGlvWEE7QUFDQTtBMEgvblhBO0FBQ0E7QTFIaW9YQTtBMEgvblhBO0FBQ0E7QTFIaW9YQTtBQUNBO0EwSDluWEE7QUFDQTtBQUNBO0ExSGdvWEE7QTBIL25YQTtBQUNBO0FBQ0E7QTFIaW9YQTtBQUNBO0EwSDFuWEE7QUFDQTtBMUg0blhBO0EwSDNuWEE7QUFDQTtBMUg2blhBO0EwRGx6WEE7QWdFb0xBO0E5RDFMQTtBQUNBO0E1RDR6WEE7QUFDQTtBMEg1blhBO0FBQ0E7QUFDQTtBMUg4blhBO0EwRG56WEE7QWdFbUxBO0FBSUE7QTFIZ29YQTtBQUNBO0EwSDduWEE7QUFDQTtBMUgrblhBO0FBQ0E7QUFwMFhBO0FBQ0E7QUFDQTtBQUNBO0FBczBYQTtBQUNBO0FBbjBYQTtBQUNBO0FBQ0E7QUFDQTtBQXEwWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWwwWEE7QUFDQTtBQW8wWEE7QUFDQTtBQWowWEE7QUFDQTtBQW0wWEE7QUFDQTtBQTl6WEE7QUFJQTtBQTZ6WEE7QTJEL3ZYQTtBM0RoRUE7QUFrMFhBO0EyRGx3WEE7QTNEaEVBO0FBcTBYQTtBMkRyd1hBO0EzRGhFQTtBQXcwWEE7QUFyMFhBO0FBQ0E7QUFDQTtBQXUwWEE7QTJENXdYQTtBM0R6REE7QUF3MFhBO0EyRC93WEE7QTNEekRBO0FBMjBYQTtBMkRseFhBO0EzRHpEQTtBQTgwWEE7QTJEcnhYQTtBM0RyREE7QUE2MFhBO0EyRHh4WEE7QTNEckRBO0FBZzFYQTtBMkQzeFhBO0EzRHJEQTtBQW0xWEE7QUFDQTtBQTcwWEE7QUFDQTtBQUNBO0FBKzBYQTtBQUNBO0FBNzBYQTtBQUNBO0FBQ0E7QUErMFhBO0FBQ0E7QUE3MFhBO0FBQ0E7QUFDQTtBQSswWEE7QUE3MFhBO0FBQ0E7QUErMFhBO0FBQ0E7QUFDQTtBQXQxWEE7QUFDQTtBQUNBO0FBKzBYQTtBQTcwWEE7QUFDQTtBQSswWEE7QUFDQTtBQTUwWEE7QUFDQTtBQTgwWEE7QUFDQTtBQTUwWEE7QUFDQTtBQUNBO0FBQ0E7QUE4MFhBO0FBNTBYQTtBQUxBO0FBTUE7QUErMFhBO0FBQ0E7QUFDQTtBQTcwWEE7QUFDQTtBQSswWEE7QUE5MFhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZzFYQTtBQTkwWEE7QUFDQTtBQWcxWEE7QUE5MFhBO0FBQ0E7QUFnMVhBO0FBQ0E7QUE3MFhBO0FBQ0E7QUErMFhBO0FBQ0E7QUE3MFhBO0FBQ0E7QUFDQTtBQSswWEE7QUFDQTtBQTUwWEE7QUFDQTtBQTgwWEE7QUFDQTtBQTUwWEE7QUFDQTtBQUNBO0FBQ0E7QUE4MFhBO0FBNzBYQTtBQUNBO0FBKzBYQTtBMkR2MlhBO0EzRDBCQTtBQUNBO0FBZzFYQTtBMkQzMlhBO0EzRDBCQTtBQUNBO0FBbzFYQTtBMkQvMlhBO0EzRDBCQTtBQUNBO0FBdzFYQTtBQUNBO0FBbjFYQTtBQUNBO0FBcTFYQTtBQW4xWEE7QUFDQTtBQXExWEE7QUFDQTtBQS8wWEE7QUFDQTtBQUNBO0FBaTFYQTtBQUNBO0FBLzBYQTtBQUFBO0FBazFYQTtBQUNBO0FBajFYQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbTFYQTtBQUNBO0FBajFYQTs7QUFHQTtBQWsxWEE7QUFDQTtBQWgxWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWsxWEE7QTJEajZYQTtBM0RpRkE7QUFDQTtBQW0xWEE7QTJEcjZYQTtBM0RpRkE7QUFDQTtBQXUxWEE7QTJEejZYQTtBM0RpRkE7QUFDQTtBQTIxWEE7QUF4MVhBO0FBQ0E7QUEwMVhBO0FBQ0E7QUFyMVhBO0FBQ0E7QUF1MVhBO0EyRHA3WEE7QTNEK0ZBO0FBdzFYQTtBMkR2N1hBO0EzRCtGQTtBQTIxWEE7QTJEMTdYQTtBM0QrRkE7QUE4MVhBO0FBQ0E7QUExMVhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE0MVhBO0FBQ0E7QUExMVhBO0FBQ0E7QUFDQTtBQTQxWEE7QUFDQTtBQTExWEE7QUFDQTtBQTQxWEE7QTJIdGxZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzsiLCJzb3VyY2VSb290IjoiIn0=*/