@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.4.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto; } }

/**
 * 00. Miscellaneous
 * 01. Colors
 * -- Include functions that require colors
 * 02. Animations
 * 03. Spacing
 * 04. Topbar Extended
 * 05. Primary Menu
 * 06. Footer
 * 07. Forms
 * 08. Comments
 * 09. Page Templates
 * 10. Visibility
 */
/**
 * 01. Color Legibility
 */
/*! 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 {
  -webkit-box-sizing: content-box;
          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"] {
  -webkit-box-sizing: border-box;
          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 {
  -webkit-box-sizing: border-box;
          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&ipad=48em&large=64em&xlarge=75em&xxlarge=90em"; }

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

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

body {
  margin: 0;
  padding: 0;
  background: white;
  font-family: "Taviraj", Georgia, Palatino, serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

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

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

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: pointer; }
  [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; }

.grid-container, .mesh_section .grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth) {
  padding-right: 3.75rem;
  padding-left: 3.75rem;
  max-width: 92rem;
  margin: 0 auto; }
  .grid-container.fluid, .mesh_section .fluid.grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth) {
    padding-right: 3.75rem;
    padding-left: 3.75rem;
    max-width: 100%;
    margin: 0 auto; }
  .grid-container.full, .mesh_section .full.grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth) {
    padding-right: 0;
    padding-left: 0;
    max-width: 100%;
    margin: 0 auto; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 48em) {
  .grid-x > .ipad-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto; }
  .grid-x > .ipad-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto; }
  .grid-x > .ipad-1 {
    width: 8.33333%; }
  .grid-x > .ipad-2 {
    width: 16.66667%; }
  .grid-x > .ipad-3 {
    width: 25%; }
  .grid-x > .ipad-4 {
    width: 33.33333%; }
  .grid-x > .ipad-5 {
    width: 41.66667%; }
  .grid-x > .ipad-6 {
    width: 50%; }
  .grid-x > .ipad-7 {
    width: 58.33333%; }
  .grid-x > .ipad-8 {
    width: 66.66667%; }
  .grid-x > .ipad-9 {
    width: 75%; }
  .grid-x > .ipad-10 {
    width: 83.33333%; }
  .grid-x > .ipad-11 {
    width: 91.66667%; }
  .grid-x > .ipad-12 {
    width: 100%; } }

@media print, screen and (min-width: 40em) {
  .grid-x > .medium-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto; }
  .grid-x > .medium-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto; }
  .grid-x > .medium-1 {
    width: 8.33333%; }
  .grid-x > .medium-2 {
    width: 16.66667%; }
  .grid-x > .medium-3 {
    width: 25%; }
  .grid-x > .medium-4 {
    width: 33.33333%; }
  .grid-x > .medium-5 {
    width: 41.66667%; }
  .grid-x > .medium-6 {
    width: 50%; }
  .grid-x > .medium-7 {
    width: 58.33333%; }
  .grid-x > .medium-8 {
    width: 66.66667%; }
  .grid-x > .medium-9 {
    width: 75%; }
  .grid-x > .medium-10 {
    width: 83.33333%; }
  .grid-x > .medium-11 {
    width: 91.66667%; }
  .grid-x > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .grid-x > .large-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto; }
  .grid-x > .large-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto; }
  .grid-x > .large-1 {
    width: 8.33333%; }
  .grid-x > .large-2 {
    width: 16.66667%; }
  .grid-x > .large-3 {
    width: 25%; }
  .grid-x > .large-4 {
    width: 33.33333%; }
  .grid-x > .large-5 {
    width: 41.66667%; }
  .grid-x > .large-6 {
    width: 50%; }
  .grid-x > .large-7 {
    width: 58.33333%; }
  .grid-x > .large-8 {
    width: 66.66667%; }
  .grid-x > .large-9 {
    width: 75%; }
  .grid-x > .large-10 {
    width: 83.33333%; }
  .grid-x > .large-11 {
    width: 91.66667%; }
  .grid-x > .large-12 {
    width: 100%; } }

.grid-margin-x:not(.grid-x) > .cell {
  width: auto; }

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

.grid-margin-x {
  margin-left: -0.625rem;
  margin-right: -0.625rem; }
  @media print, screen and (min-width: 40em) {
    .grid-margin-x {
      margin-left: -0.9375rem;
      margin-right: -0.9375rem; } }
  .grid-margin-x > .cell {
    width: calc(100% - 1.25rem);
    margin-left: 0.625rem;
    margin-right: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .grid-margin-x > .cell {
      width: calc(100% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  .grid-margin-x > .auto {
    width: auto; }
  .grid-margin-x > .shrink {
    width: auto; }
  .grid-margin-x > .small-1 {
    width: calc(8.33333% - 1.25rem); }
  .grid-margin-x > .small-2 {
    width: calc(16.66667% - 1.25rem); }
  .grid-margin-x > .small-3 {
    width: calc(25% - 1.25rem); }
  .grid-margin-x > .small-4 {
    width: calc(33.33333% - 1.25rem); }
  .grid-margin-x > .small-5 {
    width: calc(41.66667% - 1.25rem); }
  .grid-margin-x > .small-6 {
    width: calc(50% - 1.25rem); }
  .grid-margin-x > .small-7 {
    width: calc(58.33333% - 1.25rem); }
  .grid-margin-x > .small-8 {
    width: calc(66.66667% - 1.25rem); }
  .grid-margin-x > .small-9 {
    width: calc(75% - 1.25rem); }
  .grid-margin-x > .small-10 {
    width: calc(83.33333% - 1.25rem); }
  .grid-margin-x > .small-11 {
    width: calc(91.66667% - 1.25rem); }
  .grid-margin-x > .small-12 {
    width: calc(100% - 1.25rem); }
  @media screen and (min-width: 48em) {
    .grid-margin-x > .ipad-auto {
      width: auto; }
    .grid-margin-x > .ipad-shrink {
      width: auto; }
    .grid-margin-x > .ipad-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .ipad-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .ipad-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .ipad-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .ipad-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .ipad-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .ipad-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .ipad-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .ipad-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .ipad-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .ipad-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .ipad-12 {
      width: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 40em) {
    .grid-margin-x > .auto {
      width: auto; }
    .grid-margin-x > .shrink {
      width: auto; }
    .grid-margin-x > .small-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .small-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .small-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .small-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .small-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .small-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .small-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .small-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .small-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .small-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .small-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .small-12 {
      width: calc(100% - 1.875rem); }
    .grid-margin-x > .medium-auto {
      width: auto; }
    .grid-margin-x > .medium-shrink {
      width: auto; }
    .grid-margin-x > .medium-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .medium-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .medium-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .medium-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .medium-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .medium-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .medium-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .medium-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .medium-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .medium-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .medium-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .medium-12 {
      width: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-x > .large-auto {
      width: auto; }
    .grid-margin-x > .large-shrink {
      width: auto; }
    .grid-margin-x > .large-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .large-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .large-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .large-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .large-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .large-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .large-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .large-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .large-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .large-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .large-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .large-12 {
      width: calc(100% - 1.875rem); } }

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

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

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 48em) {
  .ipad-up-1 > .cell {
    width: 100%; }
  .ipad-up-2 > .cell {
    width: 50%; }
  .ipad-up-3 > .cell {
    width: 33.33333%; }
  .ipad-up-4 > .cell {
    width: 25%; }
  .ipad-up-5 > .cell {
    width: 20%; }
  .ipad-up-6 > .cell {
    width: 16.66667%; }
  .ipad-up-7 > .cell {
    width: 14.28571%; }
  .ipad-up-8 > .cell {
    width: 12.5%; } }

@media print, screen and (min-width: 40em) {
  .medium-up-1 > .cell {
    width: 100%; }
  .medium-up-2 > .cell {
    width: 50%; }
  .medium-up-3 > .cell {
    width: 33.33333%; }
  .medium-up-4 > .cell {
    width: 25%; }
  .medium-up-5 > .cell {
    width: 20%; }
  .medium-up-6 > .cell {
    width: 16.66667%; }
  .medium-up-7 > .cell {
    width: 14.28571%; }
  .medium-up-8 > .cell {
    width: 12.5%; } }

@media print, screen and (min-width: 64em) {
  .large-up-1 > .cell {
    width: 100%; }
  .large-up-2 > .cell {
    width: 50%; }
  .large-up-3 > .cell {
    width: 33.33333%; }
  .large-up-4 > .cell {
    width: 25%; }
  .large-up-5 > .cell {
    width: 20%; }
  .large-up-6 > .cell {
    width: 16.66667%; }
  .large-up-7 > .cell {
    width: 14.28571%; }
  .large-up-8 > .cell {
    width: 12.5%; } }

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

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

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

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

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

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

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

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

@media screen and (min-width: 48em) {
  .grid-margin-x.ipad-up-1 > .cell {
    width: calc(100% - 1.875rem); }
  .grid-margin-x.ipad-up-2 > .cell {
    width: calc(50% - 1.875rem); }
  .grid-margin-x.ipad-up-3 > .cell {
    width: calc(33.33333% - 1.875rem); }
  .grid-margin-x.ipad-up-4 > .cell {
    width: calc(25% - 1.875rem); }
  .grid-margin-x.ipad-up-5 > .cell {
    width: calc(20% - 1.875rem); }
  .grid-margin-x.ipad-up-6 > .cell {
    width: calc(16.66667% - 1.875rem); }
  .grid-margin-x.ipad-up-7 > .cell {
    width: calc(14.28571% - 1.875rem); }
  .grid-margin-x.ipad-up-8 > .cell {
    width: calc(12.5% - 1.875rem); } }

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

@media print, screen and (min-width: 64em) {
  .grid-margin-x.large-up-1 > .cell {
    width: calc(100% - 1.875rem); }
  .grid-margin-x.large-up-2 > .cell {
    width: calc(50% - 1.875rem); }
  .grid-margin-x.large-up-3 > .cell {
    width: calc(33.33333% - 1.875rem); }
  .grid-margin-x.large-up-4 > .cell {
    width: calc(25% - 1.875rem); }
  .grid-margin-x.large-up-5 > .cell {
    width: calc(20% - 1.875rem); }
  .grid-margin-x.large-up-6 > .cell {
    width: calc(16.66667% - 1.875rem); }
  .grid-margin-x.large-up-7 > .cell {
    width: calc(14.28571% - 1.875rem); }
  .grid-margin-x.large-up-8 > .cell {
    width: calc(12.5% - 1.875rem); } }

.small-margin-collapse {
  margin-right: 0;
  margin-left: 0; }
  .small-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0; }
  .small-margin-collapse > .small-1 {
    width: 8.33333%; }
  .small-margin-collapse > .small-2 {
    width: 16.66667%; }
  .small-margin-collapse > .small-3 {
    width: 25%; }
  .small-margin-collapse > .small-4 {
    width: 33.33333%; }
  .small-margin-collapse > .small-5 {
    width: 41.66667%; }
  .small-margin-collapse > .small-6 {
    width: 50%; }
  .small-margin-collapse > .small-7 {
    width: 58.33333%; }
  .small-margin-collapse > .small-8 {
    width: 66.66667%; }
  .small-margin-collapse > .small-9 {
    width: 75%; }
  .small-margin-collapse > .small-10 {
    width: 83.33333%; }
  .small-margin-collapse > .small-11 {
    width: 91.66667%; }
  .small-margin-collapse > .small-12 {
    width: 100%; }
  @media screen and (min-width: 48em) {
    .small-margin-collapse > .ipad-1 {
      width: 8.33333%; }
    .small-margin-collapse > .ipad-2 {
      width: 16.66667%; }
    .small-margin-collapse > .ipad-3 {
      width: 25%; }
    .small-margin-collapse > .ipad-4 {
      width: 33.33333%; }
    .small-margin-collapse > .ipad-5 {
      width: 41.66667%; }
    .small-margin-collapse > .ipad-6 {
      width: 50%; }
    .small-margin-collapse > .ipad-7 {
      width: 58.33333%; }
    .small-margin-collapse > .ipad-8 {
      width: 66.66667%; }
    .small-margin-collapse > .ipad-9 {
      width: 75%; }
    .small-margin-collapse > .ipad-10 {
      width: 83.33333%; }
    .small-margin-collapse > .ipad-11 {
      width: 91.66667%; }
    .small-margin-collapse > .ipad-12 {
      width: 100%; } }
  @media print, screen and (min-width: 40em) {
    .small-margin-collapse > .medium-1 {
      width: 8.33333%; }
    .small-margin-collapse > .medium-2 {
      width: 16.66667%; }
    .small-margin-collapse > .medium-3 {
      width: 25%; }
    .small-margin-collapse > .medium-4 {
      width: 33.33333%; }
    .small-margin-collapse > .medium-5 {
      width: 41.66667%; }
    .small-margin-collapse > .medium-6 {
      width: 50%; }
    .small-margin-collapse > .medium-7 {
      width: 58.33333%; }
    .small-margin-collapse > .medium-8 {
      width: 66.66667%; }
    .small-margin-collapse > .medium-9 {
      width: 75%; }
    .small-margin-collapse > .medium-10 {
      width: 83.33333%; }
    .small-margin-collapse > .medium-11 {
      width: 91.66667%; }
    .small-margin-collapse > .medium-12 {
      width: 100%; } }
  @media print, screen and (min-width: 64em) {
    .small-margin-collapse > .large-1 {
      width: 8.33333%; }
    .small-margin-collapse > .large-2 {
      width: 16.66667%; }
    .small-margin-collapse > .large-3 {
      width: 25%; }
    .small-margin-collapse > .large-4 {
      width: 33.33333%; }
    .small-margin-collapse > .large-5 {
      width: 41.66667%; }
    .small-margin-collapse > .large-6 {
      width: 50%; }
    .small-margin-collapse > .large-7 {
      width: 58.33333%; }
    .small-margin-collapse > .large-8 {
      width: 66.66667%; }
    .small-margin-collapse > .large-9 {
      width: 75%; }
    .small-margin-collapse > .large-10 {
      width: 83.33333%; }
    .small-margin-collapse > .large-11 {
      width: 91.66667%; }
    .small-margin-collapse > .large-12 {
      width: 100%; } }

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

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

@media screen and (min-width: 48em) {
  .ipad-margin-collapse > .small-1 {
    width: 8.33333%; }
  .ipad-margin-collapse > .small-2 {
    width: 16.66667%; }
  .ipad-margin-collapse > .small-3 {
    width: 25%; }
  .ipad-margin-collapse > .small-4 {
    width: 33.33333%; }
  .ipad-margin-collapse > .small-5 {
    width: 41.66667%; }
  .ipad-margin-collapse > .small-6 {
    width: 50%; }
  .ipad-margin-collapse > .small-7 {
    width: 58.33333%; }
  .ipad-margin-collapse > .small-8 {
    width: 66.66667%; }
  .ipad-margin-collapse > .small-9 {
    width: 75%; }
  .ipad-margin-collapse > .small-10 {
    width: 83.33333%; }
  .ipad-margin-collapse > .small-11 {
    width: 91.66667%; }
  .ipad-margin-collapse > .small-12 {
    width: 100%; } }

@media screen and (min-width: 48em) {
  .ipad-margin-collapse > .ipad-1 {
    width: 8.33333%; }
  .ipad-margin-collapse > .ipad-2 {
    width: 16.66667%; }
  .ipad-margin-collapse > .ipad-3 {
    width: 25%; }
  .ipad-margin-collapse > .ipad-4 {
    width: 33.33333%; }
  .ipad-margin-collapse > .ipad-5 {
    width: 41.66667%; }
  .ipad-margin-collapse > .ipad-6 {
    width: 50%; }
  .ipad-margin-collapse > .ipad-7 {
    width: 58.33333%; }
  .ipad-margin-collapse > .ipad-8 {
    width: 66.66667%; }
  .ipad-margin-collapse > .ipad-9 {
    width: 75%; }
  .ipad-margin-collapse > .ipad-10 {
    width: 83.33333%; }
  .ipad-margin-collapse > .ipad-11 {
    width: 91.66667%; }
  .ipad-margin-collapse > .ipad-12 {
    width: 100%; } }

@media screen and (min-width: 48em) {
  .ipad-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .ipad-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .ipad-margin-collapse > .medium-3 {
    width: 25%; }
  .ipad-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .ipad-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .ipad-margin-collapse > .medium-6 {
    width: 50%; }
  .ipad-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .ipad-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .ipad-margin-collapse > .medium-9 {
    width: 75%; }
  .ipad-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .ipad-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .ipad-margin-collapse > .medium-12 {
    width: 100%; } }

@media screen and (min-width: 48em) {
  .ipad-margin-collapse > .large-1 {
    width: 8.33333%; }
  .ipad-margin-collapse > .large-2 {
    width: 16.66667%; }
  .ipad-margin-collapse > .large-3 {
    width: 25%; }
  .ipad-margin-collapse > .large-4 {
    width: 33.33333%; }
  .ipad-margin-collapse > .large-5 {
    width: 41.66667%; }
  .ipad-margin-collapse > .large-6 {
    width: 50%; }
  .ipad-margin-collapse > .large-7 {
    width: 58.33333%; }
  .ipad-margin-collapse > .large-8 {
    width: 66.66667%; }
  .ipad-margin-collapse > .large-9 {
    width: 75%; }
  .ipad-margin-collapse > .large-10 {
    width: 83.33333%; }
  .ipad-margin-collapse > .large-11 {
    width: 91.66667%; }
  .ipad-margin-collapse > .large-12 {
    width: 100%; } }

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

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

@media print, screen and (min-width: 40em) {
  .medium-margin-collapse > .small-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .small-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .small-3 {
    width: 25%; }
  .medium-margin-collapse > .small-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .small-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .small-6 {
    width: 50%; }
  .medium-margin-collapse > .small-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .small-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .small-9 {
    width: 75%; }
  .medium-margin-collapse > .small-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .small-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .small-12 {
    width: 100%; } }

@media screen and (min-width: 48em) {
  .medium-margin-collapse > .ipad-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .ipad-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .ipad-3 {
    width: 25%; }
  .medium-margin-collapse > .ipad-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .ipad-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .ipad-6 {
    width: 50%; }
  .medium-margin-collapse > .ipad-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .ipad-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .ipad-9 {
    width: 75%; }
  .medium-margin-collapse > .ipad-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .ipad-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .ipad-12 {
    width: 100%; } }

@media print, screen and (min-width: 40em) {
  .medium-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .medium-3 {
    width: 25%; }
  .medium-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .medium-6 {
    width: 50%; }
  .medium-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .medium-9 {
    width: 75%; }
  .medium-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .medium-margin-collapse > .large-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .large-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .large-3 {
    width: 25%; }
  .medium-margin-collapse > .large-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .large-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .large-6 {
    width: 50%; }
  .medium-margin-collapse > .large-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .large-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .large-9 {
    width: 75%; }
  .medium-margin-collapse > .large-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .large-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .large-12 {
    width: 100%; } }

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

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

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .small-1 {
    width: 8.33333%; }
  .large-margin-collapse > .small-2 {
    width: 16.66667%; }
  .large-margin-collapse > .small-3 {
    width: 25%; }
  .large-margin-collapse > .small-4 {
    width: 33.33333%; }
  .large-margin-collapse > .small-5 {
    width: 41.66667%; }
  .large-margin-collapse > .small-6 {
    width: 50%; }
  .large-margin-collapse > .small-7 {
    width: 58.33333%; }
  .large-margin-collapse > .small-8 {
    width: 66.66667%; }
  .large-margin-collapse > .small-9 {
    width: 75%; }
  .large-margin-collapse > .small-10 {
    width: 83.33333%; }
  .large-margin-collapse > .small-11 {
    width: 91.66667%; }
  .large-margin-collapse > .small-12 {
    width: 100%; } }

@media screen and (min-width: 48em) {
  .large-margin-collapse > .ipad-1 {
    width: 8.33333%; }
  .large-margin-collapse > .ipad-2 {
    width: 16.66667%; }
  .large-margin-collapse > .ipad-3 {
    width: 25%; }
  .large-margin-collapse > .ipad-4 {
    width: 33.33333%; }
  .large-margin-collapse > .ipad-5 {
    width: 41.66667%; }
  .large-margin-collapse > .ipad-6 {
    width: 50%; }
  .large-margin-collapse > .ipad-7 {
    width: 58.33333%; }
  .large-margin-collapse > .ipad-8 {
    width: 66.66667%; }
  .large-margin-collapse > .ipad-9 {
    width: 75%; }
  .large-margin-collapse > .ipad-10 {
    width: 83.33333%; }
  .large-margin-collapse > .ipad-11 {
    width: 91.66667%; }
  .large-margin-collapse > .ipad-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .large-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .large-margin-collapse > .medium-3 {
    width: 25%; }
  .large-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .large-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .large-margin-collapse > .medium-6 {
    width: 50%; }
  .large-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .large-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .large-margin-collapse > .medium-9 {
    width: 75%; }
  .large-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .large-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .large-margin-collapse > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .large-1 {
    width: 8.33333%; }
  .large-margin-collapse > .large-2 {
    width: 16.66667%; }
  .large-margin-collapse > .large-3 {
    width: 25%; }
  .large-margin-collapse > .large-4 {
    width: 33.33333%; }
  .large-margin-collapse > .large-5 {
    width: 41.66667%; }
  .large-margin-collapse > .large-6 {
    width: 50%; }
  .large-margin-collapse > .large-7 {
    width: 58.33333%; }
  .large-margin-collapse > .large-8 {
    width: 66.66667%; }
  .large-margin-collapse > .large-9 {
    width: 75%; }
  .large-margin-collapse > .large-10 {
    width: 83.33333%; }
  .large-margin-collapse > .large-11 {
    width: 91.66667%; }
  .large-margin-collapse > .large-12 {
    width: 100%; } }

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

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

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

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

.grid-margin-x > .small-offset-1 {
  margin-left: calc(8.33333% + 0.625rem); }

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

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

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

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

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

.grid-margin-x > .small-offset-4 {
  margin-left: calc(33.33333% + 0.625rem); }

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

.grid-margin-x > .small-offset-5 {
  margin-left: calc(41.66667% + 0.625rem); }

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

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

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

.grid-margin-x > .small-offset-7 {
  margin-left: calc(58.33333% + 0.625rem); }

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

.grid-margin-x > .small-offset-8 {
  margin-left: calc(66.66667% + 0.625rem); }

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

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

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

.grid-margin-x > .small-offset-10 {
  margin-left: calc(83.33333% + 0.625rem); }

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

.grid-margin-x > .small-offset-11 {
  margin-left: calc(91.66667% + 0.625rem); }

@media screen and (min-width: 48em) {
  .ipad-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .ipad-offset-0 {
    margin-left: calc(0% + 0.9375rem); }
  .ipad-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .ipad-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem); }
  .ipad-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .ipad-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem); }
  .ipad-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .ipad-offset-3 {
    margin-left: calc(25% + 0.9375rem); }
  .ipad-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .ipad-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem); }
  .ipad-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .ipad-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem); }
  .ipad-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .ipad-offset-6 {
    margin-left: calc(50% + 0.9375rem); }
  .ipad-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .ipad-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem); }
  .ipad-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .ipad-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem); }
  .ipad-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .ipad-offset-9 {
    margin-left: calc(75% + 0.9375rem); }
  .ipad-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .ipad-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem); }
  .ipad-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .ipad-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem); } }

@media print, screen and (min-width: 40em) {
  .medium-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .medium-offset-0 {
    margin-left: calc(0% + 0.9375rem); }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .medium-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem); }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .medium-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem); }
  .medium-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .medium-offset-3 {
    margin-left: calc(25% + 0.9375rem); }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .medium-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem); }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .medium-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem); }
  .medium-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .medium-offset-6 {
    margin-left: calc(50% + 0.9375rem); }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .medium-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem); }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .medium-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem); }
  .medium-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .medium-offset-9 {
    margin-left: calc(75% + 0.9375rem); }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .medium-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem); }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem); } }

@media print, screen and (min-width: 64em) {
  .large-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .large-offset-0 {
    margin-left: calc(0% + 0.9375rem); }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .large-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem); }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .large-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem); }
  .large-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .large-offset-3 {
    margin-left: calc(25% + 0.9375rem); }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .large-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem); }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .large-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem); }
  .large-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .large-offset-6 {
    margin-left: calc(50% + 0.9375rem); }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .large-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem); }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .large-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem); }
  .large-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .large-offset-9 {
    margin-left: calc(75% + 0.9375rem); }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .large-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem); }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem); } }

.grid-y {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-flow: column nowrap;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap; }
  .grid-y > .cell {
    width: auto; }
  .grid-y > .auto {
    height: auto; }
  .grid-y > .shrink {
    height: auto; }
  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto; }
  @media screen and (min-width: 48em) {
    .grid-y > .ipad-shrink, .grid-y > .ipad-full, .grid-y > .ipad-1, .grid-y > .ipad-2, .grid-y > .ipad-3, .grid-y > .ipad-4, .grid-y > .ipad-5, .grid-y > .ipad-6, .grid-y > .ipad-7, .grid-y > .ipad-8, .grid-y > .ipad-9, .grid-y > .ipad-10, .grid-y > .ipad-11, .grid-y > .ipad-12 {
      -webkit-flex-basis: auto;
          -ms-flex-preferred-size: auto;
              flex-basis: auto; } }
  @media print, screen and (min-width: 40em) {
    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
      -webkit-flex-basis: auto;
          -ms-flex-preferred-size: auto;
              flex-basis: auto; } }
  @media print, screen and (min-width: 64em) {
    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
      -webkit-flex-basis: auto;
          -ms-flex-preferred-size: auto;
              flex-basis: auto; } }
  .grid-y > .small-1 {
    height: 8.33333%; }
  .grid-y > .small-2 {
    height: 16.66667%; }
  .grid-y > .small-3 {
    height: 25%; }
  .grid-y > .small-4 {
    height: 33.33333%; }
  .grid-y > .small-5 {
    height: 41.66667%; }
  .grid-y > .small-6 {
    height: 50%; }
  .grid-y > .small-7 {
    height: 58.33333%; }
  .grid-y > .small-8 {
    height: 66.66667%; }
  .grid-y > .small-9 {
    height: 75%; }
  .grid-y > .small-10 {
    height: 83.33333%; }
  .grid-y > .small-11 {
    height: 91.66667%; }
  .grid-y > .small-12 {
    height: 100%; }
  @media screen and (min-width: 48em) {
    .grid-y > .ipad-auto {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      height: auto; }
    .grid-y > .ipad-shrink {
      height: auto; }
    .grid-y > .ipad-1 {
      height: 8.33333%; }
    .grid-y > .ipad-2 {
      height: 16.66667%; }
    .grid-y > .ipad-3 {
      height: 25%; }
    .grid-y > .ipad-4 {
      height: 33.33333%; }
    .grid-y > .ipad-5 {
      height: 41.66667%; }
    .grid-y > .ipad-6 {
      height: 50%; }
    .grid-y > .ipad-7 {
      height: 58.33333%; }
    .grid-y > .ipad-8 {
      height: 66.66667%; }
    .grid-y > .ipad-9 {
      height: 75%; }
    .grid-y > .ipad-10 {
      height: 83.33333%; }
    .grid-y > .ipad-11 {
      height: 91.66667%; }
    .grid-y > .ipad-12 {
      height: 100%; } }
  @media print, screen and (min-width: 40em) {
    .grid-y > .medium-auto {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      height: auto; }
    .grid-y > .medium-shrink {
      height: auto; }
    .grid-y > .medium-1 {
      height: 8.33333%; }
    .grid-y > .medium-2 {
      height: 16.66667%; }
    .grid-y > .medium-3 {
      height: 25%; }
    .grid-y > .medium-4 {
      height: 33.33333%; }
    .grid-y > .medium-5 {
      height: 41.66667%; }
    .grid-y > .medium-6 {
      height: 50%; }
    .grid-y > .medium-7 {
      height: 58.33333%; }
    .grid-y > .medium-8 {
      height: 66.66667%; }
    .grid-y > .medium-9 {
      height: 75%; }
    .grid-y > .medium-10 {
      height: 83.33333%; }
    .grid-y > .medium-11 {
      height: 91.66667%; }
    .grid-y > .medium-12 {
      height: 100%; } }
  @media print, screen and (min-width: 64em) {
    .grid-y > .large-auto {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      height: auto; }
    .grid-y > .large-shrink {
      height: auto; }
    .grid-y > .large-1 {
      height: 8.33333%; }
    .grid-y > .large-2 {
      height: 16.66667%; }
    .grid-y > .large-3 {
      height: 25%; }
    .grid-y > .large-4 {
      height: 33.33333%; }
    .grid-y > .large-5 {
      height: 41.66667%; }
    .grid-y > .large-6 {
      height: 50%; }
    .grid-y > .large-7 {
      height: 58.33333%; }
    .grid-y > .large-8 {
      height: 66.66667%; }
    .grid-y > .large-9 {
      height: 75%; }
    .grid-y > .large-10 {
      height: 83.33333%; }
    .grid-y > .large-11 {
      height: 91.66667%; }
    .grid-y > .large-12 {
      height: 100%; } }

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

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

.grid-margin-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem; }
  @media print, screen and (min-width: 40em) {
    .grid-margin-y {
      margin-top: -0.9375rem;
      margin-bottom: -0.9375rem; } }
  .grid-margin-y > .cell {
    height: calc(100% - 1.25rem);
    margin-top: 0.625rem;
    margin-bottom: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .grid-margin-y > .cell {
      height: calc(100% - 1.875rem);
      margin-top: 0.9375rem;
      margin-bottom: 0.9375rem; } }
  .grid-margin-y > .auto {
    height: auto; }
  .grid-margin-y > .shrink {
    height: auto; }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.25rem); }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.25rem); }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.25rem); }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.25rem); }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.25rem); }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.25rem); }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.25rem); }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.25rem); }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.25rem); }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.25rem); }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.25rem); }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.25rem); }
  @media screen and (min-width: 48em) {
    .grid-margin-y > .ipad-auto {
      height: auto; }
    .grid-margin-y > .ipad-shrink {
      height: auto; }
    .grid-margin-y > .ipad-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .ipad-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .ipad-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .ipad-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .ipad-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .ipad-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .ipad-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .ipad-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .ipad-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .ipad-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .ipad-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .ipad-12 {
      height: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 40em) {
    .grid-margin-y > .auto {
      height: auto; }
    .grid-margin-y > .shrink {
      height: auto; }
    .grid-margin-y > .small-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .small-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .small-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .small-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .small-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .small-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .small-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .small-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .small-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .small-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .small-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .small-12 {
      height: calc(100% - 1.875rem); }
    .grid-margin-y > .medium-auto {
      height: auto; }
    .grid-margin-y > .medium-shrink {
      height: auto; }
    .grid-margin-y > .medium-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .medium-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .medium-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .medium-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .medium-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .medium-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .medium-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .medium-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .medium-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .medium-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .medium-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .medium-12 {
      height: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
      height: auto; }
    .grid-margin-y > .large-shrink {
      height: auto; }
    .grid-margin-y > .large-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .large-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .large-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .large-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .large-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .large-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .large-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .large-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .large-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .large-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .large-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .large-12 {
      height: calc(100% - 1.875rem); } }

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 48em) {
  .grid-y.ipad-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh; } }

@media print, screen and (min-width: 40em) {
  .grid-y.medium-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh; } }

@media print, screen and (min-width: 64em) {
  .grid-y.large-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh; } }

.cell .grid-y.grid-frame {
  height: 100%; }

@media screen and (min-width: 48em) {
  .cell .grid-y.ipad-grid-frame {
    height: 100%; } }

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

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

.grid-margin-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem; }
  @media print, screen and (min-width: 40em) {
    .grid-margin-y {
      margin-top: -0.9375rem;
      margin-bottom: -0.9375rem; } }
  .grid-margin-y > .cell {
    height: calc(100% - 1.25rem);
    margin-top: 0.625rem;
    margin-bottom: 0.625rem; }
  @media print, screen and (min-width: 40em) {
    .grid-margin-y > .cell {
      height: calc(100% - 1.875rem);
      margin-top: 0.9375rem;
      margin-bottom: 0.9375rem; } }
  .grid-margin-y > .auto {
    height: auto; }
  .grid-margin-y > .shrink {
    height: auto; }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.25rem); }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.25rem); }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.25rem); }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.25rem); }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.25rem); }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.25rem); }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.25rem); }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.25rem); }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.25rem); }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.25rem); }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.25rem); }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.25rem); }
  @media screen and (min-width: 48em) {
    .grid-margin-y > .ipad-auto {
      height: auto; }
    .grid-margin-y > .ipad-shrink {
      height: auto; }
    .grid-margin-y > .ipad-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .ipad-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .ipad-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .ipad-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .ipad-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .ipad-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .ipad-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .ipad-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .ipad-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .ipad-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .ipad-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .ipad-12 {
      height: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 40em) {
    .grid-margin-y > .auto {
      height: auto; }
    .grid-margin-y > .shrink {
      height: auto; }
    .grid-margin-y > .small-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .small-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .small-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .small-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .small-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .small-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .small-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .small-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .small-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .small-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .small-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .small-12 {
      height: calc(100% - 1.875rem); }
    .grid-margin-y > .medium-auto {
      height: auto; }
    .grid-margin-y > .medium-shrink {
      height: auto; }
    .grid-margin-y > .medium-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .medium-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .medium-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .medium-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .medium-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .medium-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .medium-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .medium-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .medium-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .medium-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .medium-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .medium-12 {
      height: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
      height: auto; }
    .grid-margin-y > .large-shrink {
      height: auto; }
    .grid-margin-y > .large-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .large-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .large-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .large-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .large-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .large-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .large-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .large-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .large-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .large-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .large-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .large-12 {
      height: calc(100% - 1.875rem); } }

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

@media screen and (min-width: 48em) {
  .grid-margin-y.ipad-grid-frame {
    height: calc(100vh + 1.875rem); } }

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

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

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.25;
  text-rendering: optimizeLegibility; }

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

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

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

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Taviraj", Georgia, Palatino, serif;
  font-style: normal;
  font-weight: 600;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #bfbfbf; }

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 2.875rem; }
  h2, .h2 {
    font-size: 1.875rem; }
  h3, .h3 {
    font-size: 1.5625rem; }
  h4, .h4 {
    font-size: 1.3125rem; }
  h5, .h5 {
    font-size: 1.125rem; }
  h6, .h6 {
    font-size: 1rem; } }

@media print, screen and (min-width: 64em) {
  h1, .h1 {
    font-size: 3.5rem; }
  h2, .h2 {
    font-size: 2.5rem; }
  h3, .h3 {
    font-size: 1.9375rem; }
  h4, .h4 {
    font-size: 1.5625rem; }
  h5, .h5 {
    font-size: 1.25rem; }
  h6, .h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #cba17d;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #be895c; }
  a img {
    border: 0; }

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

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

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

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

figure {
  margin: 0; }

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

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

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

.lead {
  font-size: 1.5rem;
  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 screen and (min-width: 48em) {
  .ipad-text-left {
    text-align: left; }
  .ipad-text-right {
    text-align: right; }
  .ipad-text-center {
    text-align: center; }
  .ipad-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;
    -webkit-box-shadow: none !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; } }

.button, .resortment-container .active-filters ul li a, .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container .infinite-loader span button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  font-family: "Raleway", Arial, sans-serif;
  padding: 1.5625em 1.5625em 1.5em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: black;
  color: #fff; }
  [data-whatinput='mouse'] .button, [data-whatinput='mouse'] .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li [data-whatinput='mouse'] a, [data-whatinput='mouse'] .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span [data-whatinput='mouse'] button, [data-whatinput='mouse'] .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span [data-whatinput='mouse'] button {
    outline: 0; }
  .button:hover, .resortment-container .active-filters ul li a:hover, .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container .infinite-loader span button:hover, .button:focus, .resortment-container .active-filters ul li a:focus, .infinite-scroll .infinite-container #infinite-handle span button:focus, .infinite-scroll .infinite-container .infinite-loader span button:focus {
    background-color: transparent;
    color: #fff; }
  .button.tiny, .resortment-container .active-filters ul li a.tiny, .infinite-scroll .infinite-container #infinite-handle span button.tiny, .infinite-scroll .infinite-container .infinite-loader span button.tiny {
    font-size: 0.6rem; }
  .button.small, .resortment-container .active-filters ul li a.small, .infinite-scroll .infinite-container #infinite-handle span button.small, .infinite-scroll .infinite-container .infinite-loader span button.small {
    font-size: 0.75rem; }
  .button.large, .resortment-container .active-filters ul li a.large, .infinite-scroll .infinite-container #infinite-handle span button.large, .infinite-scroll .infinite-container .infinite-loader span button.large {
    font-size: 1.25rem; }
  .button.expanded, .resortment-container .active-filters ul li a.expanded, .infinite-scroll .infinite-container #infinite-handle span button.expanded, .infinite-scroll .infinite-container .infinite-loader span button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary, .resortment-container .active-filters ul li a.primary, .infinite-scroll .infinite-container #infinite-handle span button.primary, .infinite-scroll .infinite-container .infinite-loader span button.primary {
    background-color: #1b3437;
    color: #fff; }
    .button.primary:hover, .resortment-container .active-filters ul li a.primary:hover, .infinite-scroll .infinite-container #infinite-handle span button.primary:hover, .infinite-scroll .infinite-container .infinite-loader span button.primary:hover, .button.primary:focus, .resortment-container .active-filters ul li a.primary:focus, .infinite-scroll .infinite-container #infinite-handle span button.primary:focus, .infinite-scroll .infinite-container .infinite-loader span button.primary:focus {
      background-color: #162a2c;
      color: #fff; }
  .button.secondary, .resortment-container .active-filters ul li a.secondary, .infinite-scroll .infinite-container #infinite-handle span button.secondary, .infinite-scroll .infinite-container .infinite-loader span button.secondary {
    background-color: #7f948d;
    color: #0a0a0a; }
    .button.secondary:hover, .resortment-container .active-filters ul li a.secondary:hover, .infinite-scroll .infinite-container #infinite-handle span button.secondary:hover, .infinite-scroll .infinite-container .infinite-loader span button.secondary:hover, .button.secondary:focus, .resortment-container .active-filters ul li a.secondary:focus, .infinite-scroll .infinite-container #infinite-handle span button.secondary:focus, .infinite-scroll .infinite-container .infinite-loader span button.secondary:focus {
      background-color: #647871;
      color: #0a0a0a; }
  .button.success, .resortment-container .active-filters ul li a.success, .infinite-scroll .infinite-container #infinite-handle span button.success, .infinite-scroll .infinite-container .infinite-loader span button.success {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button.success:hover, .resortment-container .active-filters ul li a.success:hover, .infinite-scroll .infinite-container #infinite-handle span button.success:hover, .infinite-scroll .infinite-container .infinite-loader span button.success:hover, .button.success:focus, .resortment-container .active-filters ul li a.success:focus, .infinite-scroll .infinite-container #infinite-handle span button.success:focus, .infinite-scroll .infinite-container .infinite-loader span button.success:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button.warning, .resortment-container .active-filters ul li a.warning, .infinite-scroll .infinite-container #infinite-handle span button.warning, .infinite-scroll .infinite-container .infinite-loader span button.warning {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button.warning:hover, .resortment-container .active-filters ul li a.warning:hover, .infinite-scroll .infinite-container #infinite-handle span button.warning:hover, .infinite-scroll .infinite-container .infinite-loader span button.warning:hover, .button.warning:focus, .resortment-container .active-filters ul li a.warning:focus, .infinite-scroll .infinite-container #infinite-handle span button.warning:focus, .infinite-scroll .infinite-container .infinite-loader span button.warning:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button.alert, .resortment-container .active-filters ul li a.alert, .infinite-scroll .infinite-container #infinite-handle span button.alert, .infinite-scroll .infinite-container .infinite-loader span button.alert {
    background-color: #cc4b37;
    color: #fff; }
    .button.alert:hover, .resortment-container .active-filters ul li a.alert:hover, .infinite-scroll .infinite-container #infinite-handle span button.alert:hover, .infinite-scroll .infinite-container .infinite-loader span button.alert:hover, .button.alert:focus, .resortment-container .active-filters ul li a.alert:focus, .infinite-scroll .infinite-container #infinite-handle span button.alert:focus, .infinite-scroll .infinite-container .infinite-loader span button.alert:focus {
      background-color: #a53b2a;
      color: #fff; }
  .button.disabled, .resortment-container .active-filters ul li a.disabled, .infinite-scroll .infinite-container #infinite-handle span button.disabled, .infinite-scroll .infinite-container .infinite-loader span button.disabled, .button[disabled], .resortment-container .active-filters ul li a[disabled], .infinite-scroll .infinite-container #infinite-handle span button[disabled], .infinite-scroll .infinite-container .infinite-loader span button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled, .resortment-container .active-filters ul li a.disabled, .infinite-scroll .infinite-container #infinite-handle span button.disabled, .infinite-scroll .infinite-container .infinite-loader span button.disabled, .button.disabled:hover, .resortment-container .active-filters ul li a.disabled:hover, .infinite-scroll .infinite-container #infinite-handle span button.disabled:hover, .infinite-scroll .infinite-container .infinite-loader span button.disabled:hover, .button.disabled:focus, .resortment-container .active-filters ul li a.disabled:focus, .infinite-scroll .infinite-container #infinite-handle span button.disabled:focus, .infinite-scroll .infinite-container .infinite-loader span button.disabled:focus, .button[disabled], .resortment-container .active-filters ul li a[disabled], .infinite-scroll .infinite-container #infinite-handle span button[disabled], .infinite-scroll .infinite-container .infinite-loader span button[disabled], .button[disabled]:hover, .resortment-container .active-filters ul li a[disabled]:hover, .infinite-scroll .infinite-container #infinite-handle span button[disabled]:hover, .infinite-scroll .infinite-container .infinite-loader span button[disabled]:hover, .button[disabled]:focus, .resortment-container .active-filters ul li a[disabled]:focus, .infinite-scroll .infinite-container #infinite-handle span button[disabled]:focus, .infinite-scroll .infinite-container .infinite-loader span button[disabled]:focus {
      background-color: black;
      color: #fff; }
    .button.disabled.primary, .resortment-container .active-filters ul li a.disabled.primary, .infinite-scroll .infinite-container #infinite-handle span button.disabled.primary, .infinite-scroll .infinite-container .infinite-loader span button.disabled.primary, .button[disabled].primary, .resortment-container .active-filters ul li a[disabled].primary, .infinite-scroll .infinite-container #infinite-handle span button[disabled].primary, .infinite-scroll .infinite-container .infinite-loader span button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .resortment-container .active-filters ul li a.disabled.primary, .infinite-scroll .infinite-container #infinite-handle span button.disabled.primary, .infinite-scroll .infinite-container .infinite-loader span button.disabled.primary, .button.disabled.primary:hover, .resortment-container .active-filters ul li a.disabled.primary:hover, .infinite-scroll .infinite-container #infinite-handle span button.disabled.primary:hover, .infinite-scroll .infinite-container .infinite-loader span button.disabled.primary:hover, .button.disabled.primary:focus, .resortment-container .active-filters ul li a.disabled.primary:focus, .infinite-scroll .infinite-container #infinite-handle span button.disabled.primary:focus, .infinite-scroll .infinite-container .infinite-loader span button.disabled.primary:focus, .button[disabled].primary, .resortment-container .active-filters ul li a[disabled].primary, .infinite-scroll .infinite-container #infinite-handle span button[disabled].primary, .infinite-scroll .infinite-container .infinite-loader span button[disabled].primary, .button[disabled].primary:hover, .resortment-container .active-filters ul li a[disabled].primary:hover, .infinite-scroll .infinite-container #infinite-handle span button[disabled].primary:hover, .infinite-scroll .infinite-container .infinite-loader span button[disabled].primary:hover, .button[disabled].primary:focus, .resortment-container .active-filters ul li a[disabled].primary:focus, .infinite-scroll .infinite-container #infinite-handle span button[disabled].primary:focus, .infinite-scroll .infinite-container .infinite-loader span button[disabled].primary:focus {
        background-color: #1b3437;
        color: #fff; }
    .button.disabled.secondary, .resortment-container .active-filters ul li a.disabled.secondary, .infinite-scroll .infinite-container #infinite-handle span button.disabled.secondary, .infinite-scroll .infinite-container .infinite-loader span button.disabled.secondary, .button[disabled].secondary, .resortment-container .active-filters ul li a[disabled].secondary, .infinite-scroll .infinite-container #infinite-handle span button[disabled].secondary, .infinite-scroll .infinite-container .infinite-loader span button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .resortment-container .active-filters ul li a.disabled.secondary, .infinite-scroll .infinite-container #infinite-handle span button.disabled.secondary, .infinite-scroll .infinite-container .infinite-loader span button.disabled.secondary, .button.disabled.secondary:hover, .resortment-container .active-filters ul li a.disabled.secondary:hover, .infinite-scroll .infinite-container #infinite-handle span button.disabled.secondary:hover, .infinite-scroll .infinite-container .infinite-loader span button.disabled.secondary:hover, .button.disabled.secondary:focus, .resortment-container .active-filters ul li a.disabled.secondary:focus, .infinite-scroll .infinite-container #infinite-handle span button.disabled.secondary:focus, .infinite-scroll .infinite-container .infinite-loader span button.disabled.secondary:focus, .button[disabled].secondary, .resortment-container .active-filters ul li a[disabled].secondary, .infinite-scroll .infinite-container #infinite-handle span button[disabled].secondary, .infinite-scroll .infinite-container .infinite-loader span button[disabled].secondary, .button[disabled].secondary:hover, .resortment-container .active-filters ul li a[disabled].secondary:hover, .infinite-scroll .infinite-container #infinite-handle span button[disabled].secondary:hover, .infinite-scroll .infinite-container .infinite-loader span button[disabled].secondary:hover, .button[disabled].secondary:focus, .resortment-container .active-filters ul li a[disabled].secondary:focus, .infinite-scroll .infinite-container #infinite-handle span button[disabled].secondary:focus, .infinite-scroll .infinite-container .infinite-loader span button[disabled].secondary:focus {
        background-color: #7f948d;
        color: #0a0a0a; }
    .button.disabled.success, .resortment-container .active-filters ul li a.disabled.success, .infinite-scroll .infinite-container #infinite-handle span button.disabled.success, .infinite-scroll .infinite-container .infinite-loader span button.disabled.success, .button[disabled].success, .resortment-container .active-filters ul li a[disabled].success, .infinite-scroll .infinite-container #infinite-handle span button[disabled].success, .infinite-scroll .infinite-container .infinite-loader span button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .resortment-container .active-filters ul li a.disabled.success, .infinite-scroll .infinite-container #infinite-handle span button.disabled.success, .infinite-scroll .infinite-container .infinite-loader span button.disabled.success, .button.disabled.success:hover, .resortment-container .active-filters ul li a.disabled.success:hover, .infinite-scroll .infinite-container #infinite-handle span button.disabled.success:hover, .infinite-scroll .infinite-container .infinite-loader span button.disabled.success:hover, .button.disabled.success:focus, .resortment-container .active-filters ul li a.disabled.success:focus, .infinite-scroll .infinite-container #infinite-handle span button.disabled.success:focus, .infinite-scroll .infinite-container .infinite-loader span button.disabled.success:focus, .button[disabled].success, .resortment-container .active-filters ul li a[disabled].success, .infinite-scroll .infinite-container #infinite-handle span button[disabled].success, .infinite-scroll .infinite-container .infinite-loader span button[disabled].success, .button[disabled].success:hover, .resortment-container .active-filters ul li a[disabled].success:hover, .infinite-scroll .infinite-container #infinite-handle span button[disabled].success:hover, .infinite-scroll .infinite-container .infinite-loader span button[disabled].success:hover, .button[disabled].success:focus, .resortment-container .active-filters ul li a[disabled].success:focus, .infinite-scroll .infinite-container #infinite-handle span button[disabled].success:focus, .infinite-scroll .infinite-container .infinite-loader span button[disabled].success:focus {
        background-color: #3adb76;
        color: #0a0a0a; }
    .button.disabled.warning, .resortment-container .active-filters ul li a.disabled.warning, .infinite-scroll .infinite-container #infinite-handle span button.disabled.warning, .infinite-scroll .infinite-container .infinite-loader span button.disabled.warning, .button[disabled].warning, .resortment-container .active-filters ul li a[disabled].warning, .infinite-scroll .infinite-container #infinite-handle span button[disabled].warning, .infinite-scroll .infinite-container .infinite-loader span button[disabled].warning {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.warning, .resortment-container .active-filters ul li a.disabled.warning, .infinite-scroll .infinite-container #infinite-handle span button.disabled.warning, .infinite-scroll .infinite-container .infinite-loader span button.disabled.warning, .button.disabled.warning:hover, .resortment-container .active-filters ul li a.disabled.warning:hover, .infinite-scroll .infinite-container #infinite-handle span button.disabled.warning:hover, .infinite-scroll .infinite-container .infinite-loader span button.disabled.warning:hover, .button.disabled.warning:focus, .resortment-container .active-filters ul li a.disabled.warning:focus, .infinite-scroll .infinite-container #infinite-handle span button.disabled.warning:focus, .infinite-scroll .infinite-container .infinite-loader span button.disabled.warning:focus, .button[disabled].warning, .resortment-container .active-filters ul li a[disabled].warning, .infinite-scroll .infinite-container #infinite-handle span button[disabled].warning, .infinite-scroll .infinite-container .infinite-loader span button[disabled].warning, .button[disabled].warning:hover, .resortment-container .active-filters ul li a[disabled].warning:hover, .infinite-scroll .infinite-container #infinite-handle span button[disabled].warning:hover, .infinite-scroll .infinite-container .infinite-loader span button[disabled].warning:hover, .button[disabled].warning:focus, .resortment-container .active-filters ul li a[disabled].warning:focus, .infinite-scroll .infinite-container #infinite-handle span button[disabled].warning:focus, .infinite-scroll .infinite-container .infinite-loader span button[disabled].warning:focus {
        background-color: #ffae00;
        color: #0a0a0a; }
    .button.disabled.alert, .resortment-container .active-filters ul li a.disabled.alert, .infinite-scroll .infinite-container #infinite-handle span button.disabled.alert, .infinite-scroll .infinite-container .infinite-loader span button.disabled.alert, .button[disabled].alert, .resortment-container .active-filters ul li a[disabled].alert, .infinite-scroll .infinite-container #infinite-handle span button[disabled].alert, .infinite-scroll .infinite-container .infinite-loader span button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .resortment-container .active-filters ul li a.disabled.alert, .infinite-scroll .infinite-container #infinite-handle span button.disabled.alert, .infinite-scroll .infinite-container .infinite-loader span button.disabled.alert, .button.disabled.alert:hover, .resortment-container .active-filters ul li a.disabled.alert:hover, .infinite-scroll .infinite-container #infinite-handle span button.disabled.alert:hover, .infinite-scroll .infinite-container .infinite-loader span button.disabled.alert:hover, .button.disabled.alert:focus, .resortment-container .active-filters ul li a.disabled.alert:focus, .infinite-scroll .infinite-container #infinite-handle span button.disabled.alert:focus, .infinite-scroll .infinite-container .infinite-loader span button.disabled.alert:focus, .button[disabled].alert, .resortment-container .active-filters ul li a[disabled].alert, .infinite-scroll .infinite-container #infinite-handle span button[disabled].alert, .infinite-scroll .infinite-container .infinite-loader span button[disabled].alert, .button[disabled].alert:hover, .resortment-container .active-filters ul li a[disabled].alert:hover, .infinite-scroll .infinite-container #infinite-handle span button[disabled].alert:hover, .infinite-scroll .infinite-container .infinite-loader span button[disabled].alert:hover, .button[disabled].alert:focus, .resortment-container .active-filters ul li a[disabled].alert:focus, .infinite-scroll .infinite-container #infinite-handle span button[disabled].alert:focus, .infinite-scroll .infinite-container .infinite-loader span button[disabled].alert:focus {
        background-color: #cc4b37;
        color: #fff; }
  .button.hollow, .resortment-container .active-filters ul li a.hollow, .infinite-scroll .infinite-container #infinite-handle span button.hollow, .infinite-scroll .infinite-container .infinite-loader span button.hollow {
    border: 2px solid black;
    color: black; }
    .button.hollow, .resortment-container .active-filters ul li a.hollow, .infinite-scroll .infinite-container #infinite-handle span button.hollow, .infinite-scroll .infinite-container .infinite-loader span button.hollow, .button.hollow:hover, .resortment-container .active-filters ul li a.hollow:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow:hover, .button.hollow:focus, .resortment-container .active-filters ul li a.hollow:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow:focus {
      background-color: transparent; }
    .button.hollow.disabled, .resortment-container .active-filters ul li a.hollow.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.disabled, .button.hollow.disabled:hover, .resortment-container .active-filters ul li a.hollow.disabled:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow.disabled:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow.disabled:hover, .button.hollow.disabled:focus, .resortment-container .active-filters ul li a.hollow.disabled:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow.disabled:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow.disabled:focus, .button.hollow[disabled], .resortment-container .active-filters ul li a.hollow[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow[disabled], .button.hollow[disabled]:hover, .resortment-container .active-filters ul li a.hollow[disabled]:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow[disabled]:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow[disabled]:hover, .button.hollow[disabled]:focus, .resortment-container .active-filters ul li a.hollow[disabled]:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow[disabled]:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow[disabled]:focus {
      background-color: transparent; }
    .button.hollow:hover, .resortment-container .active-filters ul li a.hollow:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow:hover, .button.hollow:focus, .resortment-container .active-filters ul li a.hollow:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow:focus {
      border-color: black;
      color: black; }
      .button.hollow:hover.disabled, .resortment-container .active-filters ul li a.hollow:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow:hover.disabled, .button.hollow:hover[disabled], .resortment-container .active-filters ul li a.hollow:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow:hover[disabled], .button.hollow:focus.disabled, .resortment-container .active-filters ul li a.hollow:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow:focus.disabled, .button.hollow:focus[disabled], .resortment-container .active-filters ul li a.hollow:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow:focus[disabled] {
        border: 2px solid black;
        color: black; }
    .button.hollow.primary, .resortment-container .active-filters ul li a.hollow.primary, .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary, .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary {
      border: 2px solid #1b3437;
      color: #1b3437; }
      .button.hollow.primary:hover, .resortment-container .active-filters ul li a.hollow.primary:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary:hover, .button.hollow.primary:focus, .resortment-container .active-filters ul li a.hollow.primary:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary:focus {
        border-color: #0e1a1c;
        color: #0e1a1c; }
        .button.hollow.primary:hover.disabled, .resortment-container .active-filters ul li a.hollow.primary:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .resortment-container .active-filters ul li a.hollow.primary:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .resortment-container .active-filters ul li a.hollow.primary:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled], .resortment-container .active-filters ul li a.hollow.primary:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.primary:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.primary:focus[disabled] {
          border: 2px solid #1b3437;
          color: #1b3437; }
    .button.hollow.secondary, .resortment-container .active-filters ul li a.hollow.secondary, .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary, .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary {
      border: 2px solid #7f948d;
      color: #7f948d; }
      .button.hollow.secondary:hover, .resortment-container .active-filters ul li a.hollow.secondary:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary:hover, .button.hollow.secondary:focus, .resortment-container .active-filters ul li a.hollow.secondary:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary:focus {
        border-color: #3f4b47;
        color: #3f4b47; }
        .button.hollow.secondary:hover.disabled, .resortment-container .active-filters ul li a.hollow.secondary:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .resortment-container .active-filters ul li a.hollow.secondary:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .resortment-container .active-filters ul li a.hollow.secondary:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled], .resortment-container .active-filters ul li a.hollow.secondary:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.secondary:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.secondary:focus[disabled] {
          border: 2px solid #7f948d;
          color: #7f948d; }
    .button.hollow.success, .resortment-container .active-filters ul li a.hollow.success, .infinite-scroll .infinite-container #infinite-handle span button.hollow.success, .infinite-scroll .infinite-container .infinite-loader span button.hollow.success {
      border: 2px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .resortment-container .active-filters ul li a.hollow.success:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow.success:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow.success:hover, .button.hollow.success:focus, .resortment-container .active-filters ul li a.hollow.success:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow.success:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.hollow.success:hover.disabled, .resortment-container .active-filters ul li a.hollow.success:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.success:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .resortment-container .active-filters ul li a.hollow.success:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.success:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .resortment-container .active-filters ul li a.hollow.success:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.success:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled], .resortment-container .active-filters ul li a.hollow.success:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.success:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.success:focus[disabled] {
          border: 2px solid #3adb76;
          color: #3adb76; }
    .button.hollow.warning, .resortment-container .active-filters ul li a.hollow.warning, .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning, .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning {
      border: 2px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .resortment-container .active-filters ul li a.hollow.warning:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning:hover, .button.hollow.warning:focus, .resortment-container .active-filters ul li a.hollow.warning:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.hollow.warning:hover.disabled, .resortment-container .active-filters ul li a.hollow.warning:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .resortment-container .active-filters ul li a.hollow.warning:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .resortment-container .active-filters ul li a.hollow.warning:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled], .resortment-container .active-filters ul li a.hollow.warning:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.warning:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.warning:focus[disabled] {
          border: 2px solid #ffae00;
          color: #ffae00; }
    .button.hollow.alert, .resortment-container .active-filters ul li a.hollow.alert, .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert, .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert {
      border: 2px solid #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .resortment-container .active-filters ul li a.hollow.alert:hover, .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert:hover, .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert:hover, .button.hollow.alert:focus, .resortment-container .active-filters ul li a.hollow.alert:focus, .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert:focus, .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.hollow.alert:hover.disabled, .resortment-container .active-filters ul li a.hollow.alert:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .resortment-container .active-filters ul li a.hollow.alert:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .resortment-container .active-filters ul li a.hollow.alert:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled], .resortment-container .active-filters ul li a.hollow.alert:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.hollow.alert:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.hollow.alert:focus[disabled] {
          border: 2px solid #cc4b37;
          color: #cc4b37; }
  .button.clear, .resortment-container .active-filters ul li a.clear, .infinite-scroll .infinite-container #infinite-handle span button.clear, .infinite-scroll .infinite-container .infinite-loader span button.clear {
    border: 2px solid black;
    color: black; }
    .button.clear, .resortment-container .active-filters ul li a.clear, .infinite-scroll .infinite-container #infinite-handle span button.clear, .infinite-scroll .infinite-container .infinite-loader span button.clear, .button.clear:hover, .resortment-container .active-filters ul li a.clear:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear:hover, .button.clear:focus, .resortment-container .active-filters ul li a.clear:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear:focus {
      background-color: transparent; }
    .button.clear.disabled, .resortment-container .active-filters ul li a.clear.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.disabled, .button.clear.disabled:hover, .resortment-container .active-filters ul li a.clear.disabled:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.disabled:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.disabled:hover, .button.clear.disabled:focus, .resortment-container .active-filters ul li a.clear.disabled:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.disabled:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.disabled:focus, .button.clear[disabled], .resortment-container .active-filters ul li a.clear[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear[disabled], .button.clear[disabled]:hover, .resortment-container .active-filters ul li a.clear[disabled]:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear[disabled]:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear[disabled]:hover, .button.clear[disabled]:focus, .resortment-container .active-filters ul li a.clear[disabled]:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear[disabled]:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear[disabled]:focus {
      background-color: transparent; }
    .button.clear:hover, .resortment-container .active-filters ul li a.clear:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear:hover, .button.clear:focus, .resortment-container .active-filters ul li a.clear:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear:focus {
      border-color: black;
      color: black; }
      .button.clear:hover.disabled, .resortment-container .active-filters ul li a.clear:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear:hover.disabled, .button.clear:hover[disabled], .resortment-container .active-filters ul li a.clear:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear:hover[disabled], .button.clear:focus.disabled, .resortment-container .active-filters ul li a.clear:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear:focus.disabled, .button.clear:focus[disabled], .resortment-container .active-filters ul li a.clear:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear:focus[disabled] {
        border: 2px solid black;
        color: black; }
    .button.clear, .resortment-container .active-filters ul li a.clear, .infinite-scroll .infinite-container #infinite-handle span button.clear, .infinite-scroll .infinite-container .infinite-loader span button.clear, .button.clear.disabled, .resortment-container .active-filters ul li a.clear.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.disabled, .button.clear[disabled], .resortment-container .active-filters ul li a.clear[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear[disabled], .button.clear:hover, .resortment-container .active-filters ul li a.clear:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear:hover, .button.clear:hover.disabled, .resortment-container .active-filters ul li a.clear:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear:hover.disabled, .button.clear:hover[disabled], .resortment-container .active-filters ul li a.clear:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear:hover[disabled], .button.clear:focus, .resortment-container .active-filters ul li a.clear:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear:focus, .button.clear:focus.disabled, .resortment-container .active-filters ul li a.clear:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear:focus.disabled, .button.clear:focus[disabled], .resortment-container .active-filters ul li a.clear:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear:focus[disabled] {
      border-color: transparent; }
    .button.clear.primary, .resortment-container .active-filters ul li a.clear.primary, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary {
      border: 2px solid #1b3437;
      color: #1b3437; }
      .button.clear.primary:hover, .resortment-container .active-filters ul li a.clear.primary:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:hover, .button.clear.primary:focus, .resortment-container .active-filters ul li a.clear.primary:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:focus {
        border-color: #0e1a1c;
        color: #0e1a1c; }
        .button.clear.primary:hover.disabled, .resortment-container .active-filters ul li a.clear.primary:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .resortment-container .active-filters ul li a.clear.primary:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .resortment-container .active-filters ul li a.clear.primary:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled], .resortment-container .active-filters ul li a.clear.primary:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:focus[disabled] {
          border: 2px solid #1b3437;
          color: #1b3437; }
      .button.clear.primary, .resortment-container .active-filters ul li a.clear.primary, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary, .button.clear.primary.disabled, .resortment-container .active-filters ul li a.clear.primary.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary.disabled, .button.clear.primary[disabled], .resortment-container .active-filters ul li a.clear.primary[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.primary[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.primary[disabled], .button.clear.primary:hover, .resortment-container .active-filters ul li a.clear.primary:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:hover, .button.clear.primary:hover.disabled, .resortment-container .active-filters ul li a.clear.primary:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .resortment-container .active-filters ul li a.clear.primary:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:hover[disabled], .button.clear.primary:focus, .resortment-container .active-filters ul li a.clear.primary:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:focus, .button.clear.primary:focus.disabled, .resortment-container .active-filters ul li a.clear.primary:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled], .resortment-container .active-filters ul li a.clear.primary:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.primary:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.primary:focus[disabled] {
        border-color: transparent; }
    .button.clear.secondary, .resortment-container .active-filters ul li a.clear.secondary, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary {
      border: 2px solid #7f948d;
      color: #7f948d; }
      .button.clear.secondary:hover, .resortment-container .active-filters ul li a.clear.secondary:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:hover, .button.clear.secondary:focus, .resortment-container .active-filters ul li a.clear.secondary:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:focus {
        border-color: #3f4b47;
        color: #3f4b47; }
        .button.clear.secondary:hover.disabled, .resortment-container .active-filters ul li a.clear.secondary:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .resortment-container .active-filters ul li a.clear.secondary:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .resortment-container .active-filters ul li a.clear.secondary:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled], .resortment-container .active-filters ul li a.clear.secondary:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:focus[disabled] {
          border: 2px solid #7f948d;
          color: #7f948d; }
      .button.clear.secondary, .resortment-container .active-filters ul li a.clear.secondary, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary, .button.clear.secondary.disabled, .resortment-container .active-filters ul li a.clear.secondary.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary.disabled, .button.clear.secondary[disabled], .resortment-container .active-filters ul li a.clear.secondary[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary[disabled], .button.clear.secondary:hover, .resortment-container .active-filters ul li a.clear.secondary:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .resortment-container .active-filters ul li a.clear.secondary:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .resortment-container .active-filters ul li a.clear.secondary:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .resortment-container .active-filters ul li a.clear.secondary:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .resortment-container .active-filters ul li a.clear.secondary:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled], .resortment-container .active-filters ul li a.clear.secondary:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.secondary:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.secondary:focus[disabled] {
        border-color: transparent; }
    .button.clear.success, .resortment-container .active-filters ul li a.clear.success, .infinite-scroll .infinite-container #infinite-handle span button.clear.success, .infinite-scroll .infinite-container .infinite-loader span button.clear.success {
      border: 2px solid #3adb76;
      color: #3adb76; }
      .button.clear.success:hover, .resortment-container .active-filters ul li a.clear.success:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:hover, .button.clear.success:focus, .resortment-container .active-filters ul li a.clear.success:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.clear.success:hover.disabled, .resortment-container .active-filters ul li a.clear.success:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .resortment-container .active-filters ul li a.clear.success:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.success:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .resortment-container .active-filters ul li a.clear.success:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:focus.disabled, .button.clear.success:focus[disabled], .resortment-container .active-filters ul li a.clear.success:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.success:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.success:focus[disabled] {
          border: 2px solid #3adb76;
          color: #3adb76; }
      .button.clear.success, .resortment-container .active-filters ul li a.clear.success, .infinite-scroll .infinite-container #infinite-handle span button.clear.success, .infinite-scroll .infinite-container .infinite-loader span button.clear.success, .button.clear.success.disabled, .resortment-container .active-filters ul li a.clear.success.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.success.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.success.disabled, .button.clear.success[disabled], .resortment-container .active-filters ul li a.clear.success[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.success[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.success[disabled], .button.clear.success:hover, .resortment-container .active-filters ul li a.clear.success:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:hover, .button.clear.success:hover.disabled, .resortment-container .active-filters ul li a.clear.success:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .resortment-container .active-filters ul li a.clear.success:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.success:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.success:hover[disabled], .button.clear.success:focus, .resortment-container .active-filters ul li a.clear.success:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:focus, .button.clear.success:focus.disabled, .resortment-container .active-filters ul li a.clear.success:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.success:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.success:focus.disabled, .button.clear.success:focus[disabled], .resortment-container .active-filters ul li a.clear.success:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.success:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.success:focus[disabled] {
        border-color: transparent; }
    .button.clear.warning, .resortment-container .active-filters ul li a.clear.warning, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning {
      border: 2px solid #ffae00;
      color: #ffae00; }
      .button.clear.warning:hover, .resortment-container .active-filters ul li a.clear.warning:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:hover, .button.clear.warning:focus, .resortment-container .active-filters ul li a.clear.warning:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.clear.warning:hover.disabled, .resortment-container .active-filters ul li a.clear.warning:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .resortment-container .active-filters ul li a.clear.warning:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .resortment-container .active-filters ul li a.clear.warning:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled], .resortment-container .active-filters ul li a.clear.warning:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:focus[disabled] {
          border: 2px solid #ffae00;
          color: #ffae00; }
      .button.clear.warning, .resortment-container .active-filters ul li a.clear.warning, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning, .button.clear.warning.disabled, .resortment-container .active-filters ul li a.clear.warning.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning.disabled, .button.clear.warning[disabled], .resortment-container .active-filters ul li a.clear.warning[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.warning[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.warning[disabled], .button.clear.warning:hover, .resortment-container .active-filters ul li a.clear.warning:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:hover, .button.clear.warning:hover.disabled, .resortment-container .active-filters ul li a.clear.warning:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .resortment-container .active-filters ul li a.clear.warning:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:hover[disabled], .button.clear.warning:focus, .resortment-container .active-filters ul li a.clear.warning:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:focus, .button.clear.warning:focus.disabled, .resortment-container .active-filters ul li a.clear.warning:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled], .resortment-container .active-filters ul li a.clear.warning:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.warning:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.warning:focus[disabled] {
        border-color: transparent; }
    .button.clear.alert, .resortment-container .active-filters ul li a.clear.alert, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert {
      border: 2px solid #cc4b37;
      color: #cc4b37; }
      .button.clear.alert:hover, .resortment-container .active-filters ul li a.clear.alert:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:hover, .button.clear.alert:focus, .resortment-container .active-filters ul li a.clear.alert:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.clear.alert:hover.disabled, .resortment-container .active-filters ul li a.clear.alert:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .resortment-container .active-filters ul li a.clear.alert:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .resortment-container .active-filters ul li a.clear.alert:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled], .resortment-container .active-filters ul li a.clear.alert:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:focus[disabled] {
          border: 2px solid #cc4b37;
          color: #cc4b37; }
      .button.clear.alert, .resortment-container .active-filters ul li a.clear.alert, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert, .button.clear.alert.disabled, .resortment-container .active-filters ul li a.clear.alert.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert.disabled, .button.clear.alert[disabled], .resortment-container .active-filters ul li a.clear.alert[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.alert[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.alert[disabled], .button.clear.alert:hover, .resortment-container .active-filters ul li a.clear.alert:hover, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:hover, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:hover, .button.clear.alert:hover.disabled, .resortment-container .active-filters ul li a.clear.alert:hover.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:hover.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .resortment-container .active-filters ul li a.clear.alert:hover[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:hover[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:hover[disabled], .button.clear.alert:focus, .resortment-container .active-filters ul li a.clear.alert:focus, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:focus, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:focus, .button.clear.alert:focus.disabled, .resortment-container .active-filters ul li a.clear.alert:focus.disabled, .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:focus.disabled, .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled], .resortment-container .active-filters ul li a.clear.alert:focus[disabled], .infinite-scroll .infinite-container #infinite-handle span button.clear.alert:focus[disabled], .infinite-scroll .infinite-container .infinite-loader span button.clear.alert:focus[disabled] {
        border-color: transparent; }
  .button.dropdown::after, .resortment-container .active-filters ul li a.dropdown::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #fff transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1.5625em; }
  .button.dropdown.hollow::after, .resortment-container .active-filters ul li a.dropdown.hollow::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown.hollow::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown.hollow::after {
    border-top-color: black; }
  .button.dropdown.hollow.primary::after, .resortment-container .active-filters ul li a.dropdown.hollow.primary::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown.hollow.primary::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown.hollow.primary::after {
    border-top-color: #1b3437; }
  .button.dropdown.hollow.secondary::after, .resortment-container .active-filters ul li a.dropdown.hollow.secondary::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown.hollow.secondary::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown.hollow.secondary::after {
    border-top-color: #7f948d; }
  .button.dropdown.hollow.success::after, .resortment-container .active-filters ul li a.dropdown.hollow.success::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown.hollow.success::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown.hollow.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after, .resortment-container .active-filters ul li a.dropdown.hollow.warning::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown.hollow.warning::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown.hollow.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after, .resortment-container .active-filters ul li a.dropdown.hollow.alert::after, .infinite-scroll .infinite-container #infinite-handle span button.dropdown.hollow.alert::after, .infinite-scroll .infinite-container .infinite-loader span button.dropdown.hollow.alert::after {
    border-top-color: #cc4b37; }
  .button.arrow-only::after, .resortment-container .active-filters ul li a.arrow-only::after, .infinite-scroll .infinite-container #infinite-handle span button.arrow-only::after, .infinite-scroll .infinite-container .infinite-loader span button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

a.button:hover, .resortment-container .active-filters ul li a:hover, a.button:focus, .resortment-container .active-filters ul li a:focus {
  text-decoration: none; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #bfbfbf;
  border-radius: 0;
  background-color: #fff;
  -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
          box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fff;
    -webkit-box-shadow: 0 0 5px #bfbfbf;
            box-shadow: 0 0 5px #bfbfbf;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }

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

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: #bfbfbf; }

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

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

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

input::placeholder,
textarea::placeholder {
  color: #bfbfbf; }

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

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

input[type='search'] {
  -webkit-box-sizing: border-box;
          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: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

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

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

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

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #bfbfbf;
  background: #f9f6f3;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: auto;
    -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
            align-self: stretch;
    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 #bfbfbf; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

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

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

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

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

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

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

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

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

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

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

.accordion-menu a {
  padding: 0.7rem 1rem; }

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem; }

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

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

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

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  left: auto;
  right: 1rem; }

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem; }

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

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

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

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

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

.submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  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; }

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1b3437;
  color: #fff; }
  .badge.primary {
    background: #1b3437;
    color: #fff; }
  .badge.secondary {
    background: #7f948d;
    color: #0a0a0a; }
  .badge.success {
    background: #3adb76;
    color: #0a0a0a; }
  .badge.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .badge.alert {
    background: #cc4b37;
    color: #fff; }

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

.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .button-group::after {
    clear: both; }
  .button-group .button, .button-group .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group a, .button-group .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group button, .button-group .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .button-group .button:last-child, .button-group .resortment-container .active-filters ul li a:last-child, .resortment-container .active-filters ul li .button-group a:last-child, .button-group .infinite-scroll .infinite-container #infinite-handle span button:last-child, .infinite-scroll .infinite-container #infinite-handle span .button-group button:last-child, .button-group .infinite-scroll .infinite-container .infinite-loader span button:last-child, .infinite-scroll .infinite-container .infinite-loader span .button-group button:last-child {
      margin-right: 0; }
  .button-group.tiny .button, .button-group.tiny .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.tiny a, .button-group.tiny .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.tiny button, .button-group.tiny .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.tiny button {
    font-size: 0.6rem; }
  .button-group.small .button, .button-group.small .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.small a, .button-group.small .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.small button, .button-group.small .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.small button {
    font-size: 0.75rem; }
  .button-group.large .button, .button-group.large .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.large a, .button-group.large .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.large button, .button-group.large .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.large button {
    font-size: 1.25rem; }
  .button-group.expanded .button, .button-group.expanded .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.expanded a, .button-group.expanded .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.expanded button, .button-group.expanded .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.expanded button {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .button-group.primary .button, .button-group.primary .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.primary a, .button-group.primary .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.primary button, .button-group.primary .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.primary button {
    background-color: #1b3437;
    color: #fff; }
    .button-group.primary .button:hover, .button-group.primary .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li .button-group.primary a:hover, .button-group.primary .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span .button-group.primary button:hover, .button-group.primary .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span .button-group.primary button:hover, .button-group.primary .button:focus, .button-group.primary .resortment-container .active-filters ul li a:focus, .resortment-container .active-filters ul li .button-group.primary a:focus, .button-group.primary .infinite-scroll .infinite-container #infinite-handle span button:focus, .infinite-scroll .infinite-container #infinite-handle span .button-group.primary button:focus, .button-group.primary .infinite-scroll .infinite-container .infinite-loader span button:focus, .infinite-scroll .infinite-container .infinite-loader span .button-group.primary button:focus {
      background-color: #162a2c;
      color: #fff; }
  .button-group.secondary .button, .button-group.secondary .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.secondary a, .button-group.secondary .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.secondary button, .button-group.secondary .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.secondary button {
    background-color: #7f948d;
    color: #0a0a0a; }
    .button-group.secondary .button:hover, .button-group.secondary .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li .button-group.secondary a:hover, .button-group.secondary .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span .button-group.secondary button:hover, .button-group.secondary .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span .button-group.secondary button:hover, .button-group.secondary .button:focus, .button-group.secondary .resortment-container .active-filters ul li a:focus, .resortment-container .active-filters ul li .button-group.secondary a:focus, .button-group.secondary .infinite-scroll .infinite-container #infinite-handle span button:focus, .infinite-scroll .infinite-container #infinite-handle span .button-group.secondary button:focus, .button-group.secondary .infinite-scroll .infinite-container .infinite-loader span button:focus, .infinite-scroll .infinite-container .infinite-loader span .button-group.secondary button:focus {
      background-color: #647871;
      color: #0a0a0a; }
  .button-group.success .button, .button-group.success .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.success a, .button-group.success .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.success button, .button-group.success .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.success button {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button-group.success .button:hover, .button-group.success .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li .button-group.success a:hover, .button-group.success .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span .button-group.success button:hover, .button-group.success .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span .button-group.success button:hover, .button-group.success .button:focus, .button-group.success .resortment-container .active-filters ul li a:focus, .resortment-container .active-filters ul li .button-group.success a:focus, .button-group.success .infinite-scroll .infinite-container #infinite-handle span button:focus, .infinite-scroll .infinite-container #infinite-handle span .button-group.success button:focus, .button-group.success .infinite-scroll .infinite-container .infinite-loader span button:focus, .infinite-scroll .infinite-container .infinite-loader span .button-group.success button:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button-group.warning .button, .button-group.warning .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.warning a, .button-group.warning .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.warning button, .button-group.warning .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.warning button {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button-group.warning .button:hover, .button-group.warning .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li .button-group.warning a:hover, .button-group.warning .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span .button-group.warning button:hover, .button-group.warning .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span .button-group.warning button:hover, .button-group.warning .button:focus, .button-group.warning .resortment-container .active-filters ul li a:focus, .resortment-container .active-filters ul li .button-group.warning a:focus, .button-group.warning .infinite-scroll .infinite-container #infinite-handle span button:focus, .infinite-scroll .infinite-container #infinite-handle span .button-group.warning button:focus, .button-group.warning .infinite-scroll .infinite-container .infinite-loader span button:focus, .infinite-scroll .infinite-container .infinite-loader span .button-group.warning button:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button-group.alert .button, .button-group.alert .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.alert a, .button-group.alert .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.alert button, .button-group.alert .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.alert button {
    background-color: #cc4b37;
    color: #fff; }
    .button-group.alert .button:hover, .button-group.alert .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li .button-group.alert a:hover, .button-group.alert .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span .button-group.alert button:hover, .button-group.alert .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span .button-group.alert button:hover, .button-group.alert .button:focus, .button-group.alert .resortment-container .active-filters ul li a:focus, .resortment-container .active-filters ul li .button-group.alert a:focus, .button-group.alert .infinite-scroll .infinite-container #infinite-handle span button:focus, .infinite-scroll .infinite-container #infinite-handle span .button-group.alert button:focus, .button-group.alert .infinite-scroll .infinite-container .infinite-loader span button:focus, .infinite-scroll .infinite-container .infinite-loader span .button-group.alert button:focus {
      background-color: #a53b2a;
      color: #fff; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.stacked a, .button-group.stacked .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked button, .button-group.stacked .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked button, .button-group.stacked-for-small .button, .button-group.stacked-for-small .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.stacked-for-small a, .button-group.stacked-for-small .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-small button, .button-group.stacked-for-small .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked-for-small button, .button-group.stacked-for-medium .button, .button-group.stacked-for-medium .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.stacked-for-medium a, .button-group.stacked-for-medium .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-medium button, .button-group.stacked-for-medium .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked-for-medium button {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked .resortment-container .active-filters ul li a:last-child, .resortment-container .active-filters ul li .button-group.stacked a:last-child, .button-group.stacked .infinite-scroll .infinite-container #infinite-handle span button:last-child, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked button:last-child, .button-group.stacked .infinite-scroll .infinite-container .infinite-loader span button:last-child, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-small .resortment-container .active-filters ul li a:last-child, .resortment-container .active-filters ul li .button-group.stacked-for-small a:last-child, .button-group.stacked-for-small .infinite-scroll .infinite-container #infinite-handle span button:last-child, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-small button:last-child, .button-group.stacked-for-small .infinite-scroll .infinite-container .infinite-loader span button:last-child, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked-for-small button:last-child, .button-group.stacked-for-medium .button:last-child, .button-group.stacked-for-medium .resortment-container .active-filters ul li a:last-child, .resortment-container .active-filters ul li .button-group.stacked-for-medium a:last-child, .button-group.stacked-for-medium .infinite-scroll .infinite-container #infinite-handle span button:last-child, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-medium button:last-child, .button-group.stacked-for-medium .infinite-scroll .infinite-container .infinite-loader span button:last-child, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked-for-medium button:last-child {
        margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .button-group.stacked-for-small .button, .button-group.stacked-for-small .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.stacked-for-small a, .button-group.stacked-for-small .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-small button, .button-group.stacked-for-small .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked-for-small button {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button, .button-group.stacked-for-medium .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.stacked-for-medium a, .button-group.stacked-for-medium .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-medium button, .button-group.stacked-for-medium .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .button-group.stacked-for-medium button {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              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, .button-group.stacked-for-small.expanded .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .button-group.stacked-for-small.expanded a, .button-group.stacked-for-small.expanded .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .button-group.stacked-for-small.expanded button, .button-group.stacked-for-small.expanded .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .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(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: white;
  color: #0a0a0a; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #d4e8ea;
    color: #0a0a0a; }
  .callout.secondary {
    background-color: #ecefee;
    color: #0a0a0a; }
  .callout.success {
    background-color: #e1faea;
    color: #0a0a0a; }
  .callout.warning {
    background-color: #fff3d9;
    color: #0a0a0a; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #0a0a0a; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.card {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #f9f6f3;
  border-radius: 0;
  background: #fff;
  -webkit-box-shadow: none;
          box-shadow: none;
  overflow: hidden;
  color: #0a0a0a; }
  .card > :last-child {
    margin-bottom: 0; }

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

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

.card-image {
  min-height: 1px; }

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

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button,
  .menu .resortment-container .active-filters ul li a,
  .resortment-container .active-filters ul li .menu a,
  .menu .infinite-scroll .infinite-container #infinite-handle span button,
  .infinite-scroll .infinite-container #infinite-handle span .menu button,
  .menu .infinite-scroll .infinite-container .infinite-loader span button,
  .infinite-scroll .infinite-container .infinite-loader span .menu button {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .menu.vertical {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .menu.expanded li {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.simple {
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media screen and (min-width: 48em) {
    .menu.ipad-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.ipad-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.ipad-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.ipad-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 40em) {
    .menu.medium-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.medium-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.medium-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.large-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.large-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-left li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg {
      margin-left: 0.25rem; }
  .menu.icon-top li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-bottom li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu .is-active > a {
    background: #1b3437;
    color: #fff; }
  .menu .active > a {
    background: #1b3437;
    color: #fff; }
  .menu.align-left {
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .menu.align-right li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .menu.align-right li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu.align-center li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }

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

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

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

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

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fff; }

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

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

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

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

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  left: auto;
  right: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #cba17d; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  right: auto;
  left: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #cba17d transparent transparent; }

.drilldown .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 #1b3437 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 #bfbfbf;
  border-radius: 0;
  background-color: white;
  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: #cba17d transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px; }

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

.dropdown.menu .is-active > a {
  background: transparent;
  color: #1b3437; }

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

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

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

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

.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 {
  right: auto;
  left: 5px;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #cba17d 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 #cba17d; }

@media screen and (min-width: 48em) {
  .dropdown.menu.ipad-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.ipad-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.ipad-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.ipad-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: #cba17d transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.ipad-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.ipad-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .dropdown.menu.ipad-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.ipad-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.ipad-vertical > li.opens-left > a::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #cba17d transparent transparent; }
  .dropdown.menu.ipad-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 #cba17d; } }

@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: #cba17d transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .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 {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #cba17d 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 #cba17d; } }

@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: #cba17d transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .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 {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #cba17d 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 #cba17d; } }

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

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

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

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #bfbfbf;
  background: #fff; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #cba17d 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 #cba17d; }
  .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: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1b3437;
  color: #fff; }
  .label.primary {
    background: #1b3437;
    color: #fff; }
  .label.secondary {
    background: #7f948d;
    color: #0a0a0a; }
  .label.success {
    background: #3adb76;
    color: #0a0a0a; }
  .label.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .label.alert {
    background: #cc4b37;
    color: #fff; }

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

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

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

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

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

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

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

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 420px;
  -webkit-transform: translateX(-420px);
          transform: translateX(-420px); }
  @media print, screen and (min-width: 40em) {
    .position-left {
      width: 600px;
      -webkit-transform: translateX(-600px);
              transform: translateX(-600px); } }
  .off-canvas-content .off-canvas.position-left {
    -webkit-transform: translateX(-420px);
            transform: translateX(-420px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content .off-canvas.position-left {
        -webkit-transform: translateX(-600px);
                transform: translateX(-600px); } }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    -webkit-transform: translateX(420px);
            transform: translateX(420px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content.is-open-left.has-transition-push {
        -webkit-transform: translateX(600px);
                transform: translateX(600px); } }
  .position-left.is-transition-push {
    -webkit-box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 420px;
  -webkit-transform: translateX(420px);
          transform: translateX(420px); }
  @media print, screen and (min-width: 40em) {
    .position-right {
      width: 600px;
      -webkit-transform: translateX(600px);
              transform: translateX(600px); } }
  .off-canvas-content .off-canvas.position-right {
    -webkit-transform: translateX(420px);
            transform: translateX(420px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content .off-canvas.position-right {
        -webkit-transform: translateX(600px);
                transform: translateX(600px); } }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    -webkit-transform: translateX(-420px);
            transform: translateX(-420px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content.is-open-right.has-transition-push {
        -webkit-transform: translateX(-600px);
                transform: translateX(-600px); } }
  .position-right.is-transition-push {
    -webkit-box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px); }
  @media print, screen and (min-width: 40em) {
    .position-top {
      height: 600px;
      -webkit-transform: translateY(-600px);
              transform: translateY(-600px); } }
  .off-canvas-content .off-canvas.position-top {
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content .off-canvas.position-top {
        -webkit-transform: translateY(-600px);
                transform: translateY(-600px); } }
    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-top.has-transition-push {
    -webkit-transform: translateY(250px);
            transform: translateY(250px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content.is-open-top.has-transition-push {
        -webkit-transform: translateY(600px);
                transform: translateY(600px); } }
  .position-top.is-transition-push {
    -webkit-box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(250px);
          transform: translateY(250px); }
  @media print, screen and (min-width: 40em) {
    .position-bottom {
      height: 600px;
      -webkit-transform: translateY(600px);
              transform: translateY(600px); } }
  .off-canvas-content .off-canvas.position-bottom {
    -webkit-transform: translateY(250px);
            transform: translateY(250px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content .off-canvas.position-bottom {
        -webkit-transform: translateY(600px);
                transform: translateY(600px); } }
    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-bottom.has-transition-push {
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px); }
    @media print, screen and (min-width: 40em) {
      .off-canvas-content.is-open-bottom.has-transition-push {
        -webkit-transform: translateY(-600px);
                transform: translateY(-600px); } }
  .position-bottom.is-transition-push {
    -webkit-box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }

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

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

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

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

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

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

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

.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(10, 10, 10, 0.5);
  color: #fff; }

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

.orbit-previous {
  left: 0; }

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

.orbit-bullets {
  position: relative;
  margin-top: 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: #bfbfbf; }
    .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: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    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: 0;
    color: #0a0a0a; }
    .pagination a:hover,
    .pagination button:hover {
      background: #f9f6f3; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #1b3437;
    color: #fff;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #bfbfbf;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #0a0a0a; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab'; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb'; }

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #bfbfbf; }
  .progress.primary .progress-meter {
    background-color: #1b3437; }
  .progress.secondary .progress-meter {
    background-color: #7f948d; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #cc4b37; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1b3437; }

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

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

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

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1b3437;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #172c2f; }
  .slider-handle.is-dragging {
    -webkit-transition: all 0s linear;
    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;
  -webkit-transform: scale(1, -1);
          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;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }

.sticky-container {
  position: relative; }

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

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

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

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(255, 255, 255, 0.45);
  overflow-y: scroll; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 0;
  border: none;
  border-radius: 0;
  background-color: black;
  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 {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 92rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 92rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 92rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 92rem; } }
  .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: #fff;
  -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: 0;
  background: #bfbfbf;
  -webkit-transition: all 0.25s ease-out;
  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;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fff;
    -webkit-transition: all 0.25s ease-out;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #1b3437; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-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: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f2f2f2;
    background-color: #fff; }
  caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  thead {
    background: #f9f9f9;
    color: #0a0a0a; }
  tfoot {
    background: #f2f2f2;
    color: #0a0a0a; }
  thead tr,
  tfoot tr {
    background: transparent; }
  thead th,
  thead td,
  tfoot th,
  tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  tbody th,
  tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f2f2f2; }
  table.unstriped tbody {
    background-color: #fff; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f2f2f2;
      background-color: #fff; }

@media screen and (max-width: 47.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: #f4f4f4; }

table.hover tfoot tr:hover {
  background-color: #ededed; }

table.hover tbody tr:hover {
  background-color: #fafafa; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ededed; }

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

.tabs {
  margin: 0;
  border: 1px solid #f9f6f3;
  background: #fff;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .tabs::after {
    clear: both; }

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

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

.tabs.primary {
  background: #1b3437; }
  .tabs.primary > li > a {
    color: #fff; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #224245; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    font-size: 0.75rem;
    line-height: 1;
    color: #1b3437; }
    .tabs-title > a:hover {
      background: #fff;
      color: #172d2f; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #f9f6f3;
      color: #1b3437; }

.tabs-content {
  border: 1px solid #f9f6f3;
  border-top: 0;
  background: #fff;
  color: #0a0a0a;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease; }

.tabs-content.vertical {
  border: 1px solid #f9f6f3;
  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 #fff;
  border-radius: 0;
  -webkit-box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
          box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0; }

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

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fff;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

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

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

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

.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: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fff; }
  .tooltip::before {
    position: absolute; }
  .tooltip.bottom::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-top-width: 0;
    border-bottom-style: solid;
    border-color: transparent transparent #0a0a0a;
    bottom: 100%; }
  .tooltip.bottom.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-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: #0a0a0a transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.top.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
  .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 #0a0a0a;
    left: 100%; }
  .tooltip.left.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
            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 #0a0a0a transparent transparent;
    right: 100%;
    left: auto; }
  .tooltip.right.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.align-top::before {
    bottom: auto;
    top: 10%; }
  .tooltip.align-bottom::before {
    bottom: 10%;
    top: auto; }
  .tooltip.align-left::before {
    left: 10%;
    right: auto; }
  .tooltip.align-right::before {
    left: auto;
    right: 10%; }

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

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

.top-bar-left,
.top-bar-right {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          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 screen and (min-width: 48em) {
  .hide-for-ipad {
    display: none !important; } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 48em) {
  .ipad-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .ipad-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .ipad-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .ipad-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .ipad-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .ipad-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

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

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

.flex-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

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

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

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

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

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

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

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

@media screen and (min-width: 48em) {
  .ipad-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .ipad-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .ipad-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .ipad-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .ipad-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .ipad-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .ipad-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .ipad-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * 01. Spacing
 * 02. Placeholder
 * 03. Global Forms
 * 04. Icon Font
 * 05. Display Heading
 * 06. Post Subtitle
 */
@font-face {
  font-family: "undark";
  src: url("../assets/fonts/undark.eot?ff5br1");
  src: url("../assets/fonts/undark.eot?ff5br1#iefix") format("embedded-opentype"), url("../assets/fonts/undark.woff2?ff5br1") format("woff2"), url("../assets/fonts/undark.ttf?ff5br1") format("truetype"), url("../assets/fonts/undark.woff?ff5br1") format("woff"), url("../assets/fonts/undark.svg?ff5br1#undark") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block; }

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "undark" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-close:before {
  content: ""; }

.icon-facebook:before {
  content: ""; }

.icon-twitter:before {
  content: ""; }

.icon-vimeo:before {
  content: ""; }

.icon-reddit:before {
  content: ""; }

.icon-flipboard:before {
  content: ""; }

.icon-pocket:before {
  content: ""; }

.icon-hamburger:before {
  content: ""; }

.icon-podcast:before {
  content: ""; }

.icon-play:before {
  content: ""; }

.icon-arrow-left:before {
  content: ""; }

.icon-arrow-right:before {
  content: ""; }

.icon-arrow-up:before {
  content: ""; }

.icon-arrow-down:before {
  content: ""; }

.icon-plus:before {
  content: ""; }

.icon-download:before {
  content: ""; }

.icon-comment:before {
  content: ""; }

.icon-republish-top:before {
  content: ""; }

.icon-republish-bottom:before {
  content: ""; }

/**
 * 01. Headers
 * 02. Buttons
 * 03. Helpers
 * 04. Pull Quotes (Now Inline Pull Quotes)
 * 05. Chapter Breaks
 */
p {
  font-size: 1.125rem;
  line-height: 1.6; }

h1 {
  font-weight: 600; }

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

h5 {
  line-height: 1.1875rem; }

h5, h6 {
  font-family: "Raleway", Arial, sans-serif; }

.display-heading {
  font-family: "Raleway", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase; }

.button.white, .resortment-container .active-filters ul li a.white, .infinite-scroll .infinite-container #infinite-handle span button.white, .infinite-scroll .infinite-container .infinite-loader span button.white {
  background-color: #fff;
  color: #0a0a0a; }

.font-sans {
  font-family: "Raleway", Arial, sans-serif; }

.font-medium {
  font-weight: 600; }

.font-bold {
  font-weight: 700; }

.text-underline {
  text-decoration: underline; }

.font-italic {
  font-style: italic; }

.font-small {
  font-size: 13px; }

.dropcap,
.drop-cap {
  font-family: "Raleway", Arial, sans-serif;
  font-size: 3.5rem;
  font-weight: 700;
  position: absolute;
  margin-left: -4rem;
  line-height: 2.5rem;
  margin-top: .5rem;
  width: 56px;
  text-align: center; }
  .dropcap:before,
  .drop-cap:before {
    content: "";
    border: 1px solid #cba17d;
    border-radius: 100px;
    position: absolute;
    z-index: -1;
    height: 115px;
    width: 115px;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }
  @media screen and (max-width: 63.9375em) {
    .dropcap,
    .drop-cap {
      float: left;
      font-size: 1.75rem;
      line-height: 2.25rem;
      margin-left: 0;
      padding: 1rem 1rem 1rem 0;
      position: relative;
      width: 68px;
      text-align: center;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .dropcap:before,
      .drop-cap:before {
        height: 65px;
        width: 65px;
        left: 0;
        top: 0;
        -webkit-transform: none;
                transform: none; } }

.bolded {
  font-family: "Raleway", Arial, sans-serif;
  font-size: .875rem;
  font-weight: 700;
  text-transform: uppercase; }

.undark-pull-quote, .undark-inline-quote {
  border-top: 1px solid #e5dfd9;
  border-bottom: 1px solid #e5dfd9;
  margin: 2rem 0;
  font-family: "Raleway", Arial, sans-serif;
  clear: both; }
  .undark-pull-quote .undark-quote, .undark-inline-quote .undark-quote {
    margin: 1rem 0; }

.hr-separator {
  background-image: url("../assets/img/nudots.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: contain;
  display: block;
  height: 8px;
  border: 0;
  position: relative; }

.chapter-break {
  width: 100%;
  display: block;
  text-align: center;
  margin: 4rem 0; }
  .chapter-break strong {
    font-family: "Raleway", Arial, sans-serif;
    font-weight: 700;
    color: white;
    text-shadow: -1px -1px 0 #cba17d, 1px -1px 0 #cba17d, -1px 1px 0 #cba17d, 1px 1px 0 #cba17d;
    padding: 0 0 10px 0;
    font-size: 200px;
    line-height: 160px;
    text-align: center;
    width: 100%;
    display: block; }
  .chapter-break span {
    display: inline-block;
    font-size: .875rem;
    font-weight: 700;
    border-top: 1px solid #e5dfd9;
    margin-top: 1rem;
    padding-top: .75rem;
    text-transform: capitalize; }

/**
 * 00. Global Gravity
 * 01. Ajax Form Spinner
 * 02. Desk Overlay Newsletter
 * 03. Basic Form
 * 04. Submission
 */
@media screen and (min-width: 40em) {
  .gform_wrapper ul.gform_fields li.half-width, .gform_wrapper ul.gform_fields li.half_width {
    width: 50%;
    float: left;
    clear: none !important; }
  .gform_wrapper ul.gform_fields .gfield:not(.half-width) {
    clear: both; } }

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

.gform_wrapper textarea {
  height: 120px; }
  .gform_wrapper textarea.small {
    height: 80px; }

.gform_wrapper ul.gform_fields li {
  margin: 0 0 1rem !important; }
  @media screen and (min-width: 40em) {
    .gform_wrapper ul.gform_fields li {
      padding-right: 1rem; } }

.gform_wrapper ul.gform_fields label {
  color: #1b3437;
  font-weight: 600; }

.gform_wrapper ul.gform_fields select, .gform_wrapper ul.gform_fields input, .gform_wrapper ul.gform_fields textarea {
  outline: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  line-height: 1.125rem;
  margin: 0 !important; }
  .gform_wrapper ul.gform_fields select::-webkit-input-placeholder, .gform_wrapper ul.gform_fields input::-webkit-input-placeholder, .gform_wrapper ul.gform_fields textarea::-webkit-input-placeholder {
    opacity: 1; }
  .gform_wrapper ul.gform_fields select:-moz-placeholder, .gform_wrapper ul.gform_fields input:-moz-placeholder, .gform_wrapper ul.gform_fields textarea:-moz-placeholder {
    /* Firefox 18- */
    opacity: 1; }
  .gform_wrapper ul.gform_fields select::-moz-placeholder, .gform_wrapper ul.gform_fields input::-moz-placeholder, .gform_wrapper ul.gform_fields textarea::-moz-placeholder {
    /* Firefox 19+ */
    opacity: 1; }
  .gform_wrapper ul.gform_fields select:-ms-input-placeholder, .gform_wrapper ul.gform_fields input:-ms-input-placeholder, .gform_wrapper ul.gform_fields textarea:-ms-input-placeholder {
    opacity: 1; }

.gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"] {
  vertical-align: top;
  padding-top: 0;
  margin-top: 4px;
  opacity: 0;
  display: none; }
  .gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"] + label {
    position: relative;
    padding-left: 2rem; }
    .gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"] + label:before, .gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"] + label:after {
      content: "";
      display: block;
      border-radius: 100px;
      position: absolute; }
    .gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"] + label:before {
      height: 20px;
      width: 20px;
      border: 4px solid #f9f6f3;
      border-width: 3px;
      top: 0;
      left: 0; }
    .gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"] + label:after {
      height: 10px;
      width: 10px;
      background-color: transparent;
      top: 5px;
      left: 5px; }
  .gform_wrapper ul.gform_fields ul.gfield_radio input[type="radio"]:checked + label:after {
    background-color: #cba17d; }

.gform_wrapper ul.gform_fields ul.gfield_radio label {
  font-weight: 400 !important; }

@media screen and (min-width: 40em) {
  .gform_wrapper .gform_footer {
    padding-right: 1rem; } }

.gform_wrapper .gform_footer input {
  margin-bottom: 0;
  margin-top: .5rem; }

.gform_wrapper .gform_footer input[type="submit"][disabled] {
  background: #8a8a8a;
  border-color: #8a8a8a; }

.gform_wrapper.gform_validation_error .validation_error {
  color: #7f948d;
  font-weight: 600;
  font-size: 0.8125rem;
  margin-bottom: 1rem;
  background: none !important;
  border: none !important; }

.gform_wrapper.gform_validation_error li.gfield.gfield_error {
  border: none !important;
  background-color: transparent;
  padding-top: 0 !important;
  padding-bottom: 0 !important; }
  .gform_wrapper.gform_validation_error li.gfield.gfield_error .ginput_container {
    margin-top: 0 !important; }
  .gform_wrapper.gform_validation_error li.gfield.gfield_error label {
    margin-top: 0 !important; }
  .gform_wrapper.gform_validation_error li.gfield.gfield_error input, .gform_wrapper.gform_validation_error li.gfield.gfield_error textarea {
    border: 4px solid #f9f6f3 !important;
    border-color: #CB0000 !important;
    margin-bottom: 0; }
  .gform_wrapper.gform_validation_error li.gfield.gfield_error .gfield_description.validation_message {
    background-color: #CB0000;
    color: #fff;
    font-size: .875rem;
    width: 100% !important;
    padding: .25rem .5rem !important;
    margin: 0 0 1rem 0; }
    .gform_wrapper.gform_validation_error li.gfield.gfield_error .gfield_description.validation_message a {
      color: #fff;
      text-decoration: underline; }

.gform_validation_container,
.gform_wrapper .gform_validation_container,
body .gform_wrapper .gform_body ul.gform_fields li.gfield.gform_validation_container,
body .gform_wrapper li.gform_validation_container,
body .gform_wrapper ul.gform_fields li.gfield.gform_validation_container {
  display: none !important;
  position: absolute !important;
  left: -9000px !important; }

@-webkit-keyframes rotatingSpinner {
  0% {
    -webkit-transform: rotate(0deg) translate(0, -50%);
            transform: rotate(0deg) translate(0, -50%); }
  100% {
    -webkit-transform: rotate(360deg) translate(0, -50%);
            transform: rotate(360deg) translate(0, -50%); } }

@keyframes rotatingSpinner {
  0% {
    -webkit-transform: rotate(0deg) translate(0, -50%);
            transform: rotate(0deg) translate(0, -50%); }
  100% {
    -webkit-transform: rotate(360deg) translate(0, -50%);
            transform: rotate(360deg) translate(0, -50%); } }

.newsletter-signup .newsletter-content {
  position: relative; }

.newsletter-signup .newsletter-signup-title {
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding-right: 100px; }

.newsletter-signup .newsletter-tagline {
  color: #cba17d;
  font-family: "Raleway", Arial, sans-serif;
  font-size: .75rem;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  width: 60px;
  position: absolute;
  top: -1.5rem;
  right: -.25rem; }
  .newsletter-signup .newsletter-tagline:before {
    content: '';
    position: absolute;
    height: 80px;
    width: 80px;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    border: 1px solid #cba17d;
    border-radius: 100px; }
  @media print, screen and (min-width: 64em) {
    .newsletter-signup .newsletter-tagline {
      top: -3.25rem;
      right: -1rem; }
      .newsletter-signup .newsletter-tagline:before {
        height: 100px;
        width: 100px; } }
  #desktop-menu-overlay .newsletter-signup .newsletter-tagline {
    display: none; }

@media print, screen and (min-width: 64em) {
  #footer .newsletter-signup {
    margin-top: -8rem; }
    #footer .newsletter-signup .newsletter-signup-title {
      margin-bottom: 6rem; } }

#desktop-menu-overlay .newsletter-signup-form,
#footer .newsletter-signup-form,
.newsletter-block-shortcode .newsletter-signup-form {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  border-bottom: 3px solid #0a0a0a;
  padding-left: 0; }
  #desktop-menu-overlay .newsletter-signup-form ul.gform_fields li.gfield,
  #footer .newsletter-signup-form ul.gform_fields li.gfield,
  .newsletter-block-shortcode .newsletter-signup-form ul.gform_fields li.gfield {
    margin-bottom: 0 !important;
    padding-right: 0; }
  #desktop-menu-overlay .newsletter-signup-form .gform_body,
  #desktop-menu-overlay .newsletter-signup-form .gform_footer,
  #footer .newsletter-signup-form .gform_body,
  #footer .newsletter-signup-form .gform_footer,
  .newsletter-block-shortcode .newsletter-signup-form .gform_body,
  .newsletter-block-shortcode .newsletter-signup-form .gform_footer {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    min-height: 0px;
    min-width: 0px;
    width: auto; }
  #desktop-menu-overlay .newsletter-signup-form .gform_body,
  #footer .newsletter-signup-form .gform_body,
  .newsletter-block-shortcode .newsletter-signup-form .gform_body {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
    #desktop-menu-overlay .newsletter-signup-form .gform_body input,
    #footer .newsletter-signup-form .gform_body input,
    .newsletter-block-shortcode .newsletter-signup-form .gform_body input {
      background-color: transparent;
      border: none;
      font-size: 22px;
      line-height: 32px;
      min-height: 32px;
      margin: 0;
      padding-left: 0; }
      #desktop-menu-overlay .newsletter-signup-form .gform_body input::-webkit-input-placeholder,
      #footer .newsletter-signup-form .gform_body input::-webkit-input-placeholder,
      .newsletter-block-shortcode .newsletter-signup-form .gform_body input::-webkit-input-placeholder {
        color: #0a0a0a; }
      #desktop-menu-overlay .newsletter-signup-form .gform_body input:-moz-placeholder,
      #footer .newsletter-signup-form .gform_body input:-moz-placeholder,
      .newsletter-block-shortcode .newsletter-signup-form .gform_body input:-moz-placeholder {
        /* Firefox 18- */
        color: #0a0a0a; }
      #desktop-menu-overlay .newsletter-signup-form .gform_body input::-moz-placeholder,
      #footer .newsletter-signup-form .gform_body input::-moz-placeholder,
      .newsletter-block-shortcode .newsletter-signup-form .gform_body input::-moz-placeholder {
        /* Firefox 19+ */
        color: #0a0a0a; }
      #desktop-menu-overlay .newsletter-signup-form .gform_body input:-ms-input-placeholder,
      #footer .newsletter-signup-form .gform_body input:-ms-input-placeholder,
      .newsletter-block-shortcode .newsletter-signup-form .gform_body input:-ms-input-placeholder {
        color: #0a0a0a; }
      @media screen and (min-width: 850px) {
        #desktop-menu-overlay .newsletter-signup-form .gform_body input,
        #footer .newsletter-signup-form .gform_body input,
        .newsletter-block-shortcode .newsletter-signup-form .gform_body input {
          font-size: 36px;
          line-height: 46px;
          min-height: 46px; } }
  #desktop-menu-overlay .newsletter-signup-form .gform_footer,
  #footer .newsletter-signup-form .gform_footer,
  .newsletter-block-shortcode .newsletter-signup-form .gform_footer {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    margin: 0;
    padding: 0; }
  #desktop-menu-overlay .newsletter-signup-form .button, #desktop-menu-overlay .newsletter-signup-form .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li #desktop-menu-overlay .newsletter-signup-form a, #desktop-menu-overlay .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span #desktop-menu-overlay .newsletter-signup-form button, #desktop-menu-overlay .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span #desktop-menu-overlay .newsletter-signup-form button,
  #footer .newsletter-signup-form .button,
  #footer .newsletter-signup-form .resortment-container .active-filters ul li a,
  .resortment-container .active-filters ul li #footer .newsletter-signup-form a,
  #footer .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button,
  .infinite-scroll .infinite-container #infinite-handle span #footer .newsletter-signup-form button,
  #footer .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button,
  .infinite-scroll .infinite-container .infinite-loader span #footer .newsletter-signup-form button,
  .newsletter-block-shortcode .newsletter-signup-form .button,
  .newsletter-block-shortcode .newsletter-signup-form .resortment-container .active-filters ul li a,
  .resortment-container .active-filters ul li .newsletter-block-shortcode .newsletter-signup-form a,
  .newsletter-block-shortcode .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button,
  .infinite-scroll .infinite-container #infinite-handle span .newsletter-block-shortcode .newsletter-signup-form button,
  .newsletter-block-shortcode .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button,
  .infinite-scroll .infinite-container .infinite-loader span .newsletter-block-shortcode .newsletter-signup-form button {
    background: transparent;
    color: #0a0a0a;
    margin-bottom: 0;
    padding-right: 0;
    padding-bottom: .5rem; }
    #desktop-menu-overlay .newsletter-signup-form .button:hover, #desktop-menu-overlay .newsletter-signup-form .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li #desktop-menu-overlay .newsletter-signup-form a:hover, #desktop-menu-overlay .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span #desktop-menu-overlay .newsletter-signup-form button:hover, #desktop-menu-overlay .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span #desktop-menu-overlay .newsletter-signup-form button:hover,
    #footer .newsletter-signup-form .button:hover,
    #footer .newsletter-signup-form .resortment-container .active-filters ul li a:hover,
    .resortment-container .active-filters ul li #footer .newsletter-signup-form a:hover,
    #footer .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button:hover,
    .infinite-scroll .infinite-container #infinite-handle span #footer .newsletter-signup-form button:hover,
    #footer .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button:hover,
    .infinite-scroll .infinite-container .infinite-loader span #footer .newsletter-signup-form button:hover,
    .newsletter-block-shortcode .newsletter-signup-form .button:hover,
    .newsletter-block-shortcode .newsletter-signup-form .resortment-container .active-filters ul li a:hover,
    .resortment-container .active-filters ul li .newsletter-block-shortcode .newsletter-signup-form a:hover,
    .newsletter-block-shortcode .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button:hover,
    .infinite-scroll .infinite-container #infinite-handle span .newsletter-block-shortcode .newsletter-signup-form button:hover,
    .newsletter-block-shortcode .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button:hover,
    .infinite-scroll .infinite-container .infinite-loader span .newsletter-block-shortcode .newsletter-signup-form button:hover {
      border-color: transparent;
      color: #cba17d; }

.gform_validation_error .newsletter-signup-form .gfield.gfield_error input {
  margin-top: 1rem !important; }

.newsletter-signup-form > .validation_error {
  display: none; }

.newsletter-signup-form .validation_message {
  margin-bottom: 0 !important; }

.newsletter-block-shortcode .newsletter-signup {
  background-image: url("../images/u-outline@2x.png");
  background-position: -35px 30px;
  background-repeat: no-repeat;
  background-size: contain;
  margin-top: 4rem;
  margin-bottom: 4rem;
  padding-left: 22%; }
  @media print, screen and (min-width: 64em) {
    .newsletter-block-shortcode .newsletter-signup {
      background-position: -50px 40px;
      margin-left: -8rem;
      margin-right: -8rem; } }

.basic-form_wrapper.gform_wrapper form:not([class*="background-"]) .gform_fields {
  margin: 0 -.5rem !important;
  padding: 0; }

.basic-form_wrapper.gform_wrapper form[class*="background-"] .gform_heading {
  padding: 1rem 1rem 0; }

.basic-form_wrapper.gform_wrapper form[class*="background-"] .gform_footer {
  padding: 0 1rem 1rem; }

.basic-form_wrapper.gform_wrapper .gform_heading .gform_title {
  font-family: "Raleway", Arial, sans-serif;
  margin-bottom: 0; }

.basic-form_wrapper.gform_wrapper .gform_fields {
  padding: 0 .5rem; }
  .basic-form_wrapper.gform_wrapper .gform_fields .gfield {
    padding: 0 .5rem; }
    .basic-form_wrapper.gform_wrapper .gform_fields .gfield:not(.full-width):not(.newsletter-signup) {
      clear: none;
      float: left;
      width: 50%; }
    .basic-form_wrapper.gform_wrapper .gform_fields .gfield .ginput_container input[type="text"] {
      width: 100%; }

body .gform_wrapper .form_saved_message {
  background-color: #f9f6f3;
  color: #0a0a0a; }
  body .gform_wrapper .form_saved_message input[type="submit"] {
    background: black !important;
    border: none !important;
    border-radius: 0 !important; }

body .form_saved_message_sent {
  background: #f9f6f3;
  color: #0a0a0a; }

/*
 * 01. Form Styles
 * 02. Filter Bubble Styles
 * 03. Results Container Styles
 */
.resortment-container .hidden {
  display: none; }

.resortment-container form select, .resortment-container form .select2-selection.select2-selection--single, .resortment-container form .filter-search {
  border: 4px solid #f9f6f3;
  border-radius: 0;
  border-width: 3px;
  height: 46px;
  outline: none !important;
  max-width: 100%;
  font-weight: 600;
  font-size: .875rem;
  padding-right: 40px;
  background: #fff;
  -webkit-box-shadow: none !important;
          box-shadow: none !important; }
  .resortment-container form select:active, .resortment-container form .select2-selection.select2-selection--single:active, .resortment-container form .filter-search:active {
    border: 4px solid #f9f6f3 !important; }

.resortment-container form .select2-container, .resortment-container form .search-box {
  margin-bottom: 1rem; }

.resortment-container form select {
  padding-right: 31px; }

.resortment-container form .filter-search:active {
  border-color: #1b3437; }

.resortment-container form .search-container {
  position: relative; }
  .resortment-container form .search-container .search-button {
    position: absolute;
    top: 3px;
    right: 3px;
    height: 40px;
    width: 40px;
    padding: 0;
    border: none;
    background-color: transparent;
    color: #1b3437;
    cursor: pointer;
    font-size: 1.125rem; }

.resortment-container form .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #1b3437; }

.resortment-container form .select2-container {
  outline: none !important;
  max-width: 100%;
  width: 100% !important; }

.resortment-container form .select2-selection.select2-selection--single .select2-selection__rendered {
  height: 40px;
  line-height: 40px; }

.resortment-container form .select2-selection.select2-selection--single .select2-selection__arrow {
  top: 3px;
  right: 3px;
  width: 40px;
  height: 40px; }

@media screen and (min-width: 40em) {
  .resortment-container .filtering-container {
    position: relative;
    min-height: 42px; }
    .resortment-container .filtering-container .found-posts {
      position: absolute;
      top: 0;
      right: 0; } }

.resortment-container .active-filters ul {
  list-style: none;
  margin-left: 0; }
  .resortment-container .active-filters ul li {
    display: inline-block; }
    .resortment-container .active-filters ul li a {
      padding-left: 1rem;
      padding-right: 1rem;
      margin-bottom: .5rem;
      margin-right: .5rem; }
      .resortment-container .active-filters ul li a:after {
        font-family: 'undark' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        font-size: 10px;
        vertical-align: middle;
        margin-left: .75rem;
        display: inline-block;
        margin-top: -1px; }

.resortment-container .no-results {
  margin: 1rem auto;
  font-size: 1.4375rem; }

body.admin-bar > .select2-container--open {
  margin-top: 32px; }
  @media screen and (max-width: 48.875em) {
    body.admin-bar > .select2-container--open {
      margin-top: 46px; } }

.select2-container--default .select2-dropdown {
  border: 4px solid #f9f6f3;
  border-radius: 0;
  border-width: 3px; }
  .select2-container--default .select2-dropdown .select2-results__option--highlighted[aria-selected] {
    background-color: #cba17d; }

.select2-container--default .select2-selection--single .select2-selection__arrow:before {
  font-family: 'undark' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: .5rem;
  color: #1b3437; }

.select2-container--default .select2-selection--single .select2-selection__arrow b {
  display: none; }

/**
 * 01. Jetpack
 */
.sharedaddy .sd-social .sd-content {
  margin: 30px 0; }
  .sharedaddy .sd-social .sd-content li[class*="share-"] {
    display: inline-block;
    margin: 0; }
    .sharedaddy .sd-social .sd-content li[class*="share-"] .share-icon.sd-button {
      background: black !important;
      border: 1px solid white;
      color: #fff !important;
      display: block;
      height: 40px;
      width: 40px;
      margin: 0 6px 5px;
      position: relative;
      top: 0 !important; }
      .sharedaddy .sd-social .sd-content li[class*="share-"] .share-icon.sd-button:after {
        font-family: 'undark' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        height: 40px;
        line-height: 40px;
        text-align: center;
        width: 40px;
        position: absolute;
        left: 0;
        top: 0; }
  .sharedaddy .sd-social .sd-content li[class*="share-custom-"] span[style*="background-image"] {
    display: none; }

.sharedaddy .sd-social .sd-content .share-facebook .share-icon:after {
  content: ""; }

.sharedaddy .sd-social .sd-content .share-twitter .share-icon:after {
  content: ""; }

.sharedaddy .sd-social .sd-content .share-reddit .share-icon:after {
  content: ""; }

.sharedaddy .sd-social .sd-content .share-custom-flipboard .share-icon:after {
  content: ""; }

.sharedaddy .sd-social .sd-content .share-pocket .share-icon:after {
  content: ""; }

.wpgmza_markerbox p {
  font-size: .7rem;
  line-height: 1rem; }

.wpgmza_map {
  margin-bottom: 1rem !important; }

/**
 * 00. Display & Media Queries
 * 01. Colors
 * 02. Spacing
 * 03. Container
 * 04. Min and Max
 * 05. Vertical Label
 * 06. Horizontal Label
 * 07. Headline Label
 * 08. Background Image
 * 09. Logo Background
 */
@media print, screen and (min-width: 40em) {
  body {
    padding-top: 3.25rem; } }

@media print, screen and (min-width: 40em) {
  body:not(.home) {
    padding-top: 7.75rem; } }

.inline {
  display: inline; }

.inline-block {
  display: inline-block; }

.show-for-mobile {
  display: none; }

.show-for-desktop {
  display: block; }

@media screen and (max-width: 768px) {
  .show-for-mobile {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .show-for-desktop {
    display: none; } }

@media screen and (min-width: 769px) {
  .show-for-ipad-up {
    display: none !important; }
  .hide-for-ipad-up {
    display: none !important; } }

@media screen and (max-width: 768px) {
  .hide-for-ipad-down {
    display: none !important; } }

@media screen and (max-width: 1024px) and (min-width: 768px) {
  .grid-x > .ipad-medium-1 {
    width: 8.33333%; }
  .grid-x > .ipad-medium-2 {
    width: 16.66667%; }
  .grid-x > .ipad-medium-3 {
    width: 25%; }
  .grid-x > .ipad-medium-4 {
    width: 33.33333%; }
  .grid-x > .ipad-medium-5 {
    width: 41.66667%; }
  .grid-x > .ipad-medium-6 {
    width: 50%; }
  .grid-x > .ipad-medium-7 {
    width: 58.33333%; }
  .grid-x > .ipad-medium-8 {
    width: 66.66667%; }
  .grid-x > .ipad-medium-9 {
    width: 75%; }
  .grid-x > .ipad-medium-10 {
    width: 83.33333%; }
  .grid-x > .ipad-medium-11 {
    width: 91.66667%; }
  .grid-x > .ipad-medium-12 {
    width: 100%; } }

.float-left {
  float: left; }

.float-right {
  float: right; }

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

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -webkit-flex-basis: 0;
      -ms-flex-preferred-size: 0;
          flex-basis: 0;
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

.background-cover {
  background-size: cover;
  background-position: center center; }

.background-primary {
  background-color: #1b3437; }

.color-primary, .color-primary:focus {
  color: #1b3437; }

.links-primary a, .links-primary a:focus {
  color: #1b3437 !important; }

.bullet-color-primary li:before {
  color: #1b3437 !important; }

.background-secondary {
  background-color: #7f948d; }

.color-secondary, .color-secondary:focus {
  color: #7f948d; }

.links-secondary a, .links-secondary a:focus {
  color: #7f948d !important; }

.bullet-color-secondary li:before {
  color: #7f948d !important; }

.background-light-primary {
  background-color: #2c5459; }

.color-light-primary, .color-light-primary:focus {
  color: #2c5459; }

.links-light-primary a, .links-light-primary a:focus {
  color: #2c5459 !important; }

.bullet-color-light-primary li:before {
  color: #2c5459 !important; }

.background-light-secondary {
  background-color: #9baba6; }

.color-light-secondary, .color-light-secondary:focus {
  color: #9baba6; }

.links-light-secondary a, .links-light-secondary a:focus {
  color: #9baba6 !important; }

.bullet-color-light-secondary li:before {
  color: #9baba6 !important; }

.background-accent {
  background-color: #cba17d; }

.color-accent, .color-accent:focus {
  color: #cba17d; }

.links-accent a, .links-accent a:focus {
  color: #cba17d !important; }

.bullet-color-accent li:before {
  color: #cba17d !important; }

.background-light-gray {
  background-color: #f9f6f3; }

.color-light-gray, .color-light-gray:focus {
  color: #f9f6f3; }

.links-light-gray a, .links-light-gray a:focus {
  color: #f9f6f3 !important; }

.bullet-color-light-gray li:before {
  color: #f9f6f3 !important; }

.background-medium-gray {
  background-color: #bfbfbf; }

.color-medium-gray, .color-medium-gray:focus {
  color: #bfbfbf; }

.links-medium-gray a, .links-medium-gray a:focus {
  color: #bfbfbf !important; }

.bullet-color-medium-gray li:before {
  color: #bfbfbf !important; }

.background-dark-gray {
  background-color: #8a8a8a; }

.color-dark-gray, .color-dark-gray:focus {
  color: #8a8a8a; }

.links-dark-gray a, .links-dark-gray a:focus {
  color: #8a8a8a !important; }

.bullet-color-dark-gray li:before {
  color: #8a8a8a !important; }

.background-black {
  background-color: #0a0a0a; }

.color-black, .color-black:focus {
  color: #0a0a0a; }

.links-black a, .links-black a:focus {
  color: #0a0a0a !important; }

.bullet-color-black li:before {
  color: #0a0a0a !important; }

.background-white {
  background-color: #fff; }

.color-white, .color-white:focus {
  color: #fff; }

.links-white a, .links-white a:focus {
  color: #fff !important; }

.bullet-color-white li:before {
  color: #fff !important; }

.background-gold {
  background-color: #cba17d; }

.color-gold, .color-gold:focus {
  color: #cba17d; }

.links-gold a, .links-gold a:focus {
  color: #cba17d !important; }

.bullet-color-gold li:before {
  color: #cba17d !important; }

.background-red {
  background-color: #CB0000; }

.color-red, .color-red:focus {
  color: #CB0000; }

.links-red a, .links-red a:focus {
  color: #CB0000 !important; }

.bullet-color-red li:before {
  color: #CB0000 !important; }

.links-gold a.display-heading:hover,
.color-gold a.display-heading:hover {
  color: #0a0a0a !important; }

a.display-heading.links-gold a:hover, a.display-heading.color-gold a:hover {
  color: #0a0a0a !important; }

.links-gold a.display-heading:hover,
.color-gold a.display-heading:hover {
  color: #0a0a0a !important; }

a.display-heading.links-gold:hover, a.display-heading.color-gold:hover {
  color: #0a0a0a !important; }

.padding-top {
  padding-top: 2rem; }

.padding-top-none {
  padding-top: 0; }

.padding-top-small {
  padding-top: 1rem; }

.padding-top-medium {
  padding-top: 2rem; }

.padding-top-large {
  padding-top: 4rem; }

.padding-right {
  padding-right: 2rem; }

.padding-right-none {
  padding-right: 0; }

.padding-right-small {
  padding-right: 1rem; }

.padding-right-medium {
  padding-right: 2rem; }

.padding-right-large {
  padding-right: 4rem; }

.padding-bottom {
  padding-bottom: 2rem; }

.padding-bottom-none {
  padding-bottom: 0; }

.padding-bottom-small {
  padding-bottom: 1rem; }

.padding-bottom-medium {
  padding-bottom: 2rem; }

.padding-bottom-large {
  padding-bottom: 4rem; }

.padding-left {
  padding-left: 2rem; }

.padding-left-none {
  padding-left: 0; }

.padding-left-small {
  padding-left: 1rem; }

.padding-left-medium {
  padding-left: 2rem; }

.padding-left-large {
  padding-left: 4rem; }

.padding-all {
  padding: 2rem; }

.padding-all-none {
  padding: 0; }

.padding-all-small {
  padding: 1rem; }

.padding-all-medium {
  padding: 2rem; }

.padding-all-large {
  padding: 4rem; }

.margin-top {
  margin-top: 2rem; }

.margin-top-none {
  margin-top: 0; }

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

.margin-top-medium {
  margin-top: 2rem; }

.margin-top-large {
  margin-top: 4rem; }

.margin-right {
  margin-right: 2rem; }

.margin-right-none {
  margin-right: 0; }

.margin-right-small {
  margin-right: 1rem; }

.margin-right-medium {
  margin-right: 2rem; }

.margin-right-large {
  margin-right: 4rem; }

.margin-bottom {
  margin-bottom: 2rem; }

.margin-bottom-none {
  margin-bottom: 0; }

.margin-bottom-small {
  margin-bottom: 1rem; }

.margin-bottom-medium {
  margin-bottom: 2rem; }

.margin-bottom-large {
  margin-bottom: 4rem; }

.margin-left {
  margin-left: 2rem; }

.margin-left-none {
  margin-left: 0; }

.margin-left-small {
  margin-left: 1rem; }

.margin-left-medium {
  margin-left: 2rem; }

.margin-left-large {
  margin-left: 4rem; }

.margin-all {
  margin: 2rem; }

.margin-all-none {
  margin: 0; }

.margin-all-small {
  margin: 1rem; }

.margin-all-medium {
  margin: 2rem; }

.margin-all-large {
  margin: 4rem; }

.padding-vertical {
  padding-bottom: 2rem;
  padding-top: 2rem; }
  .padding-vertical-small {
    padding-bottom: 1rem;
    padding-top: 1rem; }
  .padding-vertical-large {
    padding-bottom: 4rem;
    padding-top: 4rem; }

.padding-horizontal {
  padding-left: 2rem;
  padding-right: 2rem; }
  .padding-horizontal-small {
    padding-left: 1rem;
    padding-right: 1rem; }
  .padding-horizontal-large {
    padding-left: 4rem;
    padding-right: 4rem; }

@media screen and (min-width: 48em) {
  .ipad-padding-top {
    padding-top: 2rem; }
  .ipad-padding-top-none {
    padding-top: 0; }
  .ipad-padding-top-small {
    padding-top: 1rem; }
  .ipad-padding-top-medium {
    padding-top: 2rem; }
  .ipad-padding-top-large {
    padding-top: 4rem; }
  .ipad-padding-right {
    padding-right: 2rem; }
  .ipad-padding-right-none {
    padding-right: 0; }
  .ipad-padding-right-small {
    padding-right: 1rem; }
  .ipad-padding-right-medium {
    padding-right: 2rem; }
  .ipad-padding-right-large {
    padding-right: 4rem; }
  .ipad-padding-bottom {
    padding-bottom: 2rem; }
  .ipad-padding-bottom-none {
    padding-bottom: 0; }
  .ipad-padding-bottom-small {
    padding-bottom: 1rem; }
  .ipad-padding-bottom-medium {
    padding-bottom: 2rem; }
  .ipad-padding-bottom-large {
    padding-bottom: 4rem; }
  .ipad-padding-left {
    padding-left: 2rem; }
  .ipad-padding-left-none {
    padding-left: 0; }
  .ipad-padding-left-small {
    padding-left: 1rem; }
  .ipad-padding-left-medium {
    padding-left: 2rem; }
  .ipad-padding-left-large {
    padding-left: 4rem; }
  .ipad-padding-all {
    padding: 2rem; }
  .ipad-padding-all-none {
    padding: 0; }
  .ipad-padding-all-small {
    padding: 1rem; }
  .ipad-padding-all-medium {
    padding: 2rem; }
  .ipad-padding-all-large {
    padding: 4rem; }
  .ipad-margin-top {
    margin-top: 2rem; }
  .ipad-margin-top-none {
    margin-top: 0; }
  .ipad-margin-top-small {
    margin-top: 1rem; }
  .ipad-margin-top-medium {
    margin-top: 2rem; }
  .ipad-margin-top-large {
    margin-top: 4rem; }
  .ipad-margin-right {
    margin-right: 2rem; }
  .ipad-margin-right-none {
    margin-right: 0; }
  .ipad-margin-right-small {
    margin-right: 1rem; }
  .ipad-margin-right-medium {
    margin-right: 2rem; }
  .ipad-margin-right-large {
    margin-right: 4rem; }
  .ipad-margin-bottom {
    margin-bottom: 2rem; }
  .ipad-margin-bottom-none {
    margin-bottom: 0; }
  .ipad-margin-bottom-small {
    margin-bottom: 1rem; }
  .ipad-margin-bottom-medium {
    margin-bottom: 2rem; }
  .ipad-margin-bottom-large {
    margin-bottom: 4rem; }
  .ipad-margin-left {
    margin-left: 2rem; }
  .ipad-margin-left-none {
    margin-left: 0; }
  .ipad-margin-left-small {
    margin-left: 1rem; }
  .ipad-margin-left-medium {
    margin-left: 2rem; }
  .ipad-margin-left-large {
    margin-left: 4rem; }
  .ipad-margin-all {
    margin: 2rem; }
  .ipad-margin-all-none {
    margin: 0; }
  .ipad-margin-all-small {
    margin: 1rem; }
  .ipad-margin-all-medium {
    margin: 2rem; }
  .ipad-margin-all-large {
    margin: 4rem; }
  .ipad-padding-vertical {
    padding-bottom: 2rem;
    padding-top: 2rem; }
    .ipad-padding-vertical-small {
      padding-bottom: 1rem;
      padding-top: 1rem; }
    .ipad-padding-vertical-large {
      padding-bottom: 4rem;
      padding-top: 4rem; }
  .ipad-padding-horizontal {
    padding-left: 2rem;
    padding-right: 2rem; }
    .ipad-padding-horizontal-small {
      padding-left: 1rem;
      padding-right: 1rem; }
    .ipad-padding-horizontal-large {
      padding-left: 4rem;
      padding-right: 4rem; } }

@media screen and (min-width: 40em) {
  .medium-padding-top {
    padding-top: 2rem; }
  .medium-padding-top-none {
    padding-top: 0; }
  .medium-padding-top-small {
    padding-top: 1rem; }
  .medium-padding-top-medium {
    padding-top: 2rem; }
  .medium-padding-top-large {
    padding-top: 4rem; }
  .medium-padding-right {
    padding-right: 2rem; }
  .medium-padding-right-none {
    padding-right: 0; }
  .medium-padding-right-small {
    padding-right: 1rem; }
  .medium-padding-right-medium {
    padding-right: 2rem; }
  .medium-padding-right-large {
    padding-right: 4rem; }
  .medium-padding-bottom {
    padding-bottom: 2rem; }
  .medium-padding-bottom-none {
    padding-bottom: 0; }
  .medium-padding-bottom-small {
    padding-bottom: 1rem; }
  .medium-padding-bottom-medium {
    padding-bottom: 2rem; }
  .medium-padding-bottom-large {
    padding-bottom: 4rem; }
  .medium-padding-left {
    padding-left: 2rem; }
  .medium-padding-left-none {
    padding-left: 0; }
  .medium-padding-left-small {
    padding-left: 1rem; }
  .medium-padding-left-medium {
    padding-left: 2rem; }
  .medium-padding-left-large {
    padding-left: 4rem; }
  .medium-padding-all {
    padding: 2rem; }
  .medium-padding-all-none {
    padding: 0; }
  .medium-padding-all-small {
    padding: 1rem; }
  .medium-padding-all-medium {
    padding: 2rem; }
  .medium-padding-all-large {
    padding: 4rem; }
  .medium-margin-top {
    margin-top: 2rem; }
  .medium-margin-top-none {
    margin-top: 0; }
  .medium-margin-top-small {
    margin-top: 1rem; }
  .medium-margin-top-medium {
    margin-top: 2rem; }
  .medium-margin-top-large {
    margin-top: 4rem; }
  .medium-margin-right {
    margin-right: 2rem; }
  .medium-margin-right-none {
    margin-right: 0; }
  .medium-margin-right-small {
    margin-right: 1rem; }
  .medium-margin-right-medium {
    margin-right: 2rem; }
  .medium-margin-right-large {
    margin-right: 4rem; }
  .medium-margin-bottom {
    margin-bottom: 2rem; }
  .medium-margin-bottom-none {
    margin-bottom: 0; }
  .medium-margin-bottom-small {
    margin-bottom: 1rem; }
  .medium-margin-bottom-medium {
    margin-bottom: 2rem; }
  .medium-margin-bottom-large {
    margin-bottom: 4rem; }
  .medium-margin-left {
    margin-left: 2rem; }
  .medium-margin-left-none {
    margin-left: 0; }
  .medium-margin-left-small {
    margin-left: 1rem; }
  .medium-margin-left-medium {
    margin-left: 2rem; }
  .medium-margin-left-large {
    margin-left: 4rem; }
  .medium-margin-all {
    margin: 2rem; }
  .medium-margin-all-none {
    margin: 0; }
  .medium-margin-all-small {
    margin: 1rem; }
  .medium-margin-all-medium {
    margin: 2rem; }
  .medium-margin-all-large {
    margin: 4rem; }
  .medium-padding-vertical {
    padding-bottom: 2rem;
    padding-top: 2rem; }
    .medium-padding-vertical-small {
      padding-bottom: 1rem;
      padding-top: 1rem; }
    .medium-padding-vertical-large {
      padding-bottom: 4rem;
      padding-top: 4rem; }
  .medium-padding-horizontal {
    padding-left: 2rem;
    padding-right: 2rem; }
    .medium-padding-horizontal-small {
      padding-left: 1rem;
      padding-right: 1rem; }
    .medium-padding-horizontal-large {
      padding-left: 4rem;
      padding-right: 4rem; } }

@media screen and (min-width: 64em) {
  .large-padding-top {
    padding-top: 2rem; }
  .large-padding-top-none {
    padding-top: 0; }
  .large-padding-top-small {
    padding-top: 1rem; }
  .large-padding-top-medium {
    padding-top: 2rem; }
  .large-padding-top-large {
    padding-top: 4rem; }
  .large-padding-right {
    padding-right: 2rem; }
  .large-padding-right-none {
    padding-right: 0; }
  .large-padding-right-small {
    padding-right: 1rem; }
  .large-padding-right-medium {
    padding-right: 2rem; }
  .large-padding-right-large {
    padding-right: 4rem; }
  .large-padding-bottom {
    padding-bottom: 2rem; }
  .large-padding-bottom-none {
    padding-bottom: 0; }
  .large-padding-bottom-small {
    padding-bottom: 1rem; }
  .large-padding-bottom-medium {
    padding-bottom: 2rem; }
  .large-padding-bottom-large {
    padding-bottom: 4rem; }
  .large-padding-left {
    padding-left: 2rem; }
  .large-padding-left-none {
    padding-left: 0; }
  .large-padding-left-small {
    padding-left: 1rem; }
  .large-padding-left-medium {
    padding-left: 2rem; }
  .large-padding-left-large {
    padding-left: 4rem; }
  .large-padding-all {
    padding: 2rem; }
  .large-padding-all-none {
    padding: 0; }
  .large-padding-all-small {
    padding: 1rem; }
  .large-padding-all-medium {
    padding: 2rem; }
  .large-padding-all-large {
    padding: 4rem; }
  .large-margin-top {
    margin-top: 2rem; }
  .large-margin-top-none {
    margin-top: 0; }
  .large-margin-top-small {
    margin-top: 1rem; }
  .large-margin-top-medium {
    margin-top: 2rem; }
  .large-margin-top-large {
    margin-top: 4rem; }
  .large-margin-right {
    margin-right: 2rem; }
  .large-margin-right-none {
    margin-right: 0; }
  .large-margin-right-small {
    margin-right: 1rem; }
  .large-margin-right-medium {
    margin-right: 2rem; }
  .large-margin-right-large {
    margin-right: 4rem; }
  .large-margin-bottom {
    margin-bottom: 2rem; }
  .large-margin-bottom-none {
    margin-bottom: 0; }
  .large-margin-bottom-small {
    margin-bottom: 1rem; }
  .large-margin-bottom-medium {
    margin-bottom: 2rem; }
  .large-margin-bottom-large {
    margin-bottom: 4rem; }
  .large-margin-left {
    margin-left: 2rem; }
  .large-margin-left-none {
    margin-left: 0; }
  .large-margin-left-small {
    margin-left: 1rem; }
  .large-margin-left-medium {
    margin-left: 2rem; }
  .large-margin-left-large {
    margin-left: 4rem; }
  .large-margin-all {
    margin: 2rem; }
  .large-margin-all-none {
    margin: 0; }
  .large-margin-all-small {
    margin: 1rem; }
  .large-margin-all-medium {
    margin: 2rem; }
  .large-margin-all-large {
    margin: 4rem; }
  .large-padding-vertical {
    padding-bottom: 2rem;
    padding-top: 2rem; }
    .large-padding-vertical-small {
      padding-bottom: 1rem;
      padding-top: 1rem; }
    .large-padding-vertical-large {
      padding-bottom: 4rem;
      padding-top: 4rem; }
  .large-padding-horizontal {
    padding-left: 2rem;
    padding-right: 2rem; }
    .large-padding-horizontal-small {
      padding-left: 1rem;
      padding-right: 1rem; }
    .large-padding-horizontal-large {
      padding-left: 4rem;
      padding-right: 4rem; } }

.container {
  padding-bottom: 1rem;
  padding-top: 1rem; }
  @media screen and (min-width: 40em) {
    .container:not(.small) {
      padding-bottom: 2rem;
      padding-top: 2rem; } }
  @media screen and (min-width: 64em) {
    .container.large {
      padding-bottom: 4rem;
      padding-top: 4rem; } }
  .container:empty {
    padding: 0 !important; }

.grid-offset {
  margin-left: -0.75rem;
  margin-right: -0.75rem; }
  .grid-offset .offset-padding {
    padding-left: .75rem;
    padding-right: .75rem; }

@media screen and (max-width: 39.9375em) {
  .mobile-grid-offset {
    margin-left: -0.75rem !important;
    margin-right: -0.75rem !important; } }

.overflow-container {
  overflow: hidden; }

.min-height-50 {
  min-height: 50px; }

.max-height-50 {
  max-height: 50px; }

.min-width-50 {
  min-width: 50px; }

.max-width-50 {
  max-width: 50px; }

.min-height-100 {
  min-height: 100px; }

.max-height-100 {
  max-height: 100px; }

.min-width-100 {
  min-width: 100px; }

.max-width-100 {
  max-width: 100px; }

.min-height-150 {
  min-height: 150px; }

.max-height-150 {
  max-height: 150px; }

.min-width-150 {
  min-width: 150px; }

.max-width-150 {
  max-width: 150px; }

.min-height-200 {
  min-height: 200px; }

.max-height-200 {
  max-height: 200px; }

.min-width-200 {
  min-width: 200px; }

.max-width-200 {
  max-width: 200px; }

.min-height-250 {
  min-height: 250px; }

.max-height-250 {
  max-height: 250px; }

.min-width-250 {
  min-width: 250px; }

.max-width-250 {
  max-width: 250px; }

.min-height-300 {
  min-height: 300px; }

.max-height-300 {
  max-height: 300px; }

.min-width-300 {
  min-width: 300px; }

.max-width-300 {
  max-width: 300px; }

.min-height-350 {
  min-height: 350px; }

.max-height-350 {
  max-height: 350px; }

.min-width-350 {
  min-width: 350px; }

.max-width-350 {
  max-width: 350px; }

.min-height-400 {
  min-height: 400px; }

.max-height-400 {
  max-height: 400px; }

.min-width-400 {
  min-width: 400px; }

.max-width-400 {
  max-width: 400px; }

.min-height-450 {
  min-height: 450px; }

.max-height-450 {
  max-height: 450px; }

.min-width-450 {
  min-width: 450px; }

.max-width-450 {
  max-width: 450px; }

.min-height-500 {
  min-height: 500px; }

.max-height-500 {
  max-height: 500px; }

.min-width-500 {
  min-width: 500px; }

.max-width-500 {
  max-width: 500px; }

.min-height-550 {
  min-height: 550px; }

.max-height-550 {
  max-height: 550px; }

.min-width-550 {
  min-width: 550px; }

.max-width-550 {
  max-width: 550px; }

.min-height-600 {
  min-height: 600px; }

.max-height-600 {
  max-height: 600px; }

.min-width-600 {
  min-width: 600px; }

.max-width-600 {
  max-width: 600px; }

.vertical-label {
  font-family: "Raleway", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1;
  text-align: right;
  text-transform: uppercase;
  position: relative; }
  @media print, screen and (min-width: 40em) {
    .vertical-label {
      padding-top: 1.5rem;
      -webkit-transform: rotate(180deg);
              transform: rotate(180deg);
      -webkit-writing-mode: tb-rl;
          -ms-writing-mode: tb-rl;
              writing-mode: tb-rl; }
      .vertical-label:before {
        height: 100%;
        width: 1px;
        left: 6px;
        top: 0; }
      .vertical-label span {
        padding-top: 6px; } }
  @media screen and (max-width: 39.9375em) {
    .vertical-label:before {
      height: 1px;
      width: 100%;
      left: 0;
      top: 6px; }
    .vertical-label span {
      padding-left: 6px; } }
  .vertical-label:before {
    content: '';
    position: absolute;
    z-index: 1;
    background: white;
    display: block; }
  .vertical-label span {
    position: relative;
    z-index: 3; }

.horizontal-label {
  display: block;
  position: relative; }
  .horizontal-label:before {
    content: '';
    background: #bfbfbf;
    height: 1px;
    width: 100%;
    position: absolute;
    top: 50%;
    z-index: 1; }
  .horizontal-label .label-text {
    padding-right: 8px;
    position: relative;
    z-index: 2; }
  .background-black .horizontal-label:before {
    background: #3a4441; }
  .background-black .horizontal-label .label-text {
    background: #0a0a0a;
    color: white; }

.headline-label {
  font-size: 60px;
  line-height: 1; }
  .headline-label .horizontal-label {
    float: left;
    font-size: 24px;
    width: 100%; }
    .headline-label .horizontal-label .label-text {
      float: left; }

@media screen and (max-width: 47.9375em) {
  .large-background-image {
    background-image: none !important; } }

@media print, screen and (min-width: 64em) {
  .large-background-image {
    background-blend-mode: unset;
    background-color: #1b3437;
    background-position: 50%;
    background-size: cover;
    -webkit-transition: background 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: background 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    .large-featured:hover .large-background-image {
      background-blend-mode: screen; } }

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

@media print, screen and (min-width: 40em) {
  .medium-background-image {
    background-blend-mode: unset;
    background-color: #1b3437;
    background-position: 50%;
    background-size: cover;
    -webkit-transition: background 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: background 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    .large-featured:hover .medium-background-image {
      background-blend-mode: screen; } }

.logo-background {
  position: relative; }
  .logo-background .logo-background-image {
    position: absolute;
    top: 5px;
    left: -120px;
    width: 240px;
    height: auto;
    opacity: .4;
    z-index: -1; }
  .bottom-footer .logo-background {
    width: 220px;
    height: 220px;
    position: absolute;
    bottom: -40px;
    left: -40px;
    z-index: 1;
    opacity: .5; }
    .bottom-footer .logo-background .logo-background-image {
      position: static;
      opacity: 1; }

body.post-template-template-mapbox {
  padding: 0; }

/**
 * 00. Global Header
 * 01. Top bar
 * 02. Primary Menu
 * 03. Desktop Menu Overlay
 * 04. Utility
 * 05. Mobile
 */
#main-menu {
  background-color: #fff; }
  @media print, screen and (min-width: 40em) {
    #main-menu {
      position: fixed;
      left: 0;
      right: 0;
      top: 0;
      z-index: 10; } }
  #main-menu > div {
    position: relative; }
  .admin-bar #main-menu {
    top: 32px; }

.header-spacer {
  display: none; }

body.landing-header #main-menu, body.landing-header .top-bar {
  background: transparent;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  margin-top: 1rem; }

body.landing-header #main-menu {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: block; }

@media screen and (min-width: 769px) {
  #main-menu {
    -webkit-box-shadow: 0 0 10px 2px rgba(10, 10, 10, 0);
            box-shadow: 0 0 10px 2px rgba(10, 10, 10, 0);
    -webkit-transition: -webkit-box-shadow 400ms;
    transition: -webkit-box-shadow 400ms;
    transition: box-shadow 400ms;
    transition: box-shadow 400ms, -webkit-box-shadow 400ms; }
    .collapsed-header #main-menu {
      -webkit-box-shadow: 0 0 10px 2px rgba(10, 10, 10, 0.15);
              box-shadow: 0 0 10px 2px rgba(10, 10, 10, 0.15); }
    .header-fixed #main-menu, .header-clicked #main-menu {
      position: fixed;
      width: 100%;
      top: 0; }
    .with-utility #main-menu {
      top: 1.625rem; }
    .admin-bar.header-clicked #main-menu {
      margin-top: 32px; }
  .header-fixed .header-spacer, .header-clicked .header-spacer {
    display: block;
    padding-top: 3.25rem; }
  .with-utility .header-spacer {
    padding-top: 4.875rem; }
  .admin-bar.header-fixed #main-menu, .admin-bar.header-fixed #utility {
    margin-top: 32px; } }

.header-logo {
  max-width: 100%;
  max-height: 100%;
  padding: 1rem 0;
  -webkit-transition: padding 150ms;
  transition: padding 150ms; }
  .has-utility .header-logo {
    padding: .375rem 0 1.625rem; }
    .header-clicked .has-utility .header-logo {
      padding: .875rem 0 1.125rem; }

body .menu .active > a {
  background: transparent; }

#story-menu .current-menu-item a {
  color: #cba17d; }

.top-bar {
  -webkit-transition: padding 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: padding 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .collapsed-header .top-bar {
    background: #fff; }
    @media screen and (min-width: 40em) {
      .collapsed-header .top-bar {
        padding: 0 15px; } }
    .collapsed-header .top-bar .top-bar-title {
      background-size: 4.25rem;
      height: 3.25rem;
      padding: 0; }
      .collapsed-header .top-bar .top-bar-title a {
        color: #0a0a0a; }
      .collapsed-header .top-bar .top-bar-title .logo {
        display: none; }
        .collapsed-header .top-bar .top-bar-title .logo.alt-logo {
          display: block; }
  @media screen and (min-width: 40em) {
    .top-bar {
      padding: 0 15px; } }
  .top-bar ul {
    background-color: transparent; }
  .top-bar .top-bar-title,
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    height: 3.25rem;
    line-height: 3.25rem;
    width: auto;
    margin: 0; }
  .top-bar .top-bar-right {
    margin-left: auto; }
  .top-bar .top-bar-title {
    background-image: url("../assets/img/u-outline-green@2x.png");
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: 80%;
    height: 5.75rem;
    padding-top: 1rem;
    -webkit-transition: padding 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), height 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-size 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: padding 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), height 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-size 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    @media print, screen and (min-width: 40em) {
      body:not(.home):not(.collapsed-header) .top-bar .top-bar-title {
        background-position: 50% -1rem;
        background-size: 7.75rem;
        height: 7.75rem; }
        body:not(.home):not(.collapsed-header) .top-bar .top-bar-title:hover {
          background-size: 8.75rem; } }
    .top-bar .top-bar-title a {
      display: block;
      height: 3.25rem;
      padding: .75rem 0;
      -webkit-transition: padding 100ms cubic-bezier(0, 1.18, 0.93, 1.11), height 100ms cubic-bezier(0, 1.18, 0.93, 1.11), background-size 200ms cubic-bezier(0, 1.18, 0.93, 1.11);
      transition: padding 100ms cubic-bezier(0, 1.18, 0.93, 1.11), height 100ms cubic-bezier(0, 1.18, 0.93, 1.11), background-size 200ms cubic-bezier(0, 1.18, 0.93, 1.11); }
    .top-bar .top-bar-title .logo {
      display: block;
      height: 100%;
      width: auto;
      margin: 0 auto;
      /*
			height: 32px;
			width: 186px;
			position: relative;
			*/ }
      .top-bar .top-bar-title .logo.alt-logo {
        display: none; }
    @media print, screen and (min-width: 40em) {
      .top-bar .top-bar-title:hover {
        background-size: 92%; }
        .top-bar .top-bar-title:hover a {
          padding: .625rem 0; } }
  .top-bar .menu-overlay-trigger a:after {
    content: "";
    font-family: 'undark' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #cba17d;
    font-size: 20px;
    padding-left: .5rem;
    position: relative;
    top: 4px; }
  @media screen and (max-width: 39.9375em) {
    .top-bar {
      padding: 0; }
      .top-bar .top-bar-title {
        background-position: -100% 100%;
        padding: 0; }
        .top-bar .top-bar-title a {
          height: 2.25rem;
          padding: 1rem 0 0 1.5rem; } }

#primary-menu {
  /* Traditional Menu Hover Styles */ }
  #primary-menu .menu-overlay-trigger {
    border-right: 1px solid #555; }
  #primary-menu.is-traditional-menu .has-dropdown:hover:before {
    display: block; }
  #primary-menu.is-traditional-menu .has-dropdown:hover > .sub-menu {
    display: block; }

#desktop-menu-overlay {
  background: #0a0a0a;
  opacity: 0;
  overflow-y: scroll;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -1; }
  #desktop-menu-overlay:not(.open) {
    -webkit-transition: opacity 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), z-index 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), z-index 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .desktop-overlay-open #desktop-menu-overlay {
    -webkit-transition: opacity 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275) 150ms, z-index 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275) 150ms, z-index 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    opacity: 1;
    z-index: 1200; }
  #desktop-menu-overlay .logo {
    height: 2rem; }
  #desktop-menu-overlay .menu-close-button {
    border: 2px solid #fff;
    border-radius: 100px;
    padding: 1.5rem; }
  #desktop-menu-overlay .menu-overlay {
    position: relative; }
    #desktop-menu-overlay .menu-overlay:before {
      content: "";
      position: absolute;
      height: 115%;
      width: 100%;
      left: -3rem;
      top: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      z-index: -1;
      background-image: url("../assets/img/radium.png");
      background-position: 50%;
      background-repeat: no-repeat;
      background-size: contain;
      opacity: .3; }
    #desktop-menu-overlay .menu-overlay .menu-item {
      border-bottom: 1px solid #fff;
      margin-bottom: 1rem;
      margin-top: 1rem; }
      @media screen and (min-width: 768px) {
        #desktop-menu-overlay .menu-overlay .menu-item {
          margin-bottom: 3rem; } }
    #desktop-menu-overlay .menu-overlay a {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-flow: row wrap;
          -ms-flex-flow: row wrap;
              flex-flow: row wrap;
      -webkit-box-align: end;
      -webkit-align-items: flex-end;
          -ms-flex-align: end;
              align-items: flex-end;
      color: #fff;
      font-family: "Taviraj", Georgia, Palatino, serif;
      font-size: 24px;
      font-weight: 700;
      line-height: 22px;
      padding: 0;
      text-transform: none; }
      #desktop-menu-overlay .menu-overlay a:hover {
        color: #cba17d; }
      #desktop-menu-overlay .menu-overlay a > .cell {
        width: auto; }
      @media screen and (min-width: 1281px) {
        #desktop-menu-overlay .menu-overlay a {
          font-size: 66px;
          line-height: 60px; } }
      @media screen and (min-width: 860px) and (max-width: 1280px) {
        #desktop-menu-overlay .menu-overlay a {
          font-size: 50px;
          line-height: 46px; } }
      @media screen and (min-width: 600px) and (max-width: 859px) {
        #desktop-menu-overlay .menu-overlay a {
          font-size: 42px;
          line-height: 40px; } }
      @media screen and (min-width: 421px) and (max-width: 599px) {
        #desktop-menu-overlay .menu-overlay a {
          font-size: 34px;
          line-height: 32px; } }
    #desktop-menu-overlay .menu-overlay .menu-overlay-item-subtitle {
      color: #bfbfbf;
      font-family: "Raleway", Arial, sans-serif;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.6;
      text-transform: uppercase; }
      @media screen and (min-width: 600px) {
        #desktop-menu-overlay .menu-overlay .menu-overlay-item-subtitle {
          font-size: 16px; } }
  @media screen and (min-width: 48em) {
    #desktop-menu-overlay .menu-overlay-sidebar {
      border-left: 1px solid #bfbfbf; } }
  #desktop-menu-overlay .category-menu {
    border-bottom: 1px solid #bfbfbf;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem; }
    #desktop-menu-overlay .category-menu a {
      color: #fff; }
      #desktop-menu-overlay .category-menu a:hover {
        color: #cba17d; }
  #desktop-menu-overlay .user-menu a {
    color: #bfbfbf; }
    #desktop-menu-overlay .user-menu a:hover {
      color: #cba17d; }

.utility-menu-container {
  overflow: auto;
  background: #fff;
  position: relative;
  z-index: 1065; }
  .with-utility .utility-menu-container {
    position: fixed;
    width: 100%;
    top: 0; }
  .utility-menu-container .utility-menu {
    float: right; }
    .utility-menu-container .utility-menu li {
      margin-bottom: 0; }
      .utility-menu-container .utility-menu li a {
        padding: 0 1rem;
        height: 1.625rem;
        line-height: 1.875rem;
        font-size: .875rem;
        font-weight: 400;
        color: #1b3437; }
        .utility-menu-container .utility-menu li a:focus, .utility-menu-container .utility-menu li a:active {
          color: #1b3437; }
        .utility-menu-container .utility-menu li a:hover {
          color: #7f948d; }

.top-bar.mobile-header {
  padding: .5rem; }
  .top-bar.mobile-header > section {
    padding: .5rem; }
  .top-bar.mobile-header .mobile-logo img {
    max-height: 46px;
    max-width: 100%; }
  .top-bar.mobile-header .hamburger a.menu-icon {
    width: 30px;
    height: 25px; }
    .top-bar.mobile-header .hamburger a.menu-icon:after {
      background: #1b3437;
      height: 4px;
      -webkit-box-shadow: 0 10px 0 #1b3437, 0 20px 0 #1b3437;
              box-shadow: 0 10px 0 #1b3437, 0 20px 0 #1b3437; }

/*
.off-canvas {
	height: 100%;
	background: $primary-color;

	* {
		&:focus,
		&:active {
			outline: none;
		}
	}

	.off-canvas-list {
		list-style: none;
		margin: 0;
		padding: 1rem;
	}

	.button {
		display: block;
		-webkit-font-smoothing: antialiased;

		a {
			color: inherit;
		}
	}

	a {
		color: white;
		display: block;
		font-size: 1.25rem;
		line-height: 1.1;
		padding: .5rem 0;
	}

	.utility-item {
		border-top: 2px solid white;
		margin-top: 1.5rem;
		padding-top: 1.5rem;

		~ .utility-item {
			border-top: none;
			margin-top: 0;
			padding-top: 0;
		}
	}

	.dropdown {
		list-style: none;
		margin: 0;
		padding: 0 1.25rem;
	}

	.is-drilldown {
		height: 100% !important;

		a, .is-drilldown-submenu {
			background: $primary-color;
		}

		.is-drilldown-submenu-parent {
			> a:after {
				border-color: transparent transparent transparent $secondary-color;
				right: .75rem;
			}
		}

		.js-drilldown-back {
			padding: 1rem 0;
			> a:before {
				border-color: transparent $secondary-color transparent transparent;
			}
		}

		.drilldown {
			padding: .5rem 0;

			li {
				a {
					padding: .5rem 1.5rem .5rem 1rem;
				}
			}
		}

		.dropdown {
			padding: 0;
		}
	}

	span.description {
		color: $white;
		display: block;
		font-size: .875rem;
		font-weight: normal;
		margin-top: .25rem;
	}

	li[class*="menu-icon-"], li[class*=" menu-icon"] {
		> a:before {
			@include icon-font();
			margin-right: .5rem;
			display: inline-block;
			color: $secondary-color;
			position: relative;
			top: .25rem;
			font-size: 1.5rem;
		}

		.description {
			margin-top: .5rem;
		}
	}
}
*/
.canvas-wrapper {
  position: absolute;
  overflow: hidden;
  tpo: 0;
  left: 0;
  width: 100vw;
  height: 100vh; }
  .canvas-wrapper canvas {
    display: block;
    position: absolute;
    left: 0;
    top: 0; }

.post-template-template-mapbox {
  overflow-y: scroll;
  scrollbar-width: none;
  ms-overflow-style: none; }

.post-template-template-mapbox::-webkit-scrollbar {
  width: 0;
  height: 0; }

/*
 * 01. Category / Isotope Buttons
 * 02. Infinite Loading Posts
 * 03. Pagination
 */
.categories-list, .isotope-list {
  list-style-type: none;
  margin: 0 0 2rem;
  font-size: 0; }
  .categories-list li, .isotope-list li {
    display: inline-block;
    margin-right: .75rem; }
    .categories-list li a, .categories-list li span, .isotope-list li a, .isotope-list li span {
      background: #f9f6f3;
      border-radius: 100px;
      color: #1b3437;
      display: block;
      font-size: 1rem;
      margin-bottom: .5rem;
      padding: .5rem 1.75rem;
      font-weight: 600;
      cursor: pointer; }
      .categories-list li a:hover, .categories-list li span:hover, .isotope-list li a:hover, .isotope-list li span:hover {
        background-color: #bfbfbf; }
    .categories-list li.active a, .categories-list li.active span, .isotope-list li.active a, .isotope-list li.active span {
      background-color: #cba17d;
      color: #fff; }

.infinite-scroll .infinite-container .pagination {
  display: none; }

.infinite-scroll .infinite-container #infinite-handle, .infinite-scroll .infinite-container .infinite-loader {
  display: block;
  width: 100%;
  clear: both;
  text-align: center;
  margin: 1rem 0 2rem; }
  .infinite-scroll .infinite-container #infinite-handle span, .infinite-scroll .infinite-container .infinite-loader span {
    background: none; }
  .infinite-scroll .infinite-container #infinite-handle .spinner, .infinite-scroll .infinite-container .infinite-loader .spinner {
    top: 0 !important;
    left: 0 !important;
    margin: 0 auto; }

.pagination-container {
  border-top: 4px solid #fff;
  border-bottom: 1px solid #555;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  font-size: 12px;
  font-family: "Raleway", Arial, sans-serif;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 5.25rem;
  width: 100%; }
  .pagination-container .pagination {
    text-transform: uppercase;
    text-align: center;
    padding: 20px 30px;
    margin: 0; }
    .pagination-container .pagination .current {
      background: transparent;
      padding: 0 0.625rem; }
    .pagination-container .pagination ul {
      width: 100%; }
      .pagination-container .pagination ul li {
        padding: 0 0.625rem; }
    .pagination-container .pagination a,
    .pagination-container .pagination span {
      color: #c6aa8d;
      padding: 0 0.625rem; }
      .pagination-container .pagination a.current,
      .pagination-container .pagination span.current {
        color: #f9f6f3;
        background: none; }
      .pagination-container .pagination a.next,
      .pagination-container .pagination span.next {
        float: right; }
      .pagination-container .pagination a:hover,
      .pagination-container .pagination span:hover {
        background: none; }
    .pagination-container .pagination a:hover {
      color: #f9f6f3; }
    .pagination-container .pagination span.next, .pagination-container .pagination span.prev {
      cursor: default;
      color: #717171; }
  .pagination-container .page-next,
  .pagination-container .page-prev {
    text-transform: uppercase; }
    .pagination-container .page-next a,
    .pagination-container .page-next span,
    .pagination-container .page-prev a,
    .pagination-container .page-prev span {
      color: #c6aa8d;
      display: block;
      padding: 20px 30px; }
    .pagination-container .page-next a:hover,
    .pagination-container .page-prev a:hover {
      color: #f9f6f3;
      background: none; }
    .pagination-container .page-next .disabled,
    .pagination-container .page-prev .disabled {
      color: #555; }
  .pagination-container .page-next {
    border-left: 1px solid #555; }
  .pagination-container .page-prev {
    border-right: 1px solid #555; }

body.light-background .pagination-container,
body.search .pagination-container {
  border-top-color: #0a0a0a;
  border-bottom-color: #bfbfbf; }
  body.light-background .pagination-container a,
  body.light-background .pagination-container span,
  body.search .pagination-container a,
  body.search .pagination-container span {
    color: #0a0a0a; }
    body.light-background .pagination-container a.current,
    body.light-background .pagination-container span.current,
    body.search .pagination-container a.current,
    body.search .pagination-container span.current {
      color: #000; }
  body.light-background .pagination-container a:hover,
  body.search .pagination-container a:hover {
    color: #000; }
  body.light-background .pagination-container .page-next,
  body.light-background .pagination-container .page-prev,
  body.search .pagination-container .page-next,
  body.search .pagination-container .page-prev {
    border-left-color: #bfbfbf;
    border-right-color: #bfbfbf; }
    body.light-background .pagination-container .page-next a,
    body.light-background .pagination-container .page-prev a,
    body.search .pagination-container .page-next a,
    body.search .pagination-container .page-prev a {
      color: #0a0a0a; }
    body.light-background .pagination-container .page-next .disabled,
    body.light-background .pagination-container .page-prev .disabled,
    body.search .pagination-container .page-next .disabled,
    body.search .pagination-container .page-prev .disabled {
      color: #bfbfbf; }

/**
 * 01. Comment List
 * 02. Post Sharing
 * 03. Article Sidebar Actions
 * 04. Video Template
 */
.post-actions a {
  text-decoration: underline; }

.post-sharing li {
  display: inline-block !important; }
  @media screen and (min-width: 64em) {
    .post-sharing li {
      display: block !important; } }

#article-sidebar {
  z-index: 3; }
  @media screen and (min-width: 40em) {
    #article-sidebar {
      position: relative; } }

.article-sidebar-actions {
  position: relative; }
  .article-sidebar-actions .article-sidebar {
    opacity: 0;
    text-align: center;
    -webkit-transition: opacity 400ms;
    transition: opacity 400ms; }
  .article-sidebar-actions .is-stuck .article-sidebar,
  .article-sidebar-actions .is-anchored .article-sidebar {
    opacity: 1; }
  @media print, screen and (min-width: 40em) {
    .article-sidebar-actions .article-sidebar {
      height: 79vh;
      height: calc(80vh - 84px); }
    .article-sidebar-actions .article-sidebar-action.sidebar-action-share {
      border-bottom: 1px solid #3a4441;
      border-top: 1px solid #3a4441;
      padding-top: 10px;
      padding-bottom: 10px; }
      .article-sidebar-actions .article-sidebar-action.sidebar-action-share [data-open="shareModal"] {
        cursor: pointer; }
        .article-sidebar-actions .article-sidebar-action.sidebar-action-share [data-open="shareModal"]:hover {
          color: #cba17d; }
    .article-sidebar-actions .article-sidebar-action + .article-sidebar-action {
      margin-top: 20px; } }
  @media screen and (max-width: 39.9375em) {
    .article-sidebar-actions {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 9; }
      .article-sidebar-actions .article-sidebar {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-flow: row wrap;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-box-pack: end;
        -webkit-justify-content: flex-end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center; }
      .article-sidebar-actions .article-sidebar-action {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        width: auto;
        margin-right: 0.625rem;
        margin-left: 0.625rem;
        padding: 1rem; }
        .article-sidebar-actions .article-sidebar-action + .article-sidebar-action {
          border-left: 1px solid #3a4441; } }

@media print, screen and (min-width: 40em) {
  .post-template-single-video .article-sidebar-actions {
    border-right: 1px solid #3a4441; } }

/**
 * 01. Global
 * 02. Main Footer
 * 03. Social Footer
 * 04. Copyright Footer
 * 05. Bottom footer
 */
#footer {
  position: relative;
  z-index: 9; }

.main-footer .site-tagline {
  font-size: 4.5rem;
  font-weight: 700;
  line-height: 4rem; }

.main-footer a {
  color: #f9f6f3;
  font-size: .875rem; }
  .main-footer a:hover {
    color: #fff; }

.main-footer .menu,
.main-footer .sub-menu {
  list-style: none; }

.main-footer .sub-menu {
  margin: .5rem 0 0; }
  .main-footer .sub-menu a {
    font-size: .875rem;
    padding: 1rem; }

.main-footer .footer-menu {
  margin: 1rem -1rem; }
  @media screen and (max-width: 39.9375em) {
    .main-footer .footer-menu li {
      display: block;
      text-align: center;
      width: 100%; }
      .main-footer .footer-menu li a {
        display: inline-block; } }

.footer-social-logo {
  margin: 30px 0 0;
  max-width: 200px; }

.copyright-footer {
  background: #1b3437;
  color: #2c5459;
  font-size: .75rem;
  font-weight: bold;
  padding: .5rem 0 1.5rem; }
  @media screen and (max-width: 39.9375em) {
    .copyright-footer {
      text-align: center; } }
  .copyright-footer .copyright-menu-container a {
    color: #2c5459; }
    .copyright-footer .copyright-menu-container a:hover {
      color: #cba17d; }
  @media screen and (max-width: 39.9375em) {
    .copyright-footer .copyright-menu-container ul, .copyright-footer .copyright-menu-container li {
      display: block;
      width: 100%; }
    .copyright-footer .copyright-menu-container ul {
      margin-top: .5rem; } }
  @media screen and (min-width: 40em) {
    .copyright-footer .copyright-menu-container {
      display: inline-block; }
      .copyright-footer .copyright-menu-container ul, .copyright-footer .copyright-menu-container li {
        display: inline-block; }
      .copyright-footer .copyright-menu-container li {
        padding: 0 0 0 2rem; }
        .copyright-footer .copyright-menu-container li a {
          padding: 0; } }

.bottom-footer .grid-container, .bottom-footer .mesh_section .grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth), .mesh_section .bottom-footer .grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth) {
  position: relative;
  z-index: 2; }

#menu-footer.menu .has-button a {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  font-family: "Raleway", Arial, sans-serif;
  padding: 1.5625em 1.5625em 1.5em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: black;
  color: #fff; }
  [data-whatinput='mouse'] #menu-footer.menu .has-button a {
    outline: 0; }
  #menu-footer.menu .has-button a:hover, #menu-footer.menu .has-button a:focus {
    background-color: transparent;
    color: #fff; }
  #menu-footer.menu .has-button a:hover {
    border-color: #cba17d;
    color: #cba17d; }

/**
 * 01. WP Core Alignments
 */
.alignnone {
  margin: 5px 20px 20px 0; }

.aligncenter,
div.aligncenter {
  display: block;
  margin: 5px auto 5px auto; }

.alignright {
  float: right;
  margin: 5px 0 20px 20px; }

.alignleft {
  float: left;
  margin: 5px 20px 20px 0; }

a img.alignright {
  float: right;
  margin: 5px 0 20px 20px; }

a img.alignnone {
  margin: 5px 20px 20px 0; }

a img.alignleft {
  float: left;
  margin: 5px 20px 20px 0; }

a img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto; }

.wp-caption {
  background: #fff;
  max-width: 96%;
  /* Image does not overflow the content area */
  padding: 5px 3px 10px; }
  .wp-caption.small-1 {
    width: 8.33333%; }
  .wp-caption.small-2 {
    width: 16.66667%; }
  .wp-caption.small-3 {
    width: 25%; }
  .wp-caption.small-4 {
    width: 33.33333%; }
  .wp-caption.small-5 {
    width: 41.66667%; }
  .wp-caption.small-6 {
    width: 50%; }
  .wp-caption.small-7 {
    width: 58.33333%; }
  .wp-caption.small-8 {
    width: 66.66667%; }
  .wp-caption.small-9 {
    width: 75%; }
  .wp-caption.small-10 {
    width: 83.33333%; }
  .wp-caption.small-11 {
    width: 91.66667%; }
  .wp-caption.small-12 {
    width: 100%; }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-1 {
      width: 8.33333%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-2 {
      width: 16.66667%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-3 {
      width: 25%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-4 {
      width: 33.33333%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-5 {
      width: 41.66667%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-6 {
      width: 50%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-7 {
      width: 58.33333%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-8 {
      width: 66.66667%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-9 {
      width: 75%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-10 {
      width: 83.33333%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-11 {
      width: 91.66667%; } }
  @media print, screen and (min-width: 40em) {
    .wp-caption.medium-12 {
      width: 100%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-1 {
      width: 8.33333%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-2 {
      width: 16.66667%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-3 {
      width: 25%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-4 {
      width: 33.33333%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-5 {
      width: 41.66667%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-6 {
      width: 50%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-7 {
      width: 58.33333%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-8 {
      width: 66.66667%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-9 {
      width: 75%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-10 {
      width: 83.33333%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-11 {
      width: 91.66667%; } }
  @media print, screen and (min-width: 64em) {
    .wp-caption.large-12 {
      width: 100%; } }
  .wp-caption .undark-caption {
    margin-top: .5rem; }
  .wp-caption p {
    font-size: .875rem !important;
    line-height: 1.25 !important; }

.wp-caption.alignnone {
  margin: 5px 20px 20px 0; }

.wp-caption.alignleft {
  margin: 5px 20px 20px 0; }

.wp-caption.alignright {
  margin: 5px 0 20px 20px; }

.wp-caption img {
  border: 0 none;
  height: auto;
  margin: 0;
  max-width: 98.5%;
  padding: 0;
  width: auto; }

.wp-caption p.wp-caption-text {
  font-size: 11px;
  line-height: 17px;
  margin: 0;
  padding: 0 4px 5px; }

/* Text meant only for screen readers. */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  white-space: nowrap;
  height: 1px;
  width: 1px;
  overflow: hidden; }

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */ }

/*
 * 00. Global Items
 * 01. Buttons
 * 02. Banners
 * 03. Subscription Bar
 * 04. Default Loop Block
 * 05. Anchor Bar
 * 06. Icons
 * 07. Sharedaddy
 * 08. Extend Embed
 */
.reveal-overlay {
  z-index: 2000; }
  .reveal-overlay .close-button {
    background: none;
    padding: 0;
    background: #0a0a0a;
    height: 33px;
    width: 33px;
    border: 2px solid #fff;
    border-radius: 100px;
    margin-right: -13px; }
    .reveal-overlay .close-button:hover {
      color: #fff; }
      .reveal-overlay .close-button:hover span {
        color: #fff; }

.clickable {
  cursor: pointer; }

.button, .resortment-container .active-filters ul li a, .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container .infinite-loader span button, button, input[type="submit"] {
  border: none;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase; }
  .button.transparent, .resortment-container .active-filters ul li a.transparent, .infinite-scroll .infinite-container #infinite-handle span button.transparent, .infinite-scroll .infinite-container .infinite-loader span button.transparent, button.transparent, input[type="submit"].transparent {
    background: transparent;
    border: none; }
  .button.collapsed, .resortment-container .active-filters ul li a.collapsed, .infinite-scroll .infinite-container #infinite-handle span button.collapsed, .infinite-scroll .infinite-container .infinite-loader span button.collapsed, button.collapsed, input[type="submit"].collapsed {
    margin: 0;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0; }
  .button:hover, .resortment-container .active-filters ul li a:hover, .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container .infinite-loader span button:hover, button:hover, input[type="submit"]:hover {
    border-color: #cba17d;
    color: #cba17d; }
  
  .menu .button,
  .menu .resortment-container .active-filters ul li a,
  .resortment-container .active-filters ul li .menu a,
  .menu .infinite-scroll .infinite-container #infinite-handle span button,
  .infinite-scroll .infinite-container #infinite-handle span .menu button,
  .menu .infinite-scroll .infinite-container .infinite-loader span button,
  .infinite-scroll .infinite-container .infinite-loader span .menu button, .menu button, .menu input[type="submit"] {
    color: #fff; }
    .menu .button:hover, .menu .resortment-container .active-filters ul li a:hover, .resortment-container .active-filters ul li .menu a:hover, .menu .infinite-scroll .infinite-container #infinite-handle span button:hover, .infinite-scroll .infinite-container #infinite-handle span .menu button:hover, .menu .infinite-scroll .infinite-container .infinite-loader span button:hover, .infinite-scroll .infinite-container .infinite-loader span .menu button:hover, .menu button:hover, .menu input[type="submit"]:hover {
      border-color: #cba17d; }
      .menu .button:hover a, .menu .resortment-container .active-filters ul li a:hover a, .resortment-container .active-filters ul li .menu a:hover a, .menu .infinite-scroll .infinite-container #infinite-handle span button:hover a, .infinite-scroll .infinite-container #infinite-handle span .menu button:hover a, .menu .infinite-scroll .infinite-container .infinite-loader span button:hover a, .infinite-scroll .infinite-container .infinite-loader span .menu button:hover a, .menu button:hover a, .menu input[type="submit"]:hover a {
        color: #cba17d !important; }

.title-banner, .content-banner {
  background: #1b3437;
  color: #fff;
  padding: 1.75rem 0 1.25rem;
  position: relative;
  overflow: hidden;
  background: #1b3437;
  /* Old browsers */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: -webkit-gradient(linear, left top, right top, from(#1b3437), to(#2c5459));
  background: linear-gradient(to right, #1b3437 0%, #2c5459 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$gradient-dark', endColorstr='$gradient-light',GradientType=1 );
  /* IE6-9 */ }
  .title-banner:before, .content-banner:before {
    content: "";
    height: 300px;
    width: 75%;
    position: absolute;
    top: 0;
    right: 0;
    background-position: top right;
    background-repeat: no-repeat;
    opacity: 0.65;
    background-size: contain; }
  .title-banner > *, .content-banner > * {
    position: relative; }
  .title-banner.banner-overlay, .content-banner.banner-overlay {
    padding: 2rem 0;
    background-size: cover;
    background-position: center center;
    position: relative;
    overflow: hidden; }
    .title-banner.banner-overlay:before, .content-banner.banner-overlay:before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: #7f948d;
      background: -webkit-gradient(linear, left top, right top, from(#1b3437), to(#2c5459));
      background: linear-gradient(to right, #1b3437 0%, #2c5459 100%);
      opacity: .625;
      top: 0;
      left: 0; }
    @media print, screen and (min-width: 40em) {
      .title-banner.banner-overlay, .content-banner.banner-overlay {
        padding: 3.5rem 0; } }
  .title-banner.content-banner, .content-banner.content-banner {
    padding: 0 !important; }

.subscription-bar {
  background: #1b3437;
  color: #fff;
  padding: 1rem .5rem 1.5rem;
  position: relative; }
  .subscription-bar > div {
    position: relative; }
  .subscription-bar h3 {
    font-weight: 700;
    line-height: 48px;
    margin-bottom: 0; }
  .subscription-bar input.email {
    border: 4px solid #f9f6f3;
    color: #1b3437;
    font-weight: 600;
    padding: .5rem .75rem;
    height: 2.6875rem;
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none; }
    .subscription-bar input.email:focus {
      border-color: #bfbfbf; }
  .subscription-bar button, .subscription-bar .button, .subscription-bar .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .subscription-bar a, .subscription-bar .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .subscription-bar button, .subscription-bar .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .subscription-bar button, .subscription-bar input[type="submit"] {
    padding: .625rem 2.25rem;
    margin-bottom: 0; }
  .subscription-bar.horizontal input {
    display: inline-block; }
  .subscription-bar.horizontal button, .subscription-bar.horizontal .button, .subscription-bar.horizontal .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .subscription-bar.horizontal a, .subscription-bar.horizontal .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .subscription-bar.horizontal button, .subscription-bar.horizontal .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .subscription-bar.horizontal button, .subscription-bar.horizontal input[type="submit"] {
    padding: .75rem 2.75rem; }
  @media print, screen and (min-width: 40em) {
    .subscription-bar.horizontal input.email {
      max-width: calc(100% - 180px);
      margin-bottom: 0; }
    .subscription-bar.horizontal .clear {
      display: inline-block;
      margin-bottom: 0;
      float: right; } }
  .subscription-bar.vertical h3 {
    line-height: 1.5rem;
    margin-bottom: 1.5rem;
    font-size: 1.25rem; }
  .subscription-bar.vertical button, .subscription-bar.vertical .button, .subscription-bar.vertical .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .subscription-bar.vertical a, .subscription-bar.vertical .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .subscription-bar.vertical button, .subscription-bar.vertical .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .subscription-bar.vertical button, .subscription-bar.vertical input[type="submit"] {
    display: block;
    margin-top: 1.5rem; }

.block, .loop-block .content-container {
  background-color: #fff;
  border: 4px solid #f9f6f3;
  padding: 1rem 1rem .75rem;
  position: relative;
  -webkit-transition: border 400ms;
  transition: border 400ms; }

.block-wrapper {
  margin: 0 -0.5rem; }
  .block-wrapper > br, .block-wrapper p:empty {
    display: none; }

.block-container {
  padding: 0rem .5rem 1rem; }

.loop-block {
  padding: 0rem 0.5rem 1rem; }
  .loop-block .content-container {
    word-break: break-word; }
    .loop-block .content-container .category-block {
      position: absolute;
      top: -12px; }
      .loop-block .content-container .category-block a, .loop-block .content-container .category-block span {
        background: #1b3437;
        color: #fff;
        display: inline;
        font-size: .75rem;
        font-weight: 700;
        padding: .375rem .625rem; }
      .loop-block .content-container .category-block a:hover {
        background: #7f948d; }

.anchor-bar-container {
  margin: -25px 0 2rem; }
  @media screen and (max-width: 39.9375em) {
    .anchor-bar-container {
      height: 2rem;
      margin: 0; }
      .anchor-bar-container > div {
        display: none; } }
  .anchor-bar-container .anchor-bar-wrapper {
    background: #7f948d;
    position: relative;
    z-index: 5; }
  .anchor-bar-container .anchor-bar {
    background: #7f948d;
    padding: 0;
    position: relative;
    z-index: 5;
    margin: 0 -0.5rem; }
    @media screen and (max-width: 39.9375em) {
      .anchor-bar-container .anchor-bar {
        display: none; } }
    .anchor-bar-container .anchor-bar ul {
      margin: 0;
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: stretch;
      -webkit-align-items: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      /* Default */
      -webkit-box-pack: center;
      -webkit-justify-content: center;
          -ms-flex-pack: center;
              justify-content: center;
      position: relative;
      z-index: 7; }
    .anchor-bar-container .anchor-bar li {
      display: block;
      -webkit-box-flex: 0;
      -webkit-flex: 0 1 auto;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      /* Default */
      list-style-type: none;
      cursor: pointer;
      margin: .5rem;
      border-radius: 30px;
      color: #fff;
      font-weight: 600;
      font-size: .875rem;
      -webkit-transition: background-color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
      transition: background-color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
      .anchor-bar-container .anchor-bar li span {
        padding: .25rem 2rem;
        display: block; }
      .anchor-bar-container .anchor-bar li.load-active {
        background-color: #1b3437; }
      .anchor-bar-container .anchor-bar li:hover {
        background-color: rgba(27, 52, 55, 0.3); }
    .anchor-bar-container .anchor-bar .anchor-bg {
      position: absolute;
      background: #1b3437;
      z-index: 6;
      border-radius: 30px;
      -webkit-transition: all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
      transition: all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .anchor-bar-container .anchor-bar-spacer {
    display: none; }
  .anchor-bar-container.anchor-bar-fixed .anchor-bar-spacer {
    display: block; }
  .anchor-bar-container.anchor-bar-fixed .anchor-bar-wrapper {
    position: fixed;
    width: 100%;
    top: 1.5625rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    z-index: 300;
    -webkit-box-shadow: 0px 4px 10px rgba(27, 52, 55, 0.15);
            box-shadow: 0px 4px 10px rgba(27, 52, 55, 0.15); }
    .header-fixed .anchor-bar-container.anchor-bar-fixed .anchor-bar-wrapper, .header-clicked .anchor-bar-container.anchor-bar-fixed .anchor-bar-wrapper {
      top: 3.25rem; }
    .with-utility .anchor-bar-container.anchor-bar-fixed .anchor-bar-wrapper {
      top: 4.875rem; }
    .admin-bar .anchor-bar-container.anchor-bar-fixed .anchor-bar-wrapper {
      margin-top: 32px; }
    @media screen and (max-width: 768px) {
      .anchor-bar-container.anchor-bar-fixed .anchor-bar-wrapper {
        top: 0 !important; } }

.anchor-jump {
  position: absolute;
  margin-top: -4.25rem; }
  body.admin-bar .anchor-jump {
    margin-top: -6.25rem; }

.block-icon {
  max-height: 150px;
  padding-top: 2rem;
  padding-bottom: 1rem; }

.sharedaddy li a {
  font-size: 0 !important;
  padding: 0.625rem !important;
  border-radius: 100px !important; }
  .sharedaddy li a:before {
    display: none !important; }
  .sharedaddy li a:after {
    font-size: .9375rem;
    font-family: 'undark' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

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

/**
 * 01. Top articles
 * 02. Featured article
 * 03. Large Featured
 * 04. Podcast
 * 05. Latest Posts
 * 06. Documentaries
 */
#top-articles {
  border-top: 2.25rem solid #0a0a0a; }
  @media print, screen and (min-width: 64em) {
    #top-articles {
      border-top: 6.25rem solid #0a0a0a; } }

.featured-article {
  position: relative;
  margin-top: -3.75rem; }
  @media print, screen and (min-width: 64em) {
    .featured-article {
      margin-top: -5.75rem; } }
  .featured-article .background-light-gray {
    -webkit-transition: color 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-blend-mode 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: color 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-blend-mode 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    .featured-article .background-light-gray:hover {
      background-color: #1b3437;
      color: #fff; }
      @media print, screen and (min-width: 40em) {
        .featured-article .background-light-gray:hover .featured-article-top {
          background-blend-mode: screen; } }
      .featured-article .background-light-gray:hover a {
        color: #fff; }
      .featured-article .background-light-gray:hover .post-category {
        background: #fff; }
        .featured-article .background-light-gray:hover .post-category a {
          color: #1b3437; }
  .featured-article .featured-article-top {
    position: relative; }
    @media screen and (max-width: 39.9375em) {
      .featured-article .featured-article-top {
        background-image: none !important; } }
    @media print, screen and (min-width: 40em) {
      .featured-article .featured-article-top:before {
        content: '';
        background: rgba(10, 10, 10, 0.3);
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        z-index: 1; }
      .featured-article .featured-article-top .article-content {
        color: #fff;
        width: 100%;
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        z-index: 3; }
        .featured-article .featured-article-top .article-content a {
          color: #fff; } }
    @media screen and (min-width: 641px) and (max-width: 1180px) {
      .featured-article .featured-article-top .article-title {
        font-size: 2.875rem; } }

#large-featured {
  border-top: 4rem solid #0a0a0a; }
  #large-featured .large-featured {
    position: relative;
    margin-top: -4rem; }

.large-featured.background-light-gray {
  -webkit-transition: color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .large-featured.background-light-gray:hover {
    background-color: #1b3437;
    color: #fff; }
    .large-featured.background-light-gray:hover a,
    .large-featured.background-light-gray:hover .byline-author {
      color: #fff; }
    .large-featured.background-light-gray:hover .byline-date,
    .large-featured.background-light-gray:hover .post-category a {
      color: #bfbfbf !important; }

.article-podcast-featured .loop-post-image {
  position: relative; }

.article-podcast-featured .icon-podcast {
  border: 1px solid white;
  border-radius: 40px;
  font-size: 60px;
  height: 80px;
  width: 80px;
  line-height: 80px;
  margin-left: -40px;
  margin-top: -40px;
  text-align: center;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 10; }

.podcast-title .loop-post-title {
  margin: 0 !important; }

.podcast-title + .article {
  border-top: 1px solid #bfbfbf;
  padding-top: 51px; }

.podcast-title ~ .article {
  margin-bottom: 2rem; }

@media screen and (max-width: 39.9375em) {
  #latest-posts .cell ~ .cell {
    margin-bottom: 2rem; } }

#documentaries-section .loop-post-title {
  font-weight: 700; }

#documentaries-section .featured-article-content {
  margin-bottom: 1rem; }

#documentaries-section .truss-srcset-image-container {
  display: block;
  width: 100%; }

/**
 * 01. Article Content Container
 * 02. Share URL Form
 * 03. Republish Panel
 * 04. Lastest Posts Scroller
 * 05. Comments CTA
 * 06. Image Header
 * 07. Opinion
 * 08. Video
 * 09. Article Footer
 * 10. Progress
 * 11. Fullwidth image/video
 * 12. Footer Sharing
 */
.single.dark-background [role="main"] {
  background: #171717;
  color: #fff; }
  .single.dark-background [role="main"] #article-footer {
    background: #171717;
    color: #fff; }
  .single.dark-background [role="main"] .entry-title {
    margin-bottom: 0; }
  .single.dark-background [role="main"] .article-content-container:before {
    background: #0a0a0a; }
  .single.dark-background [role="main"] .article-content-container .entry-content a {
    color: #fff; }
    .single.dark-background [role="main"] .article-content-container .entry-content a:hover {
      color: #cba17d; }
  .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup {
    background: #0a0a0a; }
  .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form {
    border-bottom-color: #fff; }
    .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form .button, .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form .resortment-container .active-filters ul li a, .resortment-container .active-filters ul li .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form a, .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form .infinite-scroll .infinite-container #infinite-handle span button, .infinite-scroll .infinite-container #infinite-handle span .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form button, .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form .infinite-scroll .infinite-container .infinite-loader span button, .infinite-scroll .infinite-container .infinite-loader span .single.dark-background [role="main"] .newsletter-block-shortcode .newsletter-signup-form button {
      color: #fff; }
  .single.dark-background [role="main"] .newsletter-block-shortcode .gform_body input::-webkit-input-placeholder {
    color: #fff; }
  .single.dark-background [role="main"] .newsletter-block-shortcode .gform_body input:-moz-placeholder {
    /* Firefox 18- */
    color: #fff; }
  .single.dark-background [role="main"] .newsletter-block-shortcode .gform_body input::-moz-placeholder {
    /* Firefox 19+ */
    color: #fff; }
  .single.dark-background [role="main"] .newsletter-block-shortcode .gform_body input:-ms-input-placeholder {
    color: #fff; }
  .single.dark-background [role="main"] .wp-caption {
    background: transparent; }

.article-content-container {
  position: relative; }
  .article-content-container:before {
    content: '';
    background: #f9f6f3;
    height: 150px;
    position: absolute;
    left: -1rem;
    right: -1rem;
    top: -1rem;
    z-index: 1; }
    @media print, screen and (min-width: 40em) {
      .article-content-container:before {
        left: -2rem;
        right: -2rem;
        top: -2rem; } }
    #single-image-header-template .article-content-container:before {
      left: 0;
      right: 0;
      top: 0; }
    .post-template-single-breathtaking .article-content-container:before {
      left: 0;
      right: 0; }
  .post-template-single-video .article-content-container:before,
  .post-template-single-podcast .article-content-container:before {
    content: initial; }
  .article-content-container > header {
    position: relative;
    z-index: 2; }
  .article-content-container .post-header-subtitle {
    font-size: 20px;
    font-style: italic;
    line-height: 1.3; }
    @media screen and (min-width: 768px) {
      .article-content-container .post-header-subtitle {
        font-size: 26px; } }
  .article-content-container .entry-content {
    position: relative;
    z-index: 2;
    font-size: 1.125rem;
    line-height: 1.6; }
  .article-content-container .featured-image-caption {
    margin-top: 1.125rem; }

.single .entry-content a, .page .entry-content a {
  color: #0a0a0a;
  text-decoration: underline; }
  .single .entry-content a:hover, .page .entry-content a:hover {
    color: #cba17d; }

.single.dark-background .entry-content a, .single.page-template-page-special-projects-php .entry-content a, .single.page-template-page-breathtaking .entry-content a, .page.dark-background .entry-content a, .page.page-template-page-special-projects-php .entry-content a, .page.page-template-page-breathtaking .entry-content a {
  color: #fff; }
  .single.dark-background .entry-content a:hover, .single.page-template-page-special-projects-php .entry-content a:hover, .single.page-template-page-breathtaking .entry-content a:hover, .page.dark-background .entry-content a:hover, .page.page-template-page-special-projects-php .entry-content a:hover, .page.page-template-page-breathtaking .entry-content a:hover {
    color: #cba17d; }

#share-url-form {
  position: relative; }
  #share-url-form input {
    background: white;
    border: none;
    font-family: Consolas, "Liberation Mono", Courier, monospace;
    height: 50px;
    line-height: 40px;
    padding: 5px 15px; }
  #share-url-form button[type="submit"] {
    background: white;
    color: #cba17d;
    line-height: 40px;
    padding: 5px 15px;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0; }
    #share-url-form button[type="submit"]:before {
      content: '';
      background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(white));
      background-image: linear-gradient(90deg, transparent, white);
      display: block;
      width: 60px;
      position: absolute;
      right: 100%;
      top: 0;
      bottom: 0; }

[data-toggle="republish-panel"] {
  color: #cba17d;
  cursor: pointer;
  position: relative;
  text-align: center;
  /*
	@include breakpoint(medium) {
		border: 1px solid $gold;
		border-radius: 50%;
		font-size: 11px;
		height: 90px;
		width: 90px;
		line-height: 90px;

		&:before,
		&:after {
			font-size: 35px;

			left: 50%;
			transform: translateX(-50%);
		}

		&:before {
			top: 5px;
		}

		&:after {
			bottom: 5px;
		}
	}
	*/ }
  @media screen and (max-width: 768px) {
    [data-toggle="republish-panel"] {
      display: inline-block; } }
  @media screen and (max-width: 47.9375em) {
    [data-toggle="republish-panel"] {
      display: inline-block;
      margin-bottom: 8px;
      padding-right: 8px; }
      [data-toggle="republish-panel"]:before, [data-toggle="republish-panel"]:after {
        left: 100%; } }
  @media screen and (min-width: 769px) {
    [data-toggle="republish-panel"] {
      border: 1px solid #cba17d;
      border-radius: 50%;
      font-size: 13px;
      height: 120px;
      width: 120px;
      line-height: 120px; }
      [data-toggle="republish-panel"]:before, [data-toggle="republish-panel"]:after {
        font-family: 'undark' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        font-size: 50px;
        font-weight: 100;
        line-height: 1;
        position: absolute;
        left: 50%;
        -webkit-transform: translateX(-50%);
                transform: translateX(-50%); }
      [data-toggle="republish-panel"]:before {
        content: "";
        top: 10px; }
      [data-toggle="republish-panel"]:after {
        content: "";
        bottom: 10px; } }
  #article-footer [data-toggle="republish-panel"] {
    float: left; }
  .post-template-single-opinion .opinion-header-container [data-toggle="republish-panel"] {
    border: none;
    border-radius: 0;
    height: auto;
    line-height: inherit;
    width: auto; }
    .post-template-single-opinion .opinion-header-container [data-toggle="republish-panel"]:before, .post-template-single-opinion .opinion-header-container [data-toggle="republish-panel"]:after {
      content: none;
      content: initial; }

.latest-posts-container {
  padding-bottom: .5rem; }
  @media screen and (max-width: 39.9375em) {
    .latest-posts-container {
      padding-left: 1rem; } }

.latest-posts-slider {
  opacity: 0;
  padding: 10px 0;
  position: relative;
  -webkit-transition: opacity 400ms;
  transition: opacity 400ms; }
  .latest-posts-slider .slick-list {
    margin-right: 80px;
    padding-right: 40px; }
    @media print, screen and (min-width: 40em) {
      .latest-posts-slider .slick-list {
        padding-right: 80px; } }
    .latest-posts-slider .slick-list:after {
      content: '';
      background: -webkit-gradient(linear, left top, right top, from(transparent), to(#0a0a0a));
      background: linear-gradient(90deg, transparent, #0a0a0a);
      width: 80px;
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0;
      z-index: 4; }
  .latest-posts-slider .slick-arrow {
    font-size: 0;
    position: absolute;
    top: 50%;
    margin-top: -7px; }
    .latest-posts-slider .slick-arrow:before {
      font-family: 'undark' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      color: white;
      font-size: 14px;
      -webkit-transition: opacity 400ms;
      transition: opacity 400ms; }
    .latest-posts-slider .slick-arrow.slick-prev {
      right: 44px; }
      .latest-posts-slider .slick-arrow.slick-prev:before {
        content: ""; }
    .latest-posts-slider .slick-arrow.slick-next {
      right: 16px; }
      .latest-posts-slider .slick-arrow.slick-next:before {
        content: ""; }
    .latest-posts-slider .slick-arrow.slick-disabled:before {
      cursor: default;
      opacity: .3; }
  .latest-posts-slider .latest-post {
    display: none;
    margin-right: 1rem;
    padding-right: 1rem; }
    .latest-posts-slider .latest-post:last-of-type > * {
      border-right: none; }
    .latest-posts-slider .latest-post > * {
      border-right: 1px solid #e5dfd9; }
    .latest-posts-slider .latest-post .entry-title {
      line-height: 1; }
    .latest-posts-slider .latest-post img {
      border-radius: 50%;
      height: 40px;
      width: 40px; }
  .latest-posts-slider.slick-initialized {
    opacity: 1; }
    .latest-posts-slider.slick-initialized .latest-post {
      display: block; }

.comments-cta {
  color: #cba17d;
  cursor: pointer;
  font-family: "Raleway", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase; }
  .comments-cta .comments-number {
    font-weight: 600;
    line-height: 1; }
  .comments-cta:hover .comments-number {
    color: #cba17d; }
  @media print, screen and (min-width: 40em) {
    .comments-cta .comments-number {
      display: block;
      color: white;
      font-size: 50px; } }

#single-image-header-template article.post {
  padding-top: 2rem;
  position: relative; }
  body:not(.dark-background) #single-image-header-template article.post {
    background: white; }
  @media print, screen and (min-width: 40em) {
    #single-image-header-template article.post {
      margin-left: 2.5rem;
      margin-top: -100px; } }
  @media print, screen and (min-width: 64em) {
    #single-image-header-template article.post {
      margin-left: 5rem;
      margin-top: -150px; } }

@media screen and (max-width: 1023px) {
  .opinion-header-content {
    position: relative; }
    .opinion-header-content:before {
      content: '';
      background: #f9f6f3;
      height: 150px;
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      z-index: -1; }
    .opinion-header-content > .background-light-gray {
      background: none; } }

.opinion-header-content .post-header-subtitle {
  font-size: 20px;
  font-style: italic;
  line-height: 1.3; }
  @media screen and (min-width: 768px) {
    .opinion-header-content .post-header-subtitle {
      font-size: 26px; } }

@media screen and (max-width: 767px) {
  .opinion-header-content .byline.byline-entry-meta .byline-item {
    display: block; } }

.background-image-container {
  background-position: 50%;
  background-size: cover;
  height: 100%; }
  @media screen and (max-width: 47.9375em) {
    .background-image-container {
      background: none; } }

.opinion-author {
  margin: -40px auto 20px;
  max-width: 380px;
  text-align: center; }
  .opinion-author img {
    border: 10px solid white;
    border-radius: 50px;
    height: 100px;
    width: 100px; }

.video-embed-container {
  margin-bottom: 150px; }
  .video-embed-container .responsive-embed {
    margin-bottom: -100px; }

.post-article-share {
  border-top: 1px solid #e5dfd9;
  margin-top: 2rem;
  padding-top: 2rem; }

.article-progress .article-progress-percent {
  background: rgba(255, 255, 255, 0.5);
  border-radius: 13px;
  height: 13px;
  width: 13px;
  margin: 0 auto 24px;
  position: relative;
  -webkit-transition-duration: 400ms;
          transition-duration: 400ms;
  -webkit-transition-property: background;
  transition-property: background;
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
          transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .article-progress .article-progress-percent:before, .article-progress .article-progress-percent:after {
    content: '';
    background: rgba(255, 255, 255, 0.5);
    height: 12px;
    width: 1px;
    position: absolute;
    left: 6px;
    -webkit-transition-duration: 400ms;
            transition-duration: 400ms;
    -webkit-transition-property: background;
    transition-property: background;
    -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
            transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .article-progress .article-progress-percent:before {
    bottom: 100%; }
  .article-progress .article-progress-percent:after {
    top: 100%; }
  .article-progress .article-progress-percent:first-of-type:before {
    content: initial; }
  .article-progress .article-progress-percent:last-of-type:after {
    content: initial; }
  .article-progress .article-progress-percent.active {
    background: #fff; }
    .article-progress .article-progress-percent.active:before, .article-progress .article-progress-percent.active:after {
      background: #fff; }

@media print, screen and (min-width: 40em) {
  body:not(.post-template-single-opinion) .sharing-container {
    margin-left: 2.5rem; } }

@media screen and (min-width: 64em) {
  body:not(.post-template-single-opinion) .sharing-container {
    margin-left: 5rem; } }

/**
 * 01. Global
 * 02. Article Top (Index)
 * 03. Documentaries
 * 04. Podcast
 */
body.blog {
  background: #0a0a0a; }

.post-archive-container {
  padding-bottom: 2rem;
  padding-top: 2rem; }

body:not(.term-figures) .article-tease.top {
  position: relative; }
  body:not(.term-figures) .article-tease.top .loop-post-content {
    background: #f9f6f3;
    padding: 2rem;
    width: 100%;
    text-align: center; }
    @media screen and (min-width: 64em) {
      body:not(.term-figures) .article-tease.top .loop-post-content {
        background: #fff;
        padding: 4rem;
        width: 50%;
        position: absolute;
        left: 25%;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%); } }
  body:not(.term-figures) .article-tease.top .loop-post-image img {
    width: 100%; }
  body:not(.term-figures) .article-tease.top .loop-post-title {
    margin-bottom: 2rem; }

body.term-figures .article-tease.top .loop-post-content {
  background: #fff;
  padding: 2rem; }

.loop-post-podcast .loop-post-image:before {
  font-family: 'undark' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  border: 1px solid #fff;
  border-radius: 40px;
  color: #fff;
  cursor: pointer;
  font-size: 60px;
  height: 80px;
  width: 80px;
  line-height: 80px;
  margin-left: -40px;
  margin-top: -40px;
  text-align: center;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 10; }

/**
 * 01. Landing Page
 * 02. Page Navigation
 */
.page-template-page-breathtaking-php,
.page-template-page-special-projects-php {
  background: #0a0a0a;
  color: #fff; }

#breathtaking-landing-page-header {
  background-position: 50%;
  background-size: cover;
  color: #fff;
  padding: 150px 0; }
  #breathtaking-landing-page-header .vertical-split {
    background: #fff;
    display: block;
    height: 80px;
    width: 1px;
    margin: 2rem auto; }

.series-chapters {
  text-align: center; }
  @media screen and (min-width: 64em) {
    .series-chapters {
      margin-bottom: 6rem;
      margin-top: -6rem; } }
  .series-chapters .series-chapters-list {
    list-style: none;
    margin: 0; }
  .series-chapters .series-chapter {
    display: inline-block;
    padding: 0 8px; }
    @media screen and (min-width: 64em) {
      .series-chapters .series-chapter {
        padding: 0 16px; } }
    .series-chapters .series-chapter + .series-chapter {
      border-left: 1px solid #e5dfd9; }
    .series-chapters .series-chapter a {
      font-family: "Raleway", Arial, sans-serif;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .5px;
      text-transform: uppercase; }
      .series-chapters .series-chapter a .chapter-number {
        color: #fff;
        font-size: 38px; }
        @media screen and (min-width: 64em) {
          .series-chapters .series-chapter a .chapter-number {
            font-size: 50px; } }

.pull-out-grid {
  margin-left: -2.9375rem;
  margin-right: -2.9375rem; }
  @media print, screen and (min-width: 40em) {
    .pull-out-grid {
      margin-left: -4.9375rem;
      margin-right: -4.9375rem; } }
  @media print, screen and (min-width: 64em) {
    .pull-out-grid {
      margin-left: calc(-16.6667vw + -4.9375rem);
      margin-right: calc(-16.6667vw + -4.9375rem); } }

.pull-out-grid-half {
  margin-left: -1.5rem;
  margin-right: -1.5rem; }
  @media print, screen and (min-width: 40em) {
    .pull-out-grid-half {
      margin-left: -2.5rem;
      margin-right: -2.5rem; } }
  @media print, screen and (min-width: 64em) {
    .pull-out-grid-half {
      margin-left: calc(-8.3333vw + -2.5rem);
      margin-right: calc(-8.3333vw + -2.5rem); } }

/**
 * 01. Global page UI
 */
.page-content-container {
  padding-top: 2rem;
  position: relative; }
  .page-content-container:before {
    content: '';
    background: #f9f6f3;
    height: 120px;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    z-index: -1; }

.page-sidebar {
  padding: 1rem; }
  @media screen and (min-width: 40em) {
    .page-sidebar {
      padding: 1rem 3.75rem; } }
  @media screen and (min-width: 64em) {
    .page-sidebar {
      padding: calc(120px - 2rem) 2rem 2rem; } }
  .page-sidebar .sidebar-item {
    border-top: 1px solid #e5dfd9;
    padding: 1rem 0 1.5rem; }

/**
 * 01. About Layout
 * 02. Staff
 */
.page-template-page-about .about-sidebar {
  padding: 1rem; }
  @media screen and (min-width: 40em) {
    .page-template-page-about .about-sidebar {
      padding: 1rem 3.75rem; } }
  @media screen and (min-width: 64em) {
    .page-template-page-about .about-sidebar {
      padding: calc(120px - 2rem) 2rem 2rem; } }

.partner-logos-container {
  padding: 1rem 2rem 0; }
  @media print, screen and (min-width: 64em) {
    .partner-logos-container {
      padding: 1rem 5rem 0; } }
  .partner-logos-container .partner-logos-grid {
    border: 1px solid #e5dfd9;
    border-top: none; }
  .partner-logos-container .partner-logo {
    background: #fff;
    border-right: 1px solid #e5dfd9;
    border-top: 1px solid #e5dfd9;
    padding: 2rem; }
    @media screen and (max-width: 1040px) {
      .partner-logos-container .partner-logo {
        width: 33.33333%; }
        .partner-logos-container .partner-logo:nth-of-type(3n) {
          border-right: none; } }
    @media screen and (min-width: 1041px) {
      .partner-logos-container .partner-logo {
        width: 16.66667%; }
        .partner-logos-container .partner-logo:nth-of-type(6n) {
          border-right: none; } }

.undark-staff-list .undark-staff-item {
  border-top: 1px solid #e5dfd9;
  font-family: "Raleway", Arial, sans-serif;
  padding-top: 1rem;
  padding-bottom: 1.5rem; }
  .undark-staff-list .undark-staff-item .display-heading {
    color: #cba17d; }

/**
 * 01. In View Animations
 */
.trigger-in-view:not(.always-visible) {
  opacity: 0; }
  .trigger-in-view:not(.always-visible):not(.always-visible) {
    will-change: opacity, opacity;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view:not(.always-visible).always-visible {
    will-change: opacity;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view:not(.always-visible).in-view {
    opacity: 1; }

.trigger-in-view.in-view-slide-from-left {
  position: relative;
  left: -4rem; }
  .trigger-in-view.in-view-slide-from-left:not(.always-visible) {
    will-change: opacity, left;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), left 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), left 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-left.always-visible {
    will-change: left;
    -webkit-transition: left 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: left 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-left.in-view {
    left: 0; }

.trigger-in-view.in-view-slide-from-right {
  position: relative;
  right: -4rem; }
  .trigger-in-view.in-view-slide-from-right:not(.always-visible) {
    will-change: opacity, right;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), right 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), right 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-right.always-visible {
    will-change: right;
    -webkit-transition: right 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: right 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-right.in-view {
    right: 0; }

.trigger-in-view.in-view-slide-from-top {
  position: relative;
  top: -4rem; }
  .trigger-in-view.in-view-slide-from-top:not(.always-visible) {
    will-change: opacity, top;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), top 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), top 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-top.always-visible {
    will-change: top;
    -webkit-transition: top 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: top 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-top.in-view {
    top: 0; }

.trigger-in-view.in-view-slide-from-bottom {
  position: relative;
  bottom: -4rem; }
  .trigger-in-view.in-view-slide-from-bottom:not(.always-visible) {
    will-change: opacity, bottom;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), bottom 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), bottom 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-bottom.always-visible {
    will-change: bottom;
    -webkit-transition: bottom 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: bottom 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-slide-from-bottom.in-view {
    bottom: 0; }

.trigger-in-view.in-view-fade-in {
  position: relative;
  opacity: 0; }
  .trigger-in-view.in-view-fade-in:not(.always-visible) {
    will-change: opacity, opacity;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-fade-in.always-visible {
    will-change: opacity;
    -webkit-transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: opacity 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
  .trigger-in-view.in-view-fade-in.in-view {
    opacity: 1; }

.trigger-in-view.in-view-delay-100 {
  -webkit-transition-delay: 100ms !important;
          transition-delay: 100ms !important; }

.trigger-in-view.in-view-delay-200 {
  -webkit-transition-delay: 200ms !important;
          transition-delay: 200ms !important; }

.trigger-in-view.in-view-delay-300 {
  -webkit-transition-delay: 300ms !important;
          transition-delay: 300ms !important; }

.trigger-in-view.in-view-delay-400 {
  -webkit-transition-delay: 400ms !important;
          transition-delay: 400ms !important; }

.trigger-in-view.in-view-delay-500 {
  -webkit-transition-delay: 500ms !important;
          transition-delay: 500ms !important; }

.trigger-in-view.in-view-delay-600 {
  -webkit-transition-delay: 600ms !important;
          transition-delay: 600ms !important; }

.trigger-in-view.in-view-delay-700 {
  -webkit-transition-delay: 700ms !important;
          transition-delay: 700ms !important; }

.trigger-in-view.in-view-delay-800 {
  -webkit-transition-delay: 800ms !important;
          transition-delay: 800ms !important; }

/**
 * 01. Form
 * 02. Comments List
 */
#commentform {
  margin-bottom: 2rem; }
  #commentform label {
    font-family: "Raleway", Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: #f6f6f6; }
    #commentform label[for="wp-comment-cookies-consent"] {
      font-size: 11px; }
  #commentform #comment {
    max-height: 100px; }
  #commentform .comment-form-comment {
    position: relative; }
  #commentform .comment-form-author,
  #commentform .comment-form-email {
    float: left;
    width: 50%; }
  #commentform .comment-form-author {
    padding-right: .5rem; }
  #commentform .comment-form-email {
    padding-left: .5rem; }
  #commentform .form-submit button {
    background: #fff;
    border: 1px solid #fff;
    color: #0a0a0a; }
    #commentform .form-submit button:hover {
      background: #0a0a0a;
      border: 1px solid #cba17d;
      color: #cba17d; }
  #commentform .character-counter {
    font-size: .875rem;
    position: absolute;
    right: 0;
    top: -5px; }

.comment-list-title {
  border-bottom: 1xp solid #444;
  margin-bottom: 1.5rem; }

.comment-list {
  list-style: none;
  margin: 0 0 20px; }

.comment-body .comment-author .avatar {
  display: none; }

.comment-body .comment-author cite:before {
  content: initial; }

.comment-body .comment-author .says {
  display: none; }

.off-canvas .comment-body a {
  font-size: .75rem;
  padding-top: .125rem; }
  .off-canvas .comment-body a:hover {
    color: #fff !important; }

.comment-body .comment-edit-link {
  float: right; }

.comment-body + ol.children {
  list-style: none;
  margin-top: 1.5rem;
  margin-left: 1.5rem; }

.post-comment-header {
  padding-left: 50px;
  position: relative; }
  .post-comment-header:before {
    font-family: 'undark' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    border: 1px solid white;
    border-radius: 50%;
    height: 40px;
    width: 40px;
    line-height: 40px;
    text-align: center;
    position: absolute;
    left: 0;
    top: 0; }

.comment + .comment {
  border-top: 1px solid #444;
  margin-top: 2rem;
  padding-top: 2rem; }

.comment-form-cookies-consent input,
.comment-form-cookies-consent label {
  float: left; }

.comment-form-cookies-consent input {
  margin-right: 6px;
  width: 14px; }

.comment-form-cookies-consent label {
  margin: 0; }

.form-submit {
  clear: both; }

/**
 * 01. Archive Filter
 */
.archive-filter {
  font-size: 0;
  margin-bottom: 4rem;
  width: 100%; }
  .archive-filter .archive-filter-inner {
    margin: 0 auto;
    max-width: 800px; }
  .archive-filter .input-wrap {
    display: inline-block;
    width: 50%;
    padding: 1rem;
    border: 1px solid #e6e6e6;
    border-left: 0; }
    .archive-filter .input-wrap:last-child {
      border-right: 0; }
    .archive-filter .input-wrap label {
      font-family: "Raleway", Arial, sans-serif;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .5px;
      text-transform: uppercase;
      color: #cba17d;
      margin-bottom: 1rem; }
    .archive-filter .input-wrap select {
      margin: 0; }
  .archive-filter.the-latest .input-wrap {
    width: 33.3333%;
    border-color: #8a8a8a; }

/**
 * 01. Global Form Styles
 */
input::-ms-clear {
  display: none !important; }

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

input:-moz-placeholder {
  /* Firefox 18- */
  color: #bfbfbf; }

input::-moz-placeholder {
  /* Firefox 19+ */
  color: #bfbfbf; }

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

@media screen and (max-width: 39.9375em) {
  .grid-container, .mesh_section .grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth) {
    padding-left: .75rem;
    padding-right: .75rem; } }

@media print, screen and (min-width: 64em) {
  .grid-container, .mesh_section .grid-x.mesh-row:not(.full-width):not(.full):not(.fullwidth) {
    padding-left: 5rem;
    padding-right: 5rem; } }

/**
 * Manage the video. This should maybe be more generic so it can be used in multiple places
 *
 * 01. Hero
 */
#homepage-hero {
  background-color: #7f948d;
  background-position: 50%;
  background-size: cover;
  padding: 50px 0 0;
  position: relative; }
  #homepage-hero:before {
    content: '';
    background: #1b3437;
    height: .625rem;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%; }
  #homepage-hero:after {
    content: '';
    border-top: 1rem solid #1b3437;
    border-left: 1rem solid transparent;
    border-right: 1rem solid transparent;
    display: block;
    height: 0;
    width: 0;
    position: absolute;
    left: 50%;
    top: 100%;
    margin-left: -1rem;
    margin-top: .625rem; }

.hero-content {
  text-transform: uppercase;
  position: relative;
  z-index: 4;
  /*  @media screen and ( min-width: 769px) {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
  } */ }
  .hero-content .hero-title {
    padding: 1.5rem 1.5rem 6rem; }
    @media print, screen and (min-width: 40em) {
      .hero-content .hero-title {
        padding-left: 1rem; } }
    @media print, screen and (min-width: 64em) {
      .hero-content .hero-title {
        padding: 0; } }
    @media screen and (min-width: 40em) {
      .hero-content .hero-title .large {
        font-size: 115%; } }
  .hero-content .hero-video-cta {
    background: #1b3437;
    display: block;
    font-size: 1.5rem;
    line-height: 1.75rem;
    margin-left: -10px;
    margin-top: 1rem;
    max-width: 100%;
    padding: 1rem 2rem; }
    @media screen and (max-width: 39.9375em) {
      .hero-content .hero-video-cta {
        -webkit-box-sizing: content-box;
                box-sizing: content-box;
        margin-right: -10px; } }
    @media print, screen and (min-width: 40em) {
      .hero-content .hero-video-cta {
        display: inline-block;
        margin-left: -15px;
        max-width: 75%; } }
    @media print, screen and (min-width: 64em) {
      .hero-content .hero-video-cta {
        margin-left: -46rem;
        max-width: 50%;
        padding: 2rem 2rem 2rem 48rem !important; } }
    .hero-content .hero-video-cta a {
      color: #fff;
      display: table;
      min-height: 70px;
      width: 100%; }
      .hero-content .hero-video-cta a > span {
        display: table-cell;
        vertical-align: middle; }
    .hero-content .hero-video-cta [class*="icon"] {
      font-size: 70px;
      width: 70px; }
    .hero-content .hero-video-cta .cta-description {
      padding-left: 1rem; }

#hero-background-video {
  height: inherit; }
  #hero-background-video > div,
  #hero-background-video > div > video {
    z-index: 2 !important; }

#hero-video {
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1; }
  #hero-video iframe {
    height: 100%;
    width: 100%; }
  .hero-video-playing #hero-video {
    z-index: 5; }

#hero-background-video:before {
  content: "";
  opacity: 0;
  position: absolute;
  height: 100%;
  width: 100%;
  background: #fff;
  z-index: 3;
  -webkit-transition: 400ms opacity cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: 400ms opacity cubic-bezier(0.175, 0.885, 0.32, 1.275); }

#hero-video-overlay {
  background: rgba(127, 148, 141, 0.8);
  opacity: 1;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 3;
  -webkit-transition: 400ms opacity cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: 400ms opacity cubic-bezier(0.175, 0.885, 0.32, 1.275); }

.hero-video-playing #homepage-hero .hero-content,
.hero-video-playing #main-menu-home {
  z-index: -1; }

.hero-video-playing #hero-video-overlay {
  opacity: 0; }

.hero-video-playing #hero-background-video:before {
  opacity: 1; }

.hero-video-playing #homepage-hero {
  background-image: none !important;
  background-color: #fff; }

/**
 * 01. Menus
 * 02. Social Menu
 */
.menu {
  position: static; }
  .menu .menu-item a {
    font-family: "Raleway", Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    height: inherit;
    letter-spacing: 1px;
    padding-top: 0;
    padding-bottom: 0;
    text-transform: uppercase;
    -webkit-transition: color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition: color 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    .menu .menu-item a:hover {
      color: #cba17d; }
  .menu .menu-item.as-button a {
    height: 0.25rem;
    line-height: 0.25rem;
    margin: 1.5rem 1rem;
    background-color: #7f948d;
    border-radius: 100px;
    color: #fff;
    -webkit-transition: all 400ms ease-out;
    transition: all 400ms ease-out; }
    .menu .menu-item.as-button a:hover {
      background-color: #1b3437; }
  .menu .menu-item.active a {
    background: transparent !important; }
  .top-bar .menu {
    height: 3.25rem;
    line-height: 3.25rem; }
    .top-bar .menu a {
      color: #fff;
      line-height: inherit; }
  .collapsed-header .top-bar .menu a {
    color: #0a0a0a; }
    .collapsed-header .top-bar .menu a:hover {
      color: #cba17d; }
  .menu.category-menu, .menu.user-menu {
    line-height: 1.6rem; }
    .menu.category-menu a, .menu.user-menu a {
      line-height: inherit; }
  .menu#menu-footer .menu-item + .menu-item {
    margin-top: .5rem; }
  .menu#menu-footer .menu-item.has-button {
    margin-bottom: 0;
    margin-top: 2rem; }
    .menu#menu-footer .menu-item.has-button a {
      color: white; }
  .menu#menu-footer .menu-item:hover a {
    color: #cba17d; }
  .menu#menu-footer a {
    color: black;
    padding: 0; }

ul.social.menu {
  display: block;
  font-size: 0;
  margin-top: .5rem; }
  ul.social.menu li {
    display: inline-block;
    vertical-align: top; }
    ul.social.menu li a {
      background-color: transparent;
      border: 1px solid #fff;
      border-radius: 100px;
      color: #fff;
      font-size: 0;
      padding: .75rem;
      margin: .25rem;
      -webkit-transition: color 400ms, background-color 400ms;
      transition: color 400ms, background-color 400ms; }
      ul.social.menu li a:before {
        font-family: 'undark' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        display: block;
        font-size: 28px; }
      ul.social.menu li a:hover {
        background: #fff;
        color: #0a0a0a !important; }
  ul.social.menu li.facebook a:before {
    content: ""; }
  ul.social.menu li.twitter a:before {
    content: ""; }
  ul.social.menu li.vimeo a:before {
    content: ""; }
  ul.social.menu li.reddit a:before {
    content: ""; }
  ul.social.menu li.flipboard a:before {
    content: ""; }
  ul.social.menu li.pocket a:before {
    content: ""; }
  #desktop-menu-overlay ul.social.menu {
    padding-left: .75rem;
    padding-right: .75rem; }

.reveal-overlay .close-button {
  font-size: .75rem;
  margin-right: -7px;
  margin-top: 2px; }

/**
 * 01. Homepage Sidebars
 */
.home-left-sidebar .widgettitle,
.home-right-sidebar .widgettitle {
  text-transform: uppercase; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0; }

.slick-list:focus {
  outline: none; }

.slick-list.dragging {
  cursor: pointer;
  cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }

.slick-track:before,
.slick-track:after {
  display: table;
  content: ''; }

.slick-track:after {
  clear: both; }

.slick-loading .slick-track {
  visibility: hidden; }

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px; }

[dir='rtl'] .slick-slide {
  float: right; }

.slick-slide img {
  display: block; }

.slick-slide.slick-loading img {
  display: none; }

.slick-slide.dragging img {
  pointer-events: none; }

.slick-initialized .slick-slide {
  display: block; }

.slick-loading .slick-slide {
  visibility: hidden; }

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

.slick-slide {
  outline: none !important; }

.slick-dots {
  text-align: right;
  margin: 0; }
  .slick-dots li {
    display: inline-block;
    font-size: 0; }
    .slick-dots li button {
      height: .75rem;
      width: .75rem;
      background: #cba17d;
      border: 3px solid #fff;
      margin: 3px;
      padding: 0;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .slick-dots li.slick-active button {
      background: #fff;
      border-color: #1b3437; }

/**
 * 01. Lead
 * 02. Sans Link
 */
@media screen and (max-width: 39.9375em) {
  .lead {
    font-size: 1.1rem; } }

.medium-lead {
  font-size: 1.25rem; }
  @media screen and (max-width: 39.9375em) {
    .medium-lead {
      font-size: 1.1rem; } }

.sans-link {
  font-family: "Raleway", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700; }

/**
 * 01. Fullwidth Container
 * 02. Image Slider
 * 03. Large Post Image
 * 04. Background Video
 * 05. Caption
 */
@media print, screen and (min-width: 64em) {
  .fullwidth-container {
    margin-left: calc((((11/12 * 100) * ((4/12)/2)) * -1vw) - 1.34375rem);
    margin-right: calc((((11/12 * 100) * ((4/12)/2)) * -1vw) - 1.34375rem); } }

.post-template-single-image-header .fullwidth-container,
.post-template-default .fullwidth-container {
  position: relative; }
  @media screen and (max-width: 39.9375em) {
    .post-template-single-image-header .fullwidth-container,
    .post-template-default .fullwidth-container {
      margin: 0; } }
  @media screen and (min-width: 40em) and (max-width: 47.9375em) {
    .post-template-single-image-header .fullwidth-container,
    .post-template-default .fullwidth-container {
      margin-left: -3.5rem;
      margin-right: -1rem; } }
  @media screen and (min-width: 64em) {
    .post-template-single-image-header .fullwidth-container,
    .post-template-default .fullwidth-container {
      margin-left: calc(((-100vw * (11/12)) * (2/12)) - 5.5rem);
      width: calc(100vw * 11/12); }
      .post-template-single-image-header .fullwidth-container .undark-caption,
      .post-template-default .fullwidth-container .undark-caption {
        background: rgba(50, 50, 50, 0.75);
        color: #fff;
        max-width: 50%;
        padding: 1.5rem;
        position: absolute;
        left: 0;
        bottom: 25px; }
        .post-template-single-image-header .fullwidth-container .undark-caption p,
        .post-template-default .fullwidth-container .undark-caption p {
          margin: 0;
          color: white; }
        .post-template-single-image-header .fullwidth-container .undark-caption:before,
        .post-template-default .fullwidth-container .undark-caption:before {
          left: 1.5rem; } }

.undark-image-slider {
  margin-bottom: 1.25%;
  margin-top: 1.25%; }
  @media print, screen and (min-width: 64em) {
    .undark-image-slider:not(.full-width) {
      margin-left: calc((((11/12) * 1/12) * -100vw) * 1.5);
      margin-right: calc((((11/12) * 1/12) * -100vw) * 1.5);
      padding-top: 2rem; } }
  .undark-image-slider.full-width {
    overflow-x: hidden;
    margin-bottom: 1rem; }
    .undark-image-slider.full-width img {
      width: 100%; }
    @media screen and (max-width: 1199px) {
      .undark-image-slider.full-width .undark-image-slide {
        background: none !important;
        pointer-events: none;
        text-decoration: none; }
        .undark-image-slider.full-width .undark-image-slide .undark-caption:before {
          left: 20px; }
        .undark-image-slider.full-width .undark-image-slide[data-lightbox]:before {
          content: initial; } }
    @media screen and (min-width: 1200px) {
      .undark-image-slider.full-width {
        margin-left: calc((((11/12 * 100) * ((4/12)/2)) * -1vw) - 1.34375rem);
        margin-right: calc((((11/12 * 100) * ((4/12)/2)) * -1vw) - 1.34375rem); }
        .undark-image-slider.full-width img {
          display: none; }
        .undark-image-slider.full-width .undark-image-slide {
          background-size: cover;
          background-position: 50%;
          height: 70vh;
          overflow: hidden;
          padding: 0;
          position: relative; }
          .undark-image-slider.full-width .undark-image-slide .undark-caption {
            background: rgba(50, 50, 50, 0.75);
            color: #fff;
            max-width: 50%;
            padding: 1.5rem;
            position: absolute;
            left: 0;
            bottom: 25px; }
            .undark-image-slider.full-width .undark-image-slide .undark-caption p {
              margin: 0;
              color: white; }
            .undark-image-slider.full-width .undark-image-slide .undark-caption:before {
              left: 1.5rem; }
        .undark-image-slider.full-width .slick-arrow {
          opacity: 0;
          -webkit-transition: 400ms opacity cubic-bezier(0.175, 0.885, 0.32, 1.275);
          transition: 400ms opacity cubic-bezier(0.175, 0.885, 0.32, 1.275); }
          .undark-image-slider.full-width .slick-arrow.slick-prev {
            left: 25px; }
          .undark-image-slider.full-width .slick-arrow.slick-next {
            right: 25px; }
        .undark-image-slider.full-width:hover .slick-arrow {
          opacity: 1; } }
  @media print, screen and (min-width: 40em) {
    .undark-image-slider {
      padding-bottom: 1.25%;
      padding-top: 1.25%; } }
  .undark-image-slider .slick-list {
    overflow: visible; }
  .undark-image-slider:not(.full-width) .undark-image-slide {
    padding: 1rem;
    -webkit-transform: scale(1);
            transform: scale(1); }
    @media print, screen and (min-width: 40em) {
      .undark-image-slider:not(.full-width) .undark-image-slide {
        opacity: .5;
        -webkit-transition: 400ms all cubic-bezier(0.175, 0.885, 0.32, 1.275);
        transition: 400ms all cubic-bezier(0.175, 0.885, 0.32, 1.275); }
        .undark-image-slider:not(.full-width) .undark-image-slide.slick-center {
          opacity: 1;
          position: relative;
          z-index: 5; } }
    @media screen and (min-width: 64em) {
      .undark-image-slider:not(.full-width) .undark-image-slide {
        padding: 1.5rem; }
        .undark-image-slider:not(.full-width) .undark-image-slide.slick-center {
          -webkit-transform: scale(1.25);
                  transform: scale(1.25); } }
  .undark-image-slider .slick-arrow {
    background: black;
    background: rgba(0, 0, 0, 0.75);
    border: 3px solid white;
    border-radius: 500px;
    color: white;
    height: 40px;
    width: 40px;
    z-index: 9; }
    .undark-image-slider .slick-arrow:before {
      content: '';
      display: block;
      height: 0;
      width: 0;
      margin: 0 auto;
      opacity: 1;
      border-top: 10px solid transparent;
      border-bottom: 10px solid transparent;
      position: relative; }
    @media screen and (max-width: 74.9375em) {
      .undark-image-slider .slick-arrow {
        margin-top: -20px; }
        .undark-image-slider .slick-arrow.slick-prev {
          left: 10px; }
        .undark-image-slider .slick-arrow.slick-next {
          right: 10px; } }
    .undark-image-slider .slick-arrow.slick-next:before {
      border-left: 14px solid white;
      left: 2px; }
    .undark-image-slider .slick-arrow.slick-prev:before {
      border-right: 14px solid white;
      right: 2px; }
    .undark-image-slider .slick-arrow:hover {
      background: black;
      background: rgba(0, 0, 0, 0.5); }
    .undark-image-slider .slick-arrow:focus {
      background: black;
      background: rgba(0, 0, 0, 0.75); }
    @media print, screen and (min-width: 40em) {
      .undark-image-slider .slick-arrow {
        height: 60px;
        width: 60px; }
        .undark-image-slider .slick-arrow:before {
          border-top-width: 17px;
          border-bottom-width: 17px; }
        .undark-image-slider .slick-arrow.slick-next:before {
          border-left-width: 20px;
          left: 4px; }
        .undark-image-slider .slick-arrow.slick-prev:before {
          border-right-width: 20px solid white;
          right: 4px; } }

@media screen and (max-width: 74.9375em) {
  .undark-large-post-image {
    background-image: none; } }

@media screen and (min-width: 64em) {
  .undark-large-post-image {
    background-size: cover;
    background-position: 50%;
    height: 70vh;
    margin-left: calc((((11/12 * 100) * ((4/12)/2)) * -1vw) - 1.34375rem);
    margin-right: calc((((11/12 * 100) * ((4/12)/2)) * -1vw) - 1.34375rem);
    position: relative; }
    .undark-large-post-image .image {
      display: none; }
    .undark-large-post-image .large-image-caption {
      position: absolute;
      top: 100%;
      left: 0;
      width: 16.66667%;
      padding: 1rem; } }

@media screen and (min-width: 64em) {
  .undark-background-video-container {
    height: 70vh;
    overflow: hidden; } }

.undark-caption,
.undark-caption p {
  font-size: .875rem;
  margin-top: .5rem; }

@media screen and (max-width: 39.9375em) {
  .wp-block-image .alignright {
    float: none;
    margin-left: 0; } }

.wp-block-image figcaption {
  text-align: left; }

@media screen and (max-width: 39.9375em) {
  .wp-caption.alignright {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%; } }

@media screen and (min-width: 40em) {
  .wp-caption.alignright {
    max-width: 33.333333%; } }

.wp-caption.alignright .wp-caption-text {
  margin-top: 1rem; }

/**
 * 01 Global
 * 02. Split
 * 03. Stacked
 * 04. Entry Meta
 */
.hide-loop-post-byline .byline .byline-author {
  display: none !important; }

.hide-loop-post-byline .byline .byline-visuals {
  display: none !important; }

.byline .byline-label {
  color: #cba17d; }

.byline.byline-split .loop-post-byline {
  border-top: 1px solid #bfbfbf;
  display: inline-block; }

.byline.byline-split.full-width {
  min-width: 60%; }
  .byline.byline-split.full-width .loop-post-byline {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .byline.byline-split.full-width .byline-item:first-of-type {
    padding-left: 0; }
  .byline.byline-split.full-width .byline-item:last-of-type {
    padding-right: 0; }

.byline.byline-split .byline-author,
.byline.byline-split .byline-date,
.byline.byline-split .byline-item,
.byline.byline-split .byline-visuals {
  display: inline-block;
  padding: 15px; }

.byline.byline-split .byline-author {
  color: #8a8a8a; }

.byline.byline-split .byline-date,
.byline.byline-split .border-item {
  border-left: 1px solid #bfbfbf;
  color: #cba17d; }

@media screen and (max-width: 767px) {
  .featured-article .byline.byline-split .byline-date {
    border-left: none;
    display: block;
    padding-top: 0; } }

.byline.byline-stacked .byline-author {
  color: #cba17d; }

.byline.byline-stacked .byline-date {
  color: #bfbfbf; }

.byline.byline-entry-meta .byline-item {
  display: inline-block;
  margin-right: 1rem; }

/**
 * 01. Loop Post Inner
 */
.loop-post-inner {
  position: relative; }
  .background-black .loop-post-inner,
  .blog .loop-post-inner {
    color: #cba17d; }
  .loop-post-inner .loop-post-title {
    line-height: 1.1;
    margin-top: .75rem;
    margin-bottom: .375rem; }
    .loop-post-inner .loop-post-title a {
      color: #0a0a0a; }
  .loop-post-inner:hover .loop-post-title a {
    color: #cba17d; }
    .background-black .loop-post-inner:hover .loop-post-title a {
      color: #cba17d; }

/**
 * 01. Post Category Default
 * 02. Featured Article
 * 03. Teaser Article
 * 04. Interior Page
 * 05. Single Related
 * 06. Blog Archive
 * 07. Blog Archive Top
 */
.post-category {
  background: #0a0a0a;
  display: inline-block;
  font-family: "Raleway", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 5px 8px;
  text-transform: uppercase;
  z-index: 1; }
  .post-category a {
    color: #fff; }
  .post-category.unstyled {
    background: none;
    padding: 0; }
  .featured-article .post-category {
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
    @media print, screen and (min-width: 40em) {
      .featured-article .post-category {
        top: 100%; } }
    @media screen and (max-width: 39.9375em) {
      .featured-article .post-category {
        top: 0; } }
  .article-tease .post-category {
    position: absolute;
    bottom: 0;
    left: 0; }
  body:not(.frontpage) .post-category {
    background: transparent;
    margin-bottom: 1rem;
    padding: 0; }
    body:not(.frontpage) .post-category a {
      color: #cba17d;
      font-size: 14px;
      letter-spacing: .5px;
      text-decoration: underline; }
      body:not(.frontpage) .post-category a:hover {
        color: #be895c; }
  .single-related .post-category {
    display: none; }
  body.blog .article:not(.top) .post-category,
  body.archive .article:not(.top) .post-category,
  body.search .post-category {
    background: #fff;
    margin-bottom: 0;
    padding: 5px 8px; }
    body.blog .article:not(.top) .post-category a,
    body.archive .article:not(.top) .post-category a,
    body.search .post-category a {
      color: #0a0a0a;
      text-decoration: none; }
  .article-tease.top .post-category {
    background: #0a0a0a;
    padding: 5px 8px;
    bottom: auto;
    left: 50%;
    top: 0;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
    .article-tease.top .post-category a {
      color: #fff;
      text-decoration: none; }

/**
 * 01. Article
 * 02. Tease
 * 03. Tease Horizontal
 * 04. Blog Articles
 */
.article .loop-post-image {
  position: relative; }

.article img {
  -webkit-filter: grayscale(0) contrast(1);
          filter: grayscale(0) contrast(1);
  width: 100%;
  -webkit-transition: -webkit-filter 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: -webkit-filter 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: filter 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: filter 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275), -webkit-filter 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275); }

.article:hover img {
  -webkit-filter: grayscale(0.5) contrast(1.2);
          filter: grayscale(0.5) contrast(1.2); }

.background-black .article .loop-post-content {
  color: #cba17d; }

.background-black .article .loop-post-title a {
  color: #fff;
  font-size: 1.25rem; }

.article-tease {
  margin-bottom: 1.5rem; }
  .article-tease .loop-post-title {
    font-weight: 700; }
  #footer .article-tease {
    margin-bottom: 0; }

.article-tease-horizontal .loop-post-inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start; }

.article-tease-horizontal .loop-post-image,
.article-tease-horizontal .loop-post-content {
  width: 50%; }

.article-tease-horizontal .loop-post-content {
  font-size: .9375rem;
  padding: 0 .75rem; }

.article-tease-horizontal .loop-post-title {
  font-size: .9375rem;
  margin: 0 0 .25rem; }

body.blog .article:not(.top) .loop-post-inner .loop-post-title a {
  color: #fff; }

@media print, screen and (min-width: 64em) {
  #latest-categories .category-post[class*="post-1"] {
    border-bottom: 1px solid #bfbfbf;
    margin-bottom: 1rem;
    padding-bottom: 1rem; } }

#latest-categories .category-post + .category-post {
  margin-top: 2rem; }

#latest-categories .category-post .article {
  height: 100%; }

#latest-categories .category-headline {
  border-bottom: 1px solid #bfbfbf;
  margin-bottom: 1rem;
  padding-bottom: .5rem; }
  #latest-categories .category-headline > * {
    margin: 0; }

#latest-categories .category-link {
  color: #cba17d;
  font-family: "Raleway", Arial, sans-serif;
  font-size: .875rem;
  text-transform: uppercase; }

/**
 * 01. Global
 */
.undark-image-caption {
  margin: 2rem 0 1rem; }
  @media print, screen and (min-width: 64em) {
    .undark-image-caption:not(.single-image) {
      margin: 2rem -7.5rem 1rem !important; } }
  .undark-image-caption .undark-image-block > .cell {
    padding: .5rem; }
  .undark-image-caption .undark-caption {
    font-size: .875rem;
    line-height: 18px;
    margin-top: .5rem; }
  .undark-image-caption.images-1, .undark-image-caption.images-2, .undark-image-caption.images-3, .undark-image-caption.images-4 {
    margin-left: -.5rem;
    margin-right: -.5rem; }

.image-caption {
  color: #7f948d;
  font-size: .875rem;
  font-weight: 300;
  margin: .5rem 0 0; }

.undark-image-block img {
  display: block;
  margin: 0 auto; }

/**
 * 01. Structure
 * 02. Single Post Split
 */
#entry-meta-container {
  border-top: 1px solid #e5dfd9;
  padding: 10px 0; }
  #entry-meta-container .comments-trigger {
    font-size: 18px;
    padding: 0 10px 0 20px;
    position: relative; }
    #entry-meta-container .comments-trigger:before {
      content: '';
      background: #e5dfd9;
      display: block;
      width: 1px;
      position: absolute;
      left: 0;
      top: -10px;
      bottom: -10px; }
  @media screen and (max-width: 768px) {
    #entry-meta-container {
      border-bottom: 1px solid #e5dfd9;
      padding-bottom: 0; }
      *:not(.split-entry-meta) #entry-meta-container {
        border-top: none;
        padding-bottom: 0; }
        *:not(.split-entry-meta) #entry-meta-container .meta-container-byline {
          border-bottom: 1px solid #e5dfd9;
          display: block;
          padding: 10px 0 20px;
          text-align: left; }
        *:not(.split-entry-meta) #entry-meta-container .meta-container-comments-number {
          padding: 10px; }
        *:not(.split-entry-meta) #entry-meta-container .comments-trigger {
          padding: 1rem 1.5rem; }
          *:not(.split-entry-meta) #entry-meta-container .comments-trigger:before {
            top: 0;
            bottom: 0; } }

.split-entry-meta {
  border-top: 1px solid #e5dfd9;
  padding: 1rem 0; }
  .split-entry-meta #entry-meta-container .meta-container-byline {
    border-bottom: 1px solid #e5dfd9; }
  .split-entry-meta #entry-meta-container .comments-trigger {
    padding: 1rem 1.5rem; }
    @media print, screen and (min-width: 40em) {
      .split-entry-meta #entry-meta-container .comments-trigger {
        padding: 1.5rem 1.5rem .5rem; } }
    .split-entry-meta #entry-meta-container .comments-trigger:before {
      top: 0;
      bottom: 0; }
  @media screen and (max-width: 47.9375em) {
    .split-entry-meta #entry-meta-container {
      border-top: none; } }
  @media screen and (min-width: 64em) {
    .split-entry-meta #entry-meta-container {
      border-left: 1px solid #e5dfd9;
      border-top: none;
      margin-top: -1rem;
      padding: 0; } }
  .split-entry-meta .byline.byline-entry-meta .byline-item {
    display: block; }
    .split-entry-meta .byline.byline-entry-meta .byline-item + .byline-item {
      margin-top: .375rem; }

/**
 * 01. Stucture
 */
#comments-panel button:hover {
  border: none; }

/**
 * 01. Republish Container
 * 02. Republish Markup
 * 03. Republish Loader
 */
#republish-modal-container {
  position: relative; }

.republish-modal-markup {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-size: 14px;
  padding: 1rem; }

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

@keyframes republish-loader {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

#republish-loader {
  padding-top: 10px;
  text-align: center;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 100; }
  #republish-loader .loader-dot {
    background-color: #cba17d;
    border-radius: 100%;
    display: inline-block;
    height: 6px;
    width: 6px;
    margin-left: 3px;
    margin-right: 3px;
    position: relative;
    top: 0; }
    #republish-loader .loader-dot.loader-dot-1 {
      -webkit-animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 75ms infinite;
              animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 75ms infinite; }
    #republish-loader .loader-dot.loader-dot-2 {
      -webkit-animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 150ms infinite;
              animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 150ms infinite; }
    #republish-loader .loader-dot.loader-dot-3 {
      -webkit-animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 225ms infinite;
              animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 225ms infinite; }
    #republish-loader .loader-dot.loader-dot-4 {
      -webkit-animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 300ms infinite;
              animation: republish-loader 750ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 300ms infinite; }

/**
 * 01. Podcast Menu (Vertical)
 * 02. Podcast Menu (Horizontal)
 */
[id^="menu-podcast-stations"] li {
  padding: 15px 0 4px; }

[id^="menu-podcast-stations"] .menu-item {
  border-bottom: 1px solid #e5dfd9; }
  [id^="menu-podcast-stations"] .menu-item a {
    font-weight: 700;
    padding: 0;
    text-transform: none; }

.podcast-menu.podcast-menu-top {
  border-top: 1px solid #8a8a8a;
  border-bottom: 1px solid #8a8a8a;
  display: inline-block;
  margin: .5rem 0 0;
  padding: 1.25rem 0; }
  .podcast-menu.podcast-menu-top > * {
    display: inline-block !important;
    padding: 0; }
  .podcast-menu.podcast-menu-top .menu-item {
    border-bottom: none;
    margin-left: .75rem; }
    .podcast-menu.podcast-menu-top .menu-item a {
      text-transform: uppercase; }

/**
 * 01. Global
 * 02. Small Related
 * 03. Large Related
 */
.related-post .loop-post-title {
  font-weight: 700;
  text-decoration: none; }

.related-post.related-post-small {
  border-left: 1px solid #e5dfd9;
  float: right;
  margin: 0 0 1rem 1rem;
  padding-left: 1rem;
  width: 33%; }
  .related-post.related-post-small .loop-post-title {
    display: block;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 16px;
    line-height: 20px; }

.related-post.related-post-large {
  display: block;
  margin: 4rem 0;
  min-width: 100%; }
  .related-post.related-post-large .loop-post-image-container {
    background-position: 50%;
    background-size: cover; }
    @media screen and (max-width: 47.9375em) {
      .related-post.related-post-large .loop-post-image-container {
        background-image: none; } }
  @media print, screen and (min-width: 64em) {
    .related-post.related-post-large {
      margin-left: -8rem;
      margin-right: -8rem; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuZGFyay5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsImNvbmZpZy9fdmFyaWFibGVzLnNjc3MiLCJjb25maWcvX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJjb25maWcvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NlbGwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NvbGxhcHNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2ZyYW1lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zbGlkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX2hpbmdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCJjb25maWcvX21peGlucy5zY3NzIiwiY29uZmlnL19pY29uLWZvbnQuc2NzcyIsImNvbmZpZy9fdHlwb2dyYXBoeS5zY3NzIiwicGx1Z2lucy9fZ3Jhdml0eS1mb3Jtcy5zY3NzIiwicGx1Z2lucy9fcmVzb3J0bWVudC5zY3NzIiwicGx1Z2lucy9famV0cGFjay5zY3NzIiwicGx1Z2lucy9fd3Bnb29nbGVtYXBzLnNjc3MiLCJzaXRlL2dsb2JhbC9fc3RydWN0dXJlLnNjc3MiLCJzaXRlL2dsb2JhbC9faGVhZGVyLnNjc3MiLCJzaXRlL2dsb2JhbC9fYXJjaGl2ZS5zY3NzIiwic2l0ZS9nbG9iYWwvX3NpbmdsZS5zY3NzIiwic2l0ZS9nbG9iYWwvX2Zvb3Rlci5zY3NzIiwic2l0ZS9nbG9iYWwvX3dwY29yZS5zY3NzIiwic2l0ZS9nbG9iYWwvX2dsb2JhbC5zY3NzIiwic2l0ZS9wYWdlcy9faG9tZS5zY3NzIiwic2l0ZS9wYWdlcy9fc2luZ2xlLnNjc3MiLCJzaXRlL3BhZ2VzL19hcmNoaXZlLnNjc3MiLCJzaXRlL3BhZ2VzL19icmVhdGh0YWtpbmcuc2NzcyIsInNpdGUvcGFnZXMvX2RlZmF1bHQuc2NzcyIsInNpdGUvcGFnZXMvX2Fib3V0LnNjc3MiLCJzaXRlL3VpL19pbnZpZXcuc2NzcyIsInNpdGUvdWkvX2NvbW1lbnRzLnNjc3MiLCJzaXRlL3VpL19maWx0ZXJzLnNjc3MiLCJzaXRlL3VpL19mb3Jtcy5zY3NzIiwic2l0ZS91aS9fZ3JpZC5zY3NzIiwic2l0ZS91aS9faGVyby12aWRlby5zY3NzIiwic2l0ZS91aS9fbWVudS5zY3NzIiwic2l0ZS91aS9fcmV2ZWFsLnNjc3MiLCJzaXRlL3VpL19zaWRlYmFycy5zY3NzIiwic2l0ZS91aS9fc2xpY2suc2NzcyIsInNpdGUvdWkvX3R5cG9ncmFwaHkuc2NzcyIsInNpdGUvdWkvX21lZGlhLXNob3J0Y29kZXMuc2NzcyIsInNpdGUvcGFydGlhbHMvX2J5bGluZS5zY3NzIiwic2l0ZS9wYXJ0aWFscy9fbG9vcC1wb3N0LnNjc3MiLCJzaXRlL3BhcnRpYWxzL19wb3N0LWNhdGVnb3J5LnNjc3MiLCJzaXRlL3BhcnRpYWxzL19hcnRpY2xlLnNjc3MiLCJzaXRlL3BhcnRpYWxzL19sYXRlc3QtY2F0ZWdvcnkuc2NzcyIsInNpdGUvcGFydGlhbHMvX2ltYWdlLWNhcHRpb24uc2NzcyIsInNpdGUvcGFydGlhbHMvX2VudHJ5LW1ldGEuc2NzcyIsInNpdGUvcGFydGlhbHMvX2NvbW1lbnRzLXBhbmVsLnNjc3MiLCJzaXRlL3BhcnRpYWxzL19yZXB1Ymxpc2guc2NzcyIsInNpdGUvcGFydGlhbHMvX3BvZGNhc3QtbWVudS5zY3NzIiwic2l0ZS9wYXJ0aWFscy9fc2hvcnRjb2RlLXJlbGF0ZWQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxn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aEg7SUk3QkEsZ0NBRGdILEVBQUE7RUo4QmhIO0lJN0JBLDBCQURnSCxFQUFBO0VKOEJoSDtJSTdCQSxnQ0FEZ0gsRUFBQTtFSjhCaEg7SUk3QkEsZ0NBRGdILEVBQUE7RUo4QmhIO0lJN0JBLDJCQURnSCxFQUFBO0VkbUY5RztJVWpFSjtNSXpCRSxXQUFtQixFQUFBO0lKNkJyQjtNSXpCRSxXQUFtQixFQUFBO0lKaUNuQjtNSTdCQSxnQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDRCQURnSCxFQUFBLEVKZ0MvRztFVjhDQztJVTVESjtNSXpCRSxXQUFtQixFQUFBO0lKNkJyQjtNSXpCRSxXQUFtQixFQUFBO0lKaUNuQjtNSTdCQSxnQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDRCQURnSCxFQUFBO0lKa0JsSDtNSXpCRSxXQUFtQixFQUFBO0lKNkJyQjtNSXpCRSxXQUFtQixFQUFBO0lKaUNuQjtNSTdCQSxnQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDRCQURnSCxFQUFBLEVKZ0MvRztFVjhDQztJVTVESjtNSXpCRSxXQUFtQixFQUFBO0lKNkJyQjtNSXpCRSxXQUFtQixFQUFBO0lKaUNuQjtNSTdCQSxnQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDJCQURnSCxFQUFBO0lKOEJoSDtNSTdCQSxpQ0FEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLDRCQURnSCxFQUFBLEVKZ0MvRzs7QUE4Q0g7RUNuSU0sdUJBQTRCO0VBQTVCLHNCQUE0QixFQUFBO0VYbUk5QjtJVUFKO01DbklNLHdCQUE0QjtNQUE1Qix1QkFBNEIsRUFBQSxFRHdJL0I7O0FBSUQ7RUM1SUksdUJBQTRCO0VBQTVCLHNCQUE0QixFQUFBO0VYbUk5QjtJVVNGO01DNUlJLHdCQUE0QjtNQUE1Qix1QkFBNEIsRUFBQSxFRDhJL0I7O0FBWEg7RUNuSU0sdUJBQTRCO0VBQTVCLHNCQUE0QixFQUFBO0VYbUk5QjtJVUFKO01DbklNLHdCQUE0QjtNQUE1Qix1QkFBNEIsRUFBQSxFRG1KL0I7O0FLdEpIO0VEeURFLFdBRG9ELEVBQUE7O0FDeER0RDtFRHlERSxVQURvRCxFQUFBOztBQ3hEdEQ7RUR5REUsZ0JBRG9ELEVBQUE7O0FDeER0RDtFRHlERSxVQURvRCxFQUFBOztBQ3hEdEQ7RUR5REUsVUFEb0QsRUFBQTs7QUN4RHREO0VEeURFLGdCQURvRCxFQUFBOztBQ3hEdEQ7RUR5REUsZ0JBRG9ELEVBQUE7O0FDeER0RDtFRHlERSxZQURvRCxFQUFBOztBZG1GbEQ7RWUzSUo7SUR5REUsV0FEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsVUFEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsZ0JBRG9ELEVBQUE7RUN4RHREO0lEeURFLFVBRG9ELEVBQUE7RUN4RHREO0lEeURFLFVBRG9ELEVBQUE7RUN4RHREO0lEeURFLGdCQURvRCxFQUFBO0VDeER0RDtJRHlERSxnQkFEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsWUFEb0QsRUFBQSxFQ3REckQ7O0Fmb0lHO0VldElKO0lEeURFLFdBRG9ELEVBQUE7RUN4RHREO0lEeURFLFVBRG9ELEVBQUE7RUN4RHREO0lEeURFLGdCQURvRCxFQUFBO0VDeER0RDtJRHlERSxVQURvRCxFQUFBO0VDeER0RDtJRHlERSxVQURvRCxFQUFBO0VDeER0RDtJRHlERSxnQkFEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsZ0JBRG9ELEVBQUE7RUN4RHREO0lEeURFLFlBRG9ELEVBQUEsRUN0RHJEOztBZm9JRztFZXRJSjtJRHlERSxXQURvRCxFQUFBO0VDeER0RDtJRHlERSxVQURvRCxFQUFBO0VDeER0RDtJRHlERSxnQkFEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsVUFEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsVUFEb0QsRUFBQTtFQ3hEdEQ7SUR5REUsZ0JBRG9ELEVBQUE7RUN4RHREO0lEeURFLGdCQURvRCxFQUFBO0VDeER0RDtJRHlERSxZQURvRCxFQUFBLEVDdERyRDs7QUFGRDtFRHlERSwyQkFEZ0gsRUFBQTs7QUN4RGxIO0VEeURFLDBCQURnSCxFQUFBOztBQ3hEbEg7RUR5REUsZ0NBRGdILEVBQUE7O0FDeERsSDtFRHlERSwwQkFEZ0gsRUFBQTs7QUN4RGxIO0VEeURFLDBCQURnSCxFQUFBOztBQ3hEbEg7RUR5REUsZ0NBRGdILEVBQUE7O0FDeERsSDtFRHlERSxnQ0FEZ0gsRUFBQTs7QUN4RGxIO0VEeURFLDRCQURnSCxFQUFBOztBZG1GOUc7RWUzSUo7SUR5REUsNEJBRGdILEVBQUE7RUN4RGxIO0lEeURFLDJCQURnSCxFQUFBO0VDeERsSDtJRHlERSxpQ0FEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsMkJBRGdILEVBQUE7RUN4RGxIO0lEeURFLDJCQURnSCxFQUFBO0VDeERsSDtJRHlERSxpQ0FEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsaUNBRGdILEVBQUE7RUN4RGxIO0lEeURFLDZCQURnSCxFQUFBLEVDdERqSDs7QWZvSUc7RWV0SUo7SUR5REUsMkJBRGdILEVBQUE7RUN4RGxIO0lEeURFLDBCQURnSCxFQUFBO0VDeERsSDtJRHlERSxnQ0FEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsMEJBRGdILEVBQUE7RUN4RGxIO0lEeURFLDBCQURnSCxFQUFBO0VDeERsSDtJRHlERSxnQ0FEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsZ0NBRGdILEVBQUE7RUN4RGxIO0lEeURFLDRCQURnSCxFQUFBO0VDeERsSDtJRHlERSw0QkFEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsMkJBRGdILEVBQUE7RUN4RGxIO0lEeURFLGlDQURnSCxFQUFBO0VDeERsSDtJRHlERSwyQkFEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsMkJBRGdILEVBQUE7RUN4RGxIO0lEeURFLGlDQURnSCxFQUFBO0VDeERsSDtJRHlERSxpQ0FEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsNkJBRGdILEVBQUEsRUN0RGpIOztBZm9JRztFZXRJSjtJRHlERSw0QkFEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsMkJBRGdILEVBQUE7RUN4RGxIO0lEeURFLGlDQURnSCxFQUFBO0VDeERsSDtJRHlERSwyQkFEZ0gsRUFBQTtFQ3hEbEg7SUR5REUsMkJBRGdILEVB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QkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsV0FEb0QsRUFBQSxFRXpDM0M7O0FoQjRIUDtFZ0JySE07SUZtQ1IsZUFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLFVBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLGdCQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsVUFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLGdCQURvRCxFQUFBO0VFbEM1QztJRm1DUixVQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLFdBRG9ELEVBQUEsRUVoQzNDOztBaEJtSFA7RWdCOUhNO0lGNENSLGVBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixVQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLFVBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsVUFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixXQURvRCxFQUFBLEVFekMzQzs7QWhCNEhQO0VnQjlITTtJRjRDUixlQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsVUFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixVQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLFVBRG9ELEVBQUE7RUUzQzVDO0lG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O0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLFVBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsV0FEb0QsRUFBQSxFRXpDM0M7O0FoQjRIUDtFZ0JySE07SUZtQ1IsZUFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLFVBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLGdCQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsVUFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLGdCQURvRCxFQUFBO0VFbEM1QztJRm1DUixVQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLFdBRG9ELEVBQUEsRUVoQzNDOztBaEI4R1A7RWdCekhNO0lGNENSLGVBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixVQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLFVBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixnQkFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsVUFEb0QsRUFBQTtFRTNDNUM7SUY0Q1IsZ0JBRG9ELEVBQUE7RUUzQzVDO0lGNENSLGdCQURvRCxFQUFBO0VFM0M1QztJRjRDUixXQURvRCxFQUFBLEVFekMzQzs7QWhCdUhQO0VnQmhITTtJRm1DUixlQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsVUFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLGdCQURvRCxFQUFBO0VFbEM1QztJRm1DUixVQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsZ0JBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLFVBRG9ELEVBQUE7RUVsQzVDO0lGbUNSLGdCQURvRCxFQUFBO0VFbEM1QztJRm1DUixnQkFEb0QsRUFBQTtFRWxDNUM7SUZtQ1IsV0FEb0QsRUFBQSxFRWhDM0M7O0FoQjhHUDtFVWtFQTtJTXRLRSxlQUEwQjtJQUExQixjQUEwQixFQUFBO0lBRzVCO01BRUksZ0JBQTRCO01BQTVCLGVBQTRCLEVBQUEsRUFFL0I7O0FONktEO0VPMU5GLGVBQTZCLEVBQUE7O0FQOE4zQjtFTzlORixnQ0FBNkIsRUFBQTs7QVAwTjNCO0VPMU5GLHFCQUE2QixFQUFBOztBUDhOM0I7RU85TkYsc0NBQTZCLEVBQUE7O0FQME4zQjtFTzFORixzQkFBNkIsRUFBQTs7QVA4TjNCO0VPOU5GLHVDQUE2QixFQUFBOztBUDBOM0I7RU8xTkYsZ0JBQTZCLEVBQUE7O0FQOE4zQjtFTzlORixpQ0FBNkIsRUFBQTs7QVAwTjNCO0VPMU5GLHNCQUE2QixFQUFBOztBUDhOM0I7RU85TkYsdUNBQTZCLEVBQUE7O0FQME4zQjtFTzFORixzQkFBNkIsRUFBQTs7QVA4TjNCO0VPOU5GLHVDQUE2QixFQUFBOztBUDBOM0I7RU8xTkYsZ0JBQTZCLEVBQUE7O0FQOE4zQjtFTzlORixpQ0FBNkIsRUFBQTs7QVAwTjNCO0VPMU5GLHNCQUE2QixFQUFBOztBUDhOM0I7RU85TkYsdUNBQTZCLEVBQUE7O0FQME4zQjtFTzFORixzQkFBNkIsRUFBQTs7QVA4TjNCO0VPOU5GLHVDQUE2QixFQUFBOztBUDBOM0I7RU8xTkYsZ0JBQTZCLEVBQUE7O0FQOE4zQjtFTzlORixpQ0FBNkIsRUFBQTs7QVAwTjNCO0VPMU5GLHNCQUE2QixFQUFBOztBUDhOM0I7RU85TkYsdUNBQTZCLEVBQUE7O0FQME4zQjtFTzFORixzQkFBNkIsRUFBQTs7QVA4TjNCO0VPOU5GLHVDQUE2QixFQUFBOztBakIrSTNCO0VVMkVBO0lPMU5GLGVBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGlDQUE2QixFQUFBO0VQME4zQjtJTzFORixxQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsdUNBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQSxFUGdPMUI7O0FWdEZEO0VVZ0ZBO0lPMU5GLGVBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGlDQUE2QixFQUFBO0VQME4zQjtJTzFORixxQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsdUNBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQSxFUGdPMUI7O0FWdEZEO0VVZ0ZBO0lPMU5GLGVBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGlDQUE2QixFQUFBO0VQME4zQjtJTzFORixxQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsdUNBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQOE4zQjtJTzlORix3Q0FBNkIsRUFBQTtFUDBOM0I7SU8xTkYsZ0JBQTZCLEVBQUE7RVA4TjNCO0lPOU5GLGtDQUE2QixFQUFBO0VQME4zQjtJTzFORixzQkFBNkIsRUFBQTtFUDhOM0I7SU85TkYsd0NBQTZCLEVBQUE7RVAwTjNCO0lPMU5GLHNCQUE2QixFQUFBO0VQ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QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw2QkFEZ0gsRUFBQSxFSmdDL0c7RVY4Q0M7SVU1REo7TUl6QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw2QkFEZ0gsRUFBQTtJSmtCbEg7TUl6QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhC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aUNBRGdILEVBQUE7RUo4QmhIO0lJN0JBLGlDQURnSCxFQUFBO0VKOEJoSDtJSTdCQSwyQkFEZ0gsRUFBQTtFSjhCaEg7SUk3QkEsaUNBRGdILEVBQUE7RUo4QmhIO0lJN0JBLGlDQURnSCxFQUFBO0VKOEJoSDtJSTdCQSwyQkFEZ0gsRUFBQTtFSjhCaEg7SUk3QkEsaUNBRGdILEVBQUE7RUo4QmhIO0lJN0JBLGlDQURnSCxFQUFBO0VKOEJoSDtJSTdCQSw0QkFEZ0gsRUFBQTtFZG1GOUc7SVVqRUo7TUl6QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw2QkFEZ0gsRUFBQSxFSmdDL0c7RVY4Q0M7SVU1REo7TUl6QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw2QkFEZ0gsRUFBQTtJSmtCbEg7TUl6QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw2QkFEZ0gsRUFBQSxFSmdDL0c7RVY4Q0M7SVU1REo7TUl6QkUsWUFBbUIsRUFBQTtJSjZCckI7TUl6QkUsWUFBbUIsRUFBQTtJSmlDbkI7TUk3QkEsaUNBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw0QkFEZ0gsRUFBQTtJSjhCaEg7TUk3QkEsa0NBRGdILEVBQUE7SUo4QmhIO01JN0JBLGtDQURnSCxFQUFBO0lKOEJoSDtNSTdCQSw2QkFEZ0gsRUFBQSxFSmdDL0c7O0FBeVNEO0VRM1hJLDZCQUFtQyxFQUFBO0VsQnFJckM7SVVzUEY7TVEzWEksOEJBQW1DLEVBQUEsRVI2WHRDO0VWN1BDO0lVMlBGO01RM1hJLDhCQUFtQyxFQUFBLEVSNlh0QztFVjdQQztJVTJQRjtNUTNYSSw4QkFBbUMsRUFBQSxFUjZYdEM7O0FWeFBDO0VVMFBBO0lRL1hFLDhCQUFtQyxFQUFBLEVSaVlwQzs7QVZqUUQ7RVUrUEE7SVEvWEUsOEJBQW1DLEVBQUEsRVJpWXBDOztBVmpRRDtFVStQQTtJUS9YRSw4QkFBbUMsRUFBQSxFUmlZcEM7O0FTcktMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFLFNBQVM7RUFDVCxVQUFVLEVBQUE7O0FBSVo7RUFDRSxtQlh0RjBCO0VXd0YxQixrQkFBa0I7RUFDbEIsaUJYMUZ1QjtFVzJGdkIsa0NYekZ5QyxFQUFBOztBVzZGM0M7O0VBRUUsa0JBQWtCO0VBQ2xCLG9CQUFvQixFQUFBOztBQUl0Qjs7RUFFRSxpQlh2THFCO0VXd0xyQixvQkFBb0IsRUFBQTs7QWZpRHBCO0VlNUNBLGNYaEhpQjtFV2lIakIsb0JBQW9CLEVBQUE7O0FBSXRCOzs7Ozs7RUFNRSxnRFg5TWtEO0VXK01sRCxrQlg1SnNCO0VXNkp0QixnQlg5Sm9CO0VXK0pwQixjWDVKa0I7RVc2SmxCLGtDWGhJc0MsRUFBQTtFV3NIeEM7Ozs7OztJQWFJLGNBQWM7SUFDZCxjWGhPZSxFQUFBOztBV3lPYjtFQUlJLGtCTnZQNkM7RU1tUTdDLGNYekxTO0VXaU1ULGFBQWE7RUFPYixxQlh2TWlCLEVBQUE7O0FXd0tyQjtFQUlJLGtCTnZQNkM7RU1tUTdDLGNYekxTO0VXaU1ULGFBQWE7RUFPYixxQlh2TWlCLEVBQUE7O0FXd0tyQjtFQUlJLG9CTnZQNkM7RU1tUTdDLGNYekxTO0VXaU1ULGFBQWE7RUFPYixxQlh2TWlCLEVBQUE7O0FXd0tyQjtFQUlJLG1CTnZQNkM7RU1tUTdDLGNYekxTO0VXaU1ULGFBQWE7RUFPYixxQlh2TWlCLEVBQUE7O0FXd0tyQjtFQUlJLG9CTnZQNkM7RU1tUTdDLGNYekxTO0VXaU1ULGFBQWE7RUFPYixxQlh2TWlCLEVBQUE7O0FXd0tyQjtFQUlJLGVOdlA2QztFTW1RN0MsY1h6TFM7RVdpTVQsYUFBYTtFQU9iLHFCWHZNaUIsRUFBQTs7QVJBdkI7RW1Cd0tFO0lBSUksbUJOdlA2QyxFQUFBO0VNbVBqRDtJQUlJLG1CTnZQNkMsRUFBQTtFTW1QakQ7SUFJSSxvQk52UDZDLEVBQUE7RU1tUGpEO0lBSUksb0JOdlA2QyxFQUFBO0VNbVBqRDtJQUlJLG1CTnZQNkMsRUFBQTtFTW1QakQ7SUFJSSxlTnZQNkMsRUFBQSxFTW9SaEQ7O0FuQnpNSDtFbUJ3S0U7SUFJSSxpQk52UDZDLEVBQUE7RU1tUGpEO0lBSUksaUJOdlA2QyxFQUFBO0VNbVBqRDtJQUlJLG9CTnZQNkMsRUFBQTtFTW1QakQ7SUFJSSxvQk52UDZDLEVBQUE7RU1tUGpEO0lBSUksa0JOdlA2QyxFQUFBO0VNbVBqRDtJQUlJLGVOdlA2QyxFQUFBLEVNb1JoRDs7QWZuR0w7RWUwR0Esb0JBQW9CO0VBQ3BCLGNYelNVO0VXMFNWLHFCWHpLeUI7RVcyS3pCLGVBQWUsRUFBQTtFQUxqQjtJQVNJLGNYaEwyRCxFQUFBO0VXdUsvRDtJQWdCSSxTQUFTLEVBQUE7O0FmdEtYO0VlNEtBLFdBQVc7RUFFWCxnQk5sVHFEO0VNbVRyRCxTQUFTO0VBQ1Qsb0JYNUx5QjtFVzhMekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ1gxU2lCO0VXMlNqQixjQUFjLEVBQUE7O0FBSWhCOzs7RUFHRSxtQlh0TjBCO0VXdU4xQiw0QlhyTXlCO0VXc016QixpQlh6TnVCLEVBQUE7O0FXNk56QjtFQUNFLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLG9CWC9Nc0I7RVdnTnRCLHFCWGxOa0IsRUFBQTs7QVdzTnBCO0VBQ0Usb0JYck5zQixFQUFBOztBV3lOeEI7RUFFSSxvQlgxTjJCO0VXMk4zQixnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxtQlhoT3lCLEVBQUE7RVcrTjNCO0lBSUkscUJYak84QjtJV2tPOUIsaUJYelVtQixFQUFBOztBVzhVdkI7RUFDRSxnQlgvUDBCO0VXZ1ExQixzQ04xV3FEO0VNMldyRCw4QlhqV2lCLEVBQUE7RVc4Vm5CO0lBTUksaUJYclFxQjtJV3NRckIsY1hwV2EsRUFBQTs7QVd5V2pCO0VBQ0UsY0FBYztFQUNkLG9CTnRYcUQ7RU11WHJELGNYNVdlLEVBQUE7RVd5V2pCO0lBTUksYVhuUGdCLEVBQWE7O0FXd1BqQztFQUNFLGlDWHBYVztFV3FYWCxZQUFZO0VBQ1oscUJBQXFCLEVBQUE7O0FmNVFyQjtFZWlSQSxTQUFTLEVBQUE7O0FBSVg7RUFDRSxxQ041WXFEO0VNOFlyRCx5QlhwWWlCO0VXcVlqQix5Qlh0WWdCO0VXd1loQiw0RFh6VW1FO0VXMFVuRSxtQlh6WHlCO0VXMFh6QixjWHZZVyxFQUFBOztBVzJZYjtFQUNFLFNBQVM7RUFDVCwyQk5wWlM7RU1zWlQseUJYbFpnQjtFV29aaEIsNERYclZtRTtFV3NWbkUsY1hsWlcsRUFBQTs7QVlyRGI7RUFDRSxrQlorTHlCO0VZOUx6QixxQlorTDRCO0VZN0w1QixtQlo4RHlCO0VZN0R6QixnQlp3THNCO0VZdkx0QixjWjhDZSxFQUFBOztBWTFDakI7RUFDRSxpQlA4QnFEO0VPN0JyRCxnQlpnTGlCLEVBQUE7O0FZNUtuQjtFQUNFLGlCWmlMbUI7RVloTG5CLGNBQWMsRUFBQTtFQUVkO0lBQ0UsaUJBQWlCLEVBQUE7O0FBSXJCO0VBR0ksY0FBZ0M7RUFDaEMsZ0JBQWdCLEVBQUE7O0FDOURaO0VBQ0UsZ0JBUmUsRUFBQTs7QUFPakI7RUFDRSxpQkFSc0IsRUFBQTs7QUFPeEI7RUFDRSxrQkFSOEIsRUFBQTs7QUFPaEM7RUFDRSxtQkFSdUMsRUFBQTs7QXJCaUs3QztFcUIvSkk7SUFDRSxnQkFIZSxFQUFBO0VBRWpCO0lBQ0UsaUJBSHNCLEVBQUE7RUFFeEI7SUFDRSxrQkFIOEIsRUFBQTtFQUVoQztJQUNFLG1CQUh1QyxFQUFBLEVBSXhDOztBckJ3Skw7RXFCMUpJO0lBQ0UsZ0JBSGUsRUFBQTtFQUVqQjtJQUNFLGlCQUhzQixFQUFBO0VBRXhCO0lBQ0Usa0JBSDhCLEVBQUE7RUFFaEM7SUFDRSxtQkFIdUMsRUFBQSxFQUl4Qzs7QXJCd0pMO0VxQjFKSTtJQUNFLGdCQUhlLEVBQUE7RUFFakI7SUFDRSxpQkFIc0IsRUFBQTtFQUV4QjtJQUNFLGtCQUg4QixFQUFBO0VBRWhDO0lBQ0UsbUJBSHVDLEVBQUEsRUFJeEM7O0FDRVQ7RUFBa0Isd0JBQXdCLEVBQUE7O0FBRTFDO0VBQ0U7SUFFSSxrQ0FBa0M7SUFHcEMsbUNBQTJCO1lBQTNCLDJCQUEyQjtJQUUzQix1QkFBdUI7SUFDdkIsNEJBQTRCLEVBQUE7RUFYaEM7SUFjb0IseUJBQXlCLEVBQUE7RUFDM0M7SUFBa0Isd0JBQXdCLEVBQUE7RUFFMUM7SUFBdUIseUJBQXlCLEVBQUE7RUFDaEQ7SUFBdUIsc0NBQXNDLEVBQUE7RUFDN0Q7SUFBdUIsbUNBQW1DLEVBQUE7RUFDMUQ7SUFBb0IsNkJBQTZCLEVBQUE7RUFDakQ7SUFBb0IsOEJBQThCLEVBQUE7RUFDbEQ7SUFBb0IsOEJBQThCLEVBQUE7RUFHbEQ7O0lBQ1ksMEJBQTBCLEVBQUE7RUFFcEM7SUFBZ0IsNEJBQTRCLEVBQUE7RUFJOUM7OztJQUVxQixXQUFXLEVBQUE7RUFHaEM7SUFBb0IsNkJBQTZCLEVBQUE7RUFHakQ7O0lBRUUseUJkNENhO0ljM0NiLHdCQUF3QixFQUFBO0VBSTFCO0lBQVEsMkJBQTJCLEVBQUE7RUFFbkM7O0lBQ00sd0JBQXdCLEVBQUE7RWxCZ1Y5QjtJa0I5VU0sMEJBQTBCLEVBQUE7RUFFaEM7SUFBUSxhQUFhLEVBQUE7RUFFckI7OztJQUdFLFVBQVU7SUFDVixTQUFTLEVBQUE7RUFJWDs7SUFDSyx1QkFBdUIsRUFBQTtFQUc1QjtJQUNFLHVCQUF1QixFQUFBLEVBQ3hCOztBQ2tMSDtFQWhMQSxxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLGtCZm9Pa0M7RWVuT2xDLHlDZnRCc0M7RWVnQ3BDLGdDZndOb0M7RWVyTnRDLHdCQUF3QjtFQUN4Qiw2QkFBNkI7RUFDN0IsZ0JmME5lO0Vlek5mLHlFZnFPdUU7RWVyT3ZFLGlFZnFPdUU7RWVuT3ZFLGlCZjROZTtFZTNOZixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGVBQWU7RUFxQ2YsdUJmMkt1QjtFZTFLdkIsV2Y5Q1UsRUFBQTtFVjJtRlY7SVd0Z0ZFLFVBQVUsRUFBQTtFY3JEWjtJQUNFLDZCZndLaUM7SWV2S2pDLFdmbERRLEVBQUE7RWVnS1Y7SUFNTSxpQmZ5RE0sRUFBQTtFZS9EWjtJQU1NLGtCZjBEUSxFQUFBO0VlaEVkO0lBTU0sa0JmNERRLEVBQUE7RWVsRWQ7SUFqSkUsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlO0lBQ2YsY0FBYyxFQUFBO0VBOEloQjtJQW5IQSx5QmYzRWU7SWU0RWYsV2Y5Q1UsRUFBQTtJZWdEVjtNQUNFLHlCQVBvRjtNQVFwRixXZmxEUSxFQUFBO0VlZ0tWO0lBbkhBLHlCZnpFWTtJZTBFWixjZi9DYSxFQUFBO0llaURiO01BQ0UseUJBUG9GO01BUXBGLGNmbkRXLEVBQUE7RWVpS2I7SUFuSEEseUJmL0RnQjtJZWdFaEIsY2YvQ2EsRUFBQTtJZWlEYjtNQUNFLHlCQVBvRjtNQVFwRixjZm5EVyxFQUFBO0VlaUtiO0lBbkhBLHlCZjlEZ0I7SWUrRGhCLGNmL0NhLEVBQUE7SWVpRGI7TUFDRSx5QkFQb0Y7TUFRcEYsY2ZuRFcsRUFBQTtFZWlLYjtJQW5IQSx5QmY3RGM7SWU4RGQsV2Y5Q1UsRUFBQTtJZWdEVjtNQUNFLHlCQVBvRjtNQVFwRixXZmxEUSxFQUFBO0VlZ0tWO0lBMURBLGFmK0g0QjtJZTlINUIsbUJBQW1CLEVBQUE7SUFFbkI7TUFDRSx1QmY4R3FCO01lN0dyQixXZjNHUSxFQUFBO0llZ0tWO01BMURBLGFmK0g0QjtNZTlINUIsbUJBQW1CLEVBQUE7TUFFbkI7UUFDRSx5QmZ4SWE7UWV5SWIsV2YzR1EsRUFBQTtJZWdLVjtNQTFEQSxhZitINEI7TWU5SDVCLG1CQUFtQixFQUFBO01BRW5CO1FBQ0UseUJmdElVO1FldUlWLGNmNUdXLEVBQUE7SWVpS2I7TUExREEsYWYrSDRCO01lOUg1QixtQkFBbUIsRUFBQTtNQUVuQjtRQUNFLHlCZjVIYztRZTZIZCxjZjVHVyxFQUFBO0llaUtiO01BMURBLGFmK0g0QjtNZTlINUIsbUJBQW1CLEVBQUE7TUFFbkI7UUFDRSx5QmYzSGM7UWU0SGQsY2Y1R1csRUFBQTtJZWlLYjtNQTFEQSxhZitINEI7TWU5SDVCLG1CQUFtQixFQUFBO01BRW5CO1FBQ0UseUJmMUhZO1FlMkhaLFdmM0dRLEVBQUE7RWVnS1Y7SUFuRkEsdUJmMkl1QjtJZTFJdkIsWWYwSXVCLEVBQUE7SWVoS3ZCO01BRUUsNkJBQTZCLEVBQUE7SUFLN0I7TUFFRSw2QkFBNkIsRUFBQTtJQWVqQztNQUNFLG1CQU42RDtNQU83RCxZQVA2RCxFQUFBO01BUTdEO1FBRUUsdUJmbUltQjtRZWxJbkIsWWZrSW1CLEVBQUE7SWV4RHZCO01BbkZBLHlCZjNHZTtNZTRHZixjZjVHZSxFQUFBO01lOEdmO1FBQ0UscUJBTjZEO1FBTzdELGNBUDZELEVBQUE7UUFRN0Q7VUFFRSx5QmZuSFc7VWVvSFgsY2ZwSFcsRUFBQTtJZThMZjtNQW5GQSx5QmZ6R1k7TWUwR1osY2YxR1ksRUFBQTtNZTRHWjtRQUNFLHFCQU42RDtRQU83RCxjQVA2RCxFQUFBO1FBUTdEO1VBRUUseUJmakhRO1Vla0hSLGNmbEhRLEVBQUE7SWU0TFo7TUFuRkEseUJmL0ZnQjtNZWdHaEIsY2ZoR2dCLEVBQUE7TWVrR2hCO1FBQ0UscUJBTjZEO1FBTzdELGNBUDZELEVBQUE7UUFRN0Q7VUFFRSx5QmZ2R1k7VWV3R1osY2Z4R1ksRUFBQTtJZWtMaEI7TUFuRkEseUJmOUZnQjtNZStGaEIsY2YvRmdCLEVBQUE7TWVpR2hCO1FBQ0UscUJBTjZEO1FBTzdELGNBUDZELEVBQUE7UUFRN0Q7VUFFRSx5QmZ0R1k7VWV1R1osY2Z2R1ksRUFBQTtJZWlMaEI7TUFuRkEseUJmN0ZjO01lOEZkLGNmOUZjLEVBQUE7TWVnR2Q7UUFDRSxxQkFONkQ7UUFPN0QsY0FQNkQsRUFBQTtRQVE3RDtVQUVFLHlCZnJHVTtVZXNHVixjZnRHVSxFQUFBO0VlZ0xkO0lBbkZBLHVCZjJJdUI7SWUxSXZCLFlmMEl1QixFQUFBO0llaEt2QjtNQUVFLDZCQUE2QixFQUFBO0lBSzdCO01BRUUsNkJBQTZCLEVBQUE7SUFlakM7TUFDRSxtQkFONkQ7TUFPN0QsWUFQNkQsRUFBQTtNQVE3RDtRQUVFLHVCZm1JbUI7UWVsSW5CLFlma0ltQixFQUFBO0lleER2QjtNQWdFVSx5QkFBeUIsRUFBQTtJQWhFbkM7TUFuRkEseUJmM0dlO01lNEdmLGNmNUdlLEVBQUE7TWU4R2Y7UUFDRSxxQkFONkQ7UUFPN0QsY0FQNkQsRUFBQTtRQVE3RDtVQUVFLHlCZm5IVztVZW9IWCxjZnBIVyxFQUFBO01lOExmO1FBNkVjLHlCQUF5QixFQUFBO0lBN0V2QztNQW5GQSx5QmZ6R1k7TWUwR1osY2YxR1ksRUFBQTtNZTRHWjtRQUNFLHFCQU42RDtRQU83RCxjQVA2RCxFQUFBO1FBUTdEO1VBRUUseUJmakhRO1Vla0hSLGNmbEhRLEVBQUE7TWU0TFo7UUE2RWMseUJBQXlCLEVBQUE7SUE3RXZDO01BbkZBLHlCZi9GZ0I7TWVnR2hCLGNmaEdnQixFQUFBO01la0doQjtRQUNFLHFCQU42RDtRQU83RCxjQVA2RCxFQUFBO1FBUTdEO1VBRUUseUJmdkdZO1Vld0daLGNmeEdZLEVBQUE7TWVrTGhCO1FBNkVjLHlCQUF5QixFQUFBO0lBN0V2QztNQW5GQSx5QmY5RmdCO01lK0ZoQixjZi9GZ0IsRUFBQTtNZWlHaEI7UUFDRSxxQkFONkQ7UUFPN0QsY0FQNkQsRUFBQTtRQVE3RDtVQUVFLHlCZnRHWTtVZXVHWixjZnZHWSxFQUFBO01laUxoQjtRQTZFYyx5QkFBeUIsRUFBQTtJQTdFdkM7TUFuRkEseUJmN0ZjO01lOEZkLGNmOUZjLEVBQUE7TWVnR2Q7UUFDRSxxQkFONkQ7UUFPN0QsY0FQNkQsRUFBQTtRQVE3RDtVQUVFLHlCZnJHVTtVZXNHVixjZnRHVSxFQUFBO01lZ0xkO1FBNkVjLHlCQUF5QixFQUFBO0VBckh2QztJZG5MQSxjQUFjO0lBQ2QsUUFBUTtJQUNSLFNBQVM7SUFFVCxtQmMyS1k7SWR6S1osV0FBVztJQUdULHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsMENBQXFEO0ljMEtyRCxrQkFBa0I7SUFDbEIsVUFBVTtJQUVWLHFCQUFxQjtJQUNyQixZQUFPO0lBQ1AscUJmc0Y4QixFQUFBO0VlckRoQztJQWlHUSx1QmZ6Q2UsRUFBQTtFZXhEdkI7SUF1R1kseUJmclNHLEVBQUE7RWU4TGY7SUF1R1kseUJmblNBLEVBQUE7RWU0TFo7SUF1R1kseUJmelJJLEVBQUE7RWVrTGhCO0lBdUdZLHlCZnhSSSxFQUFBO0VlaUxoQjtJQXVHWSx5QmZ2UkUsRUFBQTtFZWdMZDtJQWdISSxXQUFXO0lBQ1gsV0FBVztJQUNYLGNBQWdDLEVBQUE7O0FBR3BDO0VBR0kscUJBQXFCLEVBQUE7O0F6QnVrRjNCOztFMEI3MkZFLGNBQWM7RUFDZCw4QkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxpQkFMc0o7RUFNdEosZ0JYSHVEO0VXSXZELGVoQjZYK0I7RWdCM1gvQix5QmhCSW1CO0VnQkhuQixnQmhCb0JlO0VnQm5CZixzQmhCS1U7RWdCSlYseURoQkdhO1VnQkhiLGlEaEJHYTtFZ0JEYixvQmhCNld5QjtFZ0I1V3pCLGVYWnVEO0VXYXZELG1CaEJZMkI7RWdCWDNCLGdCaEJ2QnFCO0VnQndCckIsY2hCSGE7RWdCTVgsMkVoQm1YOEQ7RWdCblg5RCxtRWhCbVg4RDtFZ0JuWDlELDJEaEJtWDhEO0VnQm5YOUQsb0ZoQm1YOEQ7RWdCOVY5RCx3QkFBZ0I7S0FBaEIscUJBQWdCO1VBQWhCLGdCQUFnQixFQUFBO0UxQncxRmxCOztJMEJ4MkZFLGFBQWE7SUFDYix5QmhCYmU7SWdCY2Ysc0JoQlpRO0lnQmFSLG1DaEJoQmlCO1lnQmdCakIsMkJoQmhCaUI7SWdCbUJmLDJFaEJ3VzREO0lnQnhXNUQsbUVoQndXNEQ7SWdCeFc1RCwyRGhCd1c0RDtJZ0J4VzVELG9GaEJ3VzRELEVBQUE7O0FKK0c5RDtFb0J4Y0EsZUFBZSxFQUFBO0VBRGpCO0lBSUksWUFBWSxFQUFBOztBQUloQjtFQUlJLGNoQjdDZSxFQUFBOztBZ0J5Q25CO0VBSUksY2hCN0NlLEVBQUE7O0FnQnlDbkI7RUFJSSxjaEI3Q2UsRUFBQTs7QWdCeUNuQjtFQUlJLGNoQjdDZSxFQUFBOztBZ0J5Q25COztFQUlJLGNoQjdDZSxFQUFBOztBZ0J5Q25COzs7RUFVSSx5QmhCcERjO0VnQnFEZCxtQmhCc1U2QixFQUFBOztBVmtoRm5DOztFMEJqMUZJLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdC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QXhEZ0I7TUF3RGhCLDJCQXhEZ0I7VUF3RGhCLGtCQXhEZ0IsRUFBQTs7QUQrRWQ7RUN2Q0YsMEJBdkNrQjtFQXVDbEIsNEJBdkNrQjtNQXVDbEIsdUJBdkNrQjtVQXVDbEIsb0JBdkNrQixFQUFBOztBRGtGaEI7RUMzQkYsMkJBdkRrQjtNQXVEbEIsNEJBdkRrQjtVQXVEbEIsbUJBdkRrQixFQUFBOztBRHdGbEI7RUNsREEsd0JBL0NnQjtFQStDaEIsK0JBL0NnQjtNQStDaEIscUJBL0NnQjtVQStDaEIsdUJBL0NnQjtFQWdEaEIseUJBeENnQjtFQXdDaEIsMkJBeENnQjtNQXdDaEIsc0JBeENnQjtVQXdDaEIsbUJBeENnQjtFRDJGZCw2QkFBcUI7TUFBckIsMEJBQXFCO1VBQXJCLHFCQUFxQixFQUFBOztBQU1uQjtFQ25DSiw0QkRrQ2dCO0VDbENoQixnQkRrQ2dCO01DbENoQixpQkRrQ2dCO1VDbENoQixRRGtDZ0IsRUFBQTs7QUFDWjtFQ25DSiw0QkRrQ2dCO0VDbENoQixnQkRrQ2dCO01DbENoQixpQkRrQ2dCO1VDbENoQixRRGtDZ0IsRUFBQTs7QUFDWjtFQ25DSiw0QkRrQ2dCO0VDbENoQixnQkRrQ2dCO01DbENoQixpQkRrQ2dCO1VDbENoQixRRGtDZ0IsRUFBQTs7QUFDWjtFQ25DSiw0QkRrQ2dCO0VDbENoQixnQkRrQ2dCO01DbENoQixpQkRrQ2dCO1VDbENoQixRRGtDZ0IsRUFBQTs7QUFDWjtFQ25DSiw0QkRrQ2dCO0VDbENoQixnQkRrQ2dCO01DbENoQixpQkRrQ2dCO1VDbENoQixRRGtDZ0IsRUFBQTs7QUFDWjtFQ25DSiw0QkRrQ2dCO0VDbENoQixnQkRrQ2dCO01DbENoQixpQkRrQ2dCO1VDbENoQixRRGtDZ0IsRUFBQTs7QWhFNkRaO0VnRTVEQTtJQ25DSiw0QkRrQ2dCO0lDbENoQixnQkRrQ2dCO1FDbENoQixpQkRrQ2dCO1lDbENoQixRRGtDZ0IsRUFBQTtFQUNaO0lDbkNKLDRCRGtDZ0I7SUNsQ2hCLGdCRGtDZ0I7UUNsQ2hCLGlCRGtDZ0I7WUNsQ2hCLFFEa0NnQixFQUFBO0VBQ1o7SUNuQ0osNEJEa0NnQjtJQ2xDaEIsZ0JEa0NnQjtRQ2xDaEIsaUJEa0NnQjtZQ2xDaEIsUURrQ2dCLEVBQUE7RUFDWjtJQ25DSiw0QkRrQ2dCO0lDbENoQixnQkRrQ2dCO1FDbENoQixpQkRrQ2dCO1lDbENoQixRRGtDZ0IsRUFBQTtFQUNaO0lDbkNKLDRCRGtDZ0I7SUNsQ2hCLGdCRGtDZ0I7UUNsQ2hCLGlCRGtDZ0I7WUNsQ2hCLFFEa0NnQixFQUFBO0VBQ1o7SUNuQ0osNEJEa0NnQjtJQ2xDaEIsZ0JEa0NnQjtRQ2xDaEIsaUJEa0NnQjtZQ2xDaEIsUURrQ2dCLEVBQUEsRUFHWDs7QWhFcUREO0VnRXZEQTtJQ25DSiw0QkRrQ2dCO0lDbENoQixnQkRrQ2dCO1FDbENoQixpQkRrQ2dCO1lDbENoQixRRGtDZ0IsRUFBQTtFQUNaO0lDbkNKLDRCRGtDZ0I7SUNsQ2hCLGdCRGtDZ0I7UUNsQ2hCLGlCRGtDZ0I7WUNsQ2hCLFFEa0NnQixFQUFBO0VBQ1o7SUNuQ0osNEJEa0NnQjtJQ2xDaEIsZ0JEa0NnQjtRQ2xDaEIsaUJEa0NnQjtZQ2xDaEIsUURrQ2dCLEVBQUE7RUFDWjtJQ25DSiw0QkRrQ2dCO0lDbENoQixnQkRrQ2dCO1FDbENoQixpQkRrQ2dCO1lDbENoQixRRGtDZ0IsRUFBQTtFQUNaO0lDbkNKLDRCRGtDZ0I7SUNsQ2hCLGdCRGtDZ0I7UUNsQ2hCLGlCRGtDZ0I7WUNsQ2hCLFFEa0NnQixFQUFBO0VBQ1o7SUNuQ0osNEJEa0NnQjtJQ2xDaEIsZ0JEa0NnQjtRQ2xDaEIsaUJEa0NnQjtZQ2xDaEIsUURrQ2dCLEVBQUEsRUFHWDs7QWhFcUREO0VnRXZEQTtJQ25DSiw0QkRrQ2dCO0lDbENoQixnQkRrQ2dCO1FDbENoQixpQkRrQ2dCO1lDbENoQixRRGtDZ0IsRUFBQTtFQUNaO0lDbkNKLDRCRGtDZ0I7SUNsQ2hCLGdCRGtDZ0I7UUNsQ2hCLGlCRGtDZ0I7WUNsQ2hCLFFEa0NnQixFQUFBO0VBQ1o7SUNuQ0osNEJEa0NnQjtJQ2xDaEIsZ0JEa0NnQjtRQ2xDaEIsaUJEa0NnQjtZQ2xD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dkIsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBR3pDLG1DQUEyQjtVQUEzQiwyQkFBMkIsRUFBQTs7QUpDM0I7RUdvQkEsbUNBRnlCO1VBRXpCLDJCQUZ5QixFQUFBOztBSDlCekI7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLGdDQUZ5QjtVQUV6Qix3QkFGeUI7RUN0QnZCLHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUd6QyxtQ0FBMkI7VUFBM0IsMkJBQTJCLEVBQUE7O0FKQzNCO0VHb0JBLG9DQUZ5QjtVQUV6Qiw0QkFGeUIsRUFBQTs7QUg5QnpCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixnQ0FGeUI7VUFFekIsd0JBRnlCO0VDdEJ2Qix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFHekMsbUNBQTJCO1VBQTNCLDJCQUEyQixFQUFBOztBSkMzQjtFR29CQSxvQ0FGeUI7VUFFekIsNEJBRnlCLEVBQUE7O0FIOUJ6QjtFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsVUZoQ2tDO0VJRWxDLG9DQUE0QjtFQUE1Qiw0QkFBNEIsRUFBQTs7QUxVNUI7RUdvQkEsVUZoQ3FDLEVBQUE7O0FEQXJDO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixVRi9Ca0M7RUlDbEMsb0NBQTRCO0VBQTVCLDRCQUE0QixFQUFBOztBTFU1QjtFR29CQSxVRi9CcUMsRUFBQTs7QUREckM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLHNER3JDbUM7VUhxQ25DLDhDR3JDbUM7RUhxQ25DLDZCRjVCbUQ7VUU0Qm5ELHFCRjVCbUQ7RU1JakQsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQTJCLEVBQUE7O0FQRzdCO0VHb0JBLG1ER1Q0QztVSFM1QywyQ0dUNEM7RUNKMUMsVUFBMkIsRUFBQTs7QVBuQjdCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixzREdwQ3FDO1VIb0NyQyw4Q0dwQ3FDO0VIb0NyQywrQkYzQnFEO1VFMkJyRCx1QkYzQnFEO0VNR25ELHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUEyQixFQUFBOztBUEc3QjtFR29CQSxtREdUNEM7VUhTNUMsMkNHVDRDO0VDSjFDLFVBQTJCLEVBQUE7O0FQbkI3QjtFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIscURHbkNpQztVSG1DakMsNkNHbkNpQztFSG1DakMsZ0NGMUJzRDtVRTBCdEQsd0JGMUJzRDtFTUVwRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsbURHVDRDO1VIUzVDLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLHFER2xDK0I7VUhrQy9CLDZDR2xDK0I7RUhrQy9CLDhCRnpCb0Q7VUV5QnBELHNCRnpCb0Q7RU1DbEQsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQTJCLEVBQUE7O0FQRzdCO0VHb0JBLG1ER1Q0QztVSFM1QywyQ0dUNEM7RUNKMUMsVUFBMkIsRUFBQTs7QVBuQjdCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixzREdyQ21DO1VIcUNuQyw4Q0dyQ21DO0VIcUNuQyxnQ0dFZTtVSEZmLHdCR0VlO0VDMUJiLHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUEyQixFQUFBOztBUEc3QjtFR29CQSxtREdUNEM7VUhTNUMsMkNHVDRDO0VDSjFDLFVBQTJCLEVBQUE7O0FQbkI3QjtFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsc0RHcENxQztVSG9DckMsOENHcENxQztFSG9DckMsZ0NHRWU7VUhGZix3QkdFZTtFQzFCYix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVBHN0I7RUdvQkEsbURHVDRDO1VIUzVDLDJDR1Q0QztFQ0oxQyxVQUEyQixFQUFBOztBUG5CN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsNkJGdEJtRDtVRXNCbkQscUJGdEJtRDtFTUZqRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEscURHL0I4QjtVSCtCOUIsNkNHL0I4QjtFQ2tCNUIsVUFBOEIsRUFBQTs7QVBuQmhDO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixtREdQOEM7VUhPOUMsMkNHUDhDO0VITzlDLCtCRnJCcUQ7VUVxQnJELHVCRnJCcUQ7RU1IbkQsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FQR2hDO0VHb0JBLHFERzlCZ0M7VUg4QmhDLDZDRzlCZ0M7RUNpQjlCLFVBQThCLEVBQUE7O0FQbkJoQztFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsbURHUDhDO1VITzlDLDJDR1A4QztFSE85QyxnQ0ZwQnNEO1VFb0J0RCx3QkZwQnNEO0VNSnBELHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUEdoQztFR29CQSxzREc3QnNDO1VINkJ0Qyw4Q0c3QnNDO0VDZ0JwQyxVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsOEJGbkJvRDtVRW1CcEQsc0JGbkJvRDtFTUxsRCx1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEsc0RHNUJvQztVSDRCcEMsOENHNUJvQztFQ2VsQyxVQUE4QixFQUFBOztBUG5CaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1ER1A4QztVSE85QywyQ0dQOEM7RUhPOUMsZ0NHRWU7VUhGZix3QkdFZTtFQzFCYix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVBHaEM7RUdvQkEscURHL0I4QjtVSCtCOUIsNkNHL0I4QjtFQ2tCNUIsVUFBOEIsRUFBQTs7QVBuQmhDO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixtREdQOEM7VUhPOUMsMkNHUDhDO0VITzlDLGdDR0VlO1VIRmYsd0JHRWU7RUMxQmIsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FQR2hDO0VHb0JBLHFERzlCZ0M7VUg4QmhDLDZDRzlCZ0M7RUNpQjlCLFVBQThCLEVBQUE7O0FQbkJoQztFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsNkJBRnlCO1VBRXpCLHFCQUZ5QjtFS3pCdkIsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQTJCLEVBQUE7O0FSTTdCO0VHb0JBLDJCQUZ5QjtVQUV6QixtQkFGeUI7RUtkdkIsVUFBMkIsRUFBQTs7QVJoQjdCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYiw2QkFGeUI7VUFFekIscUJBRnlCO0VLekJ2Qix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVJNN0I7RUdvQkEsMkJBRnlCO1VBRXpCLG1CQUZ5QjtFS2R2QixVQUEyQixFQUFBOztBUmhCN0I7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLDJCQUZ5QjtVQUV6QixtQkFGeUI7RUt6QnZCLHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUE4QixFQUFBOztBUk1oQztFR29CQSw2QkFGeUI7VUFFekIscUJBRnlCO0VLZHZCLFVBQThCLEVBQUE7O0FSaEJoQztFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsMkJBRnlCO1VBRXpCLG1CQUZ5QjtFS3pCdkIsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FSTWhDO0VHb0JBLDZCQUZ5QjtVQUV6QixxQkFGeUI7RUtkdkIsVUFBOEIsRUFBQTs7QVJoQmhDO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYixvQ0FGeUI7VUFFekIsNEJBRnlCO0VNMUJ2Qix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBMkIsRUFBQTs7QVRPN0I7RUdvQkEsNEJBRnlCO1VBRXpCLG9CQUZ5QjtFTWZ2QixVQUEyQixFQUFBOztBVGY3QjtFQ2xCRixrQ0NrQmM7VURsQmQsMEJDa0JjO0VEakJkLDBDQ2lDZTtVRGpDZixrQ0NpQ2U7RUNnQmIsNEJBRnlCO1VBRXpCLG9CQUZ5QjtFTTFCdkIsdURBQXVDO0VBQXZDLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFBdkMsMERBQXVDO0VBQ3ZDLFVBQThCLEVBQUE7O0FUT2hDO0VHb0JBLG1DQUZ5QjtVQUV6QiwyQkFGeUI7RU1mdkIsVUFBOEIsRUFBQTs7QVRmaEM7RUNsQkYsa0NDa0JjO1VEbEJkLDBCQ2tCYztFRGpCZCwwQ0NpQ2U7VURqQ2Ysa0NDaUNlO0VDZ0JiLG1DQUZ5QjtVQUV6QiwyQkFGeUI7RU0xQnZCLHVEQUF1QztFQUF2QywrQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQXZDLDBEQUF1QztFQUN2QyxVQUEyQixFQUFBOztBVE83QjtFR29CQSw0QkFGeUI7VUFFekIsb0JBRnlCO0VNZnZCLFVBQTJCLEVBQUE7O0FUZjdCO0VDbEJGLGtDQ2tCYztVRGxCZCwwQkNrQmM7RURqQmQsMENDaUNlO1VEakNmLGtDQ2lDZTtFQ2dCYiw0QkFGeUI7VUFFekIsb0JBRnlCO0VNMUJ2Qix1REFBdUM7RUFBdkMsK0NBQXVDO0VBQXZDLHVDQUF1QztFQUF2QywwREFBdUM7RUFDdkMsVUFBOEIsRUFBQTs7QVRPaEM7RUdvQkEsb0NBRnlCO1VBRXpCLDRCQUZ5QjtFTWZ2QixVQUE4QixFQUFBOztBUm1COUI7RUFBWSw2Q0FBc0M7VUFBdEMscUNBQXNDLEVBQUE7O0FBQWxEO0VBQVksNkNBQXNDO1VBQXRDLHFDQUFzQyxFQUFBOztBQU1sRDtFQUFZLHFEQUE2QztVQUE3Qyw2Q0FBNkMsRUFBQTs7QUFBekQ7RUFBWSxtREFBNkM7VUFBN0MsMkNBQTZDLEVBQUE7O0FBQXpEO0VBQVksc0RBQTZDO1VBQTdDLDhDQUE2QyxFQUFBOztBQUF6RDtFQUFZLHVEQUE2QztVQUE3QywrQ0FBNkMsRUFBQTs7QUFBekQ7RUFBWSwwREFBNkM7VUFBN0Msa0RBQTZDLEVBQUE7O0FBQXpEO0VBQVksc0ZBQTZDO1VBQTdDLDhFQUE2QyxFQUFBOztBQUF6RDtFQUFZLHVGQUE2QztVQUE3QywrRUFBNkMsRUFBQTs7QUFBekQ7RUFBWSxzRkFBNkM7VUFBN0MsOEVBQTZDLEVBQUE7O0FBTXpEO0VBQWtCLDBDQUFtQztVQUFuQyxrQ0FBbUMsRUFBQTs7QUFBckQ7RUFBa0IsMENBQW1DO1VBQW5DLGtDQUFtQyxFQUFBOztBQVF6RDtFU3RFQSwrQkFBOEI7VUFBOUIsdUJBQThCLEVBQUE7O0FQSzlCO0VBR0k7SUFHSSxpQ0FBVTtZQUFWLHlCQUFVLEVBQUE7RUFIZDtJQUdJLGtDQUFVO1lBQVYsMEJBQVUsRUFBQSxFQUFBOztBQU5sQjtFQUdJO0lBR0ksaUNBQVU7WUFBVix5QkFBVSxFQUFBO0VBSGQ7SUFHSSxrQ0FBVTtZQUFWLDBCQUFVLEVBQUEsRUFBQTs7QUY0RGxCO0VTdkVBLHFDQUE4QjtVQUE5Qiw2QkFBOEIsRUFBQTs7QVBLOUI7RUFHSTtJQUdJLGlDQUFVO1lBQVYseUJBQVUsRUFBQTtFQUhkO0lBR0ksNEJBQVU7WUFBVixvQkFBVSxFQUFBLEVBQUE7O0FBTmxCO0VBR0k7SUFHSSxpQ0FBVTtZQUFWLHlCQUFVLEVBQUE7RUFIZDtJQUdJLDRCQUFVO1lBQVYsb0JBQVUsRUFBQSxFQUFBOztBRjZEbEI7RVN4RUEsc0NBQThCO1VBQTlCLDhCQUE4QixFQUFBOztBUEs5QjtFQUdJO0lBR0ksNEJBQVU7WUFBVixvQkFBVSxFQUFBO0VBSGQ7SUFHSSxpQ0FBVTtZQUFWLHlCQUFVLEVBQUEsRUFBQTs7QUFObEI7RUFHSTtJQUdJLDRCQUFVO1lBQVYsb0JBQVUsRUFBQTtFQUhkO0lBR0ksaUNBQVU7WUFBVix5QkFBVSxFQUFBLEVBQUE7O0FGOERsQjtFU3pFQSxtQ0FBOEI7VUFBOUIsMkJBQThCLEVBQUE7O0FQSzlCO0VBR0k7SUFHSSwrQkFBVTtZQUFWLHVCQUFVLEVBQUE7RUFIZDtJQUdJLGdDQUFVO1lBQVYsd0JBQVUsRUFBQTtFQUhkO0lBR0ksNEJBQVU7WUFBVixvQkFBVSxFQUFBLEVBQUE7O0FBTmxCO0VBR0k7SUFHSSwrQkFBVTtZQUFWLHVCQUFVLEVBQUE7RUFIZDtJQUdJLGdDQUFVO1lBQVYsd0JBQVUsRUFBQTtFQUhkO0lBR0ksNEJBQVU7WUFBVixvQkFBVSxFQUFBLEVBQUE7O0FGZ0VsQjs7OztFQUlFLGlDQy9EWTtVRCtEWix5QkMvRFksRUFBQTs7QURvRWQ7RUFBWSwyQ0FBbUM7VUFBbkMsbUNBQW1DLEVBQUE7O0FBbEMzQztFQXNDWSw0Q0FBcUM7VUFBckMsb0NBQXFDLEVBQUE7O0FBdENqRDtFQXNDWSw0Q0FBcUM7VUFBckMsb0NBQXFDLEVBQUE7O0FBaENqRDtFQXNDWSxvREFBNEM7VUFBNUMsNENBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSxrREFBNEM7VUFBNUMsMENBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSxxREFBNEM7VUFBNUMsNkNBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSxzREFBNEM7VUFBNUMsOENBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSx5REFBNEM7VUFBNUMsaURBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSxxRkFBNEM7VUFBNUMsNkVBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSxzRkFBNEM7VUFBNUMsOEVBQTRDLEVBQUE7O0FBdEN4RDtFQXNDWSxxRkFBNEM7VUFBNUMsNkVBQTRDLEVBQUE7O0FBaEN4RDtFQXNDa0IseUNBQWtDO1VBQWxDLGlDQUFrQyxFQUFBOztBQXRDcEQ7RUFzQ2tCLHlDQUFrQztVQUFsQyxpQ0FBa0MsRUFBQTs7QVV6RzFEOzs7Ozs7O0UvRW9qTUU7QWdGcGhNRjtFQUNDLHFCQUFzQztFQUN0Qyw2Q0FBcUU7RUFDckUsaVVBSXFHO0VBQ3JHLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsbUJBQW1CLEVBQUE7O0FoRm1oTXBCO0VnRi9nTUMsK0VBQUE7RUFDQSxnQ0FBaUQ7RUFDakQsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixjQUFjO0VBRWQsc0NBQUE7RUFDQSxtQ0FBbUM7RUFDbkMsa0NBQWtDLEVBQUE7O0FBR25DO0VBRUUsWUEzRFcsRUFBTzs7QUE4RHBCO0VBRUUsWUEvRGMsRUFBTzs7QUFrRXZCO0VBRUUsWUFuRWEsRUFBTzs7QUFzRXRCO0VBRUUsWUF2RVcsRUFBTzs7QUEwRXBCO0VBRUUsWUEzRVksRUFBTzs7QUE4RXJCO0VBRUUsWUEvRWUsRUFBTzs7QUFrRnhCO0VBRUUsWUFuRlksRUFBTzs7QUFzRnJCO0VBRUUsWUF2RmUsRUFBTzs7QUEwRnhCO0VBRUUsWUEzRmEsRUFBTzs7QUE4RnRCO0VBRUUsWUEvRlUsRUFBTzs7QUFrR25CO0VBRUUsWUFuR2dCLEVBQU87O0FBc0d6QjtFQUVFLFlBdkdpQixFQUFPOztBQTBHMUI7RUFFRSxZQTNHYyxFQUFPOztBQThHdkI7RUFFRSxZQS9HZ0IsRUFBTzs7QUFrSHpCO0VBRUUsWUFuSFUsRUFBTzs7QUFzSG5CO0VBRUUsWUF2SGMsRUFBTzs7QUEwSHZCO0VBRUUsWUEzSGEsRUFBTzs7QUE4SHRCO0VBRUUsWUEvSG1CLEVBQU87O0FBa0k1QjtFQUVFLFlBbklzQixFQUFPOztBQ3JCL0I7Ozs7OztFakZ5b01FO0FxQmwzTEE7RTREOVFELG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QTNFOEZiO0UyRXhGSCxnQkFBZ0IsRUFBQTs7QUFHakI7RUFDQyxnQkFBZ0IsRUFBQTs7QUFHakI7RUFDQyxzQkFBc0IsRUFBQTs7QUFHdkI7RUFDQyx5Q3ZFc0N1QyxFQUFBOztBdUVuQ3hDO0VGcUVJLHlDckVsQ29DO0VxRW1DcEMsZUFSYztFQVNkLGdCQUFXO0VBRWIsb0JBQW9CO0VBQ3BCLHlCQUF5QixFQUFBOztBRW5FM0I7RUFFRSxzQnZFNkRVO0V1RTVEVixjdkUyRGEsRUFBQTs7QXVFcERmO0VBQ0MseUN2RWlCdUMsRUFBQTs7QXVFZHhDO0VBQ0MsZ0JBQWdCLEVBQUE7O0FBR2pCO0VBQ0MsZ0JBQWdCLEVBQUE7O0FBR2pCO0VBQ0MsMEJBQTBCLEVBQUE7O0FBRzNCO0VBQ0Msa0JBQWtCLEVBQUE7O0FBR25CO0VBQ0MsZUFBZSxFQUFBOztBQUdoQjs7RUFFQyx5Q3ZFUnVDO0V1RVN2QyxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBRWhCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsa0JBQWtCLEVBQUE7RUFYbkI7O0lBY0UsV0FBVztJQUNYLHlCdkVaWTtJdUVhWixvQkFBb0I7SUFFcEIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxhQUFhO0lBQ2IsWUFBWTtJQUNaLFFBQVE7SUFDUixTQUFTO0lBQ1Qsd0NBQWdDO1lBQWhDLGdDQUFnQyxFQUFBO0UvRXdFNUI7SStFaEdOOztNQTZCRSxXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLG9CQUFvQjtNQUNwQixjQUFjO01BQ2QseUJBQXlCO01BQ3pCLGtCQUFrQjtNQUNsQixXQUFXO01BQ1gsa0JBQWtCO01BQ2xCLCtCQUF1QjtjQUF2Qix1QkFBdUIsRUFBQTtNQXJDekI7O1FBd0NHLFlBQVk7UUFDWixXQUFXO1FBQ1gsT0FBTztRQUNQLE1BQU07UUFDTix1QkFBZTtnQkFBZixlQUFlLEVBQUEsRUFDZjs7QUFJSDtFQUNDLHlDdkV4RHVDO0V1RXlEdkMsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUIsRUFBQTs7QUFNMUI7RUFDQyw2QnZFOUJvQjtFdUUrQnBCLGdDdkUvQm9CO0V1RWdDcEIsY0FBYztFQUNkLHlDdkVyRXVDO0V1RXNFdkMsV0FBVyxFQUFBO0VBTFo7SUFRRSxjQUFjLEVBQUE7O0FBSWhCO0VBQ0MsaURBQWlEO0VBQ2pELDRCQUE0QjtFQUM1QiwrQkFBK0I7RUFDL0Isd0JBQXdCO0VBQ3hCLGNBQWM7RUFDZCxXQUFXO0VBQ1gsU0FBUztFQUNULGtCQUFrQixFQUFBOztBQUtuQjtFQUNDLFdBQVc7RUFDWCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGNBQWMsRUFBQTtFQUpmO0lBT0UseUN2RWpHc0M7SXVFa0d0QyxnQkFBZ0I7SUFDaEIsWXZFM0RxQjtJdUU0RHJCLDJGdkUzRlk7SXVFNEZaLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsY0FBYyxFQUFBO0VBaEJoQjtJQW9CRSxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQiw2QnZFN0VtQjtJdUU4RW5CLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsMEJBQTBCLEVBQUE7O0FDdEw1Qjs7Ozs7O0VsRjB4TUU7QUVsbk1JO0VnRi9KTjtJQUtJLFVBQVU7SUFDVixXQUFXO0lBQ1gsc0JBQXNCLEVBQUE7RUFQMUI7SUFXSSxXQUFXLEVBQUEsRUFDWDs7QUFaSjtFQWlCRSxTQUFTO0VBQ1QscUJBQXFCLEVBQUE7O0FBbEJ2QjtFQXNCRSxhQUFhLEVBQUE7RUF0QmY7SUF5QkcsWUFBWSxFQUFBOztBQXpCZjtFQStCRywyQkFBMkIsRUFBQTtFaEZnSXhCO0lnRi9KTjtNQWtDSSxtQkFBbUIsRUFBQSxFQUVwQjs7QUFwQ0g7RUF1Q0csY3hFdUJjO0V3RXRCZCxnQkFBZ0IsRUFBQTs7QUF4Q25CO0VBNENHLHdCQUF3QjtFQUN4QixtQ0FBMkI7VUFBM0IsMkJBQTJCO0VBQzNCLHFCQUFxQjtFQUNyQixvQkFBb0IsRUFBQTtFSFZyQjtJR2FFLFVBQVUsRUFBQTtFSFRaO0lBQXFCLGdCQUFBO0lHU25CLFVBQVUsRUFBQTtFSExaO0lBQXVCLGdCQUFBO0lHS3JCLFVBQVUsRUFBQTtFSERaO0lHQ0UsVUFBVSxFQUFBOztBQWxEZDtFQXdESSxtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGVBQWU7RUFFZixVQUFVO0VBQ1YsYUFBYSxFQUFBO0VBN0RqQjtJQWdFSyxrQkFBa0I7SUFDbEIsa0JBQWtCLEVBQUE7SUFqRXZCO01Bb0VNLFdBQVc7TUFDWCxjQUFjO01BQ2Qsb0JBQW9CO01BQ3BCLGtCQUFrQixFQUFBO0lBdkV4QjtNQTJFTSxZQUFZO01BQ1osV0FBVztNQUNYLHlCeEVXYztNd0VWZCxpQkFBaUI7TUFDakIsTUFBTTtNQUNOLE9BQU8sRUFBQTtJQWhGYjtNQW9GTSxZQUFZO01BQ1osV0FBVztNQUNYLDZCQUE2QjtNQUM3QixRQUFRO01BQ1IsU0FBUyxFQUFBO0VBeEZmO0lBOEZNLHlCeEU1QlEsRUFBQTs7QXdFbEVkO0VBcUdJLDJCQUEyQixFQUFBOztBaEYwRHpCO0VnRi9KTjtJQTRHRyxtQkFBbUIsRUFBQSxFQVlwQjs7QUF4SEY7RUFnSEcsZ0JBQWdCO0VBQ2hCLGlCQUFpQixFQUFBOztBQWpIcEI7RUFxSEcsbUJ4RTNCZ0I7RXdFNEJoQixxQnhFNUJnQixFQUFBOztBd0UxRm5CO0VBNEhHLGN4RTVEVztFd0U2RFgsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsMkJBQTJCO0VBQzNCLHVCQUF1QixFQUFBOztBQWpJMUI7RUFzSUcsdUJBQXVCO0VBQ3ZCLDZCQUE2QjtFQUM3Qix5QkFBeUI7RUFDekIsNEJBQTRCLEVBQUE7RUF6SS9CO0lBNElJLHdCQUF3QixFQUFBO0VBNUk1QjtJQWdKSSx3QkFBd0IsRUFBQTtFQWhKNUI7SUFvSkksb0NBQWlDO0lBQ2pDLGdDQUE2QjtJQUM3QixnQkFBZ0IsRUFBQTtFQXRKcEI7SUF5SkkseUJ4RTFEUztJd0UyRFQsV3hFOURRO0l3RStEUixrQkFBa0I7SUFDbEIsc0JBQXNCO0lBQ3RCLGdDQUFnQztJQUNoQyxrQkFBa0IsRUFBQTtJQTlKdEI7TUFpS0ssV3hFckVPO013RXNFUCwwQkFBMEIsRUFBQTs7QUFTL0I7Ozs7O0VBS0Msd0JBQXdCO0VBQ3hCLDZCQUE2QjtFQUM3Qix3QkFBd0IsRUFBQTs7QUFPekI7RUFDQztJQUNDLGtEQUEwQztZQUExQywwQ0FBMEMsRUFBQTtFQUUzQztJQUNDLG9EQUE0QztZQUE1Qyw0Q0FBNEMsRUFBQSxFQUFBOztBQUw5QztFQUNDO0lBQ0Msa0RBQTBDO1lBQTFDLDBDQUEwQyxFQUFBO0VBRTNDO0lBQ0Msb0RBQTRDO1lBQTVDLDRDQUE0QyxFQUFBLEVBQUE7O0FBOEI5QztFQUdFLGtCQUFrQixFQUFBOztBQUhwQjtFQU1FLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLG9CQUFvQixFQUFBOztBQVR0QjtFQVlFLGN4RXRLWTtFd0V1S1oseUN4RWhMc0M7RXdFaUx0QyxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsV0FBVztFQUVYLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osY0FBYyxFQUFBO0VBdEJoQjtJQXlCRyxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixXQUFXO0lBQ1gsUUFBUTtJQUNSLFNBQVM7SUFDVCx3Q0FBK0I7WUFBL0IsZ0NBQStCO0lBRS9CLHlCeEUzTFc7SXdFNExYLG9CQUFvQixFQUFBO0VoRnBHakI7SWdGa0VOO01Bc0NHLGFBQWE7TUFDYixZQUFZLEVBQUE7TUF2Q2Y7UUEwQ0ksYUFBYTtRQUNiLFlBQVksRUFBQSxFQUNaO0VBR0Y7SUFDQyxhQUFhLEVBQUE7O0FoRmxIVjtFZ0ZzSEw7SUFFRSxpQkFBaUIsRUFBQTtJQUZuQjtNQUtHLG1CQUFtQixFQUFBLEVBQ25COztBQU1IOzs7RXBFclFDLG9CQUFhO0VBQWIscUJBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYiw4QkFIcUI7RUFHckIsNkJBSHFCO0VBR3JCLDJCQUhxQjtNQUdyQix1QkFIcUI7VUFHckIsbUJBSHFCO0VxRHFCckIsc0JBekNrQjtFQXlDbEIsNkJBekNrQjtNQXlDbEIsbUJBekNrQjtVQXlDbEIscUJBekNrQjtFZWlTbEIsZ0N4RXZNYTtFd0V3TWIsZUFBZSxFQUFBO0VBUGhCOzs7SUFXRywyQkFBMkI7SUFDM0IsZ0JBQWdCLEVBQUE7RUFabkI7Ozs7OztJbEVuUEcsbUJBQWM7SUFBZCxzQkFBYztRQUFkLGtCQUFjO1lBQWQsY0FBYztJQUNkLGVBQWU7SUFDZixjQUFjO0lrRXFRZixXQUFXLEVBQUE7RUFwQmI7OztJbEU5T0csbUJBQWE7SUFBYixxQkFBYTtRQUFiLGlCQUFhO1lBQWIsYUFBYSxFQUFBO0lrRThPaEI7OztNQTJCRyw2QkFBNkI7TUFDN0IsWUFBWTtNQUVYLGVBQVU7TUFFWCxpQkFBaUI7TUFDakIsZ0JBQWdCO01BQ2hCLFNBQVM7TUFDVCxlQUFlLEVBQUE7TUgxUmpCOzs7UUc2UkcsY3hFdk9VLEVBQUE7TXFFbERiOzs7UUFBcUIsZ0JBQUE7UUd5UmxCLGN4RXZPVSxFQUFBO01xRTlDYjs7O1FBQXVCLGdCQUFBO1FHcVJwQixjeEV2T1UsRUFBQTtNcUUxQ2I7OztRR2lSRyxjeEV2T1UsRUFBQTtNd0UwT1g7UUF6Q0g7OztVQTBDSSxlQUFlO1VBQ2YsaUJBQWlCO1VBQ2pCLGdCQUFnQixFQUFBLEVBRWpCO0VBOUNIOzs7SWxFM09HLG1CQUFjO0lBQWQsc0JBQWM7UUFBZCxrQkFBYztZQUFkLGNBQWM7SWtFK1JmLFNBQVM7SUFDVCxVQUFVLEVBQUE7RUFyRFo7Ozs7Ozs7Ozs7Ozs7OztJQXlERSx1QkFBdUI7SUFDdkIsY3hFM1BZO0l3RTRQWixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLHFCQUFxQixFQUFBO0lBN0R2Qjs7Ozs7Ozs7Ozs7Ozs7O01BZ0VHLHlCQUF5QjtNQUN6QixjeEUzUlUsRUFBQTs7QXdFZ1NiO0VBRUUsMkJBQTJCLEVBQUE7O0FBekU5QjtFQThFRSxhQUFhLEVBQUE7O0FBOUVmO0VBa0ZFLDJCQUEyQixFQUFBOztBQUk3QjtFQUdHLG1EQUF3QztFQUN4QywrQkFBb0I7RUFDcEIsNEJBQWlCO0VBQ2pCLHdCQUFhO0VBR2IsZ0JBQVM7RUFDVCxtQkFBWTtFQUViLGlCQUFpQixFQUFBO0VoRm5PYjtJZ0Z1Tk47TUFlRywrQkFBK0I7TUFFOUIsa0JBQVc7TUFDWCxtQkFBWSxFQUFBLEVBR2Q7O0FBVUY7RUFHRywyQkFBMkI7RUFDM0IsVUFBVSxFQUFBOztBQUpiO0VBVUcsb0JBQW9CLEVBQUE7O0FBVnZCO0VBY0csb0JBQW9CLEVBQUE7O0FBZHZCO0VBb0JHLHlDeEUzV3FDO0V3RTRXckMsZ0JBQWdCLEVBQUE7O0FBckJuQjtFQTBCRSxnQkFBZ0IsRUFBQTtFQTFCbEI7SUE2QkcsZ0JBQWdCLEVBQUE7SUE3Qm5CO01BZ0NJLFdBQVc7TUFDWCxXQUFXO01BQ1gsVUFBVSxFQUFBO0lBbENkO01BdUNLLFdBQVcsRUFBQTs7QUFVaEI7RUFFRSx5QnhFM1drQjtFd0U0V2xCLGN4RXpXYSxFQUFBO0V3RXNXZjtJQU1HLDRCQUE0QjtJQUM1Qix1QkFBdUI7SUFDdkIsMkJBQTJCLEVBQUE7O0FBUjlCO0VBYUUsbUJ4RXRYa0I7RXdFdVhsQixjeEVwWGEsRUFBQTs7QXlFcEdmOzs7O0VuRjBuTkU7QW1GcG5ORjtFQUdFLGFBQWEsRUFBQTs7QUFIZjtFQVNHLHlCekVrRmlCO0V5RWpGakIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osd0JBQXdCO0VBQ3hCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixnQnpFNkVTO0V5RTVFVCxtQ0FBMkI7VUFBM0IsMkJBQTJCLEVBQUE7RUFuQjlCO0lBc0JJLG9DQUFpQyxFQUFBOztBQXRCckM7RUEyQkcsbUJBQW1CLEVBQUE7O0FBM0J0QjtFQStCRyxtQkFBbUIsRUFBQTs7QUEvQnRCO0VBbUNHLHFCekU4QmMsRUFBQTs7QXlFakVqQjtFQXVDRyxrQkFBa0IsRUFBQTtFQXZDckI7SUEwQ0ksa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixVQUFVO0lBQ1YsWUFBWTtJQUNaLFdBQVc7SUFDWCxVQUFVO0lBQ1YsWUFBWTtJQUNaLDZCQUE2QjtJQUM3QixjekVlYTtJeUVkYixlQUFlO0lBQ2YsbUJBQW1CLEVBQUE7O0FBcER2QjtFQXlERyxjekVRYyxFQUFBOztBeUVqRWpCO0VBNkRHLHdCQUF3QjtFQUN4QixlQUFlO0VBQ2Ysc0JBQXNCLEVBQUE7O0FBL0R6QjtFQW9FSSxZQUFZO0VBQ1osaUJBQWlCLEVBQUE7O0FBckVyQjtFQXdFSSxRQUFRO0VBQ1IsVUFBVTtFQUNWLFdBQVc7RUFDWCxZQUFZLEVBQUE7O0FqRnVGVjtFaUZsS047SUFrRkcsa0JBQWtCO0lBQ2xCLGdCQUFnQixFQUFBO0lBbkZuQjtNQXNGSSxrQkFBa0I7TUFDbEIsTUFBTTtNQUNOLFFBQVEsRUFBQSxFQUNSOztBQXpGSjtFQWdHRyxnQkFBZ0I7RUFDaEIsY0FBYyxFQUFBO0VBakdqQjtJQW9HSSxxQkFBcUIsRUFBQTtJQXBHekI7TUF5R0ssa0JBQWtCO01BQ2xCLG1CQUFtQjtNQUNuQixvQkFBb0I7TUFDcEIsbUJBQW1CLEVBQUE7TUE1R3hCO1FKc0VFLGdDQUFnQztRQUNoQyxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFFZCxzQ0FBQTtRQUNBLG1DQUFtQztRQUNuQyxrQ0FBa0M7UUlnQzlCLFlIbkhPO1FHb0hQLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixnQkFBZ0IsRUFBQTs7QUFySHRCO0VBNkhFLGlCQUFpQjtFQUNqQixvQkFBb0IsRUFBQTs7QUFLdEI7RUFDQyxnQkFBZ0IsRUFBQTtFakY4Qlg7SWlGL0JOO01BSUUsZ0JBQWdCLEVBQUEsRUFFakI7O0FBRUQ7RUFDQyx5QnpFakRtQjtFeUVrRG5CLGdCQUFnQjtFQUNoQixpQkFBaUIsRUFBQTtFQUhsQjtJQU1FLHlCekU1RVksRUFBQTs7QXlFZ0ZkO0VKL0VFLGdDQUFnQztFQUNoQyxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsb0JBQW9CO0VBQ3BCLGNBQWM7RUFFZCxzQ0FBQTtFQUNBLG1DQUFtQztFQUNuQyxrQ0FBa0M7RUl3RWxDLFlIOUlnQjtFRytJaEIsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixTQUFTO0VBQ1Qsd0NBQStCO1VBQS9CLGdDQUErQjtFQUMvQixnQkFBZ0I7RUFDaEIsY3pFN0ZlLEVBQUE7O0F5RW9GakI7RUFhRSxhQUFhLEVBQUE7O0FDeEtmOztFcEZxd05FO0FvRjl2TkY7RUFDQyxjQUFjLEVBQUE7RUFEZjtJQUlFLHFCQUFxQjtJQUNyQixTQUFTLEVBQUE7SUFMWDtNQVFHLDRCQUE0QjtNQUM1Qix1QkFBdUI7TUFDdkIsc0JBQXdCO01BQ3hCLGNBQWM7TUFDZCxZQUFZO01BQ1osV0FBVztNQUNYLGlCQUFpQjtNQUNqQixrQkFBa0I7TUFDbEIsaUJBQWlCLEVBQUE7TUFoQnBCO1FMcUVFLGdDQUFnQztRQUNoQyxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFFZCxzQ0FBQTtRQUNBLG1DQUFtQztRQUNuQyxrQ0FBa0M7UUsxRGhDLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLFdBQVc7UUFFWCxrQkFBa0I7UUFDbEIsT0FBTztRQUNQLE1BQU0sRUFBQTtFQTVCVjtJQW1DRyxhQUFhLEVBQUE7O0FBT2hCO0VBSUksWUpqRFksRUFBTzs7QUk2Q3ZCO0VBSUksWUpoRFcsRUFBTzs7QUk0Q3RCO0VBSUksWUo5Q1UsRUFBTzs7QUkwQ3JCO0VBSUksWUo3Q2EsRUFBTzs7QUl5Q3hCO0VBSUksWUo1Q1UsRUFBTzs7QUtUckI7RUFDQyxnQkFBZ0I7RUFDaEIsaUJBQWlCLEVBQUE7O0FBRWxCO0VBQ0MsOEJBQThCLEVBQUE7O0FDTC9COzs7Ozs7Ozs7OztFdEYyME5FO0FFeHFOSTtFSWpGRjtJZ0ZoRUYsb0JsRm9EMkMsRUFBQSxFa0Y1QzVDOztBcEZ5SUs7RW9GbkpOO0lBT0csb0JBQW9CLEVBQUEsRUFFckI7O0FBR0Y7RUFDQyxlQUFlLEVBQUE7O0FBR2hCO0VBQ0MscUJBQXFCLEVBQUE7O0FBR3RCO0VBQ0MsYUFBYSxFQUFBOztBQUdkO0VBQ0MsY0FBYyxFQUFBOztBQUdmO0VBUkE7SUFVRSxvQkFBYTtJQUFiLHFCQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhLEVBQUE7RUFOZjtJQVNFLGFBQWEsRUFBQSxFQUNiOztBQUdGO0VBQ0M7SUFDQyx3QkFBd0IsRUFBQTtFQUd6QjtJQUNDLHdCQUF3QixFQUFBLEVBQ3hCOztBQUdGO0VBQ0M7SUFDQyx3QkFBd0IsRUFBQSxFQUN4Qjs7QUFJRDtFQUREO0lBSUksZUFBbUIsRUFBQTtFQUp2QjtJQUlJLGdCQUFtQixFQUFBO0VBSnZCO0lBSUksVUFBbUIsRUFBQTtFQUp2QjtJQUlJLGdCQUFtQixFQUFBO0VBSnZCO0lBSUksZ0JBQW1CLEVBQUE7RUFKdkI7SUFJSSxVQUFtQixFQUFBO0VBSnZCO0lBSUksZ0JBQW1CLEVBQUE7RUFKdkI7SUFJSSxnQkFBbUIsRUFBQTtFQUp2QjtJQUlJLFVBQW1CLEVBQUE7RUFKdkI7SUFJSSxnQkFBbUIsRUFBQTtFQUp2QjtJQUlJLGdCQUFtQixFQUFBO0VBSnZCO0lBSUksV0FBbUIsRUFBQSxFQUNuQjs7QUFLSjtFQUNDLFdBQVcsRUFBQTs7QUFHWjtFQUNDLFlBQVksRUFBQTs7QUFHYjtFQUNDLGNBQWM7RUFFYixpQkFBVTtFQUNWLGtCQUFXLEVBQUE7O0EzRThFWDtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YscUJBQWE7TUFBYiwwQkFBYTtVQUFiLGFBQWE7RUFDYiw0QkFBUTtFQUFSLGdCQUFRO01BQVIsaUJBQVE7VUFBUixRQUFRLEVBQUE7O0FBSVo7RUFDRSxXQUFXLEVBQUE7O0EyRWxGZjtFQUNDLHNCQUFzQjtFQUN0QixrQ0FBa0MsRUFBQTs7QUFNbEM7RUFDQyx5QjVFckNlLEVBQUE7O0E0RXdDaEI7RUFDQyxjNUV6Q2UsRUFBQTs7QTRFNENoQjtFQUNDLHlCQUFzQixFQUFBOztBQUV2QjtFQUNDLHlCQUFzQixFQUFBOztBQVp2QjtFQUNDLHlCNUVuQ1ksRUFBQTs7QTRFc0NiO0VBQ0MsYzVFdkNZLEVBQUE7O0E0RTBDYjtFQUNDLHlCQUFzQixFQUFBOztBQUV2QjtFQUNDLHlCQUFzQixFQUFBOztBQVp2QjtFQUNDLHlCNUVuQm9ELEVBQUE7O0E0RXNCckQ7RUFDQyxjNUV2Qm9ELEVBQUE7O0E0RTBCckQ7RUFDQyx5QkFBc0IsRUFBQTs7QUFFdkI7RUFDQyx5QkFBc0IsRUFBQTs7QUFadkI7RUFDQyx5QjVFbEJzRCxFQUFBOztBNEVxQnZEO0VBQ0MsYzVFdEJzRCxFQUFBOztBNEV5QnZEO0VBQ0MseUJBQXNCLEVBQUE7O0FBRXZCO0VBQ0MseUJBQXNCLEVBQUE7O0FBWnZCO0VBQ0MseUI1RWpDWSxFQUFBOztBNEVvQ2I7RUFDQyxjNUVyQ1ksRUFBQTs7QTRFd0NiO0VBQ0MseUJBQXNCLEVBQUE7O0FBRXZCO0VBQ0MseUJBQXNCLEVBQUE7O0FBWnZCO0VBQ0MseUI1RVhrQixFQUFBOztBNEVjbkI7RUFDQyxjNUVma0IsRUFBQTs7QTRFa0JuQjtFQUNDLHlCQUFzQixFQUFBOztBQUV2QjtFQUNDLHlCQUFzQixFQUFBOztBQVp2QjtFQUNDLHlCNUVWbUIsRUFBQTs7QTRFYXBCO0VBQ0MsYzVFZG1CLEVBQUE7O0E0RWlCcEI7RUFDQyx5QkFBc0IsRUFBQTs7QUFFdkI7RUFDQyx5QkFBc0IsRUFBQTs7QUFadkI7RUFDQyx5QjVFVGlCLEVBQUE7O0E0RVlsQjtFQUNDLGM1RWJpQixFQUFBOztBNEVnQmxCO0VBQ0MseUJBQXNCLEVBQUE7O0FBRXZCO0VBQ0MseUJBQXNCLEVBQUE7O0FBWnZCO0VBQ0MseUI1RVJhLEVBQUE7O0E0RVdkO0VBQ0MsYzVFWmEsRUFBQTs7QTRFZWQ7RUFDQyx5QkFBc0IsRUFBQTs7QUFFdkI7RUFDQyx5QkFBc0IsRUFBQTs7QUFadkI7RUFDQyxzQjVFUFUsRUFBQTs7QTRFVVg7RUFDQyxXNUVYVSxFQUFBOztBNEVjWDtFQUNDLHNCQUFzQixFQUFBOztBQUV2QjtFQUNDLHNCQUFzQixFQUFBOztBQVp2QjtFQUNDLHlCNUVqQ1ksRUFBQTs7QTRFb0NiO0VBQ0MsYzVFckNZLEVBQUE7O0E0RXdDYjtFQUNDLHlCQUFzQixFQUFBOztBQUV2QjtFQUNDLHlCQUFzQixFQUFBOztBQVp2QjtFQUNDLHlCNUVKVyxFQUFBOztBNEVPWjtFQUNDLGM1RVJXLEVBQUE7O0E0RVdaO0VBQ0MseUJBQXNCLEVBQUE7O0FBRXZCO0VBQ0MseUJBQXNCLEVBQUE7O0FBS3ZCOztFQUdF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QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxpQkFBcUIsRUFBQTs7QUFHdEI7RUFDQyxnQkFBb0IsRUFBQTs7QUFHckI7RUFDQyxnQkFBb0IsRUFBQTs7QUFickI7RUFDQyxp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QVc7RUFFWixxQkFBcUIsRUFBQTs7QUFPdkI7RUFDQyw4Qi9HZ0ZvQjtFK0cvRXBCLFlBQVk7RUFDWixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLFVBQVUsRUFBQTtFQUxYO0lBUUUsY0FBYztJQUViLHlDL0dtQ3FDO0krR2xDckMsZUFBVTtJQUVYLGlCQUFpQixFQUFBOztBQU9uQjtFQUNDLGNBQWM7RUFDZCxjQUFjO0VBQ2QsZUFBZSxFQUFBO0VBSGhCO0lBT0csd0JBQWE7SUFDYixzQkFBVyxFQUFBO0l2SHVIUjtNdUgvSE47UUFZRyxzQkFBc0IsRUFBQSxFQUV2QjtFdkg0R0k7SXVIMUhOO01Ba0JHLGtCQUFXO01BQ1gsbUJBQVksRUFBQSxFQUdkIiwiZmlsZSI6InVuZGFyay5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsLCAucmV2ZWFsLnRpbnksIC5yZXZlYWwuc21hbGwsIC5yZXZlYWwubGFyZ2Uge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuXG4vKipcbiAqIDAwLiBNaXNjZWxsYW5lb3VzXG4gKiAwMS4gQ29sb3JzXG4gKiAtLSBJbmNsdWRlIGZ1bmN0aW9ucyB0aGF0IHJlcXVpcmUgY29sb3JzXG4gKiAwMi4gQW5pbWF0aW9uc1xuICogMDMuIFNwYWNpbmdcbiAqIDA0LiBUb3BiYXIgRXh0ZW5kZWRcbiAqIDA1LiBQcmltYXJ5IE1lbnVcbiAqIDA2LiBGb290ZXJcbiAqIDA3LiBGb3Jtc1xuICogMDguIENvbW1lbnRzXG4gKiAwOS4gUGFnZSBUZW1wbGF0ZXNcbiAqIDEwLiBWaXNpYmlsaXR5XG4gKi9cbi8qKlxuICogMDEuIENvbG9yIExlZ2liaWxpdHlcbiAqL1xuLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cbi8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5maWdjYXB0aW9uLFxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovIH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cbiAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi8gfVxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovIH1cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmlwYWQ9NDhlbSZsYXJnZT02NGVtJnhsYXJnZT03NWVtJnh4bGFyZ2U9OTBlbVwiOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFwiVGF2aXJhalwiLCBHZW9yZ2lhLCBQYWxhdGlubywgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmdyaWQtY29udGFpbmVyLCAubWVzaF9zZWN0aW9uIC5ncmlkLXgubWVzaC1yb3c6bm90KC5mdWxsLXdpZHRoKTpub3QoLmZ1bGwpOm5vdCguZnVsbHdpZHRoKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDMuNzVyZW07XG4gIHBhZGRpbmctbGVmdDogMy43NXJlbTtcbiAgbWF4LXdpZHRoOiA5MnJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLmdyaWQtY29udGFpbmVyLmZsdWlkLCAubWVzaF9zZWN0aW9uIC5mbHVpZC5ncmlkLXgubWVzaC1yb3c6bm90KC5mdWxsLXdpZHRoKTpub3QoLmZ1bGwpOm5vdCguZnVsbHdpZHRoKSB7XG4gICAgcGFkZGluZy1yaWdodDogMy43NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDMuNzVyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5ncmlkLWNvbnRhaW5lci5mdWxsLCAubWVzaF9zZWN0aW9uIC5mdWxsLmdyaWQteC5tZXNoLXJvdzpub3QoLmZ1bGwtd2lkdGgpOm5vdCguZnVsbCk6bm90KC5mdWxsd2lkdGgpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmdyaWQteCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cblxuLmNlbGwge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLWhlaWdodDogMHB4O1xuICBtaW4td2lkdGg6IDBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNlbGwuYXV0byB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAuY2VsbC5zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi5ncmlkLXggPiAuYXV0byB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi5ncmlkLXggPiAuc2hyaW5rIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLmdyaWQteCA+IC5zbWFsbC1zaHJpbmssIC5ncmlkLXggPiAuc21hbGwtZnVsbCwgLmdyaWQteCA+IC5zbWFsbC0xLCAuZ3JpZC14ID4gLnNtYWxsLTIsIC5ncmlkLXggPiAuc21hbGwtMywgLmdyaWQteCA+IC5zbWFsbC00LCAuZ3JpZC14ID4gLnNtYWxsLTUsIC5ncmlkLXggPiAuc21hbGwtNiwgLmdyaWQteCA+IC5zbWFsbC03LCAuZ3JpZC14ID4gLnNtYWxsLTgsIC5ncmlkLXggPiAuc21hbGwtOSwgLmdyaWQteCA+IC5zbWFsbC0xMCwgLmdyaWQteCA+IC5zbWFsbC0xMSwgLmdyaWQteCA+IC5zbWFsbC0xMiB7XG4gIGZsZXgtYmFzaXM6IGF1dG87IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZ3JpZC14ID4gLmlwYWQtc2hyaW5rLCAuZ3JpZC14ID4gLmlwYWQtZnVsbCwgLmdyaWQteCA+IC5pcGFkLTEsIC5ncmlkLXggPiAuaXBhZC0yLCAuZ3JpZC14ID4gLmlwYWQtMywgLmdyaWQteCA+IC5pcGFkLTQsIC5ncmlkLXggPiAuaXBhZC01LCAuZ3JpZC14ID4gLmlwYWQtNiwgLmdyaWQteCA+IC5pcGFkLTcsIC5ncmlkLXggPiAuaXBhZC04LCAuZ3JpZC14ID4gLmlwYWQtOSwgLmdyaWQteCA+IC5pcGFkLTEwLCAuZ3JpZC14ID4gLmlwYWQtMTEsIC5ncmlkLXggPiAuaXBhZC0xMiB7XG4gICAgZmxleC1iYXNpczogYXV0bzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXggPiAubWVkaXVtLXNocmluaywgLmdyaWQteCA+IC5tZWRpdW0tZnVsbCwgLmdyaWQteCA+IC5tZWRpdW0tMSwgLmdyaWQteCA+IC5tZWRpdW0tMiwgLmdyaWQteCA+IC5tZWRpdW0tMywgLmdyaWQteCA+IC5tZWRpdW0tNCwgLmdyaWQteCA+IC5tZWRpdW0tNSwgLmdyaWQteCA+IC5tZWRpdW0tNiwgLmdyaWQteCA+IC5tZWRpdW0tNywgLmdyaWQteCA+IC5tZWRpdW0tOCwgLmdyaWQteCA+IC5tZWRpdW0tOSwgLmdyaWQteCA+IC5tZWRpdW0tMTAsIC5ncmlkLXggPiAubWVkaXVtLTExLCAuZ3JpZC14ID4gLm1lZGl1bS0xMiB7XG4gICAgZmxleC1iYXNpczogYXV0bzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXggPiAubGFyZ2Utc2hyaW5rLCAuZ3JpZC14ID4gLmxhcmdlLWZ1bGwsIC5ncmlkLXggPiAubGFyZ2UtMSwgLmdyaWQteCA+IC5sYXJnZS0yLCAuZ3JpZC14ID4gLmxhcmdlLTMsIC5ncmlkLXggPiAubGFyZ2UtNCwgLmdyaWQteCA+IC5sYXJnZS01LCAuZ3JpZC14ID4gLmxhcmdlLTYsIC5ncmlkLXggPiAubGFyZ2UtNywgLmdyaWQteCA+IC5sYXJnZS04LCAuZ3JpZC14ID4gLmxhcmdlLTksIC5ncmlkLXggPiAubGFyZ2UtMTAsIC5ncmlkLXggPiAubGFyZ2UtMTEsIC5ncmlkLXggPiAubGFyZ2UtMTIge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87IH0gfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC01IHtcbiAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTIge1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5ncmlkLXggPiAuaXBhZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAuaXBhZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAuaXBhZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAuaXBhZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmlwYWQtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQteCA+IC5tZWRpdW0tYXV0byB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS1zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQteCA+IC5sYXJnZS1hdXRvIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAubGFyZ2Utc2hyaW5rIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5ncmlkLW1hcmdpbi14Om5vdCguZ3JpZC14KSA+IC5jZWxsIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLmdyaWQtbWFyZ2luLXk6bm90KC5ncmlkLXkpID4gLmNlbGwge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmdyaWQtbWFyZ2luLXgge1xuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLW1hcmdpbi14IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuY2VsbCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuYXV0byB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc2hyaW5rIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0xIHtcbiAgICB3aWR0aDogY2FsYyg4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTIge1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTMge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTYge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTcge1xuICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTgge1xuICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTkge1xuICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEwIHtcbiAgICB3aWR0aDogY2FsYyg4My4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0xMSB7XG4gICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1hdXRvIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1zaHJpbmsge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLTEge1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC0zIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtNCB7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLTUge1xuICAgICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC02IHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtNyB7XG4gICAgICB3aWR0aDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLTgge1xuICAgICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC05IHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtMTAge1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC0xMSB7XG4gICAgICB3aWR0aDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLTEyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLW1hcmdpbi14ID4gLmF1dG8ge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zaHJpbmsge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0xIHtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMiB7XG4gICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0zIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTQge1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNSB7XG4gICAgICB3aWR0aDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC02IHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTcge1xuICAgICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtOCB7XG4gICAgICB3aWR0aDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC05IHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEwIHtcbiAgICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTExIHtcbiAgICAgIHdpZHRoOiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tYXV0byB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1zaHJpbmsge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tMSB7XG4gICAgICB3aWR0aDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0yIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0zIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS00IHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS01IHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS02IHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS03IHtcbiAgICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS04IHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS05IHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0xMCB7XG4gICAgICB3aWR0aDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tMTEge1xuICAgICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTEyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLWF1dG8ge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1zaHJpbmsge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS0xIHtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMiB7XG4gICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS0zIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTQge1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtNSB7XG4gICAgICB3aWR0aDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS02IHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTcge1xuICAgICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtOCB7XG4gICAgICB3aWR0aDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS05IHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTEwIHtcbiAgICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTExIHtcbiAgICAgIHdpZHRoOiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTEyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuXG4uZ3JpZC1wYWRkaW5nLXggLmdyaWQtcGFkZGluZy14IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1wYWRkaW5nLXggLmdyaWQtcGFkZGluZy14IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cblxuLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAuZ3JpZC1wYWRkaW5nLXgsIC5tZXNoX3NlY3Rpb24gLmdyaWQteC5tZXNoLXJvdzpub3QoLmZ1bGwpOm5vdCguZnVsbC13aWR0aCk6bm90KC5mdWxsd2lkdGgpID4gLmdyaWQtcGFkZGluZy14IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+IC5ncmlkLXBhZGRpbmcteCwgLm1lc2hfc2VjdGlvbiAuZ3JpZC14Lm1lc2gtcm93Om5vdCguZnVsbCk6bm90KC5mdWxsLXdpZHRoKTpub3QoLmZ1bGx3aWR0aCkgPiAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1wYWRkaW5nLXggPiAuY2VsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtcGFkZGluZy14ID4gLmNlbGwge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc21hbGwtdXAtMSA+IC5jZWxsIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLXVwLTIgPiAuY2VsbCB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXVwLTMgPiAuY2VsbCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXVwLTQgPiAuY2VsbCB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXVwLTUgPiAuY2VsbCB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLnNtYWxsLXVwLTYgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTcgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnNtYWxsLXVwLTggPiAuY2VsbCB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmlwYWQtdXAtMiA+IC5jZWxsIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5pcGFkLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuaXBhZC11cC00ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmlwYWQtdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5pcGFkLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuaXBhZC11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLmlwYWQtdXAtOCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTIuNSU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gIC5sYXJnZS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMi41JTsgfSB9XG5cbi5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTEgPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0yID4gLmNlbGwge1xuICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0zID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC00ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyNSUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC01ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyMCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC02ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC03ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC04ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxMi41JSAtIDEuMjVyZW0pOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXguaXBhZC11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguaXBhZC11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5pcGFkLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmlwYWQtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguaXBhZC11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5pcGFkLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmlwYWQtdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguaXBhZC11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMS44NzVyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtMiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTQgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTcgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTQuMjg1NzElIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtOCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMi41JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTUgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjg3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teC5sYXJnZS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtMiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtMyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtOCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMi41JSAtIDEuODc1cmVtKTsgfSB9XG5cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMSB7XG4gICAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMiB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTMge1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC00IHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtNSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTYge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC03IHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtOCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTkge1xuICAgICAgd2lkdGg6IDc1JTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0xMCB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTExIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMTIge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEge1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMiB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMyB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNiB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNyB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOSB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTAge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTExIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMiB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0zIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTQge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS02IHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTcge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS05IHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEwIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTExIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnNtYWxsLXBhZGRpbmctY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbWFsbC1wYWRkaW5nLWNvbGxhcHNlID4gLmNlbGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuaXBhZC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmlwYWQtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5pcGFkLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLXBhZGRpbmctY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5pcGFkLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmNlbGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubWVkaXVtLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5pcGFkLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuaXBhZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmlwYWQtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubGFyZ2UtcGFkZGluZy1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG4uc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogY2FsYygwJSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzJSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMTYuNjY2NjclICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogY2FsYygyNSUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDMzLjMzMzMzJSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNDEuNjY2NjclICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogY2FsYyg1MCUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDU4LjMzMzMzJSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NjclICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogY2FsYyg3NSUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoODMuMzMzMzMlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY3JSArIDAuNjI1cmVtKTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAwLjkzNzVyZW0pOyB9XG4gIC5pcGFkLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOC4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5pcGFkLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY3JSArIDAuOTM3NXJlbSk7IH1cbiAgLmlwYWQtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMC45Mzc1cmVtKTsgfVxuICAuaXBhZC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygzMy4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5pcGFkLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDQxLjY2NjY3JSArIDAuOTM3NXJlbSk7IH1cbiAgLmlwYWQtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMC45Mzc1cmVtKTsgfVxuICAuaXBhZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5pcGFkLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5pcGFkLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDY2LjY2NjY3JSArIDAuOTM3NXJlbSk7IH1cbiAgLmlwYWQtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMC45Mzc1cmVtKTsgfVxuICAuaXBhZC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuaXBhZC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDgzLjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmlwYWQtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmlwYWQtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg5MS42NjY2NyUgKyAwLjkzNzVyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAwLjkzNzVyZW0pOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTYuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNDEuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTguMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4My4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY3JSArIDAuOTM3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxNi42NjY2NyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDMzLjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg0MS42NjY2NyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDU4LjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg2Ni42NjY2NyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoODMuMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOTEuNjY2NjclICsgMC45Mzc1cmVtKTsgfSB9XG5cbi5ncmlkLXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgLmdyaWQteSA+IC5jZWxsIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC15ID4gLmF1dG8ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC15ID4gLnNocmluayB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtc2hyaW5rLCAuZ3JpZC15ID4gLnNtYWxsLWZ1bGwsIC5ncmlkLXkgPiAuc21hbGwtMSwgLmdyaWQteSA+IC5zbWFsbC0yLCAuZ3JpZC15ID4gLnNtYWxsLTMsIC5ncmlkLXkgPiAuc21hbGwtNCwgLmdyaWQteSA+IC5zbWFsbC01LCAuZ3JpZC15ID4gLnNtYWxsLTYsIC5ncmlkLXkgPiAuc21hbGwtNywgLmdyaWQteSA+IC5zbWFsbC04LCAuZ3JpZC15ID4gLnNtYWxsLTksIC5ncmlkLXkgPiAuc21hbGwtMTAsIC5ncmlkLXkgPiAuc21hbGwtMTEsIC5ncmlkLXkgPiAuc21hbGwtMTIge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5ncmlkLXkgPiAuaXBhZC1zaHJpbmssIC5ncmlkLXkgPiAuaXBhZC1mdWxsLCAuZ3JpZC15ID4gLmlwYWQtMSwgLmdyaWQteSA+IC5pcGFkLTIsIC5ncmlkLXkgPiAuaXBhZC0zLCAuZ3JpZC15ID4gLmlwYWQtNCwgLmdyaWQteSA+IC5pcGFkLTUsIC5ncmlkLXkgPiAuaXBhZC02LCAuZ3JpZC15ID4gLmlwYWQtNywgLmdyaWQteSA+IC5pcGFkLTgsIC5ncmlkLXkgPiAuaXBhZC05LCAuZ3JpZC15ID4gLmlwYWQtMTAsIC5ncmlkLXkgPiAuaXBhZC0xMSwgLmdyaWQteSA+IC5pcGFkLTEyIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLXkgPiAubWVkaXVtLXNocmluaywgLmdyaWQteSA+IC5tZWRpdW0tZnVsbCwgLmdyaWQteSA+IC5tZWRpdW0tMSwgLmdyaWQteSA+IC5tZWRpdW0tMiwgLmdyaWQteSA+IC5tZWRpdW0tMywgLmdyaWQteSA+IC5tZWRpdW0tNCwgLmdyaWQteSA+IC5tZWRpdW0tNSwgLmdyaWQteSA+IC5tZWRpdW0tNiwgLmdyaWQteSA+IC5tZWRpdW0tNywgLmdyaWQteSA+IC5tZWRpdW0tOCwgLmdyaWQteSA+IC5tZWRpdW0tOSwgLmdyaWQteSA+IC5tZWRpdW0tMTAsIC5ncmlkLXkgPiAubWVkaXVtLTExLCAuZ3JpZC15ID4gLm1lZGl1bS0xMiB7XG4gICAgICBmbGV4LWJhc2lzOiBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ3JpZC15ID4gLmxhcmdlLXNocmluaywgLmdyaWQteSA+IC5sYXJnZS1mdWxsLCAuZ3JpZC15ID4gLmxhcmdlLTEsIC5ncmlkLXkgPiAubGFyZ2UtMiwgLmdyaWQteSA+IC5sYXJnZS0zLCAuZ3JpZC15ID4gLmxhcmdlLTQsIC5ncmlkLXkgPiAubGFyZ2UtNSwgLmdyaWQteSA+IC5sYXJnZS02LCAuZ3JpZC15ID4gLmxhcmdlLTcsIC5ncmlkLXkgPiAubGFyZ2UtOCwgLmdyaWQteSA+IC5sYXJnZS05LCAuZ3JpZC15ID4gLmxhcmdlLTEwLCAuZ3JpZC15ID4gLmxhcmdlLTExLCAuZ3JpZC15ID4gLmxhcmdlLTEyIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87IH0gfVxuICAuZ3JpZC15ID4gLnNtYWxsLTEge1xuICAgIGhlaWdodDogOC4zMzMzMyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0yIHtcbiAgICBoZWlnaHQ6IDE2LjY2NjY3JTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTMge1xuICAgIGhlaWdodDogMjUlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtNCB7XG4gICAgaGVpZ2h0OiAzMy4zMzMzMyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC01IHtcbiAgICBoZWlnaHQ6IDQxLjY2NjY3JTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTYge1xuICAgIGhlaWdodDogNTAlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtNyB7XG4gICAgaGVpZ2h0OiA1OC4zMzMzMyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC04IHtcbiAgICBoZWlnaHQ6IDY2LjY2NjY3JTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTkge1xuICAgIGhlaWdodDogNzUlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtMTAge1xuICAgIGhlaWdodDogODMuMzMzMzMlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtMTEge1xuICAgIGhlaWdodDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtMTIge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQteSA+IC5pcGFkLWF1dG8ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLXkgPiAuaXBhZC1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQteSA+IC5pcGFkLTEge1xuICAgICAgaGVpZ2h0OiA4LjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAuaXBhZC0yIHtcbiAgICAgIGhlaWdodDogMTYuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5pcGFkLTMge1xuICAgICAgaGVpZ2h0OiAyNSU7IH1cbiAgICAuZ3JpZC15ID4gLmlwYWQtNCB7XG4gICAgICBoZWlnaHQ6IDMzLjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAuaXBhZC01IHtcbiAgICAgIGhlaWdodDogNDEuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5pcGFkLTYge1xuICAgICAgaGVpZ2h0OiA1MCU7IH1cbiAgICAuZ3JpZC15ID4gLmlwYWQtNyB7XG4gICAgICBoZWlnaHQ6IDU4LjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAuaXBhZC04IHtcbiAgICAgIGhlaWdodDogNjYuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5pcGFkLTkge1xuICAgICAgaGVpZ2h0OiA3NSU7IH1cbiAgICAuZ3JpZC15ID4gLmlwYWQtMTAge1xuICAgICAgaGVpZ2h0OiA4My4zMzMzMyU7IH1cbiAgICAuZ3JpZC15ID4gLmlwYWQtMTEge1xuICAgICAgaGVpZ2h0OiA5MS42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLmlwYWQtMTIge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC15ID4gLm1lZGl1bS1hdXRvIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMSB7XG4gICAgICBoZWlnaHQ6IDguMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMiB7XG4gICAgICBoZWlnaHQ6IDE2LjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTMge1xuICAgICAgaGVpZ2h0OiAyNSU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS00IHtcbiAgICAgIGhlaWdodDogMzMuMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tNSB7XG4gICAgICBoZWlnaHQ6IDQxLjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTYge1xuICAgICAgaGVpZ2h0OiA1MCU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS03IHtcbiAgICAgIGhlaWdodDogNTguMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tOCB7XG4gICAgICBoZWlnaHQ6IDY2LjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTkge1xuICAgICAgaGVpZ2h0OiA3NSU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS0xMCB7XG4gICAgICBoZWlnaHQ6IDgzLjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTExIHtcbiAgICAgIGhlaWdodDogOTEuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMTIge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ3JpZC15ID4gLmxhcmdlLWF1dG8ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtMSB7XG4gICAgICBoZWlnaHQ6IDguMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS0yIHtcbiAgICAgIGhlaWdodDogMTYuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS0zIHtcbiAgICAgIGhlaWdodDogMjUlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS00IHtcbiAgICAgIGhlaWdodDogMzMuMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS01IHtcbiAgICAgIGhlaWdodDogNDEuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS02IHtcbiAgICAgIGhlaWdodDogNTAlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS03IHtcbiAgICAgIGhlaWdodDogNTguMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS04IHtcbiAgICAgIGhlaWdodDogNjYuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS05IHtcbiAgICAgIGhlaWdodDogNzUlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS0xMCB7XG4gICAgICBoZWlnaHQ6IDgzLjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtMTEge1xuICAgICAgaGVpZ2h0OiA5MS42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTEyIHtcbiAgICAgIGhlaWdodDogMTAwJTsgfSB9XG5cbi5ncmlkLXBhZGRpbmcteSAuZ3JpZC1wYWRkaW5nLXkge1xuICBtYXJnaW4tdG9wOiAtMC42MjVyZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLXBhZGRpbmcteSAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgbWFyZ2luLXRvcDogLTAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0wLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1wYWRkaW5nLXkgPiAuY2VsbCB7XG4gIHBhZGRpbmctdG9wOiAwLjYyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtcGFkZGluZy15ID4gLmNlbGwge1xuICAgICAgcGFkZGluZy10b3A6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1tYXJnaW4teSB7XG4gIG1hcmdpbi10b3A6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkge1xuICAgICAgbWFyZ2luLXRvcDogLTAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0wLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi10b3A6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuY2VsbCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTsgfSB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmF1dG8ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xIHtcbiAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMyB7XG4gICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTQge1xuICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC01IHtcbiAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNiB7XG4gICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTcge1xuICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC04IHtcbiAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtOSB7XG4gICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEwIHtcbiAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC1hdXRvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTUge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTgge1xuICAgICAgaGVpZ2h0OiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC0xMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLXNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTMge1xuICAgICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTYge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTAge1xuICAgICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG5cbi5ncmlkLWZyYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDB2dzsgfVxuXG4uY2VsbCAuZ3JpZC1mcmFtZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jZWxsLWJsb2NrIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG5cbi5jZWxsLWJsb2NrLXkge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG5cbi5jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyID4gLmdyaWQteCB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLWdyaWQtZnJhbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDB2dzsgfVxuICAuY2VsbCAuaXBhZC1ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXBhZC1jZWxsLWJsb2NrIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH1cbiAgLmlwYWQtY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmlwYWQtY2VsbC1ibG9jay1jb250YWluZXIgPiAuZ3JpZC14IHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAuaXBhZC1jZWxsLWJsb2NrLXkge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDB2dzsgfVxuICAuY2VsbCAubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jayB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gICAgLm1lZGl1bS1jZWxsLWJsb2NrLWNvbnRhaW5lciA+IC5ncmlkLXgge1xuICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay15IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWdyaWQtZnJhbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDB2dzsgfVxuICAuY2VsbCAubGFyZ2UtZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLWNlbGwtYmxvY2sge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5cGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjsgfVxuICAubGFyZ2UtY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmxhcmdlLWNlbGwtYmxvY2stY29udGFpbmVyID4gLmdyaWQteCB7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLmxhcmdlLWNlbGwtYmxvY2steSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5cGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjsgfSB9XG5cbi5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5ncmlkLXkuaXBhZC1ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDEwMHZoOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdyaWQteS5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDB2aDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXkubGFyZ2UtZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDB2aDsgfSB9XG5cbi5jZWxsIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jZWxsIC5ncmlkLXkuaXBhZC1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY2VsbCAuZ3JpZC15Lm1lZGl1bS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY2VsbCAuZ3JpZC15LmxhcmdlLWdyaWQtZnJhbWUge1xuICAgIGhlaWdodDogMTAwJTsgfSB9XG5cbi5ncmlkLW1hcmdpbi15IHtcbiAgbWFyZ2luLXRvcDogLTAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTAuOTM3NXJlbTsgfSB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmNlbGwge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuYXV0byB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNocmluayB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEge1xuICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTIge1xuICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNCB7XG4gICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTUge1xuICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNyB7XG4gICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTAge1xuICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMSB7XG4gICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC0xIHtcbiAgICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTcge1xuICAgICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmlwYWQtOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuaXBhZC05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTEwIHtcbiAgICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5pcGFkLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5hdXRvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xIHtcbiAgICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTMge1xuICAgICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTUge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTYge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTcge1xuICAgICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgICAgaGVpZ2h0OiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEwIHtcbiAgICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xIHtcbiAgICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTcge1xuICAgICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTEwIHtcbiAgICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9IH1cblxuLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gIGhlaWdodDogY2FsYygxMDB2aCArIDEuMjVyZW0pOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCArIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMS44NzVyZW0pOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZ3JpZC1tYXJnaW4teS5pcGFkLWdyaWQtZnJhbWUge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCArIDEuODc1cmVtKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15Lm1lZGl1bS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teS5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7IH0gfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMsXG5oNCwgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBmb250LWZhbWlseTogXCJUYXZpcmFqXCIsIEdlb3JnaWEsIFBhbGF0aW5vLCBzZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCwgLmgxIHNtYWxsLFxuICBoMiBzbWFsbCwgLmgyIHNtYWxsLFxuICBoMyBzbWFsbCwgLmgzIHNtYWxsLFxuICBoNCBzbWFsbCwgLmg0IHNtYWxsLFxuICBoNSBzbWFsbCwgLmg1IHNtYWxsLFxuICBoNiBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2JmYmZiZjsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDMsIC5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMi44NzVyZW07IH1cbiAgaDIsIC5oMiB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTsgfVxuICBoMywgLmgzIHtcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTsgfVxuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuMzEyNXJlbTsgfVxuICBoNSwgLmg1IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMy41cmVtOyB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtOyB9XG4gIGg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIGg1LCAuaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjY2JhMTdkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2JlODk1YzsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogOTJyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWRmZDk7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0OyB9XG5cbnVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIGRsIGR0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiZmJmYmY7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBjb2xvcjogIzhhOGE4YTsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5jb2RlIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JmYmZiZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjZmMztcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmNmYzO1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxuLnN1YmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzhhOGE4YTsgfVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuaXBhZC10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuaXBhZC10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5pcGFkLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG4uYnV0dG9uLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAxLjU2MjVlbSAxLjU2MjVlbSAxLjVlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZmZjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYSwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24sIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5idXR0b246aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b246aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi50aW55LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEudGlueSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24udGlueSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24udGlueSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLnNtYWxsLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5zbWFsbCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLmxhcmdlLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEubGFyZ2UsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmxhcmdlLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5leHBhbmRlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZXhwYW5kZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEucHJpbWFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24ucHJpbWFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24ucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFiMzQzNztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLnByaW1hcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLnByaW1hcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLnByaW1hcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE2MmEyYztcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5zZWNvbmRhcnksIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdmOTQ4ZDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuc2Vjb25kYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5zZWNvbmRhcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLnNlY29uZGFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NDc4NzE7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLnN1Y2Nlc3MsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi53YXJuaW5nLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEud2FybmluZywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24ud2FybmluZywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24ud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24ud2FybmluZzpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLndhcm5pbmc6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLndhcm5pbmc6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLndhcm5pbmc6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24uYWxlcnQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5hbGVydCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uYWxlcnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi5hbGVydDpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmFsZXJ0OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5hbGVydDpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5hbGVydDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uYWxlcnQ6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRpc2FibGVkOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b25bZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF06Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZC5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdLnByaW1hcnksIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQucHJpbWFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQucHJpbWFyeTpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXS5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnk6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b25bZGlzYWJsZWRdLnByaW1hcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdLnByaW1hcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjM0Mzc7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZC5zZWNvbmRhcnksIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRpc2FibGVkLnNlY29uZGFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnksIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQuc2Vjb25kYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZC5zZWNvbmRhcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnk6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdmOTQ4ZDtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZC5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdLnN1Y2Nlc3MsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcyB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQuc3VjY2VzcywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXS5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0uc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdLnN1Y2Nlc3M6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQud2FybmluZywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQud2FybmluZywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXS53YXJuaW5nLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0ud2FybmluZywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdLndhcm5pbmcge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQud2FybmluZywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRpc2FibGVkLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRpc2FibGVkLndhcm5pbmc6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmcsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0ud2FybmluZywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b25bZGlzYWJsZWRdLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXS53YXJuaW5nOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdLndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZC5hbGVydCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQuYWxlcnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXS5hbGVydCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uYWxlcnQge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kaXNhYmxlZC5hbGVydCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZGlzYWJsZWQuYWxlcnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZGlzYWJsZWQuYWxlcnQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5hbGVydDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRpc2FibGVkLmFsZXJ0OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kaXNhYmxlZC5hbGVydDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZGlzYWJsZWQuYWxlcnQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGFbZGlzYWJsZWRdLmFsZXJ0LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uYWxlcnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYVtkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b25bZGlzYWJsZWRdLmFsZXJ0OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhW2Rpc2FibGVkXS5hbGVydDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b25bZGlzYWJsZWRdLmFsZXJ0OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLmhvbGxvdywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAgIC5idXR0b24uaG9sbG93LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3csIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3c6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdzpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdzpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LmRpc2FibGVkOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy5kaXNhYmxlZDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3dbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3c6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdzpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdzpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3c6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3c6aG92ZXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdzpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdzpob3ZlcltkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3c6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3c6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3c6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdzpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdzpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93OmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3c6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93OmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdzpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdzpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjaztcbiAgICAgICAgY29sb3I6IGJsYWNrOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cucHJpbWFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnByaW1hcnkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzFiMzQzNztcbiAgICAgIGNvbG9yOiAjMWIzNDM3OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LnByaW1hcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5wcmltYXJ5OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwZTFhMWM7XG4gICAgICAgIGNvbG9yOiAjMGUxYTFjOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMxYjM0Mzc7XG4gICAgICAgICAgY29sb3I6ICMxYjM0Mzc7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cuc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5IHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3Zjk0OGQ7XG4gICAgICBjb2xvcjogIzdmOTQ4ZDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LnNlY29uZGFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNmNGI0NztcbiAgICAgICAgY29sb3I6ICMzZjRiNDc7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2Y5NDhkO1xuICAgICAgICAgIGNvbG9yOiAjN2Y5NDhkOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2VzcywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuc3VjY2VzcywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5zdWNjZXNzOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMzYWRiNzY7XG4gICAgICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93Lndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy53YXJuaW5nLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cud2FybmluZyB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cud2FybmluZzpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93Lndhcm5pbmc6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93Lndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93Lndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2ZmYWUwMDtcbiAgICAgICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LmFsZXJ0LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuYWxlcnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5hbGVydCB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LmFsZXJ0OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5ob2xsb3cuYWxlcnQ6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3Zlci5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmhvbGxvdy5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuaG9sbG93LmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2NjNGIzNztcbiAgICAgICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmNsZWFyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhciB7XG4gICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gICAgLmJ1dHRvbi5jbGVhciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXI6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhcjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXI6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXI6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhcjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuZGlzYWJsZWQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXJbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyW2Rpc2FibGVkXTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhcltkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXI6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcjpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXI6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuICAgICAgLmJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyOmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcjpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcjpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcjpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6Zm9jdXNbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXI6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcjpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICAgICAgICBjb2xvcjogYmxhY2s7IH1cbiAgICAuYnV0dG9uLmNsZWFyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhcjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXI6aG92ZXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyOmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhcjpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhcjpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXI6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyOmZvY3VzLCAuYnV0dG9uLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyOmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhcjpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpmb2N1c1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhcjpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyOmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXI6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMxYjM0Mzc7XG4gICAgICBjb2xvcjogIzFiMzQzNzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIucHJpbWFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzBlMWExYztcbiAgICAgICAgY29sb3I6ICMwZTFhMWM7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMWIzNDM3O1xuICAgICAgICAgIGNvbG9yOiAjMWIzNDM3OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIucHJpbWFyeVtkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnByaW1hcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnksIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2Y5NDhkO1xuICAgICAgY29sb3I6ICM3Zjk0OGQ7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zZWNvbmRhcnk6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2Y0YjQ3O1xuICAgICAgICBjb2xvcjogIzNmNGI0NzsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdmOTQ4ZDtcbiAgICAgICAgICBjb2xvcjogIzdmOTQ4ZDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnksIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zZWNvbmRhcnksIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5LmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnNlY29uZGFyeTpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICAgICAgY29sb3I6ICMxNTc1Mzk7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIud2FybmluZywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmcge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci53YXJuaW5nOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci53YXJuaW5nOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmFlMDA7XG4gICAgICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uY2xlYXIud2FybmluZywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmcsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmcsIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci53YXJuaW5nW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci53YXJuaW5nOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIud2FybmluZzpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1cywgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5hbGVydCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0LCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2NjNGIzNztcbiAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuYWxlcnQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM2NzI1MWE7XG4gICAgICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNjYzRiMzc7XG4gICAgICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5hbGVydCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0LCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuYWxlcnQuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF0sIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5hbGVydFtkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuYWxlcnQ6aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0OmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5jbGVhci5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNsZWFyLmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jbGVhci5hbGVydDpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24uZHJvcGRvd246OmFmdGVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZHJvcGRvd246OmFmdGVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRyb3Bkb3duOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMS41NjI1ZW07IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3c6OmFmdGVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZHJvcGRvd24uaG9sbG93OjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogYmxhY2s7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93LnByaW1hcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMWIzNDM3OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnNlY29uZGFyeTo6YWZ0ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93LnNlY29uZGFyeTo6YWZ0ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjN2Y5NDhkOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc3VjY2Vzczo6YWZ0ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzNhZGI3NjsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nOjphZnRlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nOjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5kcm9wZG93bi5ob2xsb3cud2FybmluZzo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuYWxlcnQ6OmFmdGVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEuYXJyb3ctb25seTo6YWZ0ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgdG9wOiAtMC4xZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuYS5idXR0b246aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpob3ZlciwgYS5idXR0b246Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2JmYmZiZjtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYmZiZmJmOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY2ZjM7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNTYyNXJlbSAwOyB9XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gIGJhY2tncm91bmQ6ICNmOWY2ZjM7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JmYmZiZjsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogcmdiJTI4MTM4LCAxMzgsIDEzOCUyOSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2JmYmZiZjtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY2ZjM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWVkZWI7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLmFjY29yZGlvbltkaXNhYmxlZF0gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmOWY2ZjM7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMWIzNDM3OyB9XG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjlmNmYzO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmFjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjZmMzsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcrJzsgfVxuICAuaXMtYWN0aXZlID4gLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFwyMDEzJzsgfVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjlmNmYzO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y5ZjZmMzsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMWIzNDM3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gIG1hcmdpbi1yaWdodDogNDBweDsgfVxuXG4uc3VibWVudS10b2dnbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDsgfVxuICAuc3VibWVudS10b2dnbGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxYjM0MzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IGF1dG87IH1cblxuLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwOyB9XG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAyLjFlbTtcbiAgcGFkZGluZzogMC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzFiMzQzNztcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmJhZGdlLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICMxYjM0Mzc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJhZGdlLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzdmOTQ4ZDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYmFkZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYmFkZ2Uud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYmFkZ2UuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnJlYWRjcnVtYnMgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmJyZWFkY3J1bWJzIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMCAwLjc1cmVtO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgY29sb3I6ICNiZmJmYmY7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIGNvbG9yOiAjMWIzNDM3OyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNiZmJmYmY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24sIC5idXR0b24tZ3JvdXAgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAgYSwgLmJ1dHRvbi1ncm91cCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwIGJ1dHRvbiwgLmJ1dHRvbi1ncm91cCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwIGJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIC5idXR0b24tZ3JvdXAgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpsYXN0LWNoaWxkLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAgYTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmxhc3QtY2hpbGQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cCBidXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpsYXN0LWNoaWxkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAgYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnRpbnkgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAudGlueSBhLCAuYnV0dG9uLWdyb3VwLnRpbnkgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC50aW55IGJ1dHRvbiwgLmJ1dHRvbi1ncm91cC50aW55IC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAudGlueSBidXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zbWFsbCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5zbWFsbCBhLCAuYnV0dG9uLWdyb3VwLnNtYWxsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc21hbGwgYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnNtYWxsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc21hbGwgYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmxhcmdlIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLmxhcmdlIGEsIC5idXR0b24tZ3JvdXAubGFyZ2UgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5sYXJnZSBidXR0b24sIC5idXR0b24tZ3JvdXAubGFyZ2UgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5sYXJnZSBidXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgYSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIGJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIGJ1dHRvbiB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYSwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAucHJpbWFyeSBidXR0b24sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzNDM3O1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5wcmltYXJ5IGJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLnByaW1hcnkgYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5wcmltYXJ5IGJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYyYTJjO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGEsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2Y5NDhkO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGE6aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IGJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b246Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSBidXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY0Nzg3MTtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAuc3VjY2VzcyBhLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5zdWNjZXNzIGJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc3VjY2VzcyBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc3VjY2VzcyBidXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgYTpmb2N1cywgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmZvY3VzLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc3VjY2VzcyBidXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLndhcm5pbmcgYSwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAud2FybmluZyBidXR0b24sIC5idXR0b24tZ3JvdXAud2FybmluZyAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLndhcm5pbmcgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGE6aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLndhcm5pbmcgYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC53YXJuaW5nIGJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAud2FybmluZyAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6Zm9jdXMsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC53YXJuaW5nIGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAud2FybmluZyAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpmb2N1cywgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLndhcm5pbmcgYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC53YXJuaW5nIGJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLmFsZXJ0IGEsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5hbGVydCBidXR0b24sIC5idXR0b24tZ3JvdXAuYWxlcnQgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5hbGVydCBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhOmhvdmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAuYWxlcnQgYTpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLmFsZXJ0IGJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLmFsZXJ0IGJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYTpmb2N1cywgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLmFsZXJ0IGE6Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b246Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5hbGVydCBidXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246Zm9jdXMsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5hbGVydCBidXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5idXR0b24tZ3JvdXAuc3RhY2tlZCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkIGJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZCBidXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSBidXR0b24ge1xuICAgICAgZmxleDogMCAwIDEwMCU7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6bGFzdC1jaGlsZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgYTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b246bGFzdC1jaGlsZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpsYXN0LWNoaWxkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZCBidXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhOmxhc3QtY2hpbGQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBhOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b246bGFzdC1jaGlsZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIGJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uOmxhc3QtY2hpbGQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBidXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6bGFzdC1jaGlsZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSBhOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmxhc3QtY2hpbGQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uOmxhc3QtY2hpbGQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIGEsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBidXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCBidXR0b24ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSBidXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIGJ1dHRvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCBhLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5jYWxsb3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY2FsbG91dCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYWxsb3V0LnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNGU4ZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZmVlO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWZhZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZTRlMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAuY2FsbG91dC5sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmOWY2ZjM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYXJkID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtZGl2aWRlciB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZjlmNmYzOyB9XG4gIC5jYXJkLWRpdmlkZXIgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2FyZC1zZWN0aW9uIHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLmNhcmQtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLWltYWdlIHtcbiAgbWluLWhlaWdodDogMXB4OyB9XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjOGE4YThhO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5jbG9zZS1idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cyB7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNsb3NlLWJ1dHRvbi5zbWFsbCB7XG4gICAgcmlnaHQ6IDAuNjZyZW07XG4gICAgdG9wOiAwLjMzZW07XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAuY2xvc2UtYnV0dG9uLCAuY2xvc2UtYnV0dG9uLm1lZGl1bSB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgdG9wOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLm1lbnUge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSBsaSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAubWVudSBhLFxuICAubWVudSAuYnV0dG9uLFxuICAubWVudSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsXG4gIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLm1lbnUgYSxcbiAgLm1lbnUgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sXG4gIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLm1lbnUgYnV0dG9uLFxuICAubWVudSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbixcbiAgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAubWVudSBidXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAubWVudSBpbnB1dCxcbiAgLm1lbnUgc2VsZWN0LFxuICAubWVudSBhLFxuICAubWVudSBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1lbnUgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWVudSwgLm1lbnUuaG9yaXpvbnRhbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lbnUudmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lbnUuZXhwYW5kZWQgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLm1lbnUuc2ltcGxlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLm1lbnUuc2ltcGxlIGxpICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAubWVudS5zaW1wbGUgYSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAubWVudS5pcGFkLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51LmlwYWQtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUuaXBhZC1leHBhbmRlZCBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gICAgLm1lbnUuaXBhZC1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuaWNvbnMgYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS5pY29uLXRvcCBhLCAubWVudS5pY29uLXJpZ2h0IGEsIC5tZW51Lmljb24tYm90dG9tIGEsIC5tZW51Lmljb24tbGVmdCBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51Lmljb24tbGVmdCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tcmlnaHQgbGkgYSB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtOyB9XG4gIC5tZW51Lmljb24tdG9wIGxpIGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS5pY29uLXRvcCBsaSBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMxYjM0Mzc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMxYjM0Mzc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLm1lbnUuYWxpZ24tbGVmdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodCBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZW51LmFsaWduLWNlbnRlciBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LmFsaWduLWNlbnRlciBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUgLm1lbnUtdGV4dCB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZmZiwgMCAxNHB4IDAgI2ZmZjtcbiAgICBjb250ZW50OiAnJzsgfVxuICAubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2JmYmZiZjtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNiZmJmYmYsIDAgMTRweCAwICNiZmJmYmY7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7IH1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuaXMtZHJpbGxkb3duLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41czsgfVxuXG4uZHJpbGxkb3duIGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtY2xvc2luZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IGEge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5kcmlsbGRvd24gLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyaWxsZG93biAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzFiMzQzNzsgfVxuXG4uZHJpbGxkb3duLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNjYmExN2Q7IH1cblxuLmRyaWxsZG93bi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2NiYTE3ZCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4uZHJpbGxkb3duIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxYjM0MzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjY2JhMTdkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbi5kcm9wZG93bi5tZW51IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uZHJvcGRvd24ubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzFiMzQzNzsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51IC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDE0cHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjY2JhMTdkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNjYmExN2Q7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZHJvcGRvd24ubWVudS5pcGFkLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LmlwYWQtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmlwYWQtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5pcGFkLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNjYmExN2QgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUuaXBhZC12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUuaXBhZC12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUuaXBhZC12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUuaXBhZC12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmlwYWQtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNjYmExN2QgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUuaXBhZC12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2NiYTE3ZDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2JhMTdkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2NiYTE3ZCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNjYmExN2Q7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2JhMTdkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNjYmExN2QgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNjYmExN2Q7IH0gfVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgd2lkdGg6IDEwMHB4OyB9XG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsLmFsaWduLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCBhOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtNnB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgLmRyb3Bkb3duIC5pcy1kcm9wZG93bi1zdWJtZW51IGEge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjY2JhMTdkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNjYmExN2Q7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgPiBsaSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuICAucmVzcG9uc2l2ZS1lbWJlZCB2aWRlbyxcbiAgLmZsZXgtdmlkZW8gaWZyYW1lLFxuICAuZmxleC12aWRlbyBvYmplY3QsXG4gIC5mbGV4LXZpZGVvIGVtYmVkLFxuICAuZmxleC12aWRlbyB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZC53aWRlc2NyZWVuLFxuICAuZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAjMWIzNDM3O1xuICBjb2xvcjogI2ZmZjsgfVxuICAubGFiZWwucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzFiMzQzNztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjN2Y5NDhkO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLm1lZGlhLW9iamVjdCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbi5tYWluLXNlY3Rpb24ge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cblxuLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1jbG9zYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogMTI7IH1cbiAgLm9mZi1jYW52YXMuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMzsgfVxuICAgIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiA0MjBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MjBweCk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucG9zaXRpb24tbGVmdCB7XG4gICAgICB3aWR0aDogNjAwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTYwMHB4KTsgfSB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MjBweCk7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MDBweCk7IH0gfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDIwcHgpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1sZWZ0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjAwcHgpOyB9IH1cbiAgLnBvc2l0aW9uLWxlZnQuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAtMTNweCAwIDIwcHggLTEzcHggcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTsgfVxuXG4ucG9zaXRpb24tcmlnaHQge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiA0MjBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQyMHB4KTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wb3NpdGlvbi1yaWdodCB7XG4gICAgICB3aWR0aDogNjAwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjAwcHgpOyB9IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQyMHB4KTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwMHB4KTsgfSB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tcmlnaHQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MjBweCk7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLXJpZ2h0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTYwMHB4KTsgfSB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBvc2l0aW9uLXRvcCB7XG4gICAgICBoZWlnaHQ6IDYwMHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02MDBweCk7IH0gfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi10b3Age1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwMHB4KTsgfSB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi10b3AuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLXRvcC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi10b3AuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2MDBweCk7IH0gfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMTNweCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGhlaWdodDogNjAwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjAwcHgpOyB9IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjAwcHgpOyB9IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1ib3R0b20uaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjAwcHgpOyB9IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMTNweCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLm9mZi1jYW52YXMtY29udGVudCB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItaXBhZCB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItaXBhZCAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItaXBhZCB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogNjAwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWlwYWQgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2MDBweDsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1pcGFkIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItaXBhZCAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWlwYWQge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogNjAwcHg7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1pcGFkIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDYwMHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1pcGFkIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWlwYWQgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItaXBhZCB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDYwMHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWlwYWQgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDYwMHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1pcGFkIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWlwYWQgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItaXBhZCB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwMHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWlwYWQgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2MDBweDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogNjAwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDYwMHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDYwMHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDYwMHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogNjAwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNjAwcHg7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2MDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogNjAwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogNjAwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDYwMHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogNjAwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogNjAwcHg7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDYwMHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYwMHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2MDBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1pcGFkIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogaW5oZXJpdDsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItaXBhZC5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWlwYWQucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItaXBhZC5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItaXBhZC5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItaXBhZCAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIG92ZXJmbG93OiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGluaGVyaXQ7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2Uge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICB3aWR0aDogaW5oZXJpdDtcbiAgICBvdmVyZmxvdzogaW5oZXJpdDtcbiAgICB0cmFuc2l0aW9uOiBpbmhlcml0OyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLXRvcCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm9yYml0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5vcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5vcmJpdC1zbGlkZS5uby1tb3Rpb251aS5pcy1hY3RpdmUge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5vcmJpdC1wcmV2aW91cywgLm9yYml0LW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBjb2xvcjogI2ZmZjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LXByZXZpb3VzLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LW5leHQge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LXByZXZpb3VzOmhvdmVyLCAub3JiaXQtbmV4dDpob3ZlciwgLm9yYml0LXByZXZpb3VzOmFjdGl2ZSwgLm9yYml0LW5leHQ6YWN0aXZlLCAub3JiaXQtcHJldmlvdXM6Zm9jdXMsIC5vcmJpdC1uZXh0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7IH1cblxuLm9yYml0LXByZXZpb3VzIHtcbiAgbGVmdDogMDsgfVxuXG4ub3JiaXQtbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5vcmJpdC1idWxsZXRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtYnVsbGV0cyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICAgIHdpZHRoOiAxLjJyZW07XG4gICAgaGVpZ2h0OiAxLjJyZW07XG4gICAgbWFyZ2luOiAwLjFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiZmJmYmY7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5wYWdpbmF0aW9uOjpiZWZvcmUsIC5wYWdpbmF0aW9uOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjA2MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnBhZ2luYXRpb24gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2Y5ZjZmMzsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICMxYjM0Mzc7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbG9yOiAjYmZiZmJmO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGFiJzsgfVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbnRlbnQ6ICdcXDAwYmInOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmYmZiZjsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjM0Mzc7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Zjk0OGQ7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzNDM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMC41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmNmYzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmYmZiZjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnNsaWRlci1maWxsLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzNDM3O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcyYzJmOyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnNsaWRlci52ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMC41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gICAgdG9wOiAwOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87IH1cbiAgLnN0aWNreS5pcy1hbmNob3JlZC5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG5ib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5odG1sLmlzLXJldmVhbC1vcGVuLFxuaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwNTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi5yZXZlYWwge1xuICB6LWluZGV4OiAxMDA2O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gICAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgbWluLWhlaWdodDogMDsgfSB9XG4gIC5yZXZlYWwgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwOyB9XG4gIC5yZXZlYWwgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgbWF4LXdpZHRoOiA5MnJlbTsgfSB9XG4gIC5yZXZlYWwuY29sbGFwc2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnRpbnkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1heC13aWR0aDogOTJyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogOTJyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwubGFyZ2Uge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1heC13aWR0aDogOTJyZW07IH0gfVxuICAucmV2ZWFsLmZ1bGwge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDsgfSB9XG4gIC5yZXZlYWwud2l0aG91dC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLnN3aXRjaCB7XG4gIGhlaWdodDogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5zd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjYmZiZmJmO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGlucHV0ICsgLnN3aXRjaC1wYWRkbGUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgICBjb250ZW50OiAnJzsgfVxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGJhY2tncm91bmQ6ICMxYjM0Mzc7IH1cbiAgICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IDIuMjVyZW07IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLnN3aXRjaC1hY3RpdmUsIC5zd2l0Y2gtaW5hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHJpZ2h0OiAxNSU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dpdGNoLnRpbnkge1xuICBoZWlnaHQ6IDEuNXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC42MjVyZW07IH1cbiAgLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtOyB9XG4gIC5zd2l0Y2gudGlueSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAxLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwge1xuICBoZWlnaHQ6IDEuNzVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDMuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAycmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2Uge1xuICBoZWlnaHQ6IDIuNXJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDIuNzVyZW07IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjJmMmYyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIHRoZWFkIHRyLFxuICB0Zm9vdCB0ciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgdGhlYWQgdGgsXG4gIHRoZWFkIHRkLFxuICB0Zm9vdCB0aCxcbiAgdGZvb3QgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRib2R5IHRoLFxuICB0Ym9keSB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyOyB9XG4gIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB0ciB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMmYyZjI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICB0YWJsZS5zdGFjayB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0cixcbiAgdGFibGUuc3RhY2sgdGgsXG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG5cbnRhYmxlLnNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG50YWJsZS5ob3ZlciB0aGVhZCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7IH1cblxudGFibGUuaG92ZXIgdGZvb3QgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkOyB9XG5cbnRhYmxlLmhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsgfVxuXG50YWJsZS5ob3Zlcjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkOyB9XG5cbi50YWJsZS1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG4gIC50YWJsZS1zY3JvbGwgdGFibGUge1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbi50YWJzIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjlmNmYzO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAudGFiczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi50YWJzLnZlcnRpY2FsID4gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRhYnMuc2ltcGxlID4gbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzFiMzQzNzsgfVxuICAudGFicy5wcmltYXJ5ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogIzIyNDI0NTsgfVxuXG4udGFicy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC50YWJzLXRpdGxlID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjMWIzNDM3OyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogIzE3MmQyZjsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjlmNmYzO1xuICAgICAgY29sb3I6ICMxYjM0Mzc7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmOWY2ZjM7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlOyB9XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjlmNmYzO1xuICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogc29saWQgNHB4ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDEwLCAxMCwgMTAsIDAuMik7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbmEudGh1bWJuYWlsIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDsgfVxuICBhLnRodW1ibmFpbDpob3ZlciwgYS50aHVtYm5haWw6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoMjcsIDUyLCA1NSwgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCxcbi50aXRsZS1iYXItcmlnaHQge1xuICBmbGV4OiAxIDEgMHB4OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4YThhOGE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGhlbHA7IH1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMC42NDk1cmVtKTtcbiAgei1pbmRleDogMTIwMDtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAudG9vbHRpcC5ib3R0b206OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgICBib3R0b206IDEwMCU7IH1cbiAgLnRvb2x0aXAuYm90dG9tLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC50b29sdGlwLnRvcDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87IH1cbiAgLnRvb2x0aXAudG9wLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC50b29sdGlwLmxlZnQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC50b29sdGlwLmxlZnQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC50b29sdGlwLnJpZ2h0LmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC50b29sdGlwLmFsaWduLXRvcDo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAxMCU7IH1cbiAgLnRvb2x0aXAuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bzsgfVxuICAudG9vbHRpcC5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bzsgfVxuICAudG9vbHRpcC5hbGlnbi1yaWdodDo6YmVmb3JlIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMCU7IH1cblxuLnRvcC1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAudG9wLWJhcixcbiAgLnRvcC1iYXIgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGE7IH1cbiAgLnRvcC1iYXIgaW5wdXQge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC50b3AtYmFyIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC50b3AtYmFyIGlucHV0LmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50b3AtYmFyIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgICAudG9wLWJhciAudG9wLWJhci1sZWZ0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1pcGFkIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItaXBhZCAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItaXBhZCAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLWxlZnQsXG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG4udG9wLWJhci10aXRsZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDAuNXJlbSAxcmVtIDAuNXJlbSAwOyB9XG5cbi50b3AtYmFyLWxlZnQsXG4udG9wLWJhci1yaWdodCB7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhpZGUtZm9yLWlwYWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAuc2hvdy1mb3ItaXBhZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItaXBhZC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLWlwYWQtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwOyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7IH1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5hbGlnbi1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5hbGlnbi1qdXN0aWZ5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5hbGlnbi1zcGFjZWQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4uYWxpZ24tcmlnaHQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4uc21hbGwtb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuaXBhZC1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAuaXBhZC1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAuaXBhZC1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAuaXBhZC1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAuaXBhZC1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAuaXBhZC1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm1lZGl1bS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAubWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5tZWRpdW0tb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLm1lZGl1bS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAubWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5sYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAubGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLmxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5sYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAubGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5mbGV4LWNoaWxkLWF1dG8ge1xuICBmbGV4OiAxIDEgYXV0bzsgfVxuXG4uZmxleC1jaGlsZC1ncm93IHtcbiAgZmxleDogMSAwIGF1dG87IH1cblxuLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgZmxleDogMCAxIGF1dG87IH1cblxuLmZsZXgtZGlyLXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLmZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi5mbGV4LWRpci1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5pcGFkLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5pcGFkLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLmlwYWQtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAuaXBhZC1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLmlwYWQtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5pcGFkLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLmlwYWQtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5pcGFkLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cblxuLmZhZGUtaW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtaW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZS03OyB9XG5cbkBrZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpOyB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTsgfSB9XG5cbi5zcGluLWN3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc3Bpbi1jY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWNjdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9IH1cblxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGUtN2RlZzsgfVxuXG5Aa2V5ZnJhbWVzIHdpZ2dsZS03ZGVnIHtcbiAgNDAlLCA1MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbiAgMzUlLCA0NSUsIDU1JSwgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7IH1cbiAgMCUsIDMwJSwgNzAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zaGFrZSxcbi5zcGluLWN3LFxuLnNwaW4tY2N3LFxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7IH1cblxuLmluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuLnNsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICBhbmltYXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiAwMS4gU3BhY2luZ1xuICogMDIuIFBsYWNlaG9sZGVyXG4gKiAwMy4gR2xvYmFsIEZvcm1zXG4gKiAwNC4gSWNvbiBGb250XG4gKiAwNS4gRGlzcGxheSBIZWFkaW5nXG4gKiAwNi4gUG9zdCBTdWJ0aXRsZVxuICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwidW5kYXJrXCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3VuZGFyay5lb3Q/ZmY1YnIxXCIpO1xuICBzcmM6IHVybChcIi4uL2Fzc2V0cy9mb250cy91bmRhcmsuZW90P2ZmNWJyMSNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3VuZGFyay53b2ZmMj9mZjVicjFcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2Fzc2V0cy9mb250cy91bmRhcmsudHRmP2ZmNWJyMVwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL3VuZGFyay53b2ZmP2ZmNWJyMVwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9hc3NldHMvZm9udHMvdW5kYXJrLnN2Zz9mZjVicjEjdW5kYXJrXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IGJsb2NrOyB9XG5cbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gIGZvbnQtZmFtaWx5OiBcInVuZGFya1wiICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uaWNvbi1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kgFwiOyB9XG5cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSBXCI7IH1cblxuLmljb24tdHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kglwiOyB9XG5cbi5pY29uLXZpbWVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSDXCI7IH1cblxuLmljb24tcmVkZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSQXCI7IH1cblxuLmljb24tZmxpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSRXCI7IH1cblxuLmljb24tcG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSSXCI7IH1cblxuLmljb24taGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSEXCI7IH1cblxuLmljb24tcG9kY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6khVwiOyB9XG5cbi5pY29uLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIZcIjsgfVxuXG4uaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSHXCI7IH1cblxuLmljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIhcIjsgfVxuXG4uaWNvbi1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kiVwiOyB9XG5cbi5pY29uLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCLupIpcIjsgfVxuXG4uaWNvbi1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSLXCI7IH1cblxuLmljb24tZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLupIxcIjsgfVxuXG4uaWNvbi1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qSNXCI7IH1cblxuLmljb24tcmVwdWJsaXNoLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6kjlwiOyB9XG5cbi5pY29uLXJlcHVibGlzaC1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCLupI9cIjsgfVxuXG4vKipcbiAqIDAxLiBIZWFkZXJzXG4gKiAwMi4gQnV0dG9uc1xuICogMDMuIEhlbHBlcnNcbiAqIDA0LiBQdWxsIFF1b3RlcyAoTm93IElubGluZSBQdWxsIFF1b3RlcylcbiAqIDA1LiBDaGFwdGVyIEJyZWFrc1xuICovXG5wIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG5oMSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5oNSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE4NzVyZW07IH1cblxuaDUsIGg2IHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4uZGlzcGxheS1oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uYnV0dG9uLndoaXRlLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEud2hpdGUsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLndoaXRlLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi53aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5mb250LXNhbnMge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLmZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLnRleHQtdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLmZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5mb250LXNtYWxsIHtcbiAgZm9udC1zaXplOiAxM3B4OyB9XG5cbi5kcm9wY2FwLFxuLmRyb3AtY2FwIHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC00cmVtO1xuICBsaW5lLWhlaWdodDogMi41cmVtO1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgd2lkdGg6IDU2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZHJvcGNhcDpiZWZvcmUsXG4gIC5kcm9wLWNhcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiYTE3ZDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgaGVpZ2h0OiAxMTVweDtcbiAgICB3aWR0aDogMTE1cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5kcm9wY2FwLFxuICAgIC5kcm9wLWNhcCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMXJlbSAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDY4cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuICAgICAgLmRyb3BjYXA6YmVmb3JlLFxuICAgICAgLmRyb3AtY2FwOmJlZm9yZSB7XG4gICAgICAgIGhlaWdodDogNjVweDtcbiAgICAgICAgd2lkdGg6IDY1cHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lOyB9IH1cblxuLmJvbGRlZCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udW5kYXJrLXB1bGwtcXVvdGUsIC51bmRhcmstaW5saW5lLXF1b3RlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWRmZDk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVkZmQ5O1xuICBtYXJnaW46IDJyZW0gMDtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgLnVuZGFyay1wdWxsLXF1b3RlIC51bmRhcmstcXVvdGUsIC51bmRhcmstaW5saW5lLXF1b3RlIC51bmRhcmstcXVvdGUge1xuICAgIG1hcmdpbjogMXJlbSAwOyB9XG5cbi5oci1zZXBhcmF0b3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9hc3NldHMvaW1nL251ZG90cy5wbmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXI6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uY2hhcHRlci1icmVhayB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDRyZW0gMDsgfVxuICAuY2hhcHRlci1icmVhayBzdHJvbmcge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICNjYmExN2QsIDFweCAtMXB4IDAgI2NiYTE3ZCwgLTFweCAxcHggMCAjY2JhMTdkLCAxcHggMXB4IDAgI2NiYTE3ZDtcbiAgICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICAgIGZvbnQtc2l6ZTogMjAwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2hhcHRlci1icmVhayBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWRmZDk7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLXRvcDogLjc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi8qKlxuICogMDAuIEdsb2JhbCBHcmF2aXR5XG4gKiAwMS4gQWpheCBGb3JtIFNwaW5uZXJcbiAqIDAyLiBEZXNrIE92ZXJsYXkgTmV3c2xldHRlclxuICogMDMuIEJhc2ljIEZvcm1cbiAqIDA0LiBTdWJtaXNzaW9uXG4gKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmhhbGYtd2lkdGgsIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBsaS5oYWxmX3dpZHRoIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIC5nZmllbGQ6bm90KC5oYWxmLXdpZHRoKSB7XG4gICAgY2xlYXI6IGJvdGg7IH0gfVxuXG4uZ2Zvcm1fd3JhcHBlciB1bCB7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbi5nZm9ybV93cmFwcGVyIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMjBweDsgfVxuICAuZ2Zvcm1fd3JhcHBlciB0ZXh0YXJlYS5zbWFsbCB7XG4gICAgaGVpZ2h0OiA4MHB4OyB9XG5cbi5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBsaSB7XG4gIG1hcmdpbjogMCAwIDFyZW0gIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH0gfVxuXG4uZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgbGFiZWwge1xuICBjb2xvcjogIzFiMzQzNztcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4uZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgc2VsZWN0LCAuZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgaW5wdXQsIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyB0ZXh0YXJlYSB7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4xMjVyZW07XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBzZWxlY3Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBzZWxlY3Q6LW1vei1wbGFjZWhvbGRlciwgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGlucHV0Oi1tb3otcGxhY2Vob2xkZXIsIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyB0ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAvKiBGaXJlZm94IDE4LSAqL1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHNlbGVjdDo6LW1vei1wbGFjZWhvbGRlciwgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGlucHV0OjotbW96LXBsYWNlaG9sZGVyLCAuZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIC8qIEZpcmVmb3ggMTkrICovXG4gICAgb3BhY2l0eTogMTsgfVxuICAuZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgc2VsZWN0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciwgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciwgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4uZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgdWwuZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHVsLmdmaWVsZF9yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAgIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyB1bC5nZmllbGRfcmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YmVmb3JlLCAuZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgdWwuZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHVsLmdmaWVsZF9yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBib3JkZXI6IDRweCBzb2xpZCAjZjlmNmYzO1xuICAgICAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHVsLmdmaWVsZF9yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlciB7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdG9wOiA1cHg7XG4gICAgICBsZWZ0OiA1cHg7IH1cbiAgLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIHVsLmdmaWVsZF9yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JhMTdkOyB9XG5cbi5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyB1bC5nZmllbGRfcmFkaW8gbGFiZWwge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZm9vdGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9IH1cblxuLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2Zvb3RlciBpbnB1dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IC41cmVtOyB9XG5cbi5nZm9ybV93cmFwcGVyIC5nZm9ybV9mb290ZXIgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kOiAjOGE4YThhO1xuICBib3JkZXItY29sb3I6ICM4YThhOGE7IH1cblxuLmdmb3JtX3dyYXBwZXIuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvciAudmFsaWRhdGlvbl9lcnJvciB7XG4gIGNvbG9yOiAjN2Y5NDhkO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZ2Zvcm1fd3JhcHBlci5nZm9ybV92YWxpZGF0aW9uX2Vycm9yIGxpLmdmaWVsZC5nZmllbGRfZXJyb3Ige1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmdmb3JtX3dyYXBwZXIuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvciBsaS5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmdmb3JtX3dyYXBwZXIuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvciBsaS5nZmllbGQuZ2ZpZWxkX2Vycm9yIGxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmdmb3JtX3dyYXBwZXIuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvciBsaS5nZmllbGQuZ2ZpZWxkX2Vycm9yIGlucHV0LCAuZ2Zvcm1fd3JhcHBlci5nZm9ybV92YWxpZGF0aW9uX2Vycm9yIGxpLmdmaWVsZC5nZmllbGRfZXJyb3IgdGV4dGFyZWEge1xuICAgIGJvcmRlcjogNHB4IHNvbGlkICNmOWY2ZjMgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICNDQjAwMDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5nZm9ybV93cmFwcGVyLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3IgbGkuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2ZpZWxkX2Rlc2NyaXB0aW9uLnZhbGlkYXRpb25fbWVzc2FnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0NCMDAwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAuMjVyZW0gLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxcmVtIDA7IH1cbiAgICAuZ2Zvcm1fd3JhcHBlci5nZm9ybV92YWxpZGF0aW9uX2Vycm9yIGxpLmdmaWVsZC5nZmllbGRfZXJyb3IgLmdmaWVsZF9kZXNjcmlwdGlvbi52YWxpZGF0aW9uX21lc3NhZ2UgYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5nZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lcixcbi5nZm9ybV93cmFwcGVyIC5nZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lcixcbmJvZHkgLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2JvZHkgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZC5nZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lcixcbmJvZHkgLmdmb3JtX3dyYXBwZXIgbGkuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIsXG5ib2R5IC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBsaS5nZmllbGQuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAtOTAwMHB4ICFpbXBvcnRhbnQ7IH1cblxuQGtleWZyYW1lcyByb3RhdGluZ1NwaW5uZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlKDAsIC01MCUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgdHJhbnNsYXRlKDAsIC01MCUpOyB9IH1cblxuLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cC10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmctcmlnaHQ6IDEwMHB4OyB9XG5cbi5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci10YWdsaW5lIHtcbiAgY29sb3I6ICNjYmExN2Q7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiA2MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEuNXJlbTtcbiAgcmlnaHQ6IC0uMjVyZW07IH1cbiAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXRhZ2xpbmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JhMTdkO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXRhZ2xpbmUge1xuICAgICAgdG9wOiAtMy4yNXJlbTtcbiAgICAgIHJpZ2h0OiAtMXJlbTsgfVxuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXRhZ2xpbmU6YmVmb3JlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgd2lkdGg6IDEwMHB4OyB9IH1cbiAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci10YWdsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgICBtYXJnaW4tdG9wOiAtOHJlbTsgfVxuICAgICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cC10aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cmVtOyB9IH1cblxuI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtLFxuI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSxcbi5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICMwYTBhMGE7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCxcbiAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSB1bC5nZm9ybV9maWVsZHMgbGkuZ2ZpZWxkLFxuICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5LFxuICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2Zvb3RlcixcbiAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fYm9keSxcbiAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fZm9vdGVyLFxuICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHksXG4gIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fZm9vdGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwcHg7XG4gICAgbWluLXdpZHRoOiAwcHg7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5LFxuICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5LFxuICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQsXG4gICAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fYm9keSBpbnB1dCxcbiAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fYm9keSBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0Oi1tb3otcGxhY2Vob2xkZXIsXG4gICAgICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0Oi1tb3otcGxhY2Vob2xkZXIsXG4gICAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIC8qIEZpcmVmb3ggMTgtICovXG4gICAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXG4gICAgICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0OjotbW96LXBsYWNlaG9sZGVyLFxuICAgICAgLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLyogRmlyZWZveCAxOSsgKi9cbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fYm9keSBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAgIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2Zvcm1fYm9keSBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODUwcHgpIHtcbiAgICAgICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0LFxuICAgICAgICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9ib2R5IGlucHV0LFxuICAgICAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2JvZHkgaW5wdXQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogNDZweDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NnB4OyB9IH1cbiAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9mb290ZXIsXG4gICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmdmb3JtX2Zvb3RlcixcbiAgLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5nZm9ybV9mb290ZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuYnV0dG9uLCAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSBhLCAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGJ1dHRvbiwgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSBidXR0b24sXG4gICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmJ1dHRvbixcbiAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsXG4gIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSBhLFxuICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLFxuICAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYnV0dG9uLFxuICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLFxuICAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYnV0dG9uLFxuICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmJ1dHRvbixcbiAgLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSxcbiAgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYSxcbiAgLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLFxuICAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSBidXR0b24sXG4gIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbixcbiAgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzBhMGEwYTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IC41cmVtOyB9XG4gICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5idXR0b246aG92ZXIsICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGE6aG92ZXIsICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYnV0dG9uOmhvdmVyLCAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGJ1dHRvbjpob3ZlcixcbiAgICAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5idXR0b246aG92ZXIsXG4gICAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6aG92ZXIsXG4gICAgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGE6aG92ZXIsXG4gICAgI2Zvb3RlciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlcixcbiAgICAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYnV0dG9uOmhvdmVyLFxuICAgICNmb290ZXIgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsXG4gICAgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAjZm9vdGVyIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGJ1dHRvbjpob3ZlcixcbiAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmJ1dHRvbjpob3ZlcixcbiAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhOmhvdmVyLFxuICAgIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGE6aG92ZXIsXG4gICAgLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uOmhvdmVyLFxuICAgIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGJ1dHRvbjpob3ZlcixcbiAgICAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsXG4gICAgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2NiYTE3ZDsgfVxuXG4uZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvciAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuZ2ZpZWxkLmdmaWVsZF9lcnJvciBpbnB1dCB7XG4gIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxuXG4ubmV3c2xldHRlci1zaWdudXAtZm9ybSA+IC52YWxpZGF0aW9uX2Vycm9yIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubmV3c2xldHRlci1zaWdudXAtZm9ybSAudmFsaWRhdGlvbl9tZXNzYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvdS1vdXRsaW5lQDJ4LnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM1cHggMzBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDIyJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHggNDBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtOHJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLThyZW07IH0gfVxuXG4uYmFzaWMtZm9ybV93cmFwcGVyLmdmb3JtX3dyYXBwZXIgZm9ybTpub3QoW2NsYXNzKj1cImJhY2tncm91bmQtXCJdKSAuZ2Zvcm1fZmllbGRzIHtcbiAgbWFyZ2luOiAwIC0uNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwOyB9XG5cbi5iYXNpYy1mb3JtX3dyYXBwZXIuZ2Zvcm1fd3JhcHBlciBmb3JtW2NsYXNzKj1cImJhY2tncm91bmQtXCJdIC5nZm9ybV9oZWFkaW5nIHtcbiAgcGFkZGluZzogMXJlbSAxcmVtIDA7IH1cblxuLmJhc2ljLWZvcm1fd3JhcHBlci5nZm9ybV93cmFwcGVyIGZvcm1bY2xhc3MqPVwiYmFja2dyb3VuZC1cIl0gLmdmb3JtX2Zvb3RlciB7XG4gIHBhZGRpbmc6IDAgMXJlbSAxcmVtOyB9XG5cbi5iYXNpYy1mb3JtX3dyYXBwZXIuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1faGVhZGluZyAuZ2Zvcm1fdGl0bGUge1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5iYXNpYy1mb3JtX3dyYXBwZXIuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fZmllbGRzIHtcbiAgcGFkZGluZzogMCAuNXJlbTsgfVxuICAuYmFzaWMtZm9ybV93cmFwcGVyLmdmb3JtX3dyYXBwZXIgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIHtcbiAgICBwYWRkaW5nOiAwIC41cmVtOyB9XG4gICAgLmJhc2ljLWZvcm1fd3JhcHBlci5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZDpub3QoLmZ1bGwtd2lkdGgpOm5vdCgubmV3c2xldHRlci1zaWdudXApIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgLmJhc2ljLWZvcm1fd3JhcHBlci5nZm9ybV93cmFwcGVyIC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuXG5ib2R5IC5nZm9ybV93cmFwcGVyIC5mb3JtX3NhdmVkX21lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmNmYzO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICBib2R5IC5nZm9ybV93cmFwcGVyIC5mb3JtX3NhdmVkX21lc3NhZ2UgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYmFja2dyb3VuZDogYmxhY2sgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7IH1cblxuYm9keSAuZm9ybV9zYXZlZF9tZXNzYWdlX3NlbnQge1xuICBiYWNrZ3JvdW5kOiAjZjlmNmYzO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4vKlxuICogMDEuIEZvcm0gU3R5bGVzXG4gKiAwMi4gRmlsdGVyIEJ1YmJsZSBTdHlsZXNcbiAqIDAzLiBSZXN1bHRzIENvbnRhaW5lciBTdHlsZXNcbiAqL1xuLnJlc29ydG1lbnQtY29udGFpbmVyIC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIHNlbGVjdCwgLnJlc29ydG1lbnQtY29udGFpbmVyIGZvcm0gLnNlbGVjdDItc2VsZWN0aW9uLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsIC5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIC5maWx0ZXItc2VhcmNoIHtcbiAgYm9yZGVyOiA0cHggc29saWQgI2Y5ZjZmMztcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gIGhlaWdodDogNDZweDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIHNlbGVjdDphY3RpdmUsIC5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIC5zZWxlY3QyLXNlbGVjdGlvbi5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlOmFjdGl2ZSwgLnJlc29ydG1lbnQtY29udGFpbmVyIGZvcm0gLmZpbHRlci1zZWFyY2g6YWN0aXZlIHtcbiAgICBib3JkZXI6IDRweCBzb2xpZCAjZjlmNmYzICFpbXBvcnRhbnQ7IH1cblxuLnJlc29ydG1lbnQtY29udGFpbmVyIGZvcm0gLnNlbGVjdDItY29udGFpbmVyLCAucmVzb3J0bWVudC1jb250YWluZXIgZm9ybSAuc2VhcmNoLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuLnJlc29ydG1lbnQtY29udGFpbmVyIGZvcm0gc2VsZWN0IHtcbiAgcGFkZGluZy1yaWdodDogMzFweDsgfVxuXG4ucmVzb3J0bWVudC1jb250YWluZXIgZm9ybSAuZmlsdGVyLXNlYXJjaDphY3RpdmUge1xuICBib3JkZXItY29sb3I6ICMxYjM0Mzc7IH1cblxuLnJlc29ydG1lbnQtY29udGFpbmVyIGZvcm0gLnNlYXJjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnJlc29ydG1lbnQtY29udGFpbmVyIGZvcm0gLnNlYXJjaC1jb250YWluZXIgLnNlYXJjaC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDNweDtcbiAgICByaWdodDogM3B4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzFiMzQzNztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuXG4ucmVzb3J0bWVudC1jb250YWluZXIgZm9ybSAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjMWIzNDM3OyB9XG5cbi5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIC5zZWxlY3QyLWNvbnRhaW5lciB7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIC5zZWxlY3QyLXNlbGVjdGlvbi5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4OyB9XG5cbi5yZXNvcnRtZW50LWNvbnRhaW5lciBmb3JtIC5zZWxlY3QyLXNlbGVjdGlvbi5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuZmlsdGVyaW5nLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDQycHg7IH1cbiAgICAucmVzb3J0bWVudC1jb250YWluZXIgLmZpbHRlcmluZy1jb250YWluZXIgLmZvdW5kLXBvc3RzIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwOyB9IH1cblxuLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtOyB9XG4gICAgICAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6YWZ0ZXIge1xuICAgICAgICBmb250LWZhbWlseTogJ3VuZGFyaycgIWltcG9ydGFudDtcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBjb250ZW50OiBcIu6kgFwiO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNzVyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDsgfVxuXG4ucmVzb3J0bWVudC1jb250YWluZXIgLm5vLXJlc3VsdHMge1xuICBtYXJnaW46IDFyZW0gYXV0bztcbiAgZm9udC1zaXplOiAxLjQzNzVyZW07IH1cblxuYm9keS5hZG1pbi1iYXIgPiAuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xuICBtYXJnaW4tdG9wOiAzMnB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4Ljg3NWVtKSB7XG4gICAgYm9keS5hZG1pbi1iYXIgPiAuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xuICAgICAgbWFyZ2luLXRvcDogNDZweDsgfSB9XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1kcm9wZG93biB7XG4gIGJvcmRlcjogNHB4IHNvbGlkICNmOWY2ZjM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci13aWR0aDogM3B4OyB9XG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1kcm9wZG93biAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLWhpZ2hsaWdodGVkW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JhMTdkOyB9XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiAndW5kYXJrJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbnRlbnQ6IFwi7qSKXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGZvbnQtc2l6ZTogLjVyZW07XG4gIGNvbG9yOiAjMWIzNDM3OyB9XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuICogMDEuIEpldHBhY2tcbiAqL1xuLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCB7XG4gIG1hcmdpbjogMzBweCAwOyB9XG4gIC5zaGFyZWRhZGR5IC5zZC1zb2NpYWwgLnNkLWNvbnRlbnQgbGlbY2xhc3MqPVwic2hhcmUtXCJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCBsaVtjbGFzcyo9XCJzaGFyZS1cIl0gLnNoYXJlLWljb24uc2QtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQ6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgbWFyZ2luOiAwIDZweCA1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDAgIWltcG9ydGFudDsgfVxuICAgICAgLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCBsaVtjbGFzcyo9XCJzaGFyZS1cIl0gLnNoYXJlLWljb24uc2QtYnV0dG9uOmFmdGVyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICd1bmRhcmsnICFpbXBvcnRhbnQ7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7IH1cbiAgLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCBsaVtjbGFzcyo9XCJzaGFyZS1jdXN0b20tXCJdIHNwYW5bc3R5bGUqPVwiYmFja2dyb3VuZC1pbWFnZVwiXSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2hhcmVkYWRkeSAuc2Qtc29jaWFsIC5zZC1jb250ZW50IC5zaGFyZS1mYWNlYm9vayAuc2hhcmUtaWNvbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi7qSBXCI7IH1cblxuLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCAuc2hhcmUtdHdpdHRlciAuc2hhcmUtaWNvbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi7qSCXCI7IH1cblxuLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCAuc2hhcmUtcmVkZGl0IC5zaGFyZS1pY29uOmFmdGVyIHtcbiAgY29udGVudDogXCLupJBcIjsgfVxuXG4uc2hhcmVkYWRkeSAuc2Qtc29jaWFsIC5zZC1jb250ZW50IC5zaGFyZS1jdXN0b20tZmxpcGJvYXJkIC5zaGFyZS1pY29uOmFmdGVyIHtcbiAgY29udGVudDogXCLupJFcIjsgfVxuXG4uc2hhcmVkYWRkeSAuc2Qtc29jaWFsIC5zZC1jb250ZW50IC5zaGFyZS1wb2NrZXQgLnNoYXJlLWljb246YWZ0ZXIge1xuICBjb250ZW50OiBcIu6kklwiOyB9XG5cbi53cGdtemFfbWFya2VyYm94IHAge1xuICBmb250LXNpemU6IC43cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTsgfVxuXG4ud3BnbXphX21hcCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIDAwLiBEaXNwbGF5ICYgTWVkaWEgUXVlcmllc1xuICogMDEuIENvbG9yc1xuICogMDIuIFNwYWNpbmdcbiAqIDAzLiBDb250YWluZXJcbiAqIDA0LiBNaW4gYW5kIE1heFxuICogMDUuIFZlcnRpY2FsIExhYmVsXG4gKiAwNi4gSG9yaXpvbnRhbCBMYWJlbFxuICogMDcuIEhlYWRsaW5lIExhYmVsXG4gKiAwOC4gQmFja2dyb3VuZCBJbWFnZVxuICogMDkuIExvZ28gQmFja2dyb3VuZFxuICovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBib2R5IHtcbiAgICBwYWRkaW5nLXRvcDogMy4yNXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGJvZHk6bm90KC5ob21lKSB7XG4gICAgcGFkZGluZy10b3A6IDcuNzVyZW07IH0gfVxuXG4uaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnNob3ctZm9yLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNob3ctZm9yLWRlc2t0b3Age1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2hvdy1mb3ItbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5zaG93LWZvci1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLnNob3ctZm9yLWlwYWQtdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItaXBhZC11cCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmhpZGUtZm9yLWlwYWQtZG93biB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmdyaWQteCA+IC5pcGFkLW1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLW1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAuaXBhZC1tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuZ3JpZC14ID4gLmlwYWQtbWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLW1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAuaXBhZC1tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZ3JpZC14ID4gLmlwYWQtbWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLW1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAuaXBhZC1tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuZ3JpZC14ID4gLmlwYWQtbWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAuaXBhZC1tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5pcGFkLW1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uZmxvYXQtY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLmNsZWFyZml4OjpiZWZvcmUsIC5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLmJhY2tncm91bmQtY292ZXIge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyB9XG5cbi5iYWNrZ3JvdW5kLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzNDM3OyB9XG5cbi5jb2xvci1wcmltYXJ5LCAuY29sb3ItcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMWIzNDM3OyB9XG5cbi5saW5rcy1wcmltYXJ5IGEsIC5saW5rcy1wcmltYXJ5IGE6Zm9jdXMge1xuICBjb2xvcjogIzFiMzQzNyAhaW1wb3J0YW50OyB9XG5cbi5idWxsZXQtY29sb3ItcHJpbWFyeSBsaTpiZWZvcmUge1xuICBjb2xvcjogIzFiMzQzNyAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Zjk0OGQ7IH1cblxuLmNvbG9yLXNlY29uZGFyeSwgLmNvbG9yLXNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjN2Y5NDhkOyB9XG5cbi5saW5rcy1zZWNvbmRhcnkgYSwgLmxpbmtzLXNlY29uZGFyeSBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Zjk0OGQgIWltcG9ydGFudDsgfVxuXG4uYnVsbGV0LWNvbG9yLXNlY29uZGFyeSBsaTpiZWZvcmUge1xuICBjb2xvcjogIzdmOTQ4ZCAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWxpZ2h0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM1NDU5OyB9XG5cbi5jb2xvci1saWdodC1wcmltYXJ5LCAuY29sb3ItbGlnaHQtcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMmM1NDU5OyB9XG5cbi5saW5rcy1saWdodC1wcmltYXJ5IGEsIC5saW5rcy1saWdodC1wcmltYXJ5IGE6Zm9jdXMge1xuICBjb2xvcjogIzJjNTQ1OSAhaW1wb3J0YW50OyB9XG5cbi5idWxsZXQtY29sb3ItbGlnaHQtcHJpbWFyeSBsaTpiZWZvcmUge1xuICBjb2xvcjogIzJjNTQ1OSAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWxpZ2h0LXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5YmFiYTY7IH1cblxuLmNvbG9yLWxpZ2h0LXNlY29uZGFyeSwgLmNvbG9yLWxpZ2h0LXNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjOWJhYmE2OyB9XG5cbi5saW5rcy1saWdodC1zZWNvbmRhcnkgYSwgLmxpbmtzLWxpZ2h0LXNlY29uZGFyeSBhOmZvY3VzIHtcbiAgY29sb3I6ICM5YmFiYTYgIWltcG9ydGFudDsgfVxuXG4uYnVsbGV0LWNvbG9yLWxpZ2h0LXNlY29uZGFyeSBsaTpiZWZvcmUge1xuICBjb2xvcjogIzliYWJhNiAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYmExN2Q7IH1cblxuLmNvbG9yLWFjY2VudCwgLmNvbG9yLWFjY2VudDpmb2N1cyB7XG4gIGNvbG9yOiAjY2JhMTdkOyB9XG5cbi5saW5rcy1hY2NlbnQgYSwgLmxpbmtzLWFjY2VudCBhOmZvY3VzIHtcbiAgY29sb3I6ICNjYmExN2QgIWltcG9ydGFudDsgfVxuXG4uYnVsbGV0LWNvbG9yLWFjY2VudCBsaTpiZWZvcmUge1xuICBjb2xvcjogI2NiYTE3ZCAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmNmYzOyB9XG5cbi5jb2xvci1saWdodC1ncmF5LCAuY29sb3ItbGlnaHQtZ3JheTpmb2N1cyB7XG4gIGNvbG9yOiAjZjlmNmYzOyB9XG5cbi5saW5rcy1saWdodC1ncmF5IGEsIC5saW5rcy1saWdodC1ncmF5IGE6Zm9jdXMge1xuICBjb2xvcjogI2Y5ZjZmMyAhaW1wb3J0YW50OyB9XG5cbi5idWxsZXQtY29sb3ItbGlnaHQtZ3JheSBsaTpiZWZvcmUge1xuICBjb2xvcjogI2Y5ZjZmMyAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLW1lZGl1bS1ncmF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmYmZiZjsgfVxuXG4uY29sb3ItbWVkaXVtLWdyYXksIC5jb2xvci1tZWRpdW0tZ3JheTpmb2N1cyB7XG4gIGNvbG9yOiAjYmZiZmJmOyB9XG5cbi5saW5rcy1tZWRpdW0tZ3JheSBhLCAubGlua3MtbWVkaXVtLWdyYXkgYTpmb2N1cyB7XG4gIGNvbG9yOiAjYmZiZmJmICFpbXBvcnRhbnQ7IH1cblxuLmJ1bGxldC1jb2xvci1tZWRpdW0tZ3JheSBsaTpiZWZvcmUge1xuICBjb2xvcjogI2JmYmZiZiAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWRhcmstZ3JheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cblxuLmNvbG9yLWRhcmstZ3JheSwgLmNvbG9yLWRhcmstZ3JheTpmb2N1cyB7XG4gIGNvbG9yOiAjOGE4YThhOyB9XG5cbi5saW5rcy1kYXJrLWdyYXkgYSwgLmxpbmtzLWRhcmstZ3JheSBhOmZvY3VzIHtcbiAgY29sb3I6ICM4YThhOGEgIWltcG9ydGFudDsgfVxuXG4uYnVsbGV0LWNvbG9yLWRhcmstZ3JheSBsaTpiZWZvcmUge1xuICBjb2xvcjogIzhhOGE4YSAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTsgfVxuXG4uY29sb3ItYmxhY2ssIC5jb2xvci1ibGFjazpmb2N1cyB7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5saW5rcy1ibGFjayBhLCAubGlua3MtYmxhY2sgYTpmb2N1cyB7XG4gIGNvbG9yOiAjMGEwYTBhICFpbXBvcnRhbnQ7IH1cblxuLmJ1bGxldC1jb2xvci1ibGFjayBsaTpiZWZvcmUge1xuICBjb2xvcjogIzBhMGEwYSAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uY29sb3Itd2hpdGUsIC5jb2xvci13aGl0ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5saW5rcy13aGl0ZSBhLCAubGlua3Mtd2hpdGUgYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cblxuLmJ1bGxldC1jb2xvci13aGl0ZSBsaTpiZWZvcmUge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JhMTdkOyB9XG5cbi5jb2xvci1nb2xkLCAuY29sb3ItZ29sZDpmb2N1cyB7XG4gIGNvbG9yOiAjY2JhMTdkOyB9XG5cbi5saW5rcy1nb2xkIGEsIC5saW5rcy1nb2xkIGE6Zm9jdXMge1xuICBjb2xvcjogI2NiYTE3ZCAhaW1wb3J0YW50OyB9XG5cbi5idWxsZXQtY29sb3ItZ29sZCBsaTpiZWZvcmUge1xuICBjb2xvcjogI2NiYTE3ZCAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQjAwMDA7IH1cblxuLmNvbG9yLXJlZCwgLmNvbG9yLXJlZDpmb2N1cyB7XG4gIGNvbG9yOiAjQ0IwMDAwOyB9XG5cbi5saW5rcy1yZWQgYSwgLmxpbmtzLXJlZCBhOmZvY3VzIHtcbiAgY29sb3I6ICNDQjAwMDAgIWltcG9ydGFudDsgfVxuXG4uYnVsbGV0LWNvbG9yLXJlZCBsaTpiZWZvcmUge1xuICBjb2xvcjogI0NCMDAwMCAhaW1wb3J0YW50OyB9XG5cbi5saW5rcy1nb2xkIGEuZGlzcGxheS1oZWFkaW5nOmhvdmVyLFxuLmNvbG9yLWdvbGQgYS5kaXNwbGF5LWhlYWRpbmc6aG92ZXIge1xuICBjb2xvcjogIzBhMGEwYSAhaW1wb3J0YW50OyB9XG5cbmEuZGlzcGxheS1oZWFkaW5nLmxpbmtzLWdvbGQgYTpob3ZlciwgYS5kaXNwbGF5LWhlYWRpbmcuY29sb3ItZ29sZCBhOmhvdmVyIHtcbiAgY29sb3I6ICMwYTBhMGEgIWltcG9ydGFudDsgfVxuXG4ubGlua3MtZ29sZCBhLmRpc3BsYXktaGVhZGluZzpob3Zlcixcbi5jb2xvci1nb2xkIGEuZGlzcGxheS1oZWFkaW5nOmhvdmVyIHtcbiAgY29sb3I6ICMwYTBhMGEgIWltcG9ydGFudDsgfVxuXG5hLmRpc3BsYXktaGVhZGluZy5saW5rcy1nb2xkOmhvdmVyLCBhLmRpc3BsYXktaGVhZGluZy5jb2xvci1nb2xkOmhvdmVyIHtcbiAgY29sb3I6ICMwYTBhMGEgIWltcG9ydGFudDsgfVxuXG4ucGFkZGluZy10b3Age1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuXG4ucGFkZGluZy10b3Atbm9uZSB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5wYWRkaW5nLXRvcC1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAxcmVtOyB9XG5cbi5wYWRkaW5nLXRvcC1tZWRpdW0ge1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuXG4ucGFkZGluZy10b3AtbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogNHJlbTsgfVxuXG4ucGFkZGluZy1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cblxuLnBhZGRpbmctcmlnaHQtbm9uZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnBhZGRpbmctcmlnaHQtc21hbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG5cbi5wYWRkaW5nLXJpZ2h0LW1lZGl1bSB7XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cblxuLnBhZGRpbmctcmlnaHQtbGFyZ2Uge1xuICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9XG5cbi5wYWRkaW5nLWJvdHRvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG5cbi5wYWRkaW5nLWJvdHRvbS1ub25lIHtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuLnBhZGRpbmctYm90dG9tLXNtYWxsIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cblxuLnBhZGRpbmctYm90dG9tLW1lZGl1bSB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG5cbi5wYWRkaW5nLWJvdHRvbS1sYXJnZSB7XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG5cbi5wYWRkaW5nLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cblxuLnBhZGRpbmctbGVmdC1ub25lIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5wYWRkaW5nLWxlZnQtc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cblxuLnBhZGRpbmctbGVmdC1tZWRpdW0ge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cblxuLnBhZGRpbmctbGVmdC1sYXJnZSB7XG4gIHBhZGRpbmctbGVmdDogNHJlbTsgfVxuXG4ucGFkZGluZy1hbGwge1xuICBwYWRkaW5nOiAycmVtOyB9XG5cbi5wYWRkaW5nLWFsbC1ub25lIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ucGFkZGluZy1hbGwtc21hbGwge1xuICBwYWRkaW5nOiAxcmVtOyB9XG5cbi5wYWRkaW5nLWFsbC1tZWRpdW0ge1xuICBwYWRkaW5nOiAycmVtOyB9XG5cbi5wYWRkaW5nLWFsbC1sYXJnZSB7XG4gIHBhZGRpbmc6IDRyZW07IH1cblxuLm1hcmdpbi10b3Age1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbi5tYXJnaW4tdG9wLW5vbmUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5tYXJnaW4tdG9wLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4ubWFyZ2luLXRvcC1tZWRpdW0ge1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbi5tYXJnaW4tdG9wLWxhcmdlIHtcbiAgbWFyZ2luLXRvcDogNHJlbTsgfVxuXG4ubWFyZ2luLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG5cbi5tYXJnaW4tcmlnaHQtbm9uZSB7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWFyZ2luLXJpZ2h0LXNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5tYXJnaW4tcmlnaHQtbWVkaXVtIHtcbiAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG5cbi5tYXJnaW4tcmlnaHQtbGFyZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDRyZW07IH1cblxuLm1hcmdpbi1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi5tYXJnaW4tYm90dG9tLW5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5tYXJnaW4tYm90dG9tLXNtYWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuXG4ubWFyZ2luLWJvdHRvbS1tZWRpdW0ge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi5tYXJnaW4tYm90dG9tLWxhcmdlIHtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuXG4ubWFyZ2luLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMnJlbTsgfVxuXG4ubWFyZ2luLWxlZnQtbm9uZSB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5tYXJnaW4tbGVmdC1zbWFsbCB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG5cbi5tYXJnaW4tbGVmdC1tZWRpdW0ge1xuICBtYXJnaW4tbGVmdDogMnJlbTsgfVxuXG4ubWFyZ2luLWxlZnQtbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogNHJlbTsgfVxuXG4ubWFyZ2luLWFsbCB7XG4gIG1hcmdpbjogMnJlbTsgfVxuXG4ubWFyZ2luLWFsbC1ub25lIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tYXJnaW4tYWxsLXNtYWxsIHtcbiAgbWFyZ2luOiAxcmVtOyB9XG5cbi5tYXJnaW4tYWxsLW1lZGl1bSB7XG4gIG1hcmdpbjogMnJlbTsgfVxuXG4ubWFyZ2luLWFsbC1sYXJnZSB7XG4gIG1hcmdpbjogNHJlbTsgfVxuXG4ucGFkZGluZy12ZXJ0aWNhbCB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAucGFkZGluZy12ZXJ0aWNhbC1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgLnBhZGRpbmctdmVydGljYWwtbGFyZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgIHBhZGRpbmctdG9wOiA0cmVtOyB9XG5cbi5wYWRkaW5nLWhvcml6b250YWwge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgLnBhZGRpbmctaG9yaXpvbnRhbC1zbWFsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLnBhZGRpbmctaG9yaXpvbnRhbC1sYXJnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuaXBhZC1wYWRkaW5nLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgLmlwYWQtcGFkZGluZy10b3Atbm9uZSB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmlwYWQtcGFkZGluZy10b3Atc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctdG9wLW1lZGl1bSB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgLmlwYWQtcGFkZGluZy10b3AtbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA0cmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1yaWdodC1ub25lIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5pcGFkLXBhZGRpbmctcmlnaHQtc21hbGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1yaWdodC1tZWRpdW0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1yaWdodC1sYXJnZSB7XG4gICAgcGFkZGluZy1yaWdodDogNHJlbTsgfVxuICAuaXBhZC1wYWRkaW5nLWJvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1ib3R0b20tbm9uZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmlwYWQtcGFkZGluZy1ib3R0b20tc21hbGwge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctYm90dG9tLW1lZGl1bSB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1ib3R0b20tbGFyZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctbGVmdC1ub25lIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmlwYWQtcGFkZGluZy1sZWZ0LXNtYWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1sZWZ0LW1lZGl1bSB7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctbGVmdC1sYXJnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctYWxsIHtcbiAgICBwYWRkaW5nOiAycmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctYWxsLW5vbmUge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmlwYWQtcGFkZGluZy1hbGwtc21hbGwge1xuICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgLmlwYWQtcGFkZGluZy1hbGwtbWVkaXVtIHtcbiAgICBwYWRkaW5nOiAycmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctYWxsLWxhcmdlIHtcbiAgICBwYWRkaW5nOiA0cmVtOyB9XG4gIC5pcGFkLW1hcmdpbi10b3Age1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmlwYWQtbWFyZ2luLXRvcC1ub25lIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5pcGFkLW1hcmdpbi10b3Atc21hbGwge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmlwYWQtbWFyZ2luLXRvcC1tZWRpdW0ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmlwYWQtbWFyZ2luLXRvcC1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNHJlbTsgfVxuICAuaXBhZC1tYXJnaW4tcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMnJlbTsgfVxuICAuaXBhZC1tYXJnaW4tcmlnaHQtbm9uZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5pcGFkLW1hcmdpbi1yaWdodC1zbWFsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1yaWdodC1tZWRpdW0ge1xuICAgIG1hcmdpbi1yaWdodDogMnJlbTsgfVxuICAuaXBhZC1tYXJnaW4tcmlnaHQtbGFyZ2Uge1xuICAgIG1hcmdpbi1yaWdodDogNHJlbTsgfVxuICAuaXBhZC1tYXJnaW4tYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1ib3R0b20tbm9uZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuaXBhZC1tYXJnaW4tYm90dG9tLXNtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1ib3R0b20tbWVkaXVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1ib3R0b20tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07IH1cbiAgLmlwYWQtbWFyZ2luLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1sZWZ0LW5vbmUge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5pcGFkLW1hcmdpbi1sZWZ0LXNtYWxsIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAuaXBhZC1tYXJnaW4tbGVmdC1tZWRpdW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1sZWZ0LWxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogNHJlbTsgfVxuICAuaXBhZC1tYXJnaW4tYWxsIHtcbiAgICBtYXJnaW46IDJyZW07IH1cbiAgLmlwYWQtbWFyZ2luLWFsbC1ub25lIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmlwYWQtbWFyZ2luLWFsbC1zbWFsbCB7XG4gICAgbWFyZ2luOiAxcmVtOyB9XG4gIC5pcGFkLW1hcmdpbi1hbGwtbWVkaXVtIHtcbiAgICBtYXJnaW46IDJyZW07IH1cbiAgLmlwYWQtbWFyZ2luLWFsbC1sYXJnZSB7XG4gICAgbWFyZ2luOiA0cmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctdmVydGljYWwge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgLmlwYWQtcGFkZGluZy12ZXJ0aWNhbC1zbWFsbCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gICAgLmlwYWQtcGFkZGluZy12ZXJ0aWNhbC1sYXJnZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiA0cmVtOyB9XG4gIC5pcGFkLXBhZGRpbmctaG9yaXpvbnRhbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAuaXBhZC1wYWRkaW5nLWhvcml6b250YWwtc21hbGwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAgIC5pcGFkLXBhZGRpbmctaG9yaXpvbnRhbC1sYXJnZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXBhZGRpbmctdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAubWVkaXVtLXBhZGRpbmctdG9wLW5vbmUge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5tZWRpdW0tcGFkZGluZy10b3Atc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy10b3AtbWVkaXVtIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAubWVkaXVtLXBhZGRpbmctdG9wLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogNHJlbTsgfVxuICAubWVkaXVtLXBhZGRpbmctcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgLm1lZGl1bS1wYWRkaW5nLXJpZ2h0LW5vbmUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLm1lZGl1bS1wYWRkaW5nLXJpZ2h0LXNtYWxsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1yaWdodC1tZWRpdW0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgLm1lZGl1bS1wYWRkaW5nLXJpZ2h0LWxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1ib3R0b20tbm9uZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLm1lZGl1bS1wYWRkaW5nLWJvdHRvbS1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgLm1lZGl1bS1wYWRkaW5nLWJvdHRvbS1tZWRpdW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1ib3R0b20tbGFyZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgLm1lZGl1bS1wYWRkaW5nLWxlZnQtbm9uZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1sZWZ0LXNtYWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgLm1lZGl1bS1wYWRkaW5nLWxlZnQtbWVkaXVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgLm1lZGl1bS1wYWRkaW5nLWxlZnQtbGFyZ2Uge1xuICAgIHBhZGRpbmctbGVmdDogNHJlbTsgfVxuICAubWVkaXVtLXBhZGRpbmctYWxsIHtcbiAgICBwYWRkaW5nOiAycmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1hbGwtbm9uZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWVkaXVtLXBhZGRpbmctYWxsLXNtYWxsIHtcbiAgICBwYWRkaW5nOiAxcmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1hbGwtbWVkaXVtIHtcbiAgICBwYWRkaW5nOiAycmVtOyB9XG4gIC5tZWRpdW0tcGFkZGluZy1hbGwtbGFyZ2Uge1xuICAgIHBhZGRpbmc6IDRyZW07IH1cbiAgLm1lZGl1bS1tYXJnaW4tdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLXRvcC1ub25lIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5tZWRpdW0tbWFyZ2luLXRvcC1zbWFsbCB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi10b3AtbWVkaXVtIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLXRvcC1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNHJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLXJpZ2h0LW5vbmUge1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWVkaXVtLW1hcmdpbi1yaWdodC1zbWFsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLXJpZ2h0LW1lZGl1bSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLXJpZ2h0LWxhcmdlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRyZW07IH1cbiAgLm1lZGl1bS1tYXJnaW4tYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWJvdHRvbS1ub25lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWJvdHRvbS1zbWFsbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1ib3R0b20tbWVkaXVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWJvdHRvbS1sYXJnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMnJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1sZWZ0LW5vbmUge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWxlZnQtc21hbGwge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWxlZnQtbWVkaXVtIHtcbiAgICBtYXJnaW4tbGVmdDogMnJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1sZWZ0LWxhcmdlIHtcbiAgICBtYXJnaW4tbGVmdDogNHJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1hbGwge1xuICAgIG1hcmdpbjogMnJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1hbGwtbm9uZSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWFsbC1zbWFsbCB7XG4gICAgbWFyZ2luOiAxcmVtOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWFsbC1tZWRpdW0ge1xuICAgIG1hcmdpbjogMnJlbTsgfVxuICAubWVkaXVtLW1hcmdpbi1hbGwtbGFyZ2Uge1xuICAgIG1hcmdpbjogNHJlbTsgfVxuICAubWVkaXVtLXBhZGRpbmctdmVydGljYWwge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgLm1lZGl1bS1wYWRkaW5nLXZlcnRpY2FsLXNtYWxsIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgICAubWVkaXVtLXBhZGRpbmctdmVydGljYWwtbGFyZ2Uge1xuICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICBwYWRkaW5nLXRvcDogNHJlbTsgfVxuICAubWVkaXVtLXBhZGRpbmctaG9yaXpvbnRhbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAubWVkaXVtLXBhZGRpbmctaG9yaXpvbnRhbC1zbWFsbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgLm1lZGl1bS1wYWRkaW5nLWhvcml6b250YWwtbGFyZ2Uge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogNHJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXBhZGRpbmctdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAubGFyZ2UtcGFkZGluZy10b3Atbm9uZSB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmxhcmdlLXBhZGRpbmctdG9wLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICAubGFyZ2UtcGFkZGluZy10b3AtbWVkaXVtIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAubGFyZ2UtcGFkZGluZy10b3AtbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA0cmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLXJpZ2h0LW5vbmUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLmxhcmdlLXBhZGRpbmctcmlnaHQtc21hbGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctcmlnaHQtbWVkaXVtIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLXJpZ2h0LWxhcmdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLWJvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctYm90dG9tLW5vbmUge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5sYXJnZS1wYWRkaW5nLWJvdHRvbS1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctYm90dG9tLW1lZGl1bSB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctYm90dG9tLWxhcmdlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTsgfVxuICAubGFyZ2UtcGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctbGVmdC1ub25lIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXBhZGRpbmctbGVmdC1zbWFsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLWxlZnQtbWVkaXVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctbGVmdC1sYXJnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLWFsbCB7XG4gICAgcGFkZGluZzogMnJlbTsgfVxuICAubGFyZ2UtcGFkZGluZy1hbGwtbm9uZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubGFyZ2UtcGFkZGluZy1hbGwtc21hbGwge1xuICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgLmxhcmdlLXBhZGRpbmctYWxsLW1lZGl1bSB7XG4gICAgcGFkZGluZzogMnJlbTsgfVxuICAubGFyZ2UtcGFkZGluZy1hbGwtbGFyZ2Uge1xuICAgIHBhZGRpbmc6IDRyZW07IH1cbiAgLmxhcmdlLW1hcmdpbi10b3Age1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmxhcmdlLW1hcmdpbi10b3Atbm9uZSB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAubGFyZ2UtbWFyZ2luLXRvcC1zbWFsbCB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLXRvcC1tZWRpdW0ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmxhcmdlLW1hcmdpbi10b3AtbGFyZ2Uge1xuICAgIG1hcmdpbi10b3A6IDRyZW07IH1cbiAgLmxhcmdlLW1hcmdpbi1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG4gIC5sYXJnZS1tYXJnaW4tcmlnaHQtbm9uZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5sYXJnZS1tYXJnaW4tcmlnaHQtc21hbGwge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLXJpZ2h0LW1lZGl1bSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG4gIC5sYXJnZS1tYXJnaW4tcmlnaHQtbGFyZ2Uge1xuICAgIG1hcmdpbi1yaWdodDogNHJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWJvdHRvbS1ub25lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5sYXJnZS1tYXJnaW4tYm90dG9tLXNtYWxsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5sYXJnZS1tYXJnaW4tYm90dG9tLW1lZGl1bSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWJvdHRvbS1sYXJnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtOyB9XG4gIC5sYXJnZS1tYXJnaW4tbGVmdC1ub25lIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubGFyZ2UtbWFyZ2luLWxlZnQtc21hbGwge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5sYXJnZS1tYXJnaW4tbGVmdC1tZWRpdW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtOyB9XG4gIC5sYXJnZS1tYXJnaW4tbGVmdC1sYXJnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDRyZW07IH1cbiAgLmxhcmdlLW1hcmdpbi1hbGwge1xuICAgIG1hcmdpbjogMnJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWFsbC1ub25lIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmxhcmdlLW1hcmdpbi1hbGwtc21hbGwge1xuICAgIG1hcmdpbjogMXJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWFsbC1tZWRpdW0ge1xuICAgIG1hcmdpbjogMnJlbTsgfVxuICAubGFyZ2UtbWFyZ2luLWFsbC1sYXJnZSB7XG4gICAgbWFyZ2luOiA0cmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLXZlcnRpY2FsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAgIC5sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLXNtYWxsIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgICAubGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1sYXJnZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiA0cmVtOyB9XG4gIC5sYXJnZS1wYWRkaW5nLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9XG4gICAgLmxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbC1zbWFsbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgLmxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbC1sYXJnZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9IH1cblxuLmNvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRhaW5lcjpub3QoLnNtYWxsKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jb250YWluZXIubGFyZ2Uge1xuICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICBwYWRkaW5nLXRvcDogNHJlbTsgfSB9XG4gIC5jb250YWluZXI6ZW1wdHkge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4uZ3JpZC1vZmZzZXQge1xuICBtYXJnaW4tbGVmdDogLTAuNzVyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNzVyZW07IH1cbiAgLmdyaWQtb2Zmc2V0IC5vZmZzZXQtcGFkZGluZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogLjc1cmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAubW9iaWxlLWdyaWQtb2Zmc2V0IHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1cmVtICFpbXBvcnRhbnQ7IH0gfVxuXG4ub3ZlcmZsb3ctY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWluLWhlaWdodC01MCB7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7IH1cblxuLm1heC1oZWlnaHQtNTAge1xuICBtYXgtaGVpZ2h0OiA1MHB4OyB9XG5cbi5taW4td2lkdGgtNTAge1xuICBtaW4td2lkdGg6IDUwcHg7IH1cblxuLm1heC13aWR0aC01MCB7XG4gIG1heC13aWR0aDogNTBweDsgfVxuXG4ubWluLWhlaWdodC0xMDAge1xuICBtaW4taGVpZ2h0OiAxMDBweDsgfVxuXG4ubWF4LWhlaWdodC0xMDAge1xuICBtYXgtaGVpZ2h0OiAxMDBweDsgfVxuXG4ubWluLXdpZHRoLTEwMCB7XG4gIG1pbi13aWR0aDogMTAwcHg7IH1cblxuLm1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMHB4OyB9XG5cbi5taW4taGVpZ2h0LTE1MCB7XG4gIG1pbi1oZWlnaHQ6IDE1MHB4OyB9XG5cbi5tYXgtaGVpZ2h0LTE1MCB7XG4gIG1heC1oZWlnaHQ6IDE1MHB4OyB9XG5cbi5taW4td2lkdGgtMTUwIHtcbiAgbWluLXdpZHRoOiAxNTBweDsgfVxuXG4ubWF4LXdpZHRoLTE1MCB7XG4gIG1heC13aWR0aDogMTUwcHg7IH1cblxuLm1pbi1oZWlnaHQtMjAwIHtcbiAgbWluLWhlaWdodDogMjAwcHg7IH1cblxuLm1heC1oZWlnaHQtMjAwIHtcbiAgbWF4LWhlaWdodDogMjAwcHg7IH1cblxuLm1pbi13aWR0aC0yMDAge1xuICBtaW4td2lkdGg6IDIwMHB4OyB9XG5cbi5tYXgtd2lkdGgtMjAwIHtcbiAgbWF4LXdpZHRoOiAyMDBweDsgfVxuXG4ubWluLWhlaWdodC0yNTAge1xuICBtaW4taGVpZ2h0OiAyNTBweDsgfVxuXG4ubWF4LWhlaWdodC0yNTAge1xuICBtYXgtaGVpZ2h0OiAyNTBweDsgfVxuXG4ubWluLXdpZHRoLTI1MCB7XG4gIG1pbi13aWR0aDogMjUwcHg7IH1cblxuLm1heC13aWR0aC0yNTAge1xuICBtYXgtd2lkdGg6IDI1MHB4OyB9XG5cbi5taW4taGVpZ2h0LTMwMCB7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG5cbi5tYXgtaGVpZ2h0LTMwMCB7XG4gIG1heC1oZWlnaHQ6IDMwMHB4OyB9XG5cbi5taW4td2lkdGgtMzAwIHtcbiAgbWluLXdpZHRoOiAzMDBweDsgfVxuXG4ubWF4LXdpZHRoLTMwMCB7XG4gIG1heC13aWR0aDogMzAwcHg7IH1cblxuLm1pbi1oZWlnaHQtMzUwIHtcbiAgbWluLWhlaWdodDogMzUwcHg7IH1cblxuLm1heC1oZWlnaHQtMzUwIHtcbiAgbWF4LWhlaWdodDogMzUwcHg7IH1cblxuLm1pbi13aWR0aC0zNTAge1xuICBtaW4td2lkdGg6IDM1MHB4OyB9XG5cbi5tYXgtd2lkdGgtMzUwIHtcbiAgbWF4LXdpZHRoOiAzNTBweDsgfVxuXG4ubWluLWhlaWdodC00MDAge1xuICBtaW4taGVpZ2h0OiA0MDBweDsgfVxuXG4ubWF4LWhlaWdodC00MDAge1xuICBtYXgtaGVpZ2h0OiA0MDBweDsgfVxuXG4ubWluLXdpZHRoLTQwMCB7XG4gIG1pbi13aWR0aDogNDAwcHg7IH1cblxuLm1heC13aWR0aC00MDAge1xuICBtYXgtd2lkdGg6IDQwMHB4OyB9XG5cbi5taW4taGVpZ2h0LTQ1MCB7XG4gIG1pbi1oZWlnaHQ6IDQ1MHB4OyB9XG5cbi5tYXgtaGVpZ2h0LTQ1MCB7XG4gIG1heC1oZWlnaHQ6IDQ1MHB4OyB9XG5cbi5taW4td2lkdGgtNDUwIHtcbiAgbWluLXdpZHRoOiA0NTBweDsgfVxuXG4ubWF4LXdpZHRoLTQ1MCB7XG4gIG1heC13aWR0aDogNDUwcHg7IH1cblxuLm1pbi1oZWlnaHQtNTAwIHtcbiAgbWluLWhlaWdodDogNTAwcHg7IH1cblxuLm1heC1oZWlnaHQtNTAwIHtcbiAgbWF4LWhlaWdodDogNTAwcHg7IH1cblxuLm1pbi13aWR0aC01MDAge1xuICBtaW4td2lkdGg6IDUwMHB4OyB9XG5cbi5tYXgtd2lkdGgtNTAwIHtcbiAgbWF4LXdpZHRoOiA1MDBweDsgfVxuXG4ubWluLWhlaWdodC01NTAge1xuICBtaW4taGVpZ2h0OiA1NTBweDsgfVxuXG4ubWF4LWhlaWdodC01NTAge1xuICBtYXgtaGVpZ2h0OiA1NTBweDsgfVxuXG4ubWluLXdpZHRoLTU1MCB7XG4gIG1pbi13aWR0aDogNTUwcHg7IH1cblxuLm1heC13aWR0aC01NTAge1xuICBtYXgtd2lkdGg6IDU1MHB4OyB9XG5cbi5taW4taGVpZ2h0LTYwMCB7XG4gIG1pbi1oZWlnaHQ6IDYwMHB4OyB9XG5cbi5tYXgtaGVpZ2h0LTYwMCB7XG4gIG1heC1oZWlnaHQ6IDYwMHB4OyB9XG5cbi5taW4td2lkdGgtNjAwIHtcbiAgbWluLXdpZHRoOiA2MDBweDsgfVxuXG4ubWF4LXdpZHRoLTYwMCB7XG4gIG1heC13aWR0aDogNjAwcHg7IH1cblxuLnZlcnRpY2FsLWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC52ZXJ0aWNhbC1sYWJlbCB7XG4gICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHdyaXRpbmctbW9kZTogdGItcmw7IH1cbiAgICAgIC52ZXJ0aWNhbC1sYWJlbDpiZWZvcmUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgdG9wOiAwOyB9XG4gICAgICAudmVydGljYWwtbGFiZWwgc3BhbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAudmVydGljYWwtbGFiZWw6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiA2cHg7IH1cbiAgICAudmVydGljYWwtbGFiZWwgc3BhbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDsgfSB9XG4gIC52ZXJ0aWNhbC1sYWJlbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC52ZXJ0aWNhbC1sYWJlbCBzcGFuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMzsgfVxuXG4uaG9yaXpvbnRhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmhvcml6b250YWwtbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiAjYmZiZmJmO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5ob3Jpem9udGFsLWxhYmVsIC5sYWJlbC10ZXh0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLmJhY2tncm91bmQtYmxhY2sgLmhvcml6b250YWwtbGFiZWw6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2E0NDQxOyB9XG4gIC5iYWNrZ3JvdW5kLWJsYWNrIC5ob3Jpem9udGFsLWxhYmVsIC5sYWJlbC10ZXh0IHtcbiAgICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uaGVhZGxpbmUtbGFiZWwge1xuICBmb250LXNpemU6IDYwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5oZWFkbGluZS1sYWJlbCAuaG9yaXpvbnRhbC1sYWJlbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmhlYWRsaW5lLWxhYmVsIC5ob3Jpem9udGFsLWxhYmVsIC5sYWJlbC10ZXh0IHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAubGFyZ2UtYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWJhY2tncm91bmQtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtYmxlbmQtbW9kZTogdW5zZXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFiMzQzNztcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICAgIC5sYXJnZS1mZWF0dXJlZDpob3ZlciAubGFyZ2UtYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAubWVkaXVtLWJhY2tncm91bmQtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiB1bnNldDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzNDM3O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gICAgLmxhcmdlLWZlYXR1cmVkOmhvdmVyIC5tZWRpdW0tYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjsgfSB9XG5cbi5sb2dvLWJhY2tncm91bmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmxvZ28tYmFja2dyb3VuZCAubG9nby1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgbGVmdDogLTEyMHB4O1xuICAgIHdpZHRoOiAyNDBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3BhY2l0eTogLjQ7XG4gICAgei1pbmRleDogLTE7IH1cbiAgLmJvdHRvbS1mb290ZXIgLmxvZ28tYmFja2dyb3VuZCB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGhlaWdodDogMjIwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTQwcHg7XG4gICAgbGVmdDogLTQwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBvcGFjaXR5OiAuNTsgfVxuICAgIC5ib3R0b20tZm9vdGVyIC5sb2dvLWJhY2tncm91bmQgLmxvZ28tYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgb3BhY2l0eTogMTsgfVxuXG5ib2R5LnBvc3QtdGVtcGxhdGUtdGVtcGxhdGUtbWFwYm94IHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIDAwLiBHbG9iYWwgSGVhZGVyXG4gKiAwMS4gVG9wIGJhclxuICogMDIuIFByaW1hcnkgTWVudVxuICogMDMuIERlc2t0b3AgTWVudSBPdmVybGF5XG4gKiAwNC4gVXRpbGl0eVxuICogMDUuIE1vYmlsZVxuICovXG4jbWFpbi1tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICNtYWluLW1lbnUge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgei1pbmRleDogMTA7IH0gfVxuICAjbWFpbi1tZW51ID4gZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmFkbWluLWJhciAjbWFpbi1tZW51IHtcbiAgICB0b3A6IDMycHg7IH1cblxuLmhlYWRlci1zcGFjZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJvZHkubGFuZGluZy1oZWFkZXIgI21haW4tbWVudSwgYm9keS5sYW5kaW5nLWhlYWRlciAudG9wLWJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cblxuYm9keS5sYW5kaW5nLWhlYWRlciAjbWFpbi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkge1xuICAjbWFpbi1tZW51IHtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCAycHggcmdiYSgxMCwgMTAsIDEwLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDQwMG1zOyB9XG4gICAgLmNvbGxhcHNlZC1oZWFkZXIgI21haW4tbWVudSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCAycHggcmdiYSgxMCwgMTAsIDEwLCAwLjE1KTsgfVxuICAgIC5oZWFkZXItZml4ZWQgI21haW4tbWVudSwgLmhlYWRlci1jbGlja2VkICNtYWluLW1lbnUge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDA7IH1cbiAgICAud2l0aC11dGlsaXR5ICNtYWluLW1lbnUge1xuICAgICAgdG9wOiAxLjYyNXJlbTsgfVxuICAgIC5hZG1pbi1iYXIuaGVhZGVyLWNsaWNrZWQgI21haW4tbWVudSB7XG4gICAgICBtYXJnaW4tdG9wOiAzMnB4OyB9XG4gIC5oZWFkZXItZml4ZWQgLmhlYWRlci1zcGFjZXIsIC5oZWFkZXItY2xpY2tlZCAuaGVhZGVyLXNwYWNlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDMuMjVyZW07IH1cbiAgLndpdGgtdXRpbGl0eSAuaGVhZGVyLXNwYWNlciB7XG4gICAgcGFkZGluZy10b3A6IDQuODc1cmVtOyB9XG4gIC5hZG1pbi1iYXIuaGVhZGVyLWZpeGVkICNtYWluLW1lbnUsIC5hZG1pbi1iYXIuaGVhZGVyLWZpeGVkICN1dGlsaXR5IHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4OyB9IH1cblxuLmhlYWRlci1sb2dvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAxcmVtIDA7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMTUwbXM7IH1cbiAgLmhhcy11dGlsaXR5IC5oZWFkZXItbG9nbyB7XG4gICAgcGFkZGluZzogLjM3NXJlbSAwIDEuNjI1cmVtOyB9XG4gICAgLmhlYWRlci1jbGlja2VkIC5oYXMtdXRpbGl0eSAuaGVhZGVyLWxvZ28ge1xuICAgICAgcGFkZGluZzogLjg3NXJlbSAwIDEuMTI1cmVtOyB9XG5cbmJvZHkgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4jc3RvcnktbWVudSAuY3VycmVudC1tZW51LWl0ZW0gYSB7XG4gIGNvbG9yOiAjY2JhMTdkOyB9XG5cbi50b3AtYmFyIHtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAxNTBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIGJhY2tncm91bmQtY29sb3IgMTUwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC5jb2xsYXBzZWQtaGVhZGVyIC50b3AtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmNvbGxhcHNlZC1oZWFkZXIgLnRvcC1iYXIge1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHg7IH0gfVxuICAgIC5jb2xsYXBzZWQtaGVhZGVyIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogNC4yNXJlbTtcbiAgICAgIGhlaWdodDogMy4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5jb2xsYXBzZWQtaGVhZGVyIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlIGEge1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgICAgLmNvbGxhcHNlZC1oZWFkZXIgLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUgLmxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5jb2xsYXBzZWQtaGVhZGVyIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlIC5sb2dvLmFsdC1sb2dvIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgcGFkZGluZzogMCAxNXB4OyB9IH1cbiAgLnRvcC1iYXIgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlLFxuICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgaGVpZ2h0OiAzLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjI1cmVtO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDsgfVxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2Fzc2V0cy9pbWcvdS1vdXRsaW5lLWdyZWVuQDJ4LnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDgwJTtcbiAgICBoZWlnaHQ6IDUuNzVyZW07XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIGhlaWdodCA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIGJhY2tncm91bmQtc2l6ZSA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgYm9keTpub3QoLmhvbWUpOm5vdCguY29sbGFwc2VkLWhlYWRlcikgLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgLTFyZW07XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNy43NXJlbTtcbiAgICAgICAgaGVpZ2h0OiA3Ljc1cmVtOyB9XG4gICAgICAgIGJvZHk6bm90KC5ob21lKTpub3QoLmNvbGxhcHNlZC1oZWFkZXIpIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDguNzVyZW07IH0gfVxuICAgIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDMuMjVyZW07XG4gICAgICBwYWRkaW5nOiAuNzVyZW0gMDtcbiAgICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMTAwbXMgY3ViaWMtYmV6aWVyKDAsIDEuMTgsIDAuOTMsIDEuMTEpLCBoZWlnaHQgMTAwbXMgY3ViaWMtYmV6aWVyKDAsIDEuMTgsIDAuOTMsIDEuMTEpLCBiYWNrZ3JvdW5kLXNpemUgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDEuMTgsIDAuOTMsIDEuMTEpOyB9XG4gICAgLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUgLmxvZ28ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgLypcblx0XHRcdGhlaWdodDogMzJweDtcblx0XHRcdHdpZHRoOiAxODZweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdCovIH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlIC5sb2dvLmFsdC1sb2dvIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAudG9wLWJhciAudG9wLWJhci10aXRsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogOTIlOyB9XG4gICAgICAgIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlOmhvdmVyIGEge1xuICAgICAgICAgIHBhZGRpbmc6IC42MjVyZW0gMDsgfSB9XG4gIC50b3AtYmFyIC5tZW51LW92ZXJsYXktdHJpZ2dlciBhOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIu6khFwiO1xuICAgIGZvbnQtZmFtaWx5OiAndW5kYXJrJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29sb3I6ICNjYmExN2Q7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC50b3AtYmFyIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgICAudG9wLWJhciAudG9wLWJhci10aXRsZSBhIHtcbiAgICAgICAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAwIDAgMS41cmVtOyB9IH1cblxuI3ByaW1hcnktbWVudSB7XG4gIC8qIFRyYWRpdGlvbmFsIE1lbnUgSG92ZXIgU3R5bGVzICovIH1cbiAgI3ByaW1hcnktbWVudSAubWVudS1vdmVybGF5LXRyaWdnZXIge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM1NTU7IH1cbiAgI3ByaW1hcnktbWVudS5pcy10cmFkaXRpb25hbC1tZW51IC5oYXMtZHJvcGRvd246aG92ZXI6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAjcHJpbWFyeS1tZW51LmlzLXRyYWRpdGlvbmFsLW1lbnUgLmhhcy1kcm9wZG93bjpob3ZlciA+IC5zdWItbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuI2Rlc2t0b3AtbWVudS1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogLTE7IH1cbiAgI2Rlc2t0b3AtbWVudS1vdmVybGF5Om5vdCgub3Blbikge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpLCB6LWluZGV4IDQwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICAuZGVza3RvcC1vdmVybGF5LW9wZW4gI2Rlc2t0b3AtbWVudS1vdmVybGF5IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KSAxNTBtcywgei1pbmRleCAxNTBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxMjAwOyB9XG4gICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubG9nbyB7XG4gICAgaGVpZ2h0OiAycmVtOyB9XG4gICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1jbG9zZS1idXR0b24ge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgcGFkZGluZzogMS41cmVtOyB9XG4gICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm1lbnUtb3ZlcmxheTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMTE1JTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogLTNyZW07XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9hc3NldHMvaW1nL3JhZGl1bS5wbmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgb3BhY2l0eTogLjM7IH1cbiAgICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm1lbnUtb3ZlcmxheSAubWVudS1pdGVtIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IC5tZW51LWl0ZW0ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH0gfVxuICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlRhdmlyYWpcIiwgR2VvcmdpYSwgUGFsYXRpbm8sIHNlcmlmO1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gICAgICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLm1lbnUtb3ZlcmxheSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNjYmExN2Q7IH1cbiAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IGEgPiAuY2VsbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgxcHgpIHtcbiAgICAgICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5tZW51LW92ZXJsYXkgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiA2NnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg2MHB4KSBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gICAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogNDZweDsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDg1OXB4KSB7XG4gICAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MjFweCkgYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAubWVudS1vdmVybGF5IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDsgfSB9XG4gICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5tZW51LW92ZXJsYXkgLm1lbnUtb3ZlcmxheS1pdGVtLXN1YnRpdGxlIHtcbiAgICAgIGNvbG9yOiAjYmZiZmJmO1xuICAgICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5tZW51LW92ZXJsYXkgLm1lbnUtb3ZlcmxheS1pdGVtLXN1YnRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5tZW51LW92ZXJsYXktc2lkZWJhciB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiZmJmYmY7IH0gfVxuICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLmNhdGVnb3J5LW1lbnUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmZiZmJmO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtOyB9XG4gICAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC5jYXRlZ29yeS1tZW51IGEge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgICNkZXNrdG9wLW1lbnUtb3ZlcmxheSAuY2F0ZWdvcnktbWVudSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNjYmExN2Q7IH1cbiAgI2Rlc2t0b3AtbWVudS1vdmVybGF5IC51c2VyLW1lbnUgYSB7XG4gICAgY29sb3I6ICNiZmJmYmY7IH1cbiAgICAjZGVza3RvcC1tZW51LW92ZXJsYXkgLnVzZXItbWVudSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjY2JhMTdkOyB9XG5cbi51dGlsaXR5LW1lbnUtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA2NTsgfVxuICAud2l0aC11dGlsaXR5IC51dGlsaXR5LW1lbnUtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAwOyB9XG4gIC51dGlsaXR5LW1lbnUtY29udGFpbmVyIC51dGlsaXR5LW1lbnUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC51dGlsaXR5LW1lbnUtY29udGFpbmVyIC51dGlsaXR5LW1lbnUgbGkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLnV0aWxpdHktbWVudS1jb250YWluZXIgLnV0aWxpdHktbWVudSBsaSBhIHtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNjI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICMxYjM0Mzc7IH1cbiAgICAgICAgLnV0aWxpdHktbWVudS1jb250YWluZXIgLnV0aWxpdHktbWVudSBsaSBhOmZvY3VzLCAudXRpbGl0eS1tZW51LWNvbnRhaW5lciAudXRpbGl0eS1tZW51IGxpIGE6YWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogIzFiMzQzNzsgfVxuICAgICAgICAudXRpbGl0eS1tZW51LWNvbnRhaW5lciAudXRpbGl0eS1tZW51IGxpIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjN2Y5NDhkOyB9XG5cbi50b3AtYmFyLm1vYmlsZS1oZWFkZXIge1xuICBwYWRkaW5nOiAuNXJlbTsgfVxuICAudG9wLWJhci5tb2JpbGUtaGVhZGVyID4gc2VjdGlvbiB7XG4gICAgcGFkZGluZzogLjVyZW07IH1cbiAgLnRvcC1iYXIubW9iaWxlLWhlYWRlciAubW9iaWxlLWxvZ28gaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA0NnB4O1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAudG9wLWJhci5tb2JpbGUtaGVhZGVyIC5oYW1idXJnZXIgYS5tZW51LWljb24ge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMjVweDsgfVxuICAgIC50b3AtYmFyLm1vYmlsZS1oZWFkZXIgLmhhbWJ1cmdlciBhLm1lbnUtaWNvbjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMWIzNDM3O1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDEwcHggMCAjMWIzNDM3LCAwIDIwcHggMCAjMWIzNDM3OyB9XG5cbi8qXG4ub2ZmLWNhbnZhcyB7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cblx0KiB7XG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5vZmYtY2FudmFzLWxpc3Qge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDFyZW07XG5cdH1cblxuXHQuYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cblx0YSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMS4yNXJlbTtcblx0XHRsaW5lLWhlaWdodDogMS4xO1xuXHRcdHBhZGRpbmc6IC41cmVtIDA7XG5cdH1cblxuXHQudXRpbGl0eS1pdGVtIHtcblx0XHRib3JkZXItdG9wOiAycHggc29saWQgd2hpdGU7XG5cdFx0bWFyZ2luLXRvcDogMS41cmVtO1xuXHRcdHBhZGRpbmctdG9wOiAxLjVyZW07XG5cblx0XHR+IC51dGlsaXR5LWl0ZW0ge1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHR9XG5cdH1cblxuXHQuZHJvcGRvd24ge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDAgMS4yNXJlbTtcblx0fVxuXG5cdC5pcy1kcmlsbGRvd24ge1xuXHRcdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXG5cdFx0YSwgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcblx0XHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdH1cblxuXHRcdC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQge1xuXHRcdFx0PiBhOmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHRyaWdodDogLjc1cmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5qcy1kcmlsbGRvd24tYmFjayB7XG5cdFx0XHRwYWRkaW5nOiAxcmVtIDA7XG5cdFx0XHQ+IGE6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkc2Vjb25kYXJ5LWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5kcmlsbGRvd24ge1xuXHRcdFx0cGFkZGluZzogLjVyZW0gMDtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAuNXJlbSAxLjVyZW0gLjVyZW0gMXJlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5kcm9wZG93biB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdHNwYW4uZGVzY3JpcHRpb24ge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0bWFyZ2luLXRvcDogLjI1cmVtO1xuXHR9XG5cblx0bGlbY2xhc3MqPVwibWVudS1pY29uLVwiXSwgbGlbY2xhc3MqPVwiIG1lbnUtaWNvblwiXSB7XG5cdFx0PiBhOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBpY29uLWZvbnQoKTtcblx0XHRcdG1hcmdpbi1yaWdodDogLjVyZW07XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRvcDogLjI1cmVtO1xuXHRcdFx0Zm9udC1zaXplOiAxLjVyZW07XG5cdFx0fVxuXG5cdFx0LmRlc2NyaXB0aW9uIHtcblx0XHRcdG1hcmdpbi10b3A6IC41cmVtO1xuXHRcdH1cblx0fVxufVxuKi9cbi5jYW52YXMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHBvOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7IH1cbiAgLmNhbnZhcy13cmFwcGVyIGNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwOyB9XG5cbi5wb3N0LXRlbXBsYXRlLXRlbXBsYXRlLW1hcGJveCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICBtcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgfVxuXG4ucG9zdC10ZW1wbGF0ZS10ZW1wbGF0ZS1tYXBib3g6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDsgfVxuXG4vKlxuICogMDEuIENhdGVnb3J5IC8gSXNvdG9wZSBCdXR0b25zXG4gKiAwMi4gSW5maW5pdGUgTG9hZGluZyBQb3N0c1xuICogMDMuIFBhZ2luYXRpb25cbiAqL1xuLmNhdGVnb3JpZXMtbGlzdCwgLmlzb3RvcGUtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgZm9udC1zaXplOiAwOyB9XG4gIC5jYXRlZ29yaWVzLWxpc3QgbGksIC5pc290b3BlLWxpc3QgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTsgfVxuICAgIC5jYXRlZ29yaWVzLWxpc3QgbGkgYSwgLmNhdGVnb3JpZXMtbGlzdCBsaSBzcGFuLCAuaXNvdG9wZS1saXN0IGxpIGEsIC5pc290b3BlLWxpc3QgbGkgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjlmNmYzO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICBjb2xvcjogIzFiMzQzNztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICBwYWRkaW5nOiAuNXJlbSAxLjc1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLmNhdGVnb3JpZXMtbGlzdCBsaSBhOmhvdmVyLCAuY2F0ZWdvcmllcy1saXN0IGxpIHNwYW46aG92ZXIsIC5pc290b3BlLWxpc3QgbGkgYTpob3ZlciwgLmlzb3RvcGUtbGlzdCBsaSBzcGFuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JmYmZiZjsgfVxuICAgIC5jYXRlZ29yaWVzLWxpc3QgbGkuYWN0aXZlIGEsIC5jYXRlZ29yaWVzLWxpc3QgbGkuYWN0aXZlIHNwYW4sIC5pc290b3BlLWxpc3QgbGkuYWN0aXZlIGEsIC5pc290b3BlLWxpc3QgbGkuYWN0aXZlIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NiYTE3ZDtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjbGVhcjogYm90aDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG4gIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgLnNwaW5uZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIC5zcGlubmVyIHtcbiAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cblxuLnBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNTU1O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogNS4yNXJlbTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIC5jdXJyZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogMCAwLjYyNXJlbTsgfVxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnaW5hdGlvbiB1bCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIHVsIGxpIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjYyNXJlbTsgfVxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnaW5hdGlvbiBhLFxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnaW5hdGlvbiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjYzZhYThkO1xuICAgICAgcGFkZGluZzogMCAwLjYyNXJlbTsgfVxuICAgICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIGEuY3VycmVudCxcbiAgICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnaW5hdGlvbiBzcGFuLmN1cnJlbnQge1xuICAgICAgICBjb2xvcjogI2Y5ZjZmMztcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAgICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIGEubmV4dCxcbiAgICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnaW5hdGlvbiBzcGFuLm5leHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnaW5hdGlvbiBhOmhvdmVyLFxuICAgICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIHNwYW46aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdpbmF0aW9uIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmOWY2ZjM7IH1cbiAgICAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2luYXRpb24gc3Bhbi5uZXh0LCAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2luYXRpb24gc3Bhbi5wcmV2IHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIGNvbG9yOiAjNzE3MTcxOyB9XG4gIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0LFxuICAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2UtcHJldiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0IGEsXG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLW5leHQgc3BhbixcbiAgICAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2UtcHJldiBhLFxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1wcmV2IHNwYW4ge1xuICAgICAgY29sb3I6ICNjNmFhOGQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDIwcHggMzBweDsgfVxuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0IGE6aG92ZXIsXG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLXByZXYgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2Y5ZjZmMztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2UtbmV4dCAuZGlzYWJsZWQsXG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLXByZXYgLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAjNTU1OyB9XG4gIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM1NTU7IH1cbiAgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLXByZXYge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM1NTU7IH1cblxuYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lcixcbmJvZHkuc2VhcmNoIC5wYWdpbmF0aW9uLWNvbnRhaW5lciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwYTBhMGE7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiZmJmYmY7IH1cbiAgYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lciBhLFxuICBib2R5LmxpZ2h0LWJhY2tncm91bmQgLnBhZ2luYXRpb24tY29udGFpbmVyIHNwYW4sXG4gIGJvZHkuc2VhcmNoIC5wYWdpbmF0aW9uLWNvbnRhaW5lciBhLFxuICBib2R5LnNlYXJjaCAucGFnaW5hdGlvbi1jb250YWluZXIgc3BhbiB7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICBib2R5LmxpZ2h0LWJhY2tncm91bmQgLnBhZ2luYXRpb24tY29udGFpbmVyIGEuY3VycmVudCxcbiAgICBib2R5LmxpZ2h0LWJhY2tncm91bmQgLnBhZ2luYXRpb24tY29udGFpbmVyIHNwYW4uY3VycmVudCxcbiAgICBib2R5LnNlYXJjaCAucGFnaW5hdGlvbi1jb250YWluZXIgYS5jdXJyZW50LFxuICAgIGJvZHkuc2VhcmNoIC5wYWdpbmF0aW9uLWNvbnRhaW5lciBzcGFuLmN1cnJlbnQge1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lciBhOmhvdmVyLFxuICBib2R5LnNlYXJjaCAucGFnaW5hdGlvbi1jb250YWluZXIgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0LFxuICBib2R5LmxpZ2h0LWJhY2tncm91bmQgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLXByZXYsXG4gIGJvZHkuc2VhcmNoIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0LFxuICBib2R5LnNlYXJjaCAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2UtcHJldiB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNiZmJmYmY7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjYmZiZmJmOyB9XG4gICAgYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0IGEsXG4gICAgYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1wcmV2IGEsXG4gICAgYm9keS5zZWFyY2ggLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLW5leHQgYSxcbiAgICBib2R5LnNlYXJjaCAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2UtcHJldiBhIHtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgYm9keS5saWdodC1iYWNrZ3JvdW5kIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0IC5kaXNhYmxlZCxcbiAgICBib2R5LmxpZ2h0LWJhY2tncm91bmQgLnBhZ2luYXRpb24tY29udGFpbmVyIC5wYWdlLXByZXYgLmRpc2FibGVkLFxuICAgIGJvZHkuc2VhcmNoIC5wYWdpbmF0aW9uLWNvbnRhaW5lciAucGFnZS1uZXh0IC5kaXNhYmxlZCxcbiAgICBib2R5LnNlYXJjaCAucGFnaW5hdGlvbi1jb250YWluZXIgLnBhZ2UtcHJldiAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICNiZmJmYmY7IH1cblxuLyoqXG4gKiAwMS4gQ29tbWVudCBMaXN0XG4gKiAwMi4gUG9zdCBTaGFyaW5nXG4gKiAwMy4gQXJ0aWNsZSBTaWRlYmFyIEFjdGlvbnNcbiAqIDA0LiBWaWRlbyBUZW1wbGF0ZVxuICovXG4ucG9zdC1hY3Rpb25zIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4ucG9zdC1zaGFyaW5nIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wb3N0LXNoYXJpbmcgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbiNhcnRpY2xlLXNpZGViYXIge1xuICB6LWluZGV4OiAzOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAjYXJ0aWNsZS1zaWRlYmFyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG5cbi5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbnMgLmFydGljbGUtc2lkZWJhciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtczsgfVxuICAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbnMgLmlzLXN0dWNrIC5hcnRpY2xlLXNpZGViYXIsXG4gIC5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyAuaXMtYW5jaG9yZWQgLmFydGljbGUtc2lkZWJhciB7XG4gICAgb3BhY2l0eTogMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyAuYXJ0aWNsZS1zaWRlYmFyIHtcbiAgICAgIGhlaWdodDogNzl2aDtcbiAgICAgIGhlaWdodDogY2FsYyg4MHZoIC0gODRweCk7IH1cbiAgICAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbnMgLmFydGljbGUtc2lkZWJhci1hY3Rpb24uc2lkZWJhci1hY3Rpb24tc2hhcmUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzYTQ0NDE7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzNhNDQ0MTtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgICAgIC5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbi5zaWRlYmFyLWFjdGlvbi1zaGFyZSBbZGF0YS1vcGVuPVwic2hhcmVNb2RhbFwiXSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbnMgLmFydGljbGUtc2lkZWJhci1hY3Rpb24uc2lkZWJhci1hY3Rpb24tc2hhcmUgW2RhdGEtb3Blbj1cInNoYXJlTW9kYWxcIl06aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjY2JhMTdkOyB9XG4gICAgLmFydGljbGUtc2lkZWJhci1hY3Rpb25zIC5hcnRpY2xlLXNpZGViYXItYWN0aW9uICsgLmFydGljbGUtc2lkZWJhci1hY3Rpb24ge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB6LWluZGV4OiA5OyB9XG4gICAgICAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbnMgLmFydGljbGUtc2lkZWJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAgIC5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxcmVtOyB9XG4gICAgICAgIC5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyAuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbiArIC5hcnRpY2xlLXNpZGViYXItYWN0aW9uIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMzYTQ0NDE7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucG9zdC10ZW1wbGF0ZS1zaW5nbGUtdmlkZW8gLmFydGljbGUtc2lkZWJhci1hY3Rpb25zIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjM2E0NDQxOyB9IH1cblxuLyoqXG4gKiAwMS4gR2xvYmFsXG4gKiAwMi4gTWFpbiBGb290ZXJcbiAqIDAzLiBTb2NpYWwgRm9vdGVyXG4gKiAwNC4gQ29weXJpZ2h0IEZvb3RlclxuICogMDUuIEJvdHRvbSBmb290ZXJcbiAqL1xuI2Zvb3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTsgfVxuXG4ubWFpbi1mb290ZXIgLnNpdGUtdGFnbGluZSB7XG4gIGZvbnQtc2l6ZTogNC41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogNHJlbTsgfVxuXG4ubWFpbi1mb290ZXIgYSB7XG4gIGNvbG9yOiAjZjlmNmYzO1xuICBmb250LXNpemU6IC44NzVyZW07IH1cbiAgLm1haW4tZm9vdGVyIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5tYWluLWZvb3RlciAubWVudSxcbi5tYWluLWZvb3RlciAuc3ViLW1lbnUge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi5tYWluLWZvb3RlciAuc3ViLW1lbnUge1xuICBtYXJnaW46IC41cmVtIDAgMDsgfVxuICAubWFpbi1mb290ZXIgLnN1Yi1tZW51IGEge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBwYWRkaW5nOiAxcmVtOyB9XG5cbi5tYWluLWZvb3RlciAuZm9vdGVyLW1lbnUge1xuICBtYXJnaW46IDFyZW0gLTFyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLm1haW4tZm9vdGVyIC5mb290ZXItbWVudSBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAubWFpbi1mb290ZXIgLmZvb3Rlci1tZW51IGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG4uZm9vdGVyLXNvY2lhbC1sb2dvIHtcbiAgbWFyZ2luOiAzMHB4IDAgMDtcbiAgbWF4LXdpZHRoOiAyMDBweDsgfVxuXG4uY29weXJpZ2h0LWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMxYjM0Mzc7XG4gIGNvbG9yOiAjMmM1NDU5O1xuICBmb250LXNpemU6IC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IC41cmVtIDAgMS41cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5jb3B5cmlnaHQtZm9vdGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIC5jb3B5cmlnaHQtZm9vdGVyIC5jb3B5cmlnaHQtbWVudS1jb250YWluZXIgYSB7XG4gICAgY29sb3I6ICMyYzU0NTk7IH1cbiAgICAuY29weXJpZ2h0LWZvb3RlciAuY29weXJpZ2h0LW1lbnUtY29udGFpbmVyIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNjYmExN2Q7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciB1bCwgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciB1bCB7XG4gICAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29weXJpZ2h0LWZvb3RlciAuY29weXJpZ2h0LW1lbnUtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciB1bCwgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDJyZW07IH1cbiAgICAgICAgLmNvcHlyaWdodC1mb290ZXIgLmNvcHlyaWdodC1tZW51LWNvbnRhaW5lciBsaSBhIHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLmJvdHRvbS1mb290ZXIgLmdyaWQtY29udGFpbmVyLCAuYm90dG9tLWZvb3RlciAubWVzaF9zZWN0aW9uIC5ncmlkLXgubWVzaC1yb3c6bm90KC5mdWxsLXdpZHRoKTpub3QoLmZ1bGwpOm5vdCguZnVsbHdpZHRoKSwgLm1lc2hfc2VjdGlvbiAuYm90dG9tLWZvb3RlciAuZ3JpZC14Lm1lc2gtcm93Om5vdCguZnVsbC13aWR0aCk6bm90KC5mdWxsKTpub3QoLmZ1bGx3aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7IH1cblxuI21lbnUtZm9vdGVyLm1lbnUgLmhhcy1idXR0b24gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAxLjU2MjVlbSAxLjU2MjVlbSAxLjVlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZmZjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gI21lbnUtZm9vdGVyLm1lbnUgLmhhcy1idXR0b24gYSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAjbWVudS1mb290ZXIubWVudSAuaGFzLWJ1dHRvbiBhOmhvdmVyLCAjbWVudS1mb290ZXIubWVudSAuaGFzLWJ1dHRvbiBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAjbWVudS1mb290ZXIubWVudSAuaGFzLWJ1dHRvbiBhOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICNjYmExN2Q7XG4gICAgY29sb3I6ICNjYmExN2Q7IH1cblxuLyoqXG4gKiAwMS4gV1AgQ29yZSBBbGlnbm1lbnRzXG4gKi9cbi5hbGlnbm5vbmUge1xuICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuXG4uYWxpZ25jZW50ZXIsXG5kaXYuYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiA1cHggYXV0byA1cHggYXV0bzsgfVxuXG4uYWxpZ25yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiA1cHggMCAyMHB4IDIwcHg7IH1cblxuLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuXG5hIGltZy5hbGlnbnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDVweCAwIDIwcHggMjBweDsgfVxuXG5hIGltZy5hbGlnbm5vbmUge1xuICBtYXJnaW46IDVweCAyMHB4IDIwcHggMDsgfVxuXG5hIGltZy5hbGlnbmxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cblxuYSBpbWcuYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4ud3AtY2FwdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG1heC13aWR0aDogOTYlO1xuICAvKiBJbWFnZSBkb2VzIG5vdCBvdmVyZmxvdyB0aGUgY29udGVudCBhcmVhICovXG4gIHBhZGRpbmc6IDVweCAzcHggMTBweDsgfVxuICAud3AtY2FwdGlvbi5zbWFsbC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLndwLWNhcHRpb24uc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAud3AtY2FwdGlvbi5zbWFsbC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC53cC1jYXB0aW9uLnNtYWxsLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLndwLWNhcHRpb24uc21hbGwtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAud3AtY2FwdGlvbi5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC53cC1jYXB0aW9uLnNtYWxsLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLndwLWNhcHRpb24uc21hbGwtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAud3AtY2FwdGlvbi5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC53cC1jYXB0aW9uLnNtYWxsLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC53cC1jYXB0aW9uLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC53cC1jYXB0aW9uLnNtYWxsLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC53cC1jYXB0aW9uLm1lZGl1bS0xIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTIge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTMge1xuICAgICAgd2lkdGg6IDI1JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTQge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTUge1xuICAgICAgd2lkdGg6IDQxLjY2NjY3JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTYge1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTcge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTgge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTkge1xuICAgICAgd2lkdGg6IDc1JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLndwLWNhcHRpb24ubWVkaXVtLTEwIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC53cC1jYXB0aW9uLm1lZGl1bS0xMSB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAud3AtY2FwdGlvbi5tZWRpdW0tMTIge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC53cC1jYXB0aW9uLmxhcmdlLTEge1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAud3AtY2FwdGlvbi5sYXJnZS0yIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC53cC1jYXB0aW9uLmxhcmdlLTMge1xuICAgICAgd2lkdGg6IDI1JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndwLWNhcHRpb24ubGFyZ2UtNCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAud3AtY2FwdGlvbi5sYXJnZS01IHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC53cC1jYXB0aW9uLmxhcmdlLTYge1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndwLWNhcHRpb24ubGFyZ2UtNyB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAud3AtY2FwdGlvbi5sYXJnZS04IHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyU7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC53cC1jYXB0aW9uLmxhcmdlLTkge1xuICAgICAgd2lkdGg6IDc1JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndwLWNhcHRpb24ubGFyZ2UtMTAge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndwLWNhcHRpb24ubGFyZ2UtMTEge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLndwLWNhcHRpb24ubGFyZ2UtMTIge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAud3AtY2FwdGlvbiAudW5kYXJrLWNhcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IC41cmVtOyB9XG4gIC53cC1jYXB0aW9uIHAge1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1ICFpbXBvcnRhbnQ7IH1cblxuLndwLWNhcHRpb24uYWxpZ25ub25lIHtcbiAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cblxuLndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcbiAgbWFyZ2luOiA1cHggMjBweCAyMHB4IDA7IH1cblxuLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gIG1hcmdpbjogNXB4IDAgMjBweCAyMHB4OyB9XG5cbi53cC1jYXB0aW9uIGltZyB7XG4gIGJvcmRlcjogMCBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiA5OC41JTtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IGF1dG87IH1cblxuLndwLWNhcHRpb24gcC53cC1jYXB0aW9uLXRleHQge1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgNHB4IDVweDsgfVxuXG4vKiBUZXh0IG1lYW50IG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNzU5YjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGhlaWdodDogYXV0bztcbiAgbGVmdDogNXB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAxNXB4IDIzcHggMTRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIHotaW5kZXg6IDEwMDAwMDtcbiAgLyogQWJvdmUgV1AgdG9vbGJhci4gKi8gfVxuXG4vKlxuICogMDAuIEdsb2JhbCBJdGVtc1xuICogMDEuIEJ1dHRvbnNcbiAqIDAyLiBCYW5uZXJzXG4gKiAwMy4gU3Vic2NyaXB0aW9uIEJhclxuICogMDQuIERlZmF1bHQgTG9vcCBCbG9ja1xuICogMDUuIEFuY2hvciBCYXJcbiAqIDA2LiBJY29uc1xuICogMDcuIFNoYXJlZGFkZHlcbiAqIDA4LiBFeHRlbmQgRW1iZWRcbiAqL1xuLnJldmVhbC1vdmVybGF5IHtcbiAgei1pbmRleDogMjAwMDsgfVxuICAucmV2ZWFsLW92ZXJsYXkgLmNsb3NlLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gICAgaGVpZ2h0OiAzM3B4O1xuICAgIHdpZHRoOiAzM3B4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTNweDsgfVxuICAgIC5yZXZlYWwtb3ZlcmxheSAuY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAucmV2ZWFsLW92ZXJsYXkgLmNsb3NlLWJ1dHRvbjpob3ZlciBzcGFuIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cblxuLmNsaWNrYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uYnV0dG9uLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgYnV0dG9uLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5idXR0b24udHJhbnNwYXJlbnQsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYS50cmFuc3BhcmVudCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24udHJhbnNwYXJlbnQsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLnRyYW5zcGFyZW50LCBidXR0b24udHJhbnNwYXJlbnQsIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0udHJhbnNwYXJlbnQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAuYnV0dG9uLmNvbGxhcHNlZCwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLmNvbGxhcHNlZCwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24uY29sbGFwc2VkLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbi5jb2xsYXBzZWQsIGJ1dHRvbi5jb2xsYXBzZWQsIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uY29sbGFwc2VkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhOmhvdmVyLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b246aG92ZXIsIGJ1dHRvbjpob3ZlciwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2JhMTdkO1xuICAgIGNvbG9yOiAjY2JhMTdkOyB9XG4gIFxuICAubWVudSAuYnV0dG9uLFxuICAubWVudSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsXG4gIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLm1lbnUgYSxcbiAgLm1lbnUgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b24sXG4gIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLm1lbnUgYnV0dG9uLFxuICAubWVudSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbixcbiAgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAubWVudSBidXR0b24sIC5tZW51IGJ1dHRvbiwgLm1lbnUgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAubWVudSAuYnV0dG9uOmhvdmVyLCAubWVudSAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGE6aG92ZXIsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLm1lbnUgYTpob3ZlciwgLm1lbnUgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiBidXR0b246aG92ZXIsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gLm1lbnUgYnV0dG9uOmhvdmVyLCAubWVudSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpob3ZlciwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAubWVudSBidXR0b246aG92ZXIsIC5tZW51IGJ1dHRvbjpob3ZlciwgLm1lbnUgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICNjYmExN2Q7IH1cbiAgICAgIC5tZW51IC5idXR0b246aG92ZXIgYSwgLm1lbnUgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhOmhvdmVyIGEsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLm1lbnUgYTpob3ZlciBhLCAubWVudSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbjpob3ZlciBhLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5tZW51IGJ1dHRvbjpob3ZlciBhLCAubWVudSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbjpob3ZlciBhLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5tZW51IGJ1dHRvbjpob3ZlciBhLCAubWVudSBidXR0b246aG92ZXIgYSwgLm1lbnUgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciBhIHtcbiAgICAgICAgY29sb3I6ICNjYmExN2QgIWltcG9ydGFudDsgfVxuXG4udGl0bGUtYmFubmVyLCAuY29udGVudC1iYW5uZXIge1xuICBiYWNrZ3JvdW5kOiAjMWIzNDM3O1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMS43NXJlbSAwIDEuMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzFiMzQzNztcbiAgLyogT2xkIGJyb3dzZXJzICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICMxYjM0MzcgMCUsICMyYzU0NTkgMTAwJSk7XG4gIC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICMxYjM0MzcgMCUsICMyYzU0NTkgMTAwJSk7XG4gIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzFiMzQzNyAwJSwgIzJjNTQ1OSAxMDAlKTtcbiAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPSckZ3JhZGllbnQtZGFyaycsIGVuZENvbG9yc3RyPSckZ3JhZGllbnQtbGlnaHQnLEdyYWRpZW50VHlwZT0xICk7XG4gIC8qIElFNi05ICovIH1cbiAgLnRpdGxlLWJhbm5lcjpiZWZvcmUsIC5jb250ZW50LWJhbm5lcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgaGVpZ2h0OiAzMDBweDtcbiAgICB3aWR0aDogNzUlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IH1cbiAgLnRpdGxlLWJhbm5lciA+ICosIC5jb250ZW50LWJhbm5lciA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudGl0bGUtYmFubmVyLmJhbm5lci1vdmVybGF5LCAuY29udGVudC1iYW5uZXIuYmFubmVyLW92ZXJsYXkge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAudGl0bGUtYmFubmVyLmJhbm5lci1vdmVybGF5OmJlZm9yZSwgLmNvbnRlbnQtYmFubmVyLmJhbm5lci1vdmVybGF5OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogIzdmOTQ4ZDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzFiMzQzNyAwJSwgIzJjNTQ1OSAxMDAlKTtcbiAgICAgIG9wYWNpdHk6IC42MjU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC50aXRsZS1iYW5uZXIuYmFubmVyLW92ZXJsYXksIC5jb250ZW50LWJhbm5lci5iYW5uZXItb3ZlcmxheSB7XG4gICAgICAgIHBhZGRpbmc6IDMuNXJlbSAwOyB9IH1cbiAgLnRpdGxlLWJhbm5lci5jb250ZW50LWJhbm5lciwgLmNvbnRlbnQtYmFubmVyLmNvbnRlbnQtYmFubmVyIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLnN1YnNjcmlwdGlvbi1iYXIge1xuICBiYWNrZ3JvdW5kOiAjMWIzNDM3O1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMXJlbSAuNXJlbSAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc3Vic2NyaXB0aW9uLWJhciA+IGRpdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zdWJzY3JpcHRpb24tYmFyIGgzIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnN1YnNjcmlwdGlvbi1iYXIgaW5wdXQuZW1haWwge1xuICAgIGJvcmRlcjogNHB4IHNvbGlkICNmOWY2ZjM7XG4gICAgY29sb3I6ICMxYjM0Mzc7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAuNXJlbSAuNzVyZW07XG4gICAgaGVpZ2h0OiAyLjY4NzVyZW07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLnN1YnNjcmlwdGlvbi1iYXIgaW5wdXQuZW1haWw6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjYmZiZmJmOyB9XG4gIC5zdWJzY3JpcHRpb24tYmFyIGJ1dHRvbiwgLnN1YnNjcmlwdGlvbi1iYXIgLmJ1dHRvbiwgLnN1YnNjcmlwdGlvbi1iYXIgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5zdWJzY3JpcHRpb24tYmFyIGEsIC5zdWJzY3JpcHRpb24tYmFyIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5zdWJzY3JpcHRpb24tYmFyIGJ1dHRvbiwgLnN1YnNjcmlwdGlvbi1iYXIgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiBidXR0b24sIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gLnN1YnNjcmlwdGlvbi1iYXIgYnV0dG9uLCAuc3Vic2NyaXB0aW9uLWJhciBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBwYWRkaW5nOiAuNjI1cmVtIDIuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuc3Vic2NyaXB0aW9uLWJhci5ob3Jpem9udGFsIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnN1YnNjcmlwdGlvbi1iYXIuaG9yaXpvbnRhbCBidXR0b24sIC5zdWJzY3JpcHRpb24tYmFyLmhvcml6b250YWwgLmJ1dHRvbiwgLnN1YnNjcmlwdGlvbi1iYXIuaG9yaXpvbnRhbCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIGEsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgLnN1YnNjcmlwdGlvbi1iYXIuaG9yaXpvbnRhbCBhLCAuc3Vic2NyaXB0aW9uLWJhci5ob3Jpem9udGFsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAjaW5maW5pdGUtaGFuZGxlIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIC5zdWJzY3JpcHRpb24tYmFyLmhvcml6b250YWwgYnV0dG9uLCAuc3Vic2NyaXB0aW9uLWJhci5ob3Jpem9udGFsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5zdWJzY3JpcHRpb24tYmFyLmhvcml6b250YWwgYnV0dG9uLCAuc3Vic2NyaXB0aW9uLWJhci5ob3Jpem9udGFsIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIHBhZGRpbmc6IC43NXJlbSAyLjc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnN1YnNjcmlwdGlvbi1iYXIuaG9yaXpvbnRhbCBpbnB1dC5lbWFpbCB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDE4MHB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuc3Vic2NyaXB0aW9uLWJhci5ob3Jpem9udGFsIC5jbGVhciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cbiAgLnN1YnNjcmlwdGlvbi1iYXIudmVydGljYWwgaDMge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuc3Vic2NyaXB0aW9uLWJhci52ZXJ0aWNhbCBidXR0b24sIC5zdWJzY3JpcHRpb24tYmFyLnZlcnRpY2FsIC5idXR0b24sIC5zdWJzY3JpcHRpb24tYmFyLnZlcnRpY2FsIC5yZXNvcnRtZW50LWNvbnRhaW5lciAuYWN0aXZlLWZpbHRlcnMgdWwgbGkgYSwgLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSAuc3Vic2NyaXB0aW9uLWJhci52ZXJ0aWNhbCBhLCAuc3Vic2NyaXB0aW9uLWJhci52ZXJ0aWNhbCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuc3Vic2NyaXB0aW9uLWJhci52ZXJ0aWNhbCBidXR0b24sIC5zdWJzY3JpcHRpb24tYmFyLnZlcnRpY2FsIC5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciAuaW5maW5pdGUtbG9hZGVyIHNwYW4gYnV0dG9uLCAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIC5zdWJzY3JpcHRpb24tYmFyLnZlcnRpY2FsIGJ1dHRvbiwgLnN1YnNjcmlwdGlvbi1iYXIudmVydGljYWwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG5cbi5ibG9jaywgLmxvb3AtYmxvY2sgLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiA0cHggc29saWQgI2Y5ZjZmMztcbiAgcGFkZGluZzogMXJlbSAxcmVtIC43NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgNDAwbXM7IH1cblxuLmJsb2NrLXdyYXBwZXIge1xuICBtYXJnaW46IDAgLTAuNXJlbTsgfVxuICAuYmxvY2std3JhcHBlciA+IGJyLCAuYmxvY2std3JhcHBlciBwOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5ibG9jay1jb250YWluZXIge1xuICBwYWRkaW5nOiAwcmVtIC41cmVtIDFyZW07IH1cblxuLmxvb3AtYmxvY2sge1xuICBwYWRkaW5nOiAwcmVtIDAuNXJlbSAxcmVtOyB9XG4gIC5sb29wLWJsb2NrIC5jb250ZW50LWNvbnRhaW5lciB7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDsgfVxuICAgIC5sb29wLWJsb2NrIC5jb250ZW50LWNvbnRhaW5lciAuY2F0ZWdvcnktYmxvY2sge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMTJweDsgfVxuICAgICAgLmxvb3AtYmxvY2sgLmNvbnRlbnQtY29udGFpbmVyIC5jYXRlZ29yeS1ibG9jayBhLCAubG9vcC1ibG9jayAuY29udGVudC1jb250YWluZXIgLmNhdGVnb3J5LWJsb2NrIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMWIzNDM3O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgcGFkZGluZzogLjM3NXJlbSAuNjI1cmVtOyB9XG4gICAgICAubG9vcC1ibG9jayAuY29udGVudC1jb250YWluZXIgLmNhdGVnb3J5LWJsb2NrIGE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjN2Y5NDhkOyB9XG5cbi5hbmNob3ItYmFyLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogLTI1cHggMCAycmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5hbmNob3ItYmFyLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5hbmNob3ItYmFyLWNvbnRhaW5lciA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuYW5jaG9yLWJhci1jb250YWluZXIgLmFuY2hvci1iYXItd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZDogIzdmOTQ4ZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNTsgfVxuICAuYW5jaG9yLWJhci1jb250YWluZXIgLmFuY2hvci1iYXIge1xuICAgIGJhY2tncm91bmQ6ICM3Zjk0OGQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNTtcbiAgICBtYXJnaW46IDAgLTAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmFuY2hvci1iYXItY29udGFpbmVyIC5hbmNob3ItYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmFuY2hvci1iYXItY29udGFpbmVyIC5hbmNob3ItYmFyIHVsIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgIC8qIERlZmF1bHQgKi9cbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogNzsgfVxuICAgIC5hbmNob3ItYmFyLWNvbnRhaW5lciAuYW5jaG9yLWJhciBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgLyogRGVmYXVsdCAqL1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbWFyZ2luOiAuNXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICAgICAgLmFuY2hvci1iYXItY29udGFpbmVyIC5hbmNob3ItYmFyIGxpIHNwYW4ge1xuICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMnJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5hbmNob3ItYmFyLWNvbnRhaW5lciAuYW5jaG9yLWJhciBsaS5sb2FkLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjM0Mzc7IH1cbiAgICAgIC5hbmNob3ItYmFyLWNvbnRhaW5lciAuYW5jaG9yLWJhciBsaTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjcsIDUyLCA1NSwgMC4zKTsgfVxuICAgIC5hbmNob3ItYmFyLWNvbnRhaW5lciAuYW5jaG9yLWJhciAuYW5jaG9yLWJnIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6ICMxYjM0Mzc7XG4gICAgICB6LWluZGV4OiA2O1xuICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgLmFuY2hvci1iYXItY29udGFpbmVyIC5hbmNob3ItYmFyLXNwYWNlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYW5jaG9yLWJhci1jb250YWluZXIuYW5jaG9yLWJhci1maXhlZCAuYW5jaG9yLWJhci1zcGFjZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hbmNob3ItYmFyLWNvbnRhaW5lci5hbmNob3ItYmFyLWZpeGVkIC5hbmNob3ItYmFyLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDEuNTYyNXJlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgICBib3gtc2hhZG93OiAwcHggNHB4IDEwcHggcmdiYSgyNywgNTIsIDU1LCAwLjE1KTsgfVxuICAgIC5oZWFkZXItZml4ZWQgLmFuY2hvci1iYXItY29udGFpbmVyLmFuY2hvci1iYXItZml4ZWQgLmFuY2hvci1iYXItd3JhcHBlciwgLmhlYWRlci1jbGlja2VkIC5hbmNob3ItYmFyLWNvbnRhaW5lci5hbmNob3ItYmFyLWZpeGVkIC5hbmNob3ItYmFyLXdyYXBwZXIge1xuICAgICAgdG9wOiAzLjI1cmVtOyB9XG4gICAgLndpdGgtdXRpbGl0eSAuYW5jaG9yLWJhci1jb250YWluZXIuYW5jaG9yLWJhci1maXhlZCAuYW5jaG9yLWJhci13cmFwcGVyIHtcbiAgICAgIHRvcDogNC44NzVyZW07IH1cbiAgICAuYWRtaW4tYmFyIC5hbmNob3ItYmFyLWNvbnRhaW5lci5hbmNob3ItYmFyLWZpeGVkIC5hbmNob3ItYmFyLXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogMzJweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAuYW5jaG9yLWJhci1jb250YWluZXIuYW5jaG9yLWJhci1maXhlZCAuYW5jaG9yLWJhci13cmFwcGVyIHtcbiAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4uYW5jaG9yLWp1bXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi10b3A6IC00LjI1cmVtOyB9XG4gIGJvZHkuYWRtaW4tYmFyIC5hbmNob3ItanVtcCB7XG4gICAgbWFyZ2luLXRvcDogLTYuMjVyZW07IH1cblxuLmJsb2NrLWljb24ge1xuICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG5cbi5zaGFyZWRhZGR5IGxpIGEge1xuICBmb250LXNpemU6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC42MjVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHggIWltcG9ydGFudDsgfVxuICAuc2hhcmVkYWRkeSBsaSBhOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaGFyZWRhZGR5IGxpIGE6YWZ0ZXIge1xuICAgIGZvbnQtc2l6ZTogLjkzNzVyZW07XG4gICAgZm9udC1mYW1pbHk6ICd1bmRhcmsnICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uZW1iZWQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5lbWJlZC13cmFwcGVyIGlmcmFtZSxcbiAgLmVtYmVkLXdyYXBwZXIgb2JqZWN0LFxuICAuZW1iZWQtd3JhcHBlciBlbWJlZCxcbiAgLmVtYmVkLXdyYXBwZXIgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cblxuLyoqXG4gKiAwMS4gVG9wIGFydGljbGVzXG4gKiAwMi4gRmVhdHVyZWQgYXJ0aWNsZVxuICogMDMuIExhcmdlIEZlYXR1cmVkXG4gKiAwNC4gUG9kY2FzdFxuICogMDUuIExhdGVzdCBQb3N0c1xuICogMDYuIERvY3VtZW50YXJpZXNcbiAqL1xuI3RvcC1hcnRpY2xlcyB7XG4gIGJvcmRlci10b3A6IDIuMjVyZW0gc29saWQgIzBhMGEwYTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICN0b3AtYXJ0aWNsZXMge1xuICAgICAgYm9yZGVyLXRvcDogNi4yNXJlbSBzb2xpZCAjMGEwYTBhOyB9IH1cblxuLmZlYXR1cmVkLWFydGljbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IC0zLjc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmZlYXR1cmVkLWFydGljbGUge1xuICAgICAgbWFyZ2luLXRvcDogLTUuNzVyZW07IH0gfVxuICAuZmVhdHVyZWQtYXJ0aWNsZSAuYmFja2dyb3VuZC1saWdodC1ncmF5IHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIGJhY2tncm91bmQtY29sb3IgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpLCBiYWNrZ3JvdW5kLWJsZW5kLW1vZGUgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gICAgLmZlYXR1cmVkLWFydGljbGUgLmJhY2tncm91bmQtbGlnaHQtZ3JheTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIzNDM3O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5mZWF0dXJlZC1hcnRpY2xlIC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXk6aG92ZXIgLmZlYXR1cmVkLWFydGljbGUtdG9wIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjsgfSB9XG4gICAgICAuZmVhdHVyZWQtYXJ0aWNsZSAuYmFja2dyb3VuZC1saWdodC1ncmF5OmhvdmVyIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmZlYXR1cmVkLWFydGljbGUgLmJhY2tncm91bmQtbGlnaHQtZ3JheTpob3ZlciAucG9zdC1jYXRlZ29yeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgLmZlYXR1cmVkLWFydGljbGUgLmJhY2tncm91bmQtbGlnaHQtZ3JheTpob3ZlciAucG9zdC1jYXRlZ29yeSBhIHtcbiAgICAgICAgICBjb2xvcjogIzFiMzQzNzsgfVxuICAuZmVhdHVyZWQtYXJ0aWNsZSAuZmVhdHVyZWQtYXJ0aWNsZS10b3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmZlYXR1cmVkLWFydGljbGUgLmZlYXR1cmVkLWFydGljbGUtdG9wIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmZlYXR1cmVkLWFydGljbGUgLmZlYXR1cmVkLWFydGljbGUtdG9wOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMCwgMTAsIDAuMyk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAxOyB9XG4gICAgICAuZmVhdHVyZWQtYXJ0aWNsZSAuZmVhdHVyZWQtYXJ0aWNsZS10b3AgLmFydGljbGUtY29udGVudCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgei1pbmRleDogMzsgfVxuICAgICAgICAuZmVhdHVyZWQtYXJ0aWNsZSAuZmVhdHVyZWQtYXJ0aWNsZS10b3AgLmFydGljbGUtY29udGVudCBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIGFuZCAobWF4LXdpZHRoOiAxMTgwcHgpIHtcbiAgICAgIC5mZWF0dXJlZC1hcnRpY2xlIC5mZWF0dXJlZC1hcnRpY2xlLXRvcCAuYXJ0aWNsZS10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi44NzVyZW07IH0gfVxuXG4jbGFyZ2UtZmVhdHVyZWQge1xuICBib3JkZXItdG9wOiA0cmVtIHNvbGlkICMwYTBhMGE7IH1cbiAgI2xhcmdlLWZlYXR1cmVkIC5sYXJnZS1mZWF0dXJlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC00cmVtOyB9XG5cbi5sYXJnZS1mZWF0dXJlZC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXkge1xuICB0cmFuc2l0aW9uOiBjb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC5sYXJnZS1mZWF0dXJlZC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjM0Mzc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAubGFyZ2UtZmVhdHVyZWQuYmFja2dyb3VuZC1saWdodC1ncmF5OmhvdmVyIGEsXG4gICAgLmxhcmdlLWZlYXR1cmVkLmJhY2tncm91bmQtbGlnaHQtZ3JheTpob3ZlciAuYnlsaW5lLWF1dGhvciB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5sYXJnZS1mZWF0dXJlZC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXk6aG92ZXIgLmJ5bGluZS1kYXRlLFxuICAgIC5sYXJnZS1mZWF0dXJlZC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXk6aG92ZXIgLnBvc3QtY2F0ZWdvcnkgYSB7XG4gICAgICBjb2xvcjogI2JmYmZiZiAhaW1wb3J0YW50OyB9XG5cbi5hcnRpY2xlLXBvZGNhc3QtZmVhdHVyZWQgLmxvb3AtcG9zdC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYXJ0aWNsZS1wb2RjYXN0LWZlYXR1cmVkIC5pY29uLXBvZGNhc3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgZm9udC1zaXplOiA2MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsaW5lLWhlaWdodDogODBweDtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi5wb2RjYXN0LXRpdGxlIC5sb29wLXBvc3QtdGl0bGUge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuXG4ucG9kY2FzdC10aXRsZSArIC5hcnRpY2xlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiZmJmYmY7XG4gIHBhZGRpbmctdG9wOiA1MXB4OyB9XG5cbi5wb2RjYXN0LXRpdGxlIH4gLmFydGljbGUge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAjbGF0ZXN0LXBvc3RzIC5jZWxsIH4gLmNlbGwge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH0gfVxuXG4jZG9jdW1lbnRhcmllcy1zZWN0aW9uIC5sb29wLXBvc3QtdGl0bGUge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbiNkb2N1bWVudGFyaWVzLXNlY3Rpb24gLmZlYXR1cmVkLWFydGljbGUtY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuI2RvY3VtZW50YXJpZXMtc2VjdGlvbiAudHJ1c3Mtc3Jjc2V0LWltYWdlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIDAxLiBBcnRpY2xlIENvbnRlbnQgQ29udGFpbmVyXG4gKiAwMi4gU2hhcmUgVVJMIEZvcm1cbiAqIDAzLiBSZXB1Ymxpc2ggUGFuZWxcbiAqIDA0LiBMYXN0ZXN0IFBvc3RzIFNjcm9sbGVyXG4gKiAwNS4gQ29tbWVudHMgQ1RBXG4gKiAwNi4gSW1hZ2UgSGVhZGVyXG4gKiAwNy4gT3BpbmlvblxuICogMDguIFZpZGVvXG4gKiAwOS4gQXJ0aWNsZSBGb290ZXJcbiAqIDEwLiBQcm9ncmVzc1xuICogMTEuIEZ1bGx3aWR0aCBpbWFnZS92aWRlb1xuICogMTIuIEZvb3RlciBTaGFyaW5nXG4gKi9cbi5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSB7XG4gIGJhY2tncm91bmQ6ICMxNzE3MTc7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAjYXJ0aWNsZS1mb290ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxNzE3MTc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgW3JvbGU9XCJtYWluXCJdIC5lbnRyeS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLmFydGljbGUtY29udGVudC1jb250YWluZXI6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGEwYTBhOyB9XG4gIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lciAuZW50cnktY29udGVudCBhIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lciAuZW50cnktY29udGVudCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjY2JhMTdkOyB9XG4gIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGEwYTBhOyB9XG4gIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0ge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7IH1cbiAgICAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIC5idXR0b24sIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gLnJlc29ydG1lbnQtY29udGFpbmVyIC5hY3RpdmUtZmlsdGVycyB1bCBsaSBhLCAucmVzb3J0bWVudC1jb250YWluZXIgLmFjdGl2ZS1maWx0ZXJzIHVsIGxpIC5zaW5nbGUuZGFyay1iYWNrZ3JvdW5kIFtyb2xlPVwibWFpblwiXSAubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUgLm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0gYSwgLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgW3JvbGU9XCJtYWluXCJdIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgI2luZmluaXRlLWhhbmRsZSBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyICNpbmZpbml0ZS1oYW5kbGUgc3BhbiAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGJ1dHRvbiwgLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgW3JvbGU9XCJtYWluXCJdIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAubmV3c2xldHRlci1zaWdudXAtZm9ybSAuaW5maW5pdGUtc2Nyb2xsIC5pbmZpbml0ZS1jb250YWluZXIgLmluZmluaXRlLWxvYWRlciBzcGFuIGJ1dHRvbiwgLmluZmluaXRlLXNjcm9sbCAuaW5maW5pdGUtY29udGFpbmVyIC5pbmZpbml0ZS1sb2FkZXIgc3BhbiAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIGJ1dHRvbiB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5nZm9ybV9ib2R5IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5nZm9ybV9ib2R5IGlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIC8qIEZpcmVmb3ggMTgtICovXG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgW3JvbGU9XCJtYWluXCJdIC5uZXdzbGV0dGVyLWJsb2NrLXNob3J0Y29kZSAuZ2Zvcm1fYm9keSBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgLyogRmlyZWZveCAxOSsgKi9cbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0gLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIC5nZm9ybV9ib2R5IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgW3JvbGU9XCJtYWluXCJdIC53cC1jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4uYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJhY2tncm91bmQ6ICNmOWY2ZjM7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFyZW07XG4gICAgcmlnaHQ6IC0xcmVtO1xuICAgIHRvcDogLTFyZW07XG4gICAgei1pbmRleDogMTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lcjpiZWZvcmUge1xuICAgICAgICBsZWZ0OiAtMnJlbTtcbiAgICAgICAgcmlnaHQ6IC0ycmVtO1xuICAgICAgICB0b3A6IC0ycmVtOyB9IH1cbiAgICAjc2luZ2xlLWltYWdlLWhlYWRlci10ZW1wbGF0ZSAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lcjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwOyB9XG4gICAgLnBvc3QtdGVtcGxhdGUtc2luZ2xlLWJyZWF0aHRha2luZyAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lcjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwOyB9XG4gIC5wb3N0LXRlbXBsYXRlLXNpbmdsZS12aWRlbyAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lcjpiZWZvcmUsXG4gIC5wb3N0LXRlbXBsYXRlLXNpbmdsZS1wb2RjYXN0IC5hcnRpY2xlLWNvbnRlbnQtY29udGFpbmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogaW5pdGlhbDsgfVxuICAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lciA+IGhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLmFydGljbGUtY29udGVudC1jb250YWluZXIgLnBvc3QtaGVhZGVyLXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLmFydGljbGUtY29udGVudC1jb250YWluZXIgLnBvc3QtaGVhZGVyLXN1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4OyB9IH1cbiAgLmFydGljbGUtY29udGVudC1jb250YWluZXIgLmVudHJ5LWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuICAuYXJ0aWNsZS1jb250ZW50LWNvbnRhaW5lciAuZmVhdHVyZWQtaW1hZ2UtY2FwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMS4xMjVyZW07IH1cblxuLnNpbmdsZSAuZW50cnktY29udGVudCBhLCAucGFnZSAuZW50cnktY29udGVudCBhIHtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5zaW5nbGUgLmVudHJ5LWNvbnRlbnQgYTpob3ZlciwgLnBhZ2UgLmVudHJ5LWNvbnRlbnQgYTpob3ZlciB7XG4gICAgY29sb3I6ICNjYmExN2Q7IH1cblxuLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgLmVudHJ5LWNvbnRlbnQgYSwgLnNpbmdsZS5wYWdlLXRlbXBsYXRlLXBhZ2Utc3BlY2lhbC1wcm9qZWN0cy1waHAgLmVudHJ5LWNvbnRlbnQgYSwgLnNpbmdsZS5wYWdlLXRlbXBsYXRlLXBhZ2UtYnJlYXRodGFraW5nIC5lbnRyeS1jb250ZW50IGEsIC5wYWdlLmRhcmstYmFja2dyb3VuZCAuZW50cnktY29udGVudCBhLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2Utc3BlY2lhbC1wcm9qZWN0cy1waHAgLmVudHJ5LWNvbnRlbnQgYSwgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWJyZWF0aHRha2luZyAuZW50cnktY29udGVudCBhIHtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLnNpbmdsZS5kYXJrLWJhY2tncm91bmQgLmVudHJ5LWNvbnRlbnQgYTpob3ZlciwgLnNpbmdsZS5wYWdlLXRlbXBsYXRlLXBhZ2Utc3BlY2lhbC1wcm9qZWN0cy1waHAgLmVudHJ5LWNvbnRlbnQgYTpob3ZlciwgLnNpbmdsZS5wYWdlLXRlbXBsYXRlLXBhZ2UtYnJlYXRodGFraW5nIC5lbnRyeS1jb250ZW50IGE6aG92ZXIsIC5wYWdlLmRhcmstYmFja2dyb3VuZCAuZW50cnktY29udGVudCBhOmhvdmVyLCAucGFnZS5wYWdlLXRlbXBsYXRlLXBhZ2Utc3BlY2lhbC1wcm9qZWN0cy1waHAgLmVudHJ5LWNvbnRlbnQgYTpob3ZlciwgLnBhZ2UucGFnZS10ZW1wbGF0ZS1wYWdlLWJyZWF0aHRha2luZyAuZW50cnktY29udGVudCBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2NiYTE3ZDsgfVxuXG4jc2hhcmUtdXJsLWZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgI3NoYXJlLXVybC1mb3JtIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDVweCAxNXB4OyB9XG4gICNzaGFyZS11cmwtZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6ICNjYmExN2Q7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7IH1cbiAgICAjc2hhcmUtdXJsLWZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl06YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgd2hpdGUpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwOyB9XG5cbltkYXRhLXRvZ2dsZT1cInJlcHVibGlzaC1wYW5lbFwiXSB7XG4gIGNvbG9yOiAjY2JhMTdkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKlxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRnb2xkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0aGVpZ2h0OiA5MHB4O1xuXHRcdHdpZHRoOiA5MHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA5MHB4O1xuXG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlciB7XG5cdFx0XHRmb250LXNpemU6IDM1cHg7XG5cblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHR0b3A6IDVweDtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGJvdHRvbTogNXB4O1xuXHRcdH1cblx0fVxuXHQqLyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIFtkYXRhLXRvZ2dsZT1cInJlcHVibGlzaC1wYW5lbFwiXSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7IH1cbiAgICAgIFtkYXRhLXRvZ2dsZT1cInJlcHVibGlzaC1wYW5lbFwiXTpiZWZvcmUsIFtkYXRhLXRvZ2dsZT1cInJlcHVibGlzaC1wYW5lbFwiXTphZnRlciB7XG4gICAgICAgIGxlZnQ6IDEwMCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkge1xuICAgIFtkYXRhLXRvZ2dsZT1cInJlcHVibGlzaC1wYW5lbFwiXSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JhMTdkO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMjBweDsgfVxuICAgICAgW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdOmJlZm9yZSwgW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdOmFmdGVyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICd1bmRhcmsnICFpbXBvcnRhbnQ7XG4gICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAgICAgW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwi7qSOXCI7XG4gICAgICAgIHRvcDogMTBweDsgfVxuICAgICAgW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCLupI9cIjtcbiAgICAgICAgYm90dG9tOiAxMHB4OyB9IH1cbiAgI2FydGljbGUtZm9vdGVyIFtkYXRhLXRvZ2dsZT1cInJlcHVibGlzaC1wYW5lbFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnBvc3QtdGVtcGxhdGUtc2luZ2xlLW9waW5pb24gLm9waW5pb24taGVhZGVyLWNvbnRhaW5lciBbZGF0YS10b2dnbGU9XCJyZXB1Ymxpc2gtcGFuZWxcIl0ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5wb3N0LXRlbXBsYXRlLXNpbmdsZS1vcGluaW9uIC5vcGluaW9uLWhlYWRlci1jb250YWluZXIgW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdOmJlZm9yZSwgLnBvc3QtdGVtcGxhdGUtc2luZ2xlLW9waW5pb24gLm9waW5pb24taGVhZGVyLWNvbnRhaW5lciBbZGF0YS10b2dnbGU9XCJyZXB1Ymxpc2gtcGFuZWxcIl06YWZ0ZXIge1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IGluaXRpYWw7IH1cblxuLmxhdGVzdC1wb3N0cy1jb250YWluZXIge1xuICBwYWRkaW5nLWJvdHRvbTogLjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmxhdGVzdC1wb3N0cy1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9IH1cblxuLmxhdGVzdC1wb3N0cy1zbGlkZXIge1xuICBvcGFjaXR5OiAwO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtczsgfVxuICAubGF0ZXN0LXBvc3RzLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4OyB9IH1cbiAgICAubGF0ZXN0LXBvc3RzLXNsaWRlciAuc2xpY2stbGlzdDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsICMwYTBhMGEpO1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDQ7IH1cbiAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLnNsaWNrLWFycm93IHtcbiAgICBmb250LXNpemU6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC03cHg7IH1cbiAgICAubGF0ZXN0LXBvc3RzLXNsaWRlciAuc2xpY2stYXJyb3c6YmVmb3JlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAndW5kYXJrJyAhaW1wb3J0YW50O1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zOyB9XG4gICAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLnNsaWNrLWFycm93LnNsaWNrLXByZXYge1xuICAgICAgcmlnaHQ6IDQ0cHg7IH1cbiAgICAgIC5sYXRlc3QtcG9zdHMtc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwi7qSHXCI7IH1cbiAgICAubGF0ZXN0LXBvc3RzLXNsaWRlciAuc2xpY2stYXJyb3cuc2xpY2stbmV4dCB7XG4gICAgICByaWdodDogMTZweDsgfVxuICAgICAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLnNsaWNrLWFycm93LnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCLupIhcIjsgfVxuICAgIC5sYXRlc3QtcG9zdHMtc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgb3BhY2l0eTogLjM7IH1cbiAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLmxhdGVzdC1wb3N0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLmxhdGVzdC1wb3N0Omxhc3Qtb2YtdHlwZSA+ICoge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG4gICAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLmxhdGVzdC1wb3N0ID4gKiB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTVkZmQ5OyB9XG4gICAgLmxhdGVzdC1wb3N0cy1zbGlkZXIgLmxhdGVzdC1wb3N0IC5lbnRyeS10aXRsZSB7XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5sYXRlc3QtcG9zdHMtc2xpZGVyIC5sYXRlc3QtcG9zdCBpbWcge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgd2lkdGg6IDQwcHg7IH1cbiAgLmxhdGVzdC1wb3N0cy1zbGlkZXIuc2xpY2staW5pdGlhbGl6ZWQge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgICAubGF0ZXN0LXBvc3RzLXNsaWRlci5zbGljay1pbml0aWFsaXplZCAubGF0ZXN0LXBvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmNvbW1lbnRzLWN0YSB7XG4gIGNvbG9yOiAjY2JhMTdkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuY29tbWVudHMtY3RhIC5jb21tZW50cy1udW1iZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNvbW1lbnRzLWN0YTpob3ZlciAuY29tbWVudHMtbnVtYmVyIHtcbiAgICBjb2xvcjogI2NiYTE3ZDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb21tZW50cy1jdGEgLmNvbW1lbnRzLW51bWJlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogNTBweDsgfSB9XG5cbiNzaW5nbGUtaW1hZ2UtaGVhZGVyLXRlbXBsYXRlIGFydGljbGUucG9zdCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgYm9keTpub3QoLmRhcmstYmFja2dyb3VuZCkgI3NpbmdsZS1pbWFnZS1oZWFkZXItdGVtcGxhdGUgYXJ0aWNsZS5wb3N0IHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICNzaW5nbGUtaW1hZ2UtaGVhZGVyLXRlbXBsYXRlIGFydGljbGUucG9zdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMi41cmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTEwMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAjc2luZ2xlLWltYWdlLWhlYWRlci10ZW1wbGF0ZSBhcnRpY2xlLnBvc3Qge1xuICAgICAgbWFyZ2luLWxlZnQ6IDVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMTUwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm9waW5pb24taGVhZGVyLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5vcGluaW9uLWhlYWRlci1jb250ZW50OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQ6ICNmOWY2ZjM7XG4gICAgICBoZWlnaHQ6IDE1MHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgei1pbmRleDogLTE7IH1cbiAgICAub3Bpbmlvbi1oZWFkZXItY29udGVudCA+IC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXkge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTsgfSB9XG5cbi5vcGluaW9uLWhlYWRlci1jb250ZW50IC5wb3N0LWhlYWRlci1zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogMS4zOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm9waW5pb24taGVhZGVyLWNvbnRlbnQgLnBvc3QtaGVhZGVyLXN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5vcGluaW9uLWhlYWRlci1jb250ZW50IC5ieWxpbmUuYnlsaW5lLWVudHJ5LW1ldGEgLmJ5bGluZS1pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5iYWNrZ3JvdW5kLWltYWdlLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5iYWNrZ3JvdW5kLWltYWdlLWNvbnRhaW5lciB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9IH1cblxuLm9waW5pb24tYXV0aG9yIHtcbiAgbWFyZ2luOiAtNDBweCBhdXRvIDIwcHg7XG4gIG1heC13aWR0aDogMzgwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAub3Bpbmlvbi1hdXRob3IgaW1nIHtcbiAgICBib3JkZXI6IDEwcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHdpZHRoOiAxMDBweDsgfVxuXG4udmlkZW8tZW1iZWQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTUwcHg7IH1cbiAgLnZpZGVvLWVtYmVkLWNvbnRhaW5lciAucmVzcG9uc2l2ZS1lbWJlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTEwMHB4OyB9XG5cbi5wb3N0LWFydGljbGUtc2hhcmUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZGZkOTtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgcGFkZGluZy10b3A6IDJyZW07IH1cblxuLmFydGljbGUtcHJvZ3Jlc3MgLmFydGljbGUtcHJvZ3Jlc3MtcGVyY2VudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICB3aWR0aDogMTNweDtcbiAgbWFyZ2luOiAwIGF1dG8gMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA0MDBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICAuYXJ0aWNsZS1wcm9ncmVzcyAuYXJ0aWNsZS1wcm9ncmVzcy1wZXJjZW50OmJlZm9yZSwgLmFydGljbGUtcHJvZ3Jlc3MgLmFydGljbGUtcHJvZ3Jlc3MtcGVyY2VudDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA2cHg7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNDAwbXM7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC5hcnRpY2xlLXByb2dyZXNzIC5hcnRpY2xlLXByb2dyZXNzLXBlcmNlbnQ6YmVmb3JlIHtcbiAgICBib3R0b206IDEwMCU7IH1cbiAgLmFydGljbGUtcHJvZ3Jlc3MgLmFydGljbGUtcHJvZ3Jlc3MtcGVyY2VudDphZnRlciB7XG4gICAgdG9wOiAxMDAlOyB9XG4gIC5hcnRpY2xlLXByb2dyZXNzIC5hcnRpY2xlLXByb2dyZXNzLXBlcmNlbnQ6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGluaXRpYWw7IH1cbiAgLmFydGljbGUtcHJvZ3Jlc3MgLmFydGljbGUtcHJvZ3Jlc3MtcGVyY2VudDpsYXN0LW9mLXR5cGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGluaXRpYWw7IH1cbiAgLmFydGljbGUtcHJvZ3Jlc3MgLmFydGljbGUtcHJvZ3Jlc3MtcGVyY2VudC5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuYXJ0aWNsZS1wcm9ncmVzcyAuYXJ0aWNsZS1wcm9ncmVzcy1wZXJjZW50LmFjdGl2ZTpiZWZvcmUsIC5hcnRpY2xlLXByb2dyZXNzIC5hcnRpY2xlLXByb2dyZXNzLXBlcmNlbnQuYWN0aXZlOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgYm9keTpub3QoLnBvc3QtdGVtcGxhdGUtc2luZ2xlLW9waW5pb24pIC5zaGFyaW5nLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgYm9keTpub3QoLnBvc3QtdGVtcGxhdGUtc2luZ2xlLW9waW5pb24pIC5zaGFyaW5nLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IDVyZW07IH0gfVxuXG4vKipcbiAqIDAxLiBHbG9iYWxcbiAqIDAyLiBBcnRpY2xlIFRvcCAoSW5kZXgpXG4gKiAwMy4gRG9jdW1lbnRhcmllc1xuICogMDQuIFBvZGNhc3RcbiAqL1xuYm9keS5ibG9nIHtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTsgfVxuXG4ucG9zdC1hcmNoaXZlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuXG5ib2R5Om5vdCgudGVybS1maWd1cmVzKSAuYXJ0aWNsZS10ZWFzZS50b3Age1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgYm9keTpub3QoLnRlcm0tZmlndXJlcykgLmFydGljbGUtdGVhc2UudG9wIC5sb29wLXBvc3QtY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjZmMztcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIGJvZHk6bm90KC50ZXJtLWZpZ3VyZXMpIC5hcnRpY2xlLXRlYXNlLnRvcCAubG9vcC1wb3N0LWNvbnRlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBwYWRkaW5nOiA0cmVtO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDI1JTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfSB9XG4gIGJvZHk6bm90KC50ZXJtLWZpZ3VyZXMpIC5hcnRpY2xlLXRlYXNlLnRvcCAubG9vcC1wb3N0LWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgYm9keTpub3QoLnRlcm0tZmlndXJlcykgLmFydGljbGUtdGVhc2UudG9wIC5sb29wLXBvc3QtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuYm9keS50ZXJtLWZpZ3VyZXMgLmFydGljbGUtdGVhc2UudG9wIC5sb29wLXBvc3QtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDJyZW07IH1cblxuLmxvb3AtcG9zdC1wb2RjYXN0IC5sb29wLXBvc3QtaW1hZ2U6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6ICd1bmRhcmsnICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCLupIVcIjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiA2MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBsaW5lLWhlaWdodDogODBweDtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi8qKlxuICogMDEuIExhbmRpbmcgUGFnZVxuICogMDIuIFBhZ2UgTmF2aWdhdGlvblxuICovXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWJyZWF0aHRha2luZy1waHAsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXNwZWNpYWwtcHJvamVjdHMtcGhwIHtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgY29sb3I6ICNmZmY7IH1cblxuI2JyZWF0aHRha2luZy1sYW5kaW5nLXBhZ2UtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMTUwcHggMDsgfVxuICAjYnJlYXRodGFraW5nLWxhbmRpbmctcGFnZS1oZWFkZXIgLnZlcnRpY2FsLXNwbGl0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogODBweDtcbiAgICB3aWR0aDogMXB4O1xuICAgIG1hcmdpbjogMnJlbSBhdXRvOyB9XG5cbi5zZXJpZXMtY2hhcHRlcnMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zZXJpZXMtY2hhcHRlcnMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC02cmVtOyB9IH1cbiAgLnNlcmllcy1jaGFwdGVycyAuc2VyaWVzLWNoYXB0ZXJzLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5zZXJpZXMtY2hhcHRlcnMgLnNlcmllcy1jaGFwdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMCA4cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VyaWVzLWNoYXB0ZXJzIC5zZXJpZXMtY2hhcHRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDsgfSB9XG4gICAgLnNlcmllcy1jaGFwdGVycyAuc2VyaWVzLWNoYXB0ZXIgKyAuc2VyaWVzLWNoYXB0ZXIge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTVkZmQ5OyB9XG4gICAgLnNlcmllcy1jaGFwdGVycyAuc2VyaWVzLWNoYXB0ZXIgYSB7XG4gICAgICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgLnNlcmllcy1jaGFwdGVycyAuc2VyaWVzLWNoYXB0ZXIgYSAuY2hhcHRlci1udW1iZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAzOHB4OyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuc2VyaWVzLWNoYXB0ZXJzIC5zZXJpZXMtY2hhcHRlciBhIC5jaGFwdGVyLW51bWJlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDUwcHg7IH0gfVxuXG4ucHVsbC1vdXQtZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMi45Mzc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0yLjkzNzVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucHVsbC1vdXQtZ3JpZCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTQuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTQuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnB1bGwtb3V0LWdyaWQge1xuICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTE2LjY2Njd2dyArIC00LjkzNzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0xNi42NjY3dncgKyAtNC45Mzc1cmVtKTsgfSB9XG5cbi5wdWxsLW91dC1ncmlkLWhhbGYge1xuICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnB1bGwtb3V0LWdyaWQtaGFsZiB7XG4gICAgICBtYXJnaW4tbGVmdDogLTIuNXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTIuNXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnB1bGwtb3V0LWdyaWQtaGFsZiB7XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYygtOC4zMzMzdncgKyAtMi41cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygtOC4zMzMzdncgKyAtMi41cmVtKTsgfSB9XG5cbi8qKlxuICogMDEuIEdsb2JhbCBwYWdlIFVJXG4gKi9cbi5wYWdlLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucGFnZS1jb250ZW50LWNvbnRhaW5lcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJhY2tncm91bmQ6ICNmOWY2ZjM7XG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogLTE7IH1cblxuLnBhZ2Utc2lkZWJhciB7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5wYWdlLXNpZGViYXIge1xuICAgICAgcGFkZGluZzogMXJlbSAzLjc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLXNpZGViYXIge1xuICAgICAgcGFkZGluZzogY2FsYygxMjBweCAtIDJyZW0pIDJyZW0gMnJlbTsgfSB9XG4gIC5wYWdlLXNpZGViYXIgLnNpZGViYXItaXRlbSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWRmZDk7XG4gICAgcGFkZGluZzogMXJlbSAwIDEuNXJlbTsgfVxuXG4vKipcbiAqIDAxLiBBYm91dCBMYXlvdXRcbiAqIDAyLiBTdGFmZlxuICovXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWFib3V0IC5hYm91dC1zaWRlYmFyIHtcbiAgcGFkZGluZzogMXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1hYm91dCAuYWJvdXQtc2lkZWJhciB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDMuNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1hYm91dCAuYWJvdXQtc2lkZWJhciB7XG4gICAgICBwYWRkaW5nOiBjYWxjKDEyMHB4IC0gMnJlbSkgMnJlbSAycmVtOyB9IH1cblxuLnBhcnRuZXItbG9nb3MtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMXJlbSAycmVtIDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFydG5lci1sb2dvcy1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMXJlbSA1cmVtIDA7IH0gfVxuICAucGFydG5lci1sb2dvcy1jb250YWluZXIgLnBhcnRuZXItbG9nb3MtZ3JpZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZGZkOTtcbiAgICBib3JkZXItdG9wOiBub25lOyB9XG4gIC5wYXJ0bmVyLWxvZ29zLWNvbnRhaW5lciAucGFydG5lci1sb2dvIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlNWRmZDk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWRmZDk7XG4gICAgcGFkZGluZzogMnJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNDBweCkge1xuICAgICAgLnBhcnRuZXItbG9nb3MtY29udGFpbmVyIC5wYXJ0bmVyLWxvZ28ge1xuICAgICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgICAgIC5wYXJ0bmVyLWxvZ29zLWNvbnRhaW5lciAucGFydG5lci1sb2dvOm50aC1vZi10eXBlKDNuKSB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDQxcHgpIHtcbiAgICAgIC5wYXJ0bmVyLWxvZ29zLWNvbnRhaW5lciAucGFydG5lci1sb2dvIHtcbiAgICAgICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgICAgICAucGFydG5lci1sb2dvcy1jb250YWluZXIgLnBhcnRuZXItbG9nbzpudGgtb2YtdHlwZSg2bikge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfSB9XG5cbi51bmRhcmstc3RhZmYtbGlzdCAudW5kYXJrLXN0YWZmLWl0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZGZkOTtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW07IH1cbiAgLnVuZGFyay1zdGFmZi1saXN0IC51bmRhcmstc3RhZmYtaXRlbSAuZGlzcGxheS1oZWFkaW5nIHtcbiAgICBjb2xvcjogI2NiYTE3ZDsgfVxuXG4vKipcbiAqIDAxLiBJbiBWaWV3IEFuaW1hdGlvbnNcbiAqL1xuLnRyaWdnZXItaW4tdmlldzpub3QoLmFsd2F5cy12aXNpYmxlKSB7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLnRyaWdnZXItaW4tdmlldzpub3QoLmFsd2F5cy12aXNpYmxlKTpub3QoLmFsd2F5cy12aXNpYmxlKSB7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIG9wYWNpdHkgODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC50cmlnZ2VyLWluLXZpZXc6bm90KC5hbHdheXMtdmlzaWJsZSkuYWx3YXlzLXZpc2libGUge1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC50cmlnZ2VyLWluLXZpZXc6bm90KC5hbHdheXMtdmlzaWJsZSkuaW4tdmlldyB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctc2xpZGUtZnJvbS1sZWZ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHJlbTsgfVxuICAudHJpZ2dlci1pbi12aWV3LmluLXZpZXctc2xpZGUtZnJvbS1sZWZ0Om5vdCguYWx3YXlzLXZpc2libGUpIHtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgbGVmdDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDgwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KSwgbGVmdCA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LXNsaWRlLWZyb20tbGVmdC5hbHdheXMtdmlzaWJsZSB7XG4gICAgd2lsbC1jaGFuZ2U6IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogbGVmdCA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LXNsaWRlLWZyb20tbGVmdC5pbi12aWV3IHtcbiAgICBsZWZ0OiAwOyB9XG5cbi50cmlnZ2VyLWluLXZpZXcuaW4tdmlldy1zbGlkZS1mcm9tLXJpZ2h0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogLTRyZW07IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LXNsaWRlLWZyb20tcmlnaHQ6bm90KC5hbHdheXMtdmlzaWJsZSkge1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCByaWdodDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDgwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KSwgcmlnaHQgODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC50cmlnZ2VyLWluLXZpZXcuaW4tdmlldy1zbGlkZS1mcm9tLXJpZ2h0LmFsd2F5cy12aXNpYmxlIHtcbiAgICB3aWxsLWNoYW5nZTogcmlnaHQ7XG4gICAgdHJhbnNpdGlvbjogcmlnaHQgODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC50cmlnZ2VyLWluLXZpZXcuaW4tdmlldy1zbGlkZS1mcm9tLXJpZ2h0LmluLXZpZXcge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi50cmlnZ2VyLWluLXZpZXcuaW4tdmlldy1zbGlkZS1mcm9tLXRvcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtNHJlbTsgfVxuICAudHJpZ2dlci1pbi12aWV3LmluLXZpZXctc2xpZGUtZnJvbS10b3A6bm90KC5hbHdheXMtdmlzaWJsZSkge1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0b3A7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSksIHRvcCA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LXNsaWRlLWZyb20tdG9wLmFsd2F5cy12aXNpYmxlIHtcbiAgICB3aWxsLWNoYW5nZTogdG9wO1xuICAgIHRyYW5zaXRpb246IHRvcCA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LXNsaWRlLWZyb20tdG9wLmluLXZpZXcge1xuICAgIHRvcDogMDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctc2xpZGUtZnJvbS1ib3R0b20ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogLTRyZW07IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LXNsaWRlLWZyb20tYm90dG9tOm5vdCguYWx3YXlzLXZpc2libGUpIHtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgYm90dG9tO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpLCBib3R0b20gODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC50cmlnZ2VyLWluLXZpZXcuaW4tdmlldy1zbGlkZS1mcm9tLWJvdHRvbS5hbHdheXMtdmlzaWJsZSB7XG4gICAgd2lsbC1jaGFuZ2U6IGJvdHRvbTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gIC50cmlnZ2VyLWluLXZpZXcuaW4tdmlldy1zbGlkZS1mcm9tLWJvdHRvbS5pbi12aWV3IHtcbiAgICBib3R0b206IDA7IH1cblxuLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LWZhZGUtaW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LWZhZGUtaW46bm90KC5hbHdheXMtdmlzaWJsZSkge1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgODAwbXMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpLCBvcGFjaXR5IDgwMG1zIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuICAudHJpZ2dlci1pbi12aWV3LmluLXZpZXctZmFkZS1pbi5hbHdheXMtdmlzaWJsZSB7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgLnRyaWdnZXItaW4tdmlldy5pbi12aWV3LWZhZGUtaW4uaW4tdmlldyB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktMTAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktMjAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMjAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktMzAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktNDAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNDAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktNTAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNTAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktNjAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNjAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktNzAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4udHJpZ2dlci1pbi12aWV3LmluLXZpZXctZGVsYXktODAwIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogODAwbXMgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIDAxLiBGb3JtXG4gKiAwMi4gQ29tbWVudHMgTGlzdFxuICovXG4jY29tbWVudGZvcm0ge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICNjb21tZW50Zm9ybSBsYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZjZmNmY2OyB9XG4gICAgI2NvbW1lbnRmb3JtIGxhYmVsW2Zvcj1cIndwLWNvbW1lbnQtY29va2llcy1jb25zZW50XCJdIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDsgfVxuICAjY29tbWVudGZvcm0gI2NvbW1lbnQge1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4OyB9XG4gICNjb21tZW50Zm9ybSAuY29tbWVudC1mb3JtLWNvbW1lbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAjY29tbWVudGZvcm0gLmNvbW1lbnQtZm9ybS1hdXRob3IsXG4gICNjb21tZW50Zm9ybSAuY29tbWVudC1mb3JtLWVtYWlsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICNjb21tZW50Zm9ybSAuY29tbWVudC1mb3JtLWF1dGhvciB7XG4gICAgcGFkZGluZy1yaWdodDogLjVyZW07IH1cbiAgI2NvbW1lbnRmb3JtIC5jb21tZW50LWZvcm0tZW1haWwge1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgI2NvbW1lbnRmb3JtIC5mb3JtLXN1Ym1pdCBidXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgICNjb21tZW50Zm9ybSAuZm9ybS1zdWJtaXQgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JhMTdkO1xuICAgICAgY29sb3I6ICNjYmExN2Q7IH1cbiAgI2NvbW1lbnRmb3JtIC5jaGFyYWN0ZXItY291bnRlciB7XG4gICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IC01cHg7IH1cblxuLmNvbW1lbnQtbGlzdC10aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDF4cCBzb2xpZCAjNDQ0O1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cblxuLmNvbW1lbnQtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAwIDIwcHg7IH1cblxuLmNvbW1lbnQtYm9keSAuY29tbWVudC1hdXRob3IgLmF2YXRhciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNvbW1lbnQtYm9keSAuY29tbWVudC1hdXRob3IgY2l0ZTpiZWZvcmUge1xuICBjb250ZW50OiBpbml0aWFsOyB9XG5cbi5jb21tZW50LWJvZHkgLmNvbW1lbnQtYXV0aG9yIC5zYXlzIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ub2ZmLWNhbnZhcyAuY29tbWVudC1ib2R5IGEge1xuICBmb250LXNpemU6IC43NXJlbTtcbiAgcGFkZGluZy10b3A6IC4xMjVyZW07IH1cbiAgLm9mZi1jYW52YXMgLmNvbW1lbnQtYm9keSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi5jb21tZW50LWJvZHkgLmNvbW1lbnQtZWRpdC1saW5rIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5jb21tZW50LWJvZHkgKyBvbC5jaGlsZHJlbiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTsgfVxuXG4ucG9zdC1jb21tZW50LWhlYWRlciB7XG4gIHBhZGRpbmctbGVmdDogNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wb3N0LWNvbW1lbnQtaGVhZGVyOmJlZm9yZSB7XG4gICAgZm9udC1mYW1pbHk6ICd1bmRhcmsnICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBjb250ZW50OiBcIu6kjVwiO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDsgfVxuXG4uY29tbWVudCArIC5jb21tZW50IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0NDQ7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIHBhZGRpbmctdG9wOiAycmVtOyB9XG5cbi5jb21tZW50LWZvcm0tY29va2llcy1jb25zZW50IGlucHV0LFxuLmNvbW1lbnQtZm9ybS1jb29raWVzLWNvbnNlbnQgbGFiZWwge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uY29tbWVudC1mb3JtLWNvb2tpZXMtY29uc2VudCBpbnB1dCB7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICB3aWR0aDogMTRweDsgfVxuXG4uY29tbWVudC1mb3JtLWNvb2tpZXMtY29uc2VudCBsYWJlbCB7XG4gIG1hcmdpbjogMDsgfVxuXG4uZm9ybS1zdWJtaXQge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKipcbiAqIDAxLiBBcmNoaXZlIEZpbHRlclxuICovXG4uYXJjaGl2ZS1maWx0ZXIge1xuICBmb250LXNpemU6IDA7XG4gIG1hcmdpbi1ib3R0b206IDRyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5hcmNoaXZlLWZpbHRlciAuYXJjaGl2ZS1maWx0ZXItaW5uZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogODAwcHg7IH1cbiAgLmFyY2hpdmUtZmlsdGVyIC5pbnB1dC13cmFwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgICAuYXJjaGl2ZS1maWx0ZXIgLmlucHV0LXdyYXA6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgICAuYXJjaGl2ZS1maWx0ZXIgLmlucHV0LXdyYXAgbGFiZWwge1xuICAgICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjb2xvcjogI2NiYTE3ZDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuYXJjaGl2ZS1maWx0ZXIgLmlucHV0LXdyYXAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAuYXJjaGl2ZS1maWx0ZXIudGhlLWxhdGVzdCAuaW5wdXQtd3JhcCB7XG4gICAgd2lkdGg6IDMzLjMzMzMlO1xuICAgIGJvcmRlci1jb2xvcjogIzhhOGE4YTsgfVxuXG4vKipcbiAqIDAxLiBHbG9iYWwgRm9ybSBTdHlsZXNcbiAqL1xuaW5wdXQ6Oi1tcy1jbGVhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5pbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYmZiZmJmOyB9XG5cbmlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICAvKiBGaXJlZm94IDE4LSAqL1xuICBjb2xvcjogI2JmYmZiZjsgfVxuXG5pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIC8qIEZpcmVmb3ggMTkrICovXG4gIGNvbG9yOiAjYmZiZmJmOyB9XG5cbmlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYmZiZmJmOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuZ3JpZC1jb250YWluZXIsIC5tZXNoX3NlY3Rpb24gLmdyaWQteC5tZXNoLXJvdzpub3QoLmZ1bGwtd2lkdGgpOm5vdCguZnVsbCk6bm90KC5mdWxsd2lkdGgpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC43NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNzVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1jb250YWluZXIsIC5tZXNoX3NlY3Rpb24gLmdyaWQteC5tZXNoLXJvdzpub3QoLmZ1bGwtd2lkdGgpOm5vdCguZnVsbCk6bm90KC5mdWxsd2lkdGgpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gICAgcGFkZGluZy1yaWdodDogNXJlbTsgfSB9XG5cbi8qKlxuICogTWFuYWdlIHRoZSB2aWRlby4gVGhpcyBzaG91bGQgbWF5YmUgYmUgbW9yZSBnZW5lcmljIHNvIGl0IGNhbiBiZSB1c2VkIGluIG11bHRpcGxlIHBsYWNlc1xuICpcbiAqIDAxLiBIZXJvXG4gKi9cbiNob21lcGFnZS1oZXJvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdmOTQ4ZDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBwYWRkaW5nOiA1MHB4IDAgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICNob21lcGFnZS1oZXJvOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogIzFiMzQzNztcbiAgICBoZWlnaHQ6IC42MjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAxMDAlOyB9XG4gICNob21lcGFnZS1oZXJvOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItdG9wOiAxcmVtIHNvbGlkICMxYjM0Mzc7XG4gICAgYm9yZGVyLWxlZnQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgbWFyZ2luLXRvcDogLjYyNXJlbTsgfVxuXG4uaGVyby1jb250ZW50IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA0O1xuICAvKiAgQG1lZGlhIHNjcmVlbiBhbmQgKCBtaW4td2lkdGg6IDc2OXB4KSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gKi8gfVxuICAuaGVyby1jb250ZW50IC5oZXJvLXRpdGxlIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtIDZyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmhlcm8tY29udGVudCAuaGVyby10aXRsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5oZXJvLWNvbnRlbnQgLmhlcm8tdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaGVyby1jb250ZW50IC5oZXJvLXRpdGxlIC5sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTE1JTsgfSB9XG4gIC5oZXJvLWNvbnRlbnQgLmhlcm8tdmlkZW8tY3RhIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWIzNDM3O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5oZXJvLWNvbnRlbnQgLmhlcm8tdmlkZW8tY3RhIHtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuaGVyby1jb250ZW50IC5oZXJvLXZpZGVvLWN0YSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgICAgICBtYXgtd2lkdGg6IDc1JTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5oZXJvLWNvbnRlbnQgLmhlcm8tdmlkZW8tY3RhIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00NnJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMnJlbSAycmVtIDQ4cmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5oZXJvLWNvbnRlbnQgLmhlcm8tdmlkZW8tY3RhIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDcwcHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmhlcm8tY29udGVudCAuaGVyby12aWRlby1jdGEgYSA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLmhlcm8tY29udGVudCAuaGVyby12aWRlby1jdGEgW2NsYXNzKj1cImljb25cIl0ge1xuICAgICAgZm9udC1zaXplOiA3MHB4O1xuICAgICAgd2lkdGg6IDcwcHg7IH1cbiAgICAuaGVyby1jb250ZW50IC5oZXJvLXZpZGVvLWN0YSAuY3RhLWRlc2NyaXB0aW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuXG4jaGVyby1iYWNrZ3JvdW5kLXZpZGVvIHtcbiAgaGVpZ2h0OiBpbmhlcml0OyB9XG4gICNoZXJvLWJhY2tncm91bmQtdmlkZW8gPiBkaXYsXG4gICNoZXJvLWJhY2tncm91bmQtdmlkZW8gPiBkaXYgPiB2aWRlbyB7XG4gICAgei1pbmRleDogMiAhaW1wb3J0YW50OyB9XG5cbiNoZXJvLXZpZGVvIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IC0xOyB9XG4gICNoZXJvLXZpZGVvIGlmcmFtZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5oZXJvLXZpZGVvLXBsYXlpbmcgI2hlcm8tdmlkZW8ge1xuICAgIHotaW5kZXg6IDU7IH1cblxuI2hlcm8tYmFja2dyb3VuZC12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHotaW5kZXg6IDM7XG4gIHRyYW5zaXRpb246IDQwMG1zIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG5cbiNoZXJvLXZpZGVvLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyNywgMTQ4LCAxNDEsIDAuOCk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAzO1xuICB0cmFuc2l0aW9uOiA0MDBtcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsgfVxuXG4uaGVyby12aWRlby1wbGF5aW5nICNob21lcGFnZS1oZXJvIC5oZXJvLWNvbnRlbnQsXG4uaGVyby12aWRlby1wbGF5aW5nICNtYWluLW1lbnUtaG9tZSB7XG4gIHotaW5kZXg6IC0xOyB9XG5cbi5oZXJvLXZpZGVvLXBsYXlpbmcgI2hlcm8tdmlkZW8tb3ZlcmxheSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhlcm8tdmlkZW8tcGxheWluZyAjaGVyby1iYWNrZ3JvdW5kLXZpZGVvOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhlcm8tdmlkZW8tcGxheWluZyAjaG9tZXBhZ2UtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4vKipcbiAqIDAxLiBNZW51c1xuICogMDIuIFNvY2lhbCBNZW51XG4gKi9cbi5tZW51IHtcbiAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAubWVudSAubWVudS1pdGVtIGEge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cbiAgICAubWVudSAubWVudS1pdGVtIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNjYmExN2Q7IH1cbiAgLm1lbnUgLm1lbnUtaXRlbS5hcy1idXR0b24gYSB7XG4gICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjI1cmVtO1xuICAgIG1hcmdpbjogMS41cmVtIDFyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdmOTQ4ZDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZS1vdXQ7IH1cbiAgICAubWVudSAubWVudS1pdGVtLmFzLWJ1dHRvbiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjM0Mzc7IH1cbiAgLm1lbnUgLm1lbnUtaXRlbS5hY3RpdmUgYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAudG9wLWJhciAubWVudSB7XG4gICAgaGVpZ2h0OiAzLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjI1cmVtOyB9XG4gICAgLnRvcC1iYXIgLm1lbnUgYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG4gIC5jb2xsYXBzZWQtaGVhZGVyIC50b3AtYmFyIC5tZW51IGEge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmNvbGxhcHNlZC1oZWFkZXIgLnRvcC1iYXIgLm1lbnUgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2NiYTE3ZDsgfVxuICAubWVudS5jYXRlZ29yeS1tZW51LCAubWVudS51c2VyLW1lbnUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07IH1cbiAgICAubWVudS5jYXRlZ29yeS1tZW51IGEsIC5tZW51LnVzZXItbWVudSBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG4gIC5tZW51I21lbnUtZm9vdGVyIC5tZW51LWl0ZW0gKyAubWVudS1pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuICAubWVudSNtZW51LWZvb3RlciAubWVudS1pdGVtLmhhcy1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAgIC5tZW51I21lbnUtZm9vdGVyIC5tZW51LWl0ZW0uaGFzLWJ1dHRvbiBhIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAubWVudSNtZW51LWZvb3RlciAubWVudS1pdGVtOmhvdmVyIGEge1xuICAgIGNvbG9yOiAjY2JhMTdkOyB9XG4gIC5tZW51I21lbnUtZm9vdGVyIGEge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBwYWRkaW5nOiAwOyB9XG5cbnVsLnNvY2lhbC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMDtcbiAgbWFyZ2luLXRvcDogLjVyZW07IH1cbiAgdWwuc29jaWFsLm1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgdWwuc29jaWFsLm1lbnUgbGkgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgcGFkZGluZzogLjc1cmVtO1xuICAgICAgbWFyZ2luOiAuMjVyZW07XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciA0MDBtcywgYmFja2dyb3VuZC1jb2xvciA0MDBtczsgfVxuICAgICAgdWwuc29jaWFsLm1lbnUgbGkgYTpiZWZvcmUge1xuICAgICAgICBmb250LWZhbWlseTogJ3VuZGFyaycgIWltcG9ydGFudDtcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAyOHB4OyB9XG4gICAgICB1bC5zb2NpYWwubWVudSBsaSBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgY29sb3I6ICMwYTBhMGEgIWltcG9ydGFudDsgfVxuICB1bC5zb2NpYWwubWVudSBsaS5mYWNlYm9vayBhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLupIFcIjsgfVxuICB1bC5zb2NpYWwubWVudSBsaS50d2l0dGVyIGE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6kglwiOyB9XG4gIHVsLnNvY2lhbC5tZW51IGxpLnZpbWVvIGE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6kg1wiOyB9XG4gIHVsLnNvY2lhbC5tZW51IGxpLnJlZGRpdCBhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLupJBcIjsgfVxuICB1bC5zb2NpYWwubWVudSBsaS5mbGlwYm9hcmQgYTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi7qSRXCI7IH1cbiAgdWwuc29jaWFsLm1lbnUgbGkucG9ja2V0IGE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6kklwiOyB9XG4gICNkZXNrdG9wLW1lbnUtb3ZlcmxheSB1bC5zb2NpYWwubWVudSB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogLjc1cmVtOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSAuY2xvc2UtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIG1hcmdpbi1yaWdodDogLTdweDtcbiAgbWFyZ2luLXRvcDogMnB4OyB9XG5cbi8qKlxuICogMDEuIEhvbWVwYWdlIFNpZGViYXJzXG4gKi9cbi5ob21lLWxlZnQtc2lkZWJhciAud2lkZ2V0dGl0bGUsXG4uaG9tZS1yaWdodC1zaWRlYmFyIC53aWRnZXR0aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5zbGljay1saXN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4uc2xpY2stbGlzdC5kcmFnZ2luZyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLnNsaWNrLXRyYWNrOmJlZm9yZSxcbi5zbGljay10cmFjazphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnJzsgfVxuXG4uc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2sge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4OyB9XG5cbltkaXI9J3J0bCddIC5zbGljay1zbGlkZSB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uc2xpY2stc2xpZGUgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5zbGljay1kb3RzIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbjogMDsgfVxuICAuc2xpY2stZG90cyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMDsgfVxuICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6IC43NXJlbTtcbiAgICAgIHdpZHRoOiAuNzVyZW07XG4gICAgICBiYWNrZ3JvdW5kOiAjY2JhMTdkO1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICAgIG1hcmdpbjogM3B4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG4gICAgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMWIzNDM3OyB9XG5cbi8qKlxuICogMDEuIExlYWRcbiAqIDAyLiBTYW5zIExpbmtcbiAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6IDEuMXJlbTsgfSB9XG5cbi5tZWRpdW0tbGVhZCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubWVkaXVtLWxlYWQge1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07IH0gfVxuXG4uc2Fucy1saW5rIHtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi8qKlxuICogMDEuIEZ1bGx3aWR0aCBDb250YWluZXJcbiAqIDAyLiBJbWFnZSBTbGlkZXJcbiAqIDAzLiBMYXJnZSBQb3N0IEltYWdlXG4gKiAwNC4gQmFja2dyb3VuZCBWaWRlb1xuICogMDUuIENhcHRpb25cbiAqL1xuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmZ1bGx3aWR0aC1jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgoKDExLzEyICogMTAwKSAqICgoNC8xMikvMikpICogLTF2dykgLSAxLjM0Mzc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKCgoMTEvMTIgKiAxMDApICogKCg0LzEyKS8yKSkgKiAtMXZ3KSAtIDEuMzQzNzVyZW0pOyB9IH1cblxuLnBvc3QtdGVtcGxhdGUtc2luZ2xlLWltYWdlLWhlYWRlciAuZnVsbHdpZHRoLWNvbnRhaW5lcixcbi5wb3N0LXRlbXBsYXRlLWRlZmF1bHQgLmZ1bGx3aWR0aC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnBvc3QtdGVtcGxhdGUtc2luZ2xlLWltYWdlLWhlYWRlciAuZnVsbHdpZHRoLWNvbnRhaW5lcixcbiAgICAucG9zdC10ZW1wbGF0ZS1kZWZhdWx0IC5mdWxsd2lkdGgtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAucG9zdC10ZW1wbGF0ZS1zaW5nbGUtaW1hZ2UtaGVhZGVyIC5mdWxsd2lkdGgtY29udGFpbmVyLFxuICAgIC5wb3N0LXRlbXBsYXRlLWRlZmF1bHQgLmZ1bGx3aWR0aC1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0zLjVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wb3N0LXRlbXBsYXRlLXNpbmdsZS1pbWFnZS1oZWFkZXIgLmZ1bGx3aWR0aC1jb250YWluZXIsXG4gICAgLnBvc3QtdGVtcGxhdGUtZGVmYXVsdCAuZnVsbHdpZHRoLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tbGVmdDogY2FsYygoKC0xMDB2dyAqICgxMS8xMikpICogKDIvMTIpKSAtIDUuNXJlbSk7XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyAqIDExLzEyKTsgfVxuICAgICAgLnBvc3QtdGVtcGxhdGUtc2luZ2xlLWltYWdlLWhlYWRlciAuZnVsbHdpZHRoLWNvbnRhaW5lciAudW5kYXJrLWNhcHRpb24sXG4gICAgICAucG9zdC10ZW1wbGF0ZS1kZWZhdWx0IC5mdWxsd2lkdGgtY29udGFpbmVyIC51bmRhcmstY2FwdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMjVweDsgfVxuICAgICAgICAucG9zdC10ZW1wbGF0ZS1zaW5nbGUtaW1hZ2UtaGVhZGVyIC5mdWxsd2lkdGgtY29udGFpbmVyIC51bmRhcmstY2FwdGlvbiBwLFxuICAgICAgICAucG9zdC10ZW1wbGF0ZS1kZWZhdWx0IC5mdWxsd2lkdGgtY29udGFpbmVyIC51bmRhcmstY2FwdGlvbiBwIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAgIC5wb3N0LXRlbXBsYXRlLXNpbmdsZS1pbWFnZS1oZWFkZXIgLmZ1bGx3aWR0aC1jb250YWluZXIgLnVuZGFyay1jYXB0aW9uOmJlZm9yZSxcbiAgICAgICAgLnBvc3QtdGVtcGxhdGUtZGVmYXVsdCAuZnVsbHdpZHRoLWNvbnRhaW5lciAudW5kYXJrLWNhcHRpb246YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAxLjVyZW07IH0gfVxuXG4udW5kYXJrLWltYWdlLXNsaWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjUlO1xuICBtYXJnaW4tdG9wOiAxLjI1JTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyOm5vdCguZnVsbC13aWR0aCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoKCgoMTEvMTIpICogMS8xMikgKiAtMTAwdncpICogMS41KTtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygoKCgxMS8xMikgKiAxLzEyKSAqIC0xMDB2dykgKiAxLjUpO1xuICAgICAgcGFkZGluZy10b3A6IDJyZW07IH0gfVxuICAudW5kYXJrLWltYWdlLXNsaWRlci5mdWxsLXdpZHRoIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyLmZ1bGwtd2lkdGggaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAudW5kYXJrLWltYWdlLXNsaWRlci5mdWxsLXdpZHRoIC51bmRhcmstaW1hZ2Utc2xpZGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgICAgLnVuZGFyay1pbWFnZS1zbGlkZXIuZnVsbC13aWR0aCAudW5kYXJrLWltYWdlLXNsaWRlIC51bmRhcmstY2FwdGlvbjpiZWZvcmUge1xuICAgICAgICAgIGxlZnQ6IDIwcHg7IH1cbiAgICAgICAgLnVuZGFyay1pbWFnZS1zbGlkZXIuZnVsbC13aWR0aCAudW5kYXJrLWltYWdlLXNsaWRlW2RhdGEtbGlnaHRib3hdOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogaW5pdGlhbDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAudW5kYXJrLWltYWdlLXNsaWRlci5mdWxsLXdpZHRoIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoKCgoMTEvMTIgKiAxMDApICogKCg0LzEyKS8yKSkgKiAtMXZ3KSAtIDEuMzQzNzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKCgoMTEvMTIgKiAxMDApICogKCg0LzEyKS8yKSkgKiAtMXZ3KSAtIDEuMzQzNzVyZW0pOyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyLmZ1bGwtd2lkdGggaW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyLmZ1bGwtd2lkdGggLnVuZGFyay1pbWFnZS1zbGlkZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiA3MHZoO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgICAudW5kYXJrLWltYWdlLXNsaWRlci5mdWxsLXdpZHRoIC51bmRhcmstaW1hZ2Utc2xpZGUgLnVuZGFyay1jYXB0aW9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMjVweDsgfVxuICAgICAgICAgICAgLnVuZGFyay1pbWFnZS1zbGlkZXIuZnVsbC13aWR0aCAudW5kYXJrLWltYWdlLXNsaWRlIC51bmRhcmstY2FwdGlvbiBwIHtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyLmZ1bGwtd2lkdGggLnVuZGFyay1pbWFnZS1zbGlkZSAudW5kYXJrLWNhcHRpb246YmVmb3JlIHtcbiAgICAgICAgICAgICAgbGVmdDogMS41cmVtOyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyLmZ1bGwtd2lkdGggLnNsaWNrLWFycm93IHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IDQwMG1zIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gICAgICAgICAgLnVuZGFyay1pbWFnZS1zbGlkZXIuZnVsbC13aWR0aCAuc2xpY2stYXJyb3cuc2xpY2stcHJldiB7XG4gICAgICAgICAgICBsZWZ0OiAyNXB4OyB9XG4gICAgICAgICAgLnVuZGFyay1pbWFnZS1zbGlkZXIuZnVsbC13aWR0aCAuc2xpY2stYXJyb3cuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICByaWdodDogMjVweDsgfVxuICAgICAgICAudW5kYXJrLWltYWdlLXNsaWRlci5mdWxsLXdpZHRoOmhvdmVyIC5zbGljay1hcnJvdyB7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnVuZGFyay1pbWFnZS1zbGlkZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuMjUlO1xuICAgICAgcGFkZGluZy10b3A6IDEuMjUlOyB9IH1cbiAgLnVuZGFyay1pbWFnZS1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC51bmRhcmstaW1hZ2Utc2xpZGVyOm5vdCguZnVsbC13aWR0aCkgLnVuZGFyay1pbWFnZS1zbGlkZSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyOm5vdCguZnVsbC13aWR0aCkgLnVuZGFyay1pbWFnZS1zbGlkZSB7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICB0cmFuc2l0aW9uOiA0MDBtcyBhbGwgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyOm5vdCguZnVsbC13aWR0aCkgLnVuZGFyay1pbWFnZS1zbGlkZS5zbGljay1jZW50ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDU7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyOm5vdCguZnVsbC13aWR0aCkgLnVuZGFyay1pbWFnZS1zbGlkZSB7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAgICAgICAudW5kYXJrLWltYWdlLXNsaWRlcjpub3QoLmZ1bGwtd2lkdGgpIC51bmRhcmstaW1hZ2Utc2xpZGUuc2xpY2stY2VudGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpOyB9IH1cbiAgLnVuZGFyay1pbWFnZS1zbGlkZXIgLnNsaWNrLWFycm93IHtcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgei1pbmRleDogOTsgfVxuICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdzpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdyB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yMHB4OyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1wcmV2IHtcbiAgICAgICAgICBsZWZ0OiAxMHB4OyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1uZXh0IHtcbiAgICAgICAgICByaWdodDogMTBweDsgfSB9XG4gICAgLnVuZGFyay1pbWFnZS1zbGlkZXIgLnNsaWNrLWFycm93LnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHdoaXRlO1xuICAgICAgbGVmdDogMnB4OyB9XG4gICAgLnVuZGFyay1pbWFnZS1zbGlkZXIgLnNsaWNrLWFycm93LnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB3aGl0ZTtcbiAgICAgIHJpZ2h0OiAycHg7IH1cbiAgICAudW5kYXJrLWltYWdlLXNsaWRlciAuc2xpY2stYXJyb3c6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgICAudW5kYXJrLWltYWdlLXNsaWRlciAuc2xpY2stYXJyb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzUpOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdyB7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgd2lkdGg6IDYwcHg7IH1cbiAgICAgICAgLnVuZGFyay1pbWFnZS1zbGlkZXIgLnNsaWNrLWFycm93OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMTdweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxN3B4OyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDIwcHg7XG4gICAgICAgICAgbGVmdDogNHB4OyB9XG4gICAgICAgIC51bmRhcmstaW1hZ2Utc2xpZGVyIC5zbGljay1hcnJvdy5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAyMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgIHJpZ2h0OiA0cHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLnVuZGFyay1sYXJnZS1wb3N0LWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAudW5kYXJrLWxhcmdlLXBvc3QtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICAgIGhlaWdodDogNzB2aDtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygoKCgxMS8xMiAqIDEwMCkgKiAoKDQvMTIpLzIpKSAqIC0xdncpIC0gMS4zNDM3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCgoKDExLzEyICogMTAwKSAqICgoNC8xMikvMikpICogLTF2dykgLSAxLjM0Mzc1cmVtKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudW5kYXJrLWxhcmdlLXBvc3QtaW1hZ2UgLmltYWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAudW5kYXJrLWxhcmdlLXBvc3QtaW1hZ2UgLmxhcmdlLWltYWdlLWNhcHRpb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7XG4gICAgICBwYWRkaW5nOiAxcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAudW5kYXJrLWJhY2tncm91bmQtdmlkZW8tY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDcwdmg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfSB9XG5cbi51bmRhcmstY2FwdGlvbixcbi51bmRhcmstY2FwdGlvbiBwIHtcbiAgZm9udC1zaXplOiAuODc1cmVtO1xuICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLndwLWJsb2NrLWltYWdlIC5hbGlnbnJpZ2h0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi53cC1ibG9jay1pbWFnZSBmaWdjYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMlOyB9IH1cblxuLndwLWNhcHRpb24uYWxpZ25yaWdodCAud3AtY2FwdGlvbi10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4vKipcbiAqIDAxIEdsb2JhbFxuICogMDIuIFNwbGl0XG4gKiAwMy4gU3RhY2tlZFxuICogMDQuIEVudHJ5IE1ldGFcbiAqL1xuLmhpZGUtbG9vcC1wb3N0LWJ5bGluZSAuYnlsaW5lIC5ieWxpbmUtYXV0aG9yIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5oaWRlLWxvb3AtcG9zdC1ieWxpbmUgLmJ5bGluZSAuYnlsaW5lLXZpc3VhbHMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmJ5bGluZSAuYnlsaW5lLWxhYmVsIHtcbiAgY29sb3I6ICNjYmExN2Q7IH1cblxuLmJ5bGluZS5ieWxpbmUtc3BsaXQgLmxvb3AtcG9zdC1ieWxpbmUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2JmYmZiZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5ieWxpbmUuYnlsaW5lLXNwbGl0LmZ1bGwtd2lkdGgge1xuICBtaW4td2lkdGg6IDYwJTsgfVxuICAuYnlsaW5lLmJ5bGluZS1zcGxpdC5mdWxsLXdpZHRoIC5sb29wLXBvc3QtYnlsaW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5ieWxpbmUuYnlsaW5lLXNwbGl0LmZ1bGwtd2lkdGggLmJ5bGluZS1pdGVtOmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuYnlsaW5lLmJ5bGluZS1zcGxpdC5mdWxsLXdpZHRoIC5ieWxpbmUtaXRlbTpsYXN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmJ5bGluZS5ieWxpbmUtc3BsaXQgLmJ5bGluZS1hdXRob3IsXG4uYnlsaW5lLmJ5bGluZS1zcGxpdCAuYnlsaW5lLWRhdGUsXG4uYnlsaW5lLmJ5bGluZS1zcGxpdCAuYnlsaW5lLWl0ZW0sXG4uYnlsaW5lLmJ5bGluZS1zcGxpdCAuYnlsaW5lLXZpc3VhbHMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDE1cHg7IH1cblxuLmJ5bGluZS5ieWxpbmUtc3BsaXQgLmJ5bGluZS1hdXRob3Ige1xuICBjb2xvcjogIzhhOGE4YTsgfVxuXG4uYnlsaW5lLmJ5bGluZS1zcGxpdCAuYnlsaW5lLWRhdGUsXG4uYnlsaW5lLmJ5bGluZS1zcGxpdCAuYm9yZGVyLWl0ZW0ge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiZmJmYmY7XG4gIGNvbG9yOiAjY2JhMTdkOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5mZWF0dXJlZC1hcnRpY2xlIC5ieWxpbmUuYnlsaW5lLXNwbGl0IC5ieWxpbmUtZGF0ZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG4uYnlsaW5lLmJ5bGluZS1zdGFja2VkIC5ieWxpbmUtYXV0aG9yIHtcbiAgY29sb3I6ICNjYmExN2Q7IH1cblxuLmJ5bGluZS5ieWxpbmUtc3RhY2tlZCAuYnlsaW5lLWRhdGUge1xuICBjb2xvcjogI2JmYmZiZjsgfVxuXG4uYnlsaW5lLmJ5bGluZS1lbnRyeS1tZXRhIC5ieWxpbmUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi8qKlxuICogMDEuIExvb3AgUG9zdCBJbm5lclxuICovXG4ubG9vcC1wb3N0LWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5iYWNrZ3JvdW5kLWJsYWNrIC5sb29wLXBvc3QtaW5uZXIsXG4gIC5ibG9nIC5sb29wLXBvc3QtaW5uZXIge1xuICAgIGNvbG9yOiAjY2JhMTdkOyB9XG4gIC5sb29wLXBvc3QtaW5uZXIgLmxvb3AtcG9zdC10aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLjM3NXJlbTsgfVxuICAgIC5sb29wLXBvc3QtaW5uZXIgLmxvb3AtcG9zdC10aXRsZSBhIHtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sb29wLXBvc3QtaW5uZXI6aG92ZXIgLmxvb3AtcG9zdC10aXRsZSBhIHtcbiAgICBjb2xvcjogI2NiYTE3ZDsgfVxuICAgIC5iYWNrZ3JvdW5kLWJsYWNrIC5sb29wLXBvc3QtaW5uZXI6aG92ZXIgLmxvb3AtcG9zdC10aXRsZSBhIHtcbiAgICAgIGNvbG9yOiAjY2JhMTdkOyB9XG5cbi8qKlxuICogMDEuIFBvc3QgQ2F0ZWdvcnkgRGVmYXVsdFxuICogMDIuIEZlYXR1cmVkIEFydGljbGVcbiAqIDAzLiBUZWFzZXIgQXJ0aWNsZVxuICogMDQuIEludGVyaW9yIFBhZ2VcbiAqIDA1LiBTaW5nbGUgUmVsYXRlZFxuICogMDYuIEJsb2cgQXJjaGl2ZVxuICogMDcuIEJsb2cgQXJjaGl2ZSBUb3BcbiAqL1xuLnBvc3QtY2F0ZWdvcnkge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDVweCA4cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHotaW5kZXg6IDE7IH1cbiAgLnBvc3QtY2F0ZWdvcnkgYSB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnBvc3QtY2F0ZWdvcnkudW5zdHlsZWQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICAuZmVhdHVyZWQtYXJ0aWNsZSAucG9zdC1jYXRlZ29yeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmZlYXR1cmVkLWFydGljbGUgLnBvc3QtY2F0ZWdvcnkge1xuICAgICAgICB0b3A6IDEwMCU7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLmZlYXR1cmVkLWFydGljbGUgLnBvc3QtY2F0ZWdvcnkge1xuICAgICAgICB0b3A6IDA7IH0gfVxuICAuYXJ0aWNsZS10ZWFzZSAucG9zdC1jYXRlZ29yeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwOyB9XG4gIGJvZHk6bm90KC5mcm9udHBhZ2UpIC5wb3N0LWNhdGVnb3J5IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBib2R5Om5vdCguZnJvbnRwYWdlKSAucG9zdC1jYXRlZ29yeSBhIHtcbiAgICAgIGNvbG9yOiAjY2JhMTdkO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgYm9keTpub3QoLmZyb250cGFnZSkgLnBvc3QtY2F0ZWdvcnkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjYmU4OTVjOyB9XG4gIC5zaW5nbGUtcmVsYXRlZCAucG9zdC1jYXRlZ29yeSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBib2R5LmJsb2cgLmFydGljbGU6bm90KC50b3ApIC5wb3N0LWNhdGVnb3J5LFxuICBib2R5LmFyY2hpdmUgLmFydGljbGU6bm90KC50b3ApIC5wb3N0LWNhdGVnb3J5LFxuICBib2R5LnNlYXJjaCAucG9zdC1jYXRlZ29yeSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDVweCA4cHg7IH1cbiAgICBib2R5LmJsb2cgLmFydGljbGU6bm90KC50b3ApIC5wb3N0LWNhdGVnb3J5IGEsXG4gICAgYm9keS5hcmNoaXZlIC5hcnRpY2xlOm5vdCgudG9wKSAucG9zdC1jYXRlZ29yeSBhLFxuICAgIGJvZHkuc2VhcmNoIC5wb3N0LWNhdGVnb3J5IGEge1xuICAgICAgY29sb3I6ICMwYTBhMGE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmFydGljbGUtdGVhc2UudG9wIC5wb3N0LWNhdGVnb3J5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICAgIHBhZGRpbmc6IDVweCA4cHg7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gICAgLmFydGljbGUtdGVhc2UudG9wIC5wb3N0LWNhdGVnb3J5IGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyoqXG4gKiAwMS4gQXJ0aWNsZVxuICogMDIuIFRlYXNlXG4gKiAwMy4gVGVhc2UgSG9yaXpvbnRhbFxuICogMDQuIEJsb2cgQXJ0aWNsZXNcbiAqL1xuLmFydGljbGUgLmxvb3AtcG9zdC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYXJ0aWNsZSBpbWcge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwKSBjb250cmFzdCgxKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGZpbHRlciA0MDBtcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7IH1cblxuLmFydGljbGU6aG92ZXIgaW1nIHtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMC41KSBjb250cmFzdCgxLjIpOyB9XG5cbi5iYWNrZ3JvdW5kLWJsYWNrIC5hcnRpY2xlIC5sb29wLXBvc3QtY29udGVudCB7XG4gIGNvbG9yOiAjY2JhMTdkOyB9XG5cbi5iYWNrZ3JvdW5kLWJsYWNrIC5hcnRpY2xlIC5sb29wLXBvc3QtdGl0bGUgYSB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuLmFydGljbGUtdGVhc2Uge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgLmFydGljbGUtdGVhc2UgLmxvb3AtcG9zdC10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAjZm9vdGVyIC5hcnRpY2xlLXRlYXNlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5hcnRpY2xlLXRlYXNlLWhvcml6b250YWwgLmxvb3AtcG9zdC1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hcnRpY2xlLXRlYXNlLWhvcml6b250YWwgLmxvb3AtcG9zdC1pbWFnZSxcbi5hcnRpY2xlLXRlYXNlLWhvcml6b250YWwgLmxvb3AtcG9zdC1jb250ZW50IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uYXJ0aWNsZS10ZWFzZS1ob3Jpem9udGFsIC5sb29wLXBvc3QtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogLjkzNzVyZW07XG4gIHBhZGRpbmc6IDAgLjc1cmVtOyB9XG5cbi5hcnRpY2xlLXRlYXNlLWhvcml6b250YWwgLmxvb3AtcG9zdC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogLjkzNzVyZW07XG4gIG1hcmdpbjogMCAwIC4yNXJlbTsgfVxuXG5ib2R5LmJsb2cgLmFydGljbGU6bm90KC50b3ApIC5sb29wLXBvc3QtaW5uZXIgLmxvb3AtcG9zdC10aXRsZSBhIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgI2xhdGVzdC1jYXRlZ29yaWVzIC5jYXRlZ29yeS1wb3N0W2NsYXNzKj1cInBvc3QtMVwiXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiZmJmYmY7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfSB9XG5cbiNsYXRlc3QtY2F0ZWdvcmllcyAuY2F0ZWdvcnktcG9zdCArIC5jYXRlZ29yeS1wb3N0IHtcbiAgbWFyZ2luLXRvcDogMnJlbTsgfVxuXG4jbGF0ZXN0LWNhdGVnb3JpZXMgLmNhdGVnb3J5LXBvc3QgLmFydGljbGUge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuI2xhdGVzdC1jYXRlZ29yaWVzIC5jYXRlZ29yeS1oZWFkbGluZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmZiZmJmO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogLjVyZW07IH1cbiAgI2xhdGVzdC1jYXRlZ29yaWVzIC5jYXRlZ29yeS1oZWFkbGluZSA+ICoge1xuICAgIG1hcmdpbjogMDsgfVxuXG4jbGF0ZXN0LWNhdGVnb3JpZXMgLmNhdGVnb3J5LWxpbmsge1xuICBjb2xvcjogI2NiYTE3ZDtcbiAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAuODc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qKlxuICogMDEuIEdsb2JhbFxuICovXG4udW5kYXJrLWltYWdlLWNhcHRpb24ge1xuICBtYXJnaW46IDJyZW0gMCAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnVuZGFyay1pbWFnZS1jYXB0aW9uOm5vdCguc2luZ2xlLWltYWdlKSB7XG4gICAgICBtYXJnaW46IDJyZW0gLTcuNXJlbSAxcmVtICFpbXBvcnRhbnQ7IH0gfVxuICAudW5kYXJrLWltYWdlLWNhcHRpb24gLnVuZGFyay1pbWFnZS1ibG9jayA+IC5jZWxsIHtcbiAgICBwYWRkaW5nOiAuNXJlbTsgfVxuICAudW5kYXJrLWltYWdlLWNhcHRpb24gLnVuZGFyay1jYXB0aW9uIHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogLjVyZW07IH1cbiAgLnVuZGFyay1pbWFnZS1jYXB0aW9uLmltYWdlcy0xLCAudW5kYXJrLWltYWdlLWNhcHRpb24uaW1hZ2VzLTIsIC51bmRhcmstaW1hZ2UtY2FwdGlvbi5pbWFnZXMtMywgLnVuZGFyay1pbWFnZS1jYXB0aW9uLmltYWdlcy00IHtcbiAgICBtYXJnaW4tbGVmdDogLS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLS41cmVtOyB9XG5cbi5pbWFnZS1jYXB0aW9uIHtcbiAgY29sb3I6ICM3Zjk0OGQ7XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luOiAuNXJlbSAwIDA7IH1cblxuLnVuZGFyay1pbWFnZS1ibG9jayBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLyoqXG4gKiAwMS4gU3RydWN0dXJlXG4gKiAwMi4gU2luZ2xlIFBvc3QgU3BsaXRcbiAqL1xuI2VudHJ5LW1ldGEtY29udGFpbmVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWRmZDk7XG4gIHBhZGRpbmc6IDEwcHggMDsgfVxuICAjZW50cnktbWV0YS1jb250YWluZXIgLmNvbW1lbnRzLXRyaWdnZXIge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAyMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICNlbnRyeS1tZXRhLWNvbnRhaW5lciAuY29tbWVudHMtdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTVkZmQ5O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICBib3R0b206IC0xMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgI2VudHJ5LW1ldGEtY29udGFpbmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVkZmQ5O1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAgICo6bm90KC5zcGxpdC1lbnRyeS1tZXRhKSAjZW50cnktbWV0YS1jb250YWluZXIge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgICAgICAqOm5vdCguc3BsaXQtZW50cnktbWV0YSkgI2VudHJ5LW1ldGEtY29udGFpbmVyIC5tZXRhLWNvbnRhaW5lci1ieWxpbmUge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVkZmQ5O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAyMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgICAgKjpub3QoLnNwbGl0LWVudHJ5LW1ldGEpICNlbnRyeS1tZXRhLWNvbnRhaW5lciAubWV0YS1jb250YWluZXItY29tbWVudHMtbnVtYmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4OyB9XG4gICAgICAgICo6bm90KC5zcGxpdC1lbnRyeS1tZXRhKSAjZW50cnktbWV0YS1jb250YWluZXIgLmNvbW1lbnRzLXRyaWdnZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtOyB9XG4gICAgICAgICAgKjpub3QoLnNwbGl0LWVudHJ5LW1ldGEpICNlbnRyeS1tZXRhLWNvbnRhaW5lciAuY29tbWVudHMtdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwOyB9IH1cblxuLnNwbGl0LWVudHJ5LW1ldGEge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZGZkOTtcbiAgcGFkZGluZzogMXJlbSAwOyB9XG4gIC5zcGxpdC1lbnRyeS1tZXRhICNlbnRyeS1tZXRhLWNvbnRhaW5lciAubWV0YS1jb250YWluZXItYnlsaW5lIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZGZkOTsgfVxuICAuc3BsaXQtZW50cnktbWV0YSAjZW50cnktbWV0YS1jb250YWluZXIgLmNvbW1lbnRzLXRyaWdnZXIge1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zcGxpdC1lbnRyeS1tZXRhICNlbnRyeS1tZXRhLWNvbnRhaW5lciAuY29tbWVudHMtdHJpZ2dlciB7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gLjVyZW07IH0gfVxuICAgIC5zcGxpdC1lbnRyeS1tZXRhICNlbnRyeS1tZXRhLWNvbnRhaW5lciAuY29tbWVudHMtdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3LjkzNzVlbSkge1xuICAgIC5zcGxpdC1lbnRyeS1tZXRhICNlbnRyeS1tZXRhLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXItdG9wOiBub25lOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zcGxpdC1lbnRyeS1tZXRhICNlbnRyeS1tZXRhLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWRmZDk7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLnNwbGl0LWVudHJ5LW1ldGEgLmJ5bGluZS5ieWxpbmUtZW50cnktbWV0YSAuYnlsaW5lLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnNwbGl0LWVudHJ5LW1ldGEgLmJ5bGluZS5ieWxpbmUtZW50cnktbWV0YSAuYnlsaW5lLWl0ZW0gKyAuYnlsaW5lLWl0ZW0ge1xuICAgICAgbWFyZ2luLXRvcDogLjM3NXJlbTsgfVxuXG4vKipcbiAqIDAxLiBTdHVjdHVyZVxuICovXG4jY29tbWVudHMtcGFuZWwgYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi8qKlxuICogMDEuIFJlcHVibGlzaCBDb250YWluZXJcbiAqIDAyLiBSZXB1Ymxpc2ggTWFya3VwXG4gKiAwMy4gUmVwdWJsaXNoIExvYWRlclxuICovXG4jcmVwdWJsaXNoLW1vZGFsLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ucmVwdWJsaXNoLW1vZGFsLW1hcmt1cCB7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDFyZW07IH1cblxuQGtleWZyYW1lcyByZXB1Ymxpc2gtbG9hZGVyIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbiNyZXB1Ymxpc2gtbG9hZGVyIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7IH1cbiAgI3JlcHVibGlzaC1sb2FkZXIgLmxvYWRlci1kb3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYmExN2Q7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDZweDtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7IH1cbiAgICAjcmVwdWJsaXNoLWxvYWRlciAubG9hZGVyLWRvdC5sb2FkZXItZG90LTEge1xuICAgICAgYW5pbWF0aW9uOiByZXB1Ymxpc2gtbG9hZGVyIDc1MG1zIGN1YmljLWJlemllcigwLjQ1LCAwLjA1LCAwLjU1LCAwLjk1KSA3NW1zIGluZmluaXRlOyB9XG4gICAgI3JlcHVibGlzaC1sb2FkZXIgLmxvYWRlci1kb3QubG9hZGVyLWRvdC0yIHtcbiAgICAgIGFuaW1hdGlvbjogcmVwdWJsaXNoLWxvYWRlciA3NTBtcyBjdWJpYy1iZXppZXIoMC40NSwgMC4wNSwgMC41NSwgMC45NSkgMTUwbXMgaW5maW5pdGU7IH1cbiAgICAjcmVwdWJsaXNoLWxvYWRlciAubG9hZGVyLWRvdC5sb2FkZXItZG90LTMge1xuICAgICAgYW5pbWF0aW9uOiByZXB1Ymxpc2gtbG9hZGVyIDc1MG1zIGN1YmljLWJlemllcigwLjQ1LCAwLjA1LCAwLjU1LCAwLjk1KSAyMjVtcyBpbmZpbml0ZTsgfVxuICAgICNyZXB1Ymxpc2gtbG9hZGVyIC5sb2FkZXItZG90LmxvYWRlci1kb3QtNCB7XG4gICAgICBhbmltYXRpb246IHJlcHVibGlzaC1sb2FkZXIgNzUwbXMgY3ViaWMtYmV6aWVyKDAuNDUsIDAuMDUsIDAuNTUsIDAuOTUpIDMwMG1zIGluZmluaXRlOyB9XG5cbi8qKlxuICogMDEuIFBvZGNhc3QgTWVudSAoVmVydGljYWwpXG4gKiAwMi4gUG9kY2FzdCBNZW51IChIb3Jpem9udGFsKVxuICovXG5baWRePVwibWVudS1wb2RjYXN0LXN0YXRpb25zXCJdIGxpIHtcbiAgcGFkZGluZzogMTVweCAwIDRweDsgfVxuXG5baWRePVwibWVudS1wb2RjYXN0LXN0YXRpb25zXCJdIC5tZW51LWl0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZGZkOTsgfVxuICBbaWRePVwibWVudS1wb2RjYXN0LXN0YXRpb25zXCJdIC5tZW51LWl0ZW0gYSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi5wb2RjYXN0LW1lbnUucG9kY2FzdC1tZW51LXRvcCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOGE4YThhO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhhOGE4YTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IC41cmVtIDAgMDtcbiAgcGFkZGluZzogMS4yNXJlbSAwOyB9XG4gIC5wb2RjYXN0LW1lbnUucG9kY2FzdC1tZW51LXRvcCA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnBvZGNhc3QtbWVudS5wb2RjYXN0LW1lbnUtdG9wIC5tZW51LWl0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IC43NXJlbTsgfVxuICAgIC5wb2RjYXN0LW1lbnUucG9kY2FzdC1tZW51LXRvcCAubWVudS1pdGVtIGEge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4vKipcbiAqIDAxLiBHbG9iYWxcbiAqIDAyLiBTbWFsbCBSZWxhdGVkXG4gKiAwMy4gTGFyZ2UgUmVsYXRlZFxuICovXG4ucmVsYXRlZC1wb3N0IC5sb29wLXBvc3QtdGl0bGUge1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnJlbGF0ZWQtcG9zdC5yZWxhdGVkLXBvc3Qtc21hbGwge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWRmZDk7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwIDAgMXJlbSAxcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHdpZHRoOiAzMyU7IH1cbiAgLnJlbGF0ZWQtcG9zdC5yZWxhdGVkLXBvc3Qtc21hbGwgLmxvb3AtcG9zdC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuLnJlbGF0ZWQtcG9zdC5yZWxhdGVkLXBvc3QtbGFyZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiA0cmVtIDA7XG4gIG1pbi13aWR0aDogMTAwJTsgfVxuICAucmVsYXRlZC1wb3N0LnJlbGF0ZWQtcG9zdC1sYXJnZSAubG9vcC1wb3N0LWltYWdlLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAgIC5yZWxhdGVkLXBvc3QucmVsYXRlZC1wb3N0LWxhcmdlIC5sb29wLXBvc3QtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnJlbGF0ZWQtcG9zdC5yZWxhdGVkLXBvc3QtbGFyZ2Uge1xuICAgICAgbWFyZ2luLWxlZnQ6IC04cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtOHJlbTsgfSB9XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gU2V0dGluZ3Ncbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gU2FzcyB1dGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2Vcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuICBAaWYgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzO1xuICB9XG5cbiAgQGlmICRwcm90b3R5cGUge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkb2xkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleCArIDE7XG4gIC8vIFdvcmthcm91bmQgYW5kcm9pZCBicm93c2VyIHotaW5kZXggYnVnXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICBib2R5LmlzLXJldmVhbC1vcGVuIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogMDAuIE1pc2NlbGxhbmVvdXNcbiAqIDAxLiBDb2xvcnNcbiAqIC0tIEluY2x1ZGUgZnVuY3Rpb25zIHRoYXQgcmVxdWlyZSBjb2xvcnNcbiAqIDAyLiBBbmltYXRpb25zXG4gKiAwMy4gU3BhY2luZ1xuICogMDQuIFRvcGJhciBFeHRlbmRlZFxuICogMDUuIFByaW1hcnkgTWVudVxuICogMDYuIEZvb3RlclxuICogMDcuIEZvcm1zXG4gKiAwOC4gQ29tbWVudHNcbiAqIDA5LiBQYWdlIFRlbXBsYXRlc1xuICogMTAuIFZpc2liaWxpdHlcbiAqL1xuXG5cbi8vIDAwLiBNaXNjZWxsYW5lb3VzXG4kZ2xvYmFsLXBhdHRlcm4taGVpZ2h0OiAzMDBweDtcblxuLy8gMDEuIENvbG9yc1xuJGNvbG9yLW1hcDogKFxuXHRwcmltYXJ5ICAgICA6IGdldC1jb2xvcihwcmltYXJ5KSxcblx0c2Vjb25kYXJ5ICAgOiBnZXQtY29sb3Ioc2Vjb25kYXJ5KSxcblx0bGlnaHQtcHJpbWFyeSA6ICRsaWdodC1wcmltYXJ5LFxuXHRsaWdodC1zZWNvbmRhcnkgOiAkbGlnaHQtc2Vjb25kYXJ5LFxuXHRhY2NlbnQgICAgICA6ICRhY2NlbnQtY29sb3IsXG5cdGxpZ2h0LWdyYXkgIDogJGxpZ2h0LWdyYXksXG5cdG1lZGl1bS1ncmF5IDogJG1lZGl1bS1ncmF5LFxuXHRkYXJrLWdyYXkgICA6ICRkYXJrLWdyYXksXG5cdGJsYWNrICAgICAgIDogJGJsYWNrLFxuXHR3aGl0ZSAgICAgICA6ICR3aGl0ZSxcblx0Z29sZCAgICAgICAgOiAkZ29sZCxcblx0cmVkICAgICAgICAgOiAkcmVkXG4pO1xuXG4kZ2xvYmFsLWJvcmRlci13aWR0aDogNHB4O1xuJGdsb2JhbC1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyLXdpZHRoIHNvbGlkICRsaWdodC1ncmF5O1xuXG4vLyAtLSBmdW5jdGlvbnMgdGhhdCByZXF1aXJlIGNvbG9yc1xuXG5AaW1wb3J0ICdmdW5jdGlvbnMnO1xuXG4vLyAwMi4gQW5pbWF0aW9uc1xuJGdsb2JhbC10aW1pbmc6IDQwMG1zO1xuJGdsb2JhbC1lYXNpbmc6IGN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEuMjc1KTtcbiRsb2dvLWVhc2luZzogY3ViaWMtYmV6aWVyKDAsIDEuMTgsIDAuOTMsIDEuMTEpO1xuXG5cbi8vIDAzLiBTcGFjaW5nXG4kZGlyZWN0aW9uczogKFxuXHR0b3AsXG5cdHJpZ2h0LFxuXHRib3R0b20sXG5cdGxlZnRcbik7XG5cbiRzcGFjaW5nLXNpemVzOiAoXG5cdG5vbmUgICA6IDAsXG5cdHNtYWxsICA6IDFyZW0sXG5cdG1lZGl1bSA6IDJyZW0sXG5cdGxhcmdlICA6IDRyZW1cbik7XG5cbiRtZW51LWl0ZW0tcGFkZGluZzogMXJlbTtcblxuXG4vLyAwNC4gVG9wYmFyIEV4dGVuZGVkXG4kdG9wYmFyLWhlaWdodDogICAgICAgICByZW0tY2FsYyg2OCk7XG4kdG9wYmFyLWhlaWdodC1zbWFsbDogICByZW0tY2FsYygzMik7XG4kdG9wYmFyLXN1cHBvcnQtd2lkdGg6ICByZW0tY2FsYygzMDApO1xuJHRvcGJhci1pdGVtLWhlaWdodDogICAgJHRvcGJhci1oZWlnaHQgLSAxcmVtO1xuXG4kdG9wYmFyLWZ1bGwtaGVpZ2h0OiAkdG9wYmFyLWl0ZW0taGVpZ2h0O1xuXG4kdG9wYmFyLXBhZGRpbmctbWVkaXVtLXNjcm9sbGVkOiAwIChtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIG1lZGl1bSkvMik7XG4kdG9wYmFyLXBhZGRpbmctbWVkaXVtOiAwIChtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIG1lZGl1bSkvMik7XG5cbiR1dGlsaXR5LWl0ZW0taGVpZ2h0OiByZW0tY2FsYyggMjYgKTtcblxuXG4vLyAwNS4gUHJpbWFyeSBNZW51XG4kcHJpbWFyeS1tZW51LWhlaWdodDogICAgICAkdG9wYmFyLWl0ZW0taGVpZ2h0O1xuJHByaW1hcnktbWVudS1saW5lLWhlaWdodDogJHRvcGJhci1pdGVtLWhlaWdodDtcbiRwcmltYXJ5LW1lbnUtbWFyZ2luLXRvcDogIC0uNXJlbTtcblxuJHByaW1hcnktc3VibWVudS1iZy1jb2xvcjogICAkcHJpbWFyeS1jb2xvcjtcbiRwcmltYXJ5LXN1Ym1lbnUtbGluay1jb2xvcjogJHdoaXRlO1xuXG5cbi8vIDA2LiBGb290ZXJcbiRmb290ZXItYmctY29sb3I6ICAgJHByaW1hcnktY29sb3I7XG4kZm9vdGVyLXRleHQtY29sb3I6ICRsaWdodC1ncmF5O1xuJGZvb3Rlci1saW5rLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiRmb290ZXItbGluay1ob3ZlcjogJHdoaXRlO1xuXG4vLyAwNy4gRm9ybXNcbiRmb3JtLWl0ZW0tcGFkZGluZzogLjVyZW07XG5cblxuLy8gMDguIENvbW1lbnRzXG4kY29tbWVudC1ib3JkZXItcmFkaXVzOiAwO1xuJGNvbW1lbnQtb3JpZ2luYWwtYmc6ICAgc2NhbGUtY29sb3IoICRsaWdodC1ncmF5LCAkbGlnaHRuZXNzOiA1MCUgKTtcbiRjb21tZW50LWJvcmRlci1jb2xvcjogICRtZWRpdW0tZ3JheTtcbiRjb21tZW50LXJlcGx5LWJnOiAgICAgICR3aGl0ZTtcbiRjb21tZW50LWd1dHRlcjogICAgICAgIDEuNXJlbTtcblxuXG4vLyAwOS4gUGFnZSBUZW1wbGF0ZXNcblxuJGZ1bGwtcGFnZS1oZWFkZXItYmFja2dyb3VuZDogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kZnVsbC1wYWdlLWhlYWRlci1jb2xvcjogICAgICBjb2xvci1sZWdpYmlsaXR5KCRmdWxsLXBhZ2UtaGVhZGVyLWJhY2tncm91bmQpO1xuXG4vLyAxMC4gVmlzaWJpbGl0eVxuXG4kbW9iaWxlLWRvd246ICdzY3JlZW4gYW5kICggbWF4LXdpZHRoOiA3NjhweCknO1xuJGRlc2t0b3AtdXA6ICdzY3JlZW4gYW5kICggbWluLXdpZHRoOiA3NjlweCknO1xuIiwiLyoqXG4gKiAwMS4gQ29sb3IgTGVnaWJpbGl0eVxuICovXG5cblxuLy8gMDEuIENvbG9yIExlZ2liaWxpdHlcblxuQGZ1bmN0aW9uIGNvbG9yLWxlZ2liaWxpdHkoICRjb2xvciApIHtcblx0JGNvbG9yLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRjb2xvcik7XG5cdCRyZXR1cm4tY29sb3I6ICAgICR3aGl0ZSAhZGVmYXVsdDtcblxuXHRAaWYgKCAkY29sb3ItbGlnaHRuZXNzID4gNTAlICkge1xuXHRcdCRyZXR1cm4tY29sb3I6ICRibGFjaztcblx0fVxuXG5cdEByZXR1cm4gJHJldHVybi1jb2xvcjtcbn0iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLy9cbi8vIFZlcnRpY2FsIFJoeXRobVxuLy9cbi8vIFRoaXMgaXMgdGhlIG1pbmltYWwgYW1vdW50IG9mIGNvZGUgbmVlZGVkIHRvIGNyZWF0ZSB2ZXJ0aWNhbCByaHl0aG0gaW4gb3VyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxuLy8gbGlicmFyeS4gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanB0YXJhbnRvL3R5cGV5XG5cbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gcHgge1xuICAgIEBlcnJvciBcIlRoZSBub3JtYWxpemUgdmVydGljYWwtcmh5dGhtIG1vZHVsZSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIEBpZiAkdW5pdCA9PSByZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09IGVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkcmVsYXRpdmUtdG8pICogMWVtO1xuICB9XG4gIEBlbHNlIHsgLy8gJHVuaXQgPT0gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XG4gICAgQGVycm9yIFwibm9ybWFsaXplLWZvbnQtc2l6ZSgpIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgZm9udC1zaXplOiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1yaHl0aG0oJHByb3BlcnR5LCAkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkdmFsdWUtbGlzdDogJHZhbHVlcztcbiAgJHNlcDogc3BhY2U7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG4gICAgJHNlcDogbGlzdC1zZXBhcmF0b3IoJHZhbHVlcyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZS1saXN0OiBhcHBlbmQoKCksICR2YWx1ZXMpO1xuICB9XG5cbiAgJG5vcm1hbGl6ZWQtdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcbiAgICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgJHZhbHVlICE9IDAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiBub3JtYWxpemUtcmh5dGhtKCRiYXNlLWxpbmUtaGVpZ2h0LCAkcmVsYXRpdmUtdG8pO1xuICAgIH1cbiAgICAkbm9ybWFsaXplZC12YWx1ZXM6IGFwcGVuZCgkbm9ybWFsaXplZC12YWx1ZXMsICR2YWx1ZSwgJHNlcCk7XG4gIH1cbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obWFyZ2luLCAkdmFsdWVzLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRtaW4tbGluZS1wYWRkaW5nOiAycHgpIHtcbiAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCk7XG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxuICBAaWYgKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgPCAoJG1pbi1saW5lLXBhZGRpbmcgKiAyKSB7XG4gICAgJGxpbmVzOiAkbGluZXMgKyAxO1xuICB9XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obGluZS1oZWlnaHQsICRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICBAaW5jbHVkZSBub3JtYWxpemUoKTtcbn1cbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDYXJkXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxuLy8gIDE2LiBEcmlsbGRvd25cbi8vICAxNy4gRHJvcGRvd25cbi8vICAxOC4gRHJvcGRvd24gTWVudVxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gIDIwLiBGb3Jtc1xuLy8gIDIxLiBMYWJlbFxuLy8gIDIyLiBNZWRpYSBPYmplY3Rcbi8vICAyMy4gTWVudVxuLy8gIDI0LiBNZXRlclxuLy8gIDI1LiBPZmYtY2FudmFzXG4vLyAgMjYuIE9yYml0XG4vLyAgMjcuIFBhZ2luYXRpb25cbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vICA0Ny4gUmV2ZWFsXG4vLyAgNDguIFNsaWRlclxuLy8gIDQ5LiBTd2l0Y2hcbi8vICA1MC4gVGFibGVcbi8vICA1MS4gVGFic1xuLy8gIDUyLiBUaHVtYm5haWxcbi8vICA1My4gVGl0bGUgQmFyXG4vLyAgNTQuIFRvb2x0aXBcbi8vICA1NS4gVG9wIEJhclxuLy8gIDU2LiBYeSBHcmlkXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIDAuIEN1c3RvbVxuLy8gLS0tLS0tLS0tXG4kZm9udC1zYW5zOiAnUmFsZXdheScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kcGVhY29jazogIzFiMzQzNztcbiRibGFjay1zZXA6ICMzYTQ0NDE7XG4kc2FnZTogIzdmOTQ4ZDtcbiRiZWlnZTogI2Y5ZjZmMztcbiRnb2xkOiAjY2JhMTdkO1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDE0NzIpO1xuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjU7XG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICRwZWFjb2NrLFxuICBzZWNvbmRhcnk6ICRzYWdlLFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbik7XG5cbiRhY2NlbnQtY29sb3I6ICRnb2xkO1xuJGxpZ2h0LXByaW1hcnkgICAgIDogbGlnaHRlbiggZ2V0LWNvbG9yKHByaW1hcnkpLCAxMCUpO1xuJGxpZ2h0LXNlY29uZGFyeSAgIDogbGlnaHRlbiggZ2V0LWNvbG9yKHNlY29uZGFyeSksIDEwJSk7XG5cbiRncmFkaWVudC1kYXJrOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kZ3JhZGllbnQtbGlnaHQ6ICRsaWdodC1wcmltYXJ5O1xuXG4kbGlnaHRlc3QtZ3JheTogI2Y2ZjZmNjtcbiRsaWdodGVyLWdyYXk6ICNlNmU2ZTY7XG4kbGlnaHQtZ3JheTogI2Y5ZjZmMztcbiRtZWRpdW0tZ3JheTogI2JmYmZiZjtcbiRkYXJrLWdyYXk6ICM4YThhOGE7XG4kYmxhY2s6ICMwYTBhMGE7XG4kd2hpdGU6ICNmZmY7XG4kYm9yZGVyLWdyYXk6ICNlNWRmZDk7XG5cbiRyZWQ6ICNDQjAwMDA7IC8vIEFsZXJ0c1xuXG4kYm9keS1iYWNrZ3JvdW5kOiB3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnVGF2aXJhaicsIEdlb3JnaWEsIFBhbGF0aW5vLCBzZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW07XG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogdHJ1ZTtcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZTtcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogcG9pbnRlcjtcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDA7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG5cbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgaXBhZDogNzY4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBpcGFkIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogNjAwO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDE7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzNiksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDYpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMzApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjEpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBsYXJnZTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNTYpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjI1O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJGdvbGQ7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kaHItYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbGVhZC1mb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNjtcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kc3RhdC1mb250LXNpemU6IDIuNXJlbTtcblxuLy8gNi4gQWJpZGVcbi8vIC0tLS0tLS0tXG5cbiRhYmlkZS1pbnB1dHM6IHRydWU7XG4kYWJpZGUtbGFiZWxzOiB0cnVlO1xuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLWZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuJGJ1dHRvbi1wYWRkaW5nOiAxLjU2MjVlbSAxLjU2MjVlbSAxLjVlbTtcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6IGJsYWNrO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiB0cmFuc3BhcmVudDtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogMDtcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMnB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcblxuLy8gMTMuIENhbGxvdXRcbi8vIC0tLS0tLS0tLS0tXG5cbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENhcmRcbi8vIC0tLS0tLS0tXG5cbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kY2FyZC1zaGFkb3c6IG5vbmU7XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbik7XG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE2LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDE3LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHg7XG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbTtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDA7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcbiRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZTogJGJsYWNrO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZTtcblxuLy8gMjQuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNS4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogNDIwcHgsXG4gIG1lZGl1bTogNjAwcHhcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbiAgbWVkaXVtOiA2MDBweFxuKTtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogIzAwMDAwMDtcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KTtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpO1xuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTE7XG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzO1xuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8gMjYuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNy4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI4LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pO1xuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbi8vIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSk7XG4kcHJvdG90eXBlLWJvcmRlci10eXBlOiBzb2xpZDtcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKTtcblxuLy8gMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDQpO1xuJHByb3RvdHlwZS1mb250LW5vcm1hbDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKTtcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbik7XG5cbi8vIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLW92ZXJmbG93OiAoXG4gIHZpc2libGUsXG4gIGhpZGRlbixcbiAgc2Nyb2xsXG4pO1xuXG4vLyAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxuICBzdGF0aWMsXG4gIHJlbGF0aXZlLFxuICBhYnNvbHV0ZSxcbiAgZml4ZWRcbik7XG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NTtcblxuLy8gMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMyk7XG5cbi8vIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxuICAgICAgICAgICAgICAgICAgICAgICAwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuXG4vLyA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zaXppbmc6IChcbiAgd2lkdGgsXG4gIGhlaWdodFxuKTtcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pO1xuXG4vLyA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50OiAzO1xuXG4vLyA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uOiAoXG4gIG92ZXJsaW5lLFxuICB1bmRlcmxpbmUsXG4gIGxpbmUtdGhyb3VnaCxcbik7XG5cbi8vIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pO1xuXG4vLyA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbi8vIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKTtcblxuLy8gNDcuIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6IGJsYWNrO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogMDtcbiRyZXZlYWwtYm9yZGVyOiBub25lO1xuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXg6IDEwMDU7XG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSh3aGl0ZSwgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRibGFjaztcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1Ni4gWHkgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJHh5LWdyaWQ6IHRydWU7XG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW5zOiAxMjtcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHhcbik7XG4kZ3JpZC1wYWRkaW5nLWd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLXBhZGRpbmc6IDEyMHB4O1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy8gXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1iYXNlLWdyaWQtY2xhc3NlcyB7XG5cbiAgLy8gR3JpZCBDb250YWluZXJcbiAgLmdyaWQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcblxuICAgICYuZmx1aWQge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSk7XG4gICAgfVxuXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgLmdyaWQteCB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgfVxuXG4gIC5jZWxsIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoKTtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkZ3JpZC1jb2x1bW5zLCBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICAgICYuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgfVxuXG4gICAgJi5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gIH1cbiAgLmdyaWQteCB7XG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gd2lkdGhcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzICYgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgIC5ncmlkLXgge1xuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHdpZHRoIHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi14YCBub3Qgb24gYC5ncmlkLXhgXG4gIC5ncmlkLW1hcmdpbi14Om5vdCguZ3JpZC14KSA+IC5jZWxsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teWAgbm90IG9uIGAuZ3JpZC15YFxuICAuZ3JpZC1tYXJnaW4teTpub3QoLmdyaWQteSkgPiAuY2VsbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGNsYXNzLWJyZWFrcG9pbnQsICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsKSB7XG4gICRwcmVmaXg6IGlmKCRjbGFzcy1icmVha3BvaW50ID09ICQtemYtemVyby1icmVha3BvaW50LCAnJywgJyN7JGNsYXNzLWJyZWFrcG9pbnR9LScpO1xuICA+IC4jeyRwcmVmaXh9YXV0byB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gID4gLiN7JHByZWZpeH1zaHJpbmsge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICRjbGFzc25hbWU6IGlmKCR2ZXJ0aWNhbCwgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nKTtcblxuICAgID4gI3skY2xhc3NuYW1lfSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoXG4gICRndXR0ZXItcG9zaXRpb246IGxlZnQgcmlnaHQsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICR3cmFwcGluZy1zZWxlY3RvcjogJy5ncmlkLW1hcmdpbi14J1xuKXtcbiAgI3skd3JhcHBpbmctc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogJGd1dHRlci1wb3NpdGlvbik7XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gYmFzZSBzdHlsZXMgbmVlZCB0byBhbGwgYmUgYmVmb3JlIHRoZSBhdXRvIGFuZCBzaHJpbmsgc3R5bGVzXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkgYW5kICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC5jZWxsIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuXG4gICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgLy8gZm9yIHByaW9yIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSByZXNwb25zaXZlIGd1dHRlci5cbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkYnApKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGJwLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkLXpmLXNpemUsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFkZGluZyBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcyB7XG4gIC5ncmlkLXBhZGRpbmcteCB7XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgIC5ncmlkLXBhZGRpbmcteCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBncmlkcyB3aXRoaW4gYGdyaWQtY29udGFpbmVyL2dyaWQtY29udGFpbmVyLmZsdWlkYFxuICAgIC8vIFRoaXMgYWxsb3dzIG1hcmdpbiBhbmQgcGFkZGluZyBncmlkcyB0byBsaW5lIHVwIHdpdGggZWFjaG90aGVyXG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAmIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEJsb2NrIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkaSwgJy5jZWxsJywgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgICAgLy8gZm9yIHByaW9yIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSByZXNwb25zaXZlIGd1dHRlci5cbiAgICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkYnApKSB7XG4gICAgICAgICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JGJwfS11cC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuY2VsbCcsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJGJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkaSwgJy5jZWxsJywgZmFsc2UsICRndXR0ZXItdHlwZTogbWFyZ2luLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDb2xsYXBzZSBjbGFzc2VzXG5AbWl4aW4geHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgICAuI3skYnB9LW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBtYXJnaW4sICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgICAuI3skYnB9LXBhZGRpbmctY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogcGFkZGluZywgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBPZmZzZXQgY2xhc3Nlc1xuQG1peGluIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtbWFyZ2luLXggPiAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVmVydGljYWwgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWVcbikge1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICB9XG4gIH1cblxuICAuZ3JpZC15IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkKHZlcnRpY2FsLCBmYWxzZSk7XG5cblxuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1yZXNldCgpO1xuICAgIH1cblxuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyBhbmQgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTAyNDRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgICAgID4gLiN7JC16Zi1zaXplfS1hdXRvIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCBmYWxzZSwgJHZlcnRpY2FsOiB0cnVlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06ICN7JG9wZXJhdG9yfSRndXR0ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdudW1iZXInKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcnMpIC8gMjtcblxuICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06ICN7JG9wZXJhdG9yfSRndXR0ZXI7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuQG1peGluIHh5LWdyaWQtY29udGFpbmVyKFxuICAkd2lkdGg6ICRncmlkLWNvbnRhaW5lcixcbiAgJHBhZGRpbmc6ICRncmlkLWNvbnRhaW5lci1wYWRkaW5nXG4pIHtcbiAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJHBhZGRpbmcsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0cyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXJuIHRoZW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyIG9yIDEvMy5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIG4gb2YgbiBhbmQgbnVtYmVyIGNvdW50c1xuICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRzaXplKSA9PSAnJScge1xuICAgICAgJHNpemU6ICRzaXplO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkc2l6ZSA8IDEge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UoJHNpemUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSAvICRncmlkLWNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBvciBcIm4vblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRzaXplKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIiBvciBcIm4vblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKG50aCgkc2l6ZSwgMSkgLyBudGgoJHNpemUsIDMpKTtcbiAgICB9XG4gIH1cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkc2l6ZTtcbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2Agb3IgYHNocmlua2AuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBiYXNlIHN0eWxlLCBhbGwgb3RoZXJzIGluaGVyaXQgZnJvbSBpdFxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHdpZHRoLCBoZWlnaHQpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xufVxuXG4vLyBTZXRzIG91ciBjZWxsIHdpZHRocyBvciBoZWlnaHRzIGRlcGVuZGluZyBvbiBndXR0ZXIgdHlwZS5cbkBtaXhpbiAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkbWFyZ2luLWd1dHRlciwgJHZlcnRpY2FsKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbiAgQGVsc2VpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgICAkdmFsOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAxMDAlLCBjYWxjKDEwMCUgLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICN7eHktY2VsbC1zaXplKCRzaXplKX0sIGNhbGMoI3t4eS1jZWxsLXNpemUoJHNpemUpfSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgQGlmKCRicmVha3BvaW50ID09IG51bGwpIHtcbiAgICAvLyBJZiBgJGJwLXNpemVgIGlzIGF2YWlsYWJsZSB0aGVuIHVzZSB0aGlzLCBvdGhlcndpc2UgcmV2ZXJ0IHRvIHRoZSBzbWFsbGVzdCBicC5cbiAgICBAaWYodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgICAgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEdldCBvdXIgZ3V0dGVycyBmcm9tIG1hcCBpZiBhdmFpbGFibGUsIGlmIG5vdCBtYXAganVzdCByZXR1cm4gdGhlIHZhbHVlLlxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gIC8vIEJhc2UgZmxleCBwcm9wZXJ0aWVzXG4gIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAaWYgJGd1dHRlci1vdXRwdXQge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIC8vIElmIHdlIHdhbnQgdG8gb3V0cHV0IHRoZSBndXR0ZXJzXG4gIEBpZigkZ3V0dGVyLW91dHB1dCkge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBwYXNzIGJyZWFrcG9pbnQgaW4gaGVyZSB0b28uXG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jZWxsJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gIG9yIGBwYWRkaW5nYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ29sbGFwc2VzIHRoZSBncmlkIGEgY2VsbHMgd2l0aGluIGl0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbLmNlbGxdIC0gVGhlIGNoaWxkIGVsZW1lbnQgdG8gcmVtb3ZlIHRoZSBndXR0ZXIgZnJvbS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFRoZSB0eXBlIG9mIGd1dHRlciB0byByZW1vdmUuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbnMgdG8gcmVtb3ZlIGd1dHRlcnMgZnJvbS4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG5AbWl4aW4geHktZ3JpZC1jb2xsYXBzZShcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG1pbi1icmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludFxuKSB7XG4gIC8vIEZpcnN0LCBsZXRzIG5lZ2F0ZSBhbnkgbWFyZ2lucyBvbiB0aGUgdG9wIGxldmVsXG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGV4Y2x1ZGVkLWJwczogLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkbWluLWJyZWFrcG9pbnQpO1xuXG4gICAgLy8gT3V0cHV0IG5ldyB3aWR0aHMgdG8gbm90IGluY2x1ZGUgZ3V0dGVyc1xuICAgIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZihzbC1jb250YWluKCRleGNsdWRlZC1icHMsICRicCkpIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICAgICAgPiAuI3skYnB9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksICRndXR0ZXItb3V0cHV0OiBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgcGFkZGluZy0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgemYtY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRicmVha3BvaW50LCAkZ3V0dGVycykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcbiAgICAkc2l6ZTogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCBjYWxjKCN7eHktY2VsbC1zaXplKCRuKX0gKyAjeyRndXR0ZXJ9KSwgI3t4eS1jZWxsLXNpemUoJG4pfSk7XG5cbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX07XG4gIH1cbn1cbiIsIi8vLyBNb2RpZmllcyBhIGdyaWQgdG8gZ2l2ZSBpdCBcImZyYW1lXCIgYmVoYXZpb3IgKG5vIG92ZXJmbG93LCBubyB3cmFwLCBzdHJldGNoIGJlaGF2aW9yKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdGVkIFtmYWxzZV0gLSBJcyBncmlkIG5lc3RlZCBvciBub3QuIElmIG5lc3RlZCBpcyB0cnVlIHRoaXMgc2V0cyB0aGUgZnJhbWUgdG8gMTAwJSBoZWlnaHQsIG90aGVyd2lzZSB3aWxsIGJlIDEwMHZoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgW251bGxdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGluY2x1ZGUtYmFzZSBbdHJ1ZV0gLSBJbmNsdWRlIHRoZSBiYXNlIHN0eWxlcyB0aGF0IGRvbid0IHZhcnkgcGVyIGJyZWFrcG9pbnQuXG5AbWl4aW4geHktZ3JpZC1mcmFtZShcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG5lc3RlZDogZmFsc2UsXG4gICRndXR0ZXJzOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJGluY2x1ZGUtYmFzZTogdHJ1ZVxuKSB7XG5cbiAgQGlmICRpbmNsdWRlLWJhc2Uge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgQGlmICRicmVha3BvaW50ID09IG51bGwgYW5kIHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSgkdmVydGljYWwsICRuZXN0ZWQsICRndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC8vIEdldCBvdXIgZ3V0dGVycyBpZiBhcHBsaWNhYmxlXG4gICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcblxuICAgIC8vIElmIHdlIGhhdmUgYSBndXR0ZXIsIGFkZCBpdCB0byB0aGUgd2lkdGgvaGVpZ2h0XG4gICAgQGlmICRndXR0ZXIge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgaGVpZ2h0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB3aWR0aDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNb2RpZmllcyBhIGNlbGwgdG8gZ2l2ZSBpdCBcImJsb2NrXCIgYmVoYXZpb3IgKG92ZXJmbG93IGF1dG8sIGluZXJ0aWFsIHNjcm9sbGluZylcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuQG1peGluIHh5LWNlbGwtYmxvY2soXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkcHJvcGVydHk6IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCAnb3ZlcmZsb3cteScsICdvdmVyZmxvdy14Jyk7XG5cbiAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH0gQGVsc2Uge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5cGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbn1cblxuLy8vIENvbnRhaW5lciBmb3IgaW5zaWRlIGEgZ3JpZCBmcmFtZSBjb250YWluaW5nIG11bHRpcGxlIGJsb2Nrcy4gVHlwaWNhbGx5IHVzZWRcbi8vLyBhcyBhIG1vZGlmaWVyIGZvciBhIGAuY2VsbGAgdG8gYWxsb3cgdGhlIGNlbGwgdG8gcGFzcyBhbG9uZyBmbGV4IHNpemluZ1xuLy8vIGNvbnN0cmFpbnRzIC8gZnJvbSBwYXJlbnRzIHRvIGNoaWxkcmVuLlxuQG1peGluIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gID4gLmdyaWQteCB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7ICBcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG5cbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0ge1xuICAgICYsXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsZWFyIHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBjbGVhciB7XG4gICAgICAmLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcblxuICAgICAgICAgICAgJiwgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbiAgYS5idXR0b24ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG4gICYuYWxpZ24tbGVmdCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDFyZW07XG4gIH1cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG4gICAgXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEge1xuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIC5uZXN0ZWQuaXMtYWNjb3JkaW9uLXN1Ym1lbnUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luLCByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51IGxpIHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gIH1cblxuICAvLyBTdWJtZW51IHRvZ2dsZVxuICAuc3VibWVudS10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICB3aWR0aDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ7XG5cbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjtcblxuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoZSBhcnJvdyB0byB0aGUgdG9nZ2xlXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuXG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gUm90YXRlIHRoZSBhcnJvdyB3aGVuIG1lbnUgaXMgb3BlblxuICAuc3VibWVudS10b2dnbGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIH1cblxuICAuc3VibWVudS10b2dnbGUtdGV4dCB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gTGVmdFxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFJpZ2h0XG4gICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBUb3BcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgIH1cblxuICAgIC8vIEljb24gQm90dG9tXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgdG9wIGxldmVsIDx1bD5cbiAgLmRyaWxsZG93biB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQXBwbGllZCB0byBzdWJtZW51IDx1bD5zXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgICB9XG5cbiAgICAgICYuaXMtY2xvc2luZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VibWVudSBpdGVtIHBhZGRpbmdcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHN1Yi1tZW51IGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmRyb3Bkb3duICYgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmVzcG9uc2l2ZS1lbWJlZFxuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBBc3BlY3QgcmF0aW9zIHVzZWQgdG8gZGV0ZXJtaW5lIHBhZGRpbmctYm90dG9tIG9mIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVycy5cbi8vLyBAdHlwZSBNYXBcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pICFkZWZhdWx0O1xuXG4vLyBXQVJOSU5HOiBXaWxsIGJlIHJlbW92ZWQgaW4gdmVyc2lvbiA2LjRcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvOiBkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRyYXRpbyBbZGVmYXVsdF0gLSBSYXRpbyBvZiB0aGUgY29udGFpbmVyLiBDYW4gYmUgYSBrZXkgZnJvbSB0aGUgYCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvc2AgbWFwIG9yIGEgbGlzdCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpIHtcbiAgQGlmIHR5cGUtb2YoJHJhdGlvKSA9PSAnc3RyaW5nJyB7XG4gICAgJHJhdGlvOiBtYXAtZ2V0KCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgJHJhdGlvKTtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCB7XG4gIC5yZXNwb25zaXZlLWVtYmVkLFxuICAuZmxleC12aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpO1xuXG4gICAgJHJhdGlvczogbWFwLXJlbW92ZSgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsZGVmYXVsdCk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8ge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQoKS4gZm91bmRhdGlvbi1mbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbn1cblxuQG1peGluIGZsZXgtdmlkZW8oJHJhdGlvOiAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbykge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSByZXNwb25zaXZlLWVtYmVkKCkuIGZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW8pO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcbi8vLy9cblxuLy8vIFdpZHRoIG1hcCBvZiBhIGxlZnQvcmlnaHQgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBtYXAgb2YgYSB0b3AvYm90dG9tIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGZvciB0aGUgb2ZmLWNhbnZhcyBvdmVybGFwIHBhbmVsLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBzaXplIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweCAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgY29sb3IgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgY29udGVudCBvdmVybGF5LlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTEgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYHB1c2hgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMiAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgb3ZlcmxhcGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHVzaW5nIHRoZSBgcmV2ZWFsLWZvci0qYCBjbGFzc2VzIG9yIG1peGluLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMiAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzICFkZWZhdWx0O1xuXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXG4vLy8gQHR5cGUgQm9vbFxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGNvbnRlbnQuXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcblxuICAvLy8gVHJhbnNmb3JtIGRlcHJlY2F0ZWQgc2l6ZSBzZXR0aW5ncyBpbnRvIG1hcCAmIHNob3cgd2FybmluZ1xuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXNpemVzIGluc3RlYWQnO1xuICB9XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cblxuICAvLyBDaGVja3MgdGhlIHotaW5kZXhlcyBhbmQgaW5jcmVhc2UgdGhlbSBkdWUgdG8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIG92ZXJsYXkncyB6LWluZGV4IGlzIG5ldyBzaW5jZSB2Ni40IGFuZCBtYXkgYmUgaWRlbnRpY2FsIHRvIHRoZSB1c2VyIGN1c3RvbSBzZXR0aW5ncyBvZiB0aGUgcHVzaCB6LWluZGV4LlxuICBAaWYgJG9mZmNhbnZhcy1wdXNoLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1wdXNoLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuICBAaWYgJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleCA8PSAkb2ZmY2FudmFzLXB1c2gtemluZGV4IHsgJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleCArIDEgIWdsb2JhbDsgfVxuICBAaWYgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cblxuICAvLyBIaWRlcyBvdmVyZmxvdyBvbiBib2R5IHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZywgdmlzaWJpbGl0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3NhYmxlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHdyYXBwZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy13cmFwcGVyKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2UoXG4gICRiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQsXG4gICR0cmFuc2l0aW9uOiAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsXG4gICRmaXhlZDogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICBAaWYgJGZpeGVkID09IHRydWUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLy8gU2V0IHRoZSBvZmYtY2FudmFzIHotaW5kZXguXG4gIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgLy8gSGlkZSBpbmFjdGl2ZSBvZmYtY2FudmFzIHdpdGhpbiB0aGUgY29udGVudCB0aGF0IGhhdmUgdGhlIHNhbWUgcG9zaXRpb25cbiAgJi5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE92ZXJsYXAgb25seSBzdHlsZXMuXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4O1xuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldHMgdHJhbnNmb3JtIHRvIDAgdG8gc2hvdyBhbiBvZmYtY2FudmFzIHBhbmVsLlxuICAmLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBwb3NpdGlvbiBhbiBvZmYtY2FudmFzIHBhbmVsIHRvIHRoZSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20uXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzaXplczogaWYoJG9yaWVudGF0aW9uID09IGhvcml6b250YWwsICRvZmZjYW52YXMtc2l6ZXMsICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXMpXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSBpcyBzZXQsIGFkZCBpbm5lciBib3gtc2hhZG93LlxuICAvLyBUaGlzIG1pbWljcyB0aGUgb2ZmLWNhbnZhcyBwYW5lbCBoYXZpbmcgYSBsb3dlciB6LWluZGV4LCB3aXRob3V0IGhhdmluZyB0byBoYXZlIG9uZS5cbiAgQGlmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUge1xuICAgICYuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHJpZ2h0LCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhsZWZ0LCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3coYm90dG9tLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3codG9wLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8vIFNldHMgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIG9mZi1jYW52YXMtY29udGVudCgpIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLy8gVHJhbnNmb3JtIHNjb3BlIHVudGlsIHRoZSBlbGVtZW50IGlzIGNsb3NlZCAobWFrZXMgc3VyZSB0cmFuc2l0aW9uZW5kIGdldHMgdHJpZ2dlcmVkKVxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgZWxlbWVudCAmIGNvbnRlbnQsIG5lc3RlZCBpbiBhbm90aGVyIGNvbnRlbnRcbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4kcG9zaXRpb246IGxlZnQsXG4kemluZGV4OiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsXG4kY29udGVudDogJG1haW5jb250ZW50LWNsYXNzLFxuJGJyZWFrcG9pbnQ6IHNtYWxsXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBvdmVyZmxvdzogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogaW5oZXJpdDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBpbi1jYW52YXMgZm9yIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgaW4tY2FudmFzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9yYml0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhY3RpdmUgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlhbWV0ZXIgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGJldHdlZW4gT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlzdGFuY2UgZnJvbSBzbGlkZSByZWdpb24gZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZyb20gT3JiaXQncyBidWxsZXRzIHRvIHdoYXRldmVyIGNvbnRlbnQgbWF5IGx1cmsgYmVsb3cgaXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjb250cm9scyB3aGVuIGhvdmVyZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgei1pbmRleCBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIG91dGVyIE9yYml0IHdyYXBwZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgT3JiaXQgc2xpZGUgY29udGFpbmVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY29udGFpbmVyYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDsgLy8gUHJldmVudCBGT1VDIGJ5IG5vdCBzaG93aW5nIHVudGlsIEpTIHNldHMgaGVpZ2h0XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5kaXZpZHVhbCBzbGlkZXMgb2YgYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtc2xpZGVgIGNsYXNzLlxuQG1peGluIG9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHNsaWRlIGNvbnRhaW5pbmcgYW4gaW1hZ2UuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1pbWFnZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG5cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBwYWdpbmF0aW9uIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheSB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUgZXZlbiBpZiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYGZhbHNlYC5cbi8vLyBUaGlzIHBhcmFtZXRlciB3aWxsIG9ubHkgb3ZlcnJpZGUgdGhlIHZpc2liaWxpdHkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBpdGVtIGZvciBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtgLFxuLy8vIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgY3VycmVudCBwYWdlIG51bWJlciB2aXNpYmlsaXR5IHdoZW4gYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGB0cnVlYC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYXJyb3dzIGFyZSBhZGRlZCB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3Mgb2YgcGFnaW5hdGlvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWVsZW1lbnQtbmVzdGluZywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhc2UgLSBDb2xvciB0byBjaGVjayBsdW1pbmFuY2UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkY29sb3JzIFsoJHdoaXRlLCAkYmxhY2spXSAtIENvbG9ycyB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gdGFicy1jb250YWluZXIgKFxuICAkbWFyZ2luOiAkdGFiLW1hcmdpbixcbiAgJGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZCxcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRtYXJnaW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxuQG1peGluIHRhYnMtdGl0bGUgKFxuICAkcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemUsXG4gICRjb2xvcjogJHRhYi1jb2xvcixcbiAgJGNvbG9yLWFjdGl2ZTogJHRhYi1hY3RpdmUtY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGJhY2tncm91bmQtYWN0aXZlOiAkdGFiLWJhY2tncm91bmQtYWN0aXZlXG4pIHtcbiAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi50b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5yaWdodCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlO1xuICB9XG5cbiAgJi5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0Jykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0JywgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEgeyBcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG5AbWl4aW4gLW1vdGlvbi11aS1kZWZhdWx0cyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLWVhc2luZ3MsIGRlZmF1bHQpO1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xuICAvLyBTbGlkZVxuICAuc2xpZGUtaW4tZG93biAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGRvd24pOyB9XG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XG4gIC5zbGlkZS1pbi11cCAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgdXApOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxuICAuc2xpZGUtb3V0LXJpZ2h0ICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHJpZ2h0KTsgfVxuICAuc2xpZGUtb3V0LXVwICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHVwKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAuc2hha2UsXG4gIC5zcGluLWN3LFxuICAuc3Bpbi1jY3csXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgcGF1c2UtcXVldWUtY2xhc3M6ICdpcy1wYXVzZWQnLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIFwiI3skb3V0cHV0fVwiO1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgLW11aS1pcy1mdW5jdGlvbigkbWFwKSB7XG4gICAgICAkbWFwOiAtbXVpLXNhZmUtY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgdHJhbnNpdGlvbiBieSB0cmFuc2xhdGluZyB0aGUgZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW251bGxdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuIEJ5IGRlZmF1bHQgYGxlZnRgIGFuZCBgcmlnaHRgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbnVsbCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gIT0gbnVsbCwgJGRpcmVjdGlvbiwgaWYoJHN0YXRlID09IGluLCBsZWZ0LCByaWdodCkpO1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFtudWxsXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLiBCeSBkZWZhdWx0IGAwYCBhbmQgYDFgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gW251bGxdIC0gT3BhY2l0eSB0byBlbmQgb24uIEJ5IGRlZmF1bHQgYDFgIGFuZCBgMGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IG51bGwsXG4gICR0bzogbnVsbCxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZnJvbTogaWYoJGZyb20gIT0gbnVsbCwgJGZyb20sIGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSkpO1xuICAkdG86IGlmKCR0byAhPSBudWxsLCAkdG8sIGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCkpO1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtudWxsXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuIEJ5IGRlZmF1bHQgYGZyb20tYmFja2AgYW5kIGBmcm9tLWZyb250YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogbnVsbFxuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICR0dXJuLW9yaWdpbjogaWYoJHR1cm4tb3JpZ2luICE9IG51bGwsICR0dXJuLW9yaWdpbiwgaWYoJHN0YXRlID09IGluLCBmcm9tLWJhY2ssIGZyb20tZnJvbnQpKTtcbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogLW11aS1zdHJpbmctc2FmZSgnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScpLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW251bGxdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC4gQnkgZGVmYXVsdCBgZnJvbS1iYWNrYCBhbmQgYGZyb20tZnJvbnRgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IG51bGwsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGhpbmdlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkdHVybi1vcmlnaW46IGlmKCR0dXJuLW9yaWdpbiAhPSBudWxsLCAkdHVybi1vcmlnaW4sIGlmKCRzdGF0ZSA9PSBpbiwgZnJvbS1iYWNrLCBmcm9tLWZyb250KSk7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbbnVsbF0gLSBTaXplIHRvIHN0YXJ0IGF0LiBCeSBkZWZhdWx0IGAwYCBhbmQgYDFgIGZvciBgaW5gIGFuZCBgb3V0YCBzdGF0ZXMgcmVzcGVjdGl2ZWx5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gW251bGxdIC0gU2l6ZSB0byBlbmQgYXQuIEJ5IGRlZmF1bHQgYDFgIGFuZCBgMGAgZm9yIGBpbmAgYW5kIGBvdXRgIHN0YXRlcyByZXNwZWN0aXZlbHkuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS16b29tKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbnVsbCxcbiAgJHRvOiBudWxsLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZyb206IGlmKCRmcm9tICE9IG51bGwsICRmcm9tLCBpZigkc3RhdGUgPT0gaW4sIDAsIDEpKTtcbiAgJHRvOiBpZigkdG8gIT0gbnVsbCwgJHRvLCBpZigkc3RhdGUgPT0gaW4sIDEsIDApKTtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW251bGxdIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS4gQnkgZGVmYXVsdCBgY3dgIGFuZCBgY2N3YCBmb3IgYGluYCBhbmQgYG91dGAgc3RhdGVzIHJlc3BlY3RpdmVseS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMC43NXR1cm5dIC0gQW1vdW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc3BpbihcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogY3csXG4gICRhbW91bnQ6IDAuNzV0dXJuLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzcGluLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uICE9IG51bGwsICRkaXJlY3Rpb24sIGlmKCRzdGF0ZSA9PSBpbiwgY3csIGNjdykpO1xuICAkc3Bpbjogc3Bpbigkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyBhbmQgYXNzaWducyBpdCB0byB0aGUgZWxlbWVudCBieSBhZGRpbmcgdGhlIGBhbmltYXRpb24tbmFtZWAgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xuICAkbmFtZTogbWFwLWdldCgtbXVpLXByb2Nlc3MtYXJncygkYXJncy4uLiksIG5hbWUpO1xuICBAaW5jbHVkZSBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkYXJncy4uLik7XG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcbn1cbiIsIi8qKlxuICogMDEuIFNwYWNpbmdcbiAqIDAyLiBQbGFjZWhvbGRlclxuICogMDMuIEdsb2JhbCBGb3Jtc1xuICogMDQuIEljb24gRm9udFxuICogMDUuIERpc3BsYXkgSGVhZGluZ1xuICogMDYuIFBvc3QgU3VidGl0bGVcbiAqL1xuXG5cbi8vIDAxLiBTcGFjaW5nXG5cbkBtaXhpbiBzcGFjaW5nLWxheW91dCggJHByb3BlcnR5LCAkcHJlZml4OiAnJyApIHtcbiAgJHByb3BlcnR5X2NsYXNzOiAjeyRwcm9wZXJ0eX0gIWRlZmF1bHQ7XG5cbiAgQGlmICRwcmVmaXggIT0gJycge1xuICAgICRwcm9wZXJ0eV9jbGFzczogI3skcHJlZml4fS0jeyRwcm9wZXJ0eX07XG4gIH1cblxuICBAZWFjaCAkZGlyZWN0aW9uIGluICRkaXJlY3Rpb25zIHtcbiAgICAuI3skcHJvcGVydHlfY2xhc3N9LSN7JGRpcmVjdGlvbn0ge1xuICAgICAgI3skcHJvcGVydHl9LSN7JGRpcmVjdGlvbn06IDJyZW07XG4gICAgfVxuXG4gICAgQGVhY2ggJHR5cGUsICRzaXplIGluICRzcGFjaW5nLXNpemVzIHtcbiAgICAgIC4jeyRwcm9wZXJ0eV9jbGFzc30tI3skZGlyZWN0aW9ufS0jeyR0eXBlfSB7XG4gICAgICAgICN7JHByb3BlcnR5fS0jeyRkaXJlY3Rpb259OiAkc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuI3skcHJvcGVydHlfY2xhc3N9LWFsbCB7XG4gICAgI3skcHJvcGVydHl9OiAycmVtO1xuICB9XG5cbiAgQGVhY2ggJHR5cGUsICRzaXplIGluICRzcGFjaW5nLXNpemVzIHtcbiAgICAuI3skcHJvcGVydHlfY2xhc3N9LWFsbC0jeyR0eXBlfSB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICRzaXplO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIDAyLiBQbGFjZWhvbGRlclxuXG5AbWl4aW4gcGxhY2Vob2xkZXItc3R5bGUoKSB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjotbW96LXBsYWNlaG9sZGVyIHsgLyogRmlyZWZveCAxOC0gKi9cbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogRmlyZWZveCAxOSsgKi9cbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8vIDAzLiBHbG9iYWwgRm9ybXNcblxuQG1peGluIGdsb2JhbC1mb3JtLXN0eWxlcyB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cblxuLy8gMDQuIEljb24gRm9udFxuXG5AbWl4aW4gaWNvbi1mb250IHtcbiAgZm9udC1mYW1pbHk6ICd1bmRhcmsnICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5cbi8vIDA1LiBEaXNwbGF5IEhlYWRpbmdcblxuQG1peGluIGRpc3BsYXktaGVhZGluZyggJHNpemU6IG5vcm1hbCApIHtcbiAgJGZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcblxuICBAaWYgKCBzbWFsbCA9PSAkc2l6ZSApIHtcbiAgICAkZm9udC1zaXplOiAxMXB4O1xuICB9XG5cbiAgZm9udDoge1xuICAgIGZhbWlseTogJGZvbnQtc2FucztcbiAgICBzaXplOiAkZm9udC1zaXplO1xuICAgIHdlaWdodDogNzAwO1xuICB9O1xuICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuXG4vLyAwNi4gUG9zdCBTdWJ0aXRsZVxuXG5AbWl4aW4gcG9zdC1oZWFkZXItc3VidGl0bGUge1xuXHRmb250OiB7XG5cdFx0c2l6ZTogMjBweDtcblx0XHRzdHlsZTogaXRhbGljO1xuXHR9O1xuXHRsaW5lLWhlaWdodDogMS4zO1xuXG5cdEBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiA3NjhweCApIHtcblx0XHRmb250LXNpemU6IDI2cHg7XG5cdH1cbn1cbiIsIiRpY29tb29uLWZvbnQtZmFtaWx5OiBcInVuZGFya1wiICFkZWZhdWx0O1xuJGljb21vb24tZm9udC1wYXRoOiBcIi4uL2Fzc2V0cy9mb250c1wiICFkZWZhdWx0O1xuXG4kaWNvbi1jbG9zZTogXCJcXGU5MDBcIjtcbiRpY29uLWZhY2Vib29rOiBcIlxcZTkwMVwiO1xuJGljb24tdHdpdHRlcjogXCJcXGU5MDJcIjtcbiRpY29uLXZpbWVvOiBcIlxcZTkwM1wiO1xuJGljb24tcmVkZGl0OiBcIlxcZTkxMFwiO1xuJGljb24tZmxpcGJvYXJkOiBcIlxcZTkxMVwiO1xuJGljb24tcG9ja2V0OiBcIlxcZTkxMlwiO1xuJGljb24taGFtYnVyZ2VyOiBcIlxcZTkwNFwiO1xuJGljb24tcG9kY2FzdDogXCJcXGU5MDVcIjtcbiRpY29uLXBsYXk6IFwiXFxlOTA2XCI7XG4kaWNvbi1hcnJvdy1sZWZ0OiBcIlxcZTkwN1wiO1xuJGljb24tYXJyb3ctcmlnaHQ6IFwiXFxlOTA4XCI7XG4kaWNvbi1hcnJvdy11cDogXCJcXGU5MDlcIjtcbiRpY29uLWFycm93LWRvd246IFwiXFxlOTBhXCI7XG4kaWNvbi1wbHVzOiBcIlxcZTkwYlwiO1xuJGljb24tZG93bmxvYWQ6IFwiXFxlOTBjXCI7XG4kaWNvbi1jb21tZW50OiBcIlxcZTkwZFwiO1xuJGljb24tcmVwdWJsaXNoLXRvcDogXCJcXGU5MGVcIjtcbiRpY29uLXJlcHVibGlzaC1ib3R0b206IFwiXFxlOTBmXCI7XG5cbiRzb2NpYWwtbGlzdDogKFxuXHRmYWNlYm9vayA6ICRpY29uLWZhY2Vib29rLFxuXHR0d2l0dGVyIDogJGljb24tdHdpdHRlcixcblx0dmltZW86ICRpY29uLXZpbWVvLFxuXHRyZWRkaXQ6ICRpY29uLXJlZGRpdCxcblx0ZmxpcGJvYXJkOiAkaWNvbi1mbGlwYm9hcmQsXG5cdHBvY2tldDogJGljb24tcG9ja2V0XG4pO1xuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICcjeyRpY29tb29uLWZvbnQtZmFtaWx5fSc7XG5cdHNyYzogIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9LyN7JGljb21vb24tZm9udC1mYW1pbHl9LmVvdD9mZjVicjEnKTtcblx0c3JjOiAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vI3skaWNvbW9vbi1mb250LWZhbWlseX0uZW90P2ZmNWJyMSNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0dXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vI3skaWNvbW9vbi1mb250LWZhbWlseX0ud29mZjI/ZmY1YnIxJykgZm9ybWF0KCd3b2ZmMicpLFxuXHR1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS8jeyRpY29tb29uLWZvbnQtZmFtaWx5fS50dGY/ZmY1YnIxJykgZm9ybWF0KCd0cnVldHlwZScpLFxuXHR1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS8jeyRpY29tb29uLWZvbnQtZmFtaWx5fS53b2ZmP2ZmNWJyMScpIGZvcm1hdCgnd29mZicpLFxuXHR1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS8jeyRpY29tb29uLWZvbnQtZmFtaWx5fS5zdmc/ZmY1YnIxIyN7JGljb21vb24tZm9udC1mYW1pbHl9JykgZm9ybWF0KCdzdmcnKTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LWRpc3BsYXk6IGJsb2NrO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl0sIFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHQvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuXHRmb250LWZhbWlseTogJyN7JGljb21vb24tZm9udC1mYW1pbHl9JyAhaW1wb3J0YW50O1xuXHRzcGVhazogbm9uZTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmljb24tY2xvc2Uge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tY2xvc2U7XG5cdH1cbn1cbi5pY29uLWZhY2Vib29rIHtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICRpY29uLWZhY2Vib29rO1xuXHR9XG59XG4uaWNvbi10d2l0dGVyIHtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICRpY29uLXR3aXR0ZXI7XG5cdH1cbn1cbi5pY29uLXZpbWVvIHtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICRpY29uLXZpbWVvO1xuXHR9XG59XG4uaWNvbi1yZWRkaXQge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tcmVkZGl0O1xuXHR9XG59XG4uaWNvbi1mbGlwYm9hcmQge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tZmxpcGJvYXJkO1xuXHR9XG59XG4uaWNvbi1wb2NrZXQge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tcG9ja2V0O1xuXHR9XG59XG4uaWNvbi1oYW1idXJnZXIge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24taGFtYnVyZ2VyO1xuXHR9XG59XG4uaWNvbi1wb2RjYXN0IHtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICRpY29uLXBvZGNhc3Q7XG5cdH1cbn1cbi5pY29uLXBsYXkge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tcGxheTtcblx0fVxufVxuLmljb24tYXJyb3ctbGVmdCB7XG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAkaWNvbi1hcnJvdy1sZWZ0O1xuXHR9XG59XG4uaWNvbi1hcnJvdy1yaWdodCB7XG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAkaWNvbi1hcnJvdy1yaWdodDtcblx0fVxufVxuLmljb24tYXJyb3ctdXAge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tYXJyb3ctdXA7XG5cdH1cbn1cbi5pY29uLWFycm93LWRvd24ge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tYXJyb3ctZG93bjtcblx0fVxufVxuLmljb24tcGx1cyB7XG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAkaWNvbi1wbHVzO1xuXHR9XG59XG4uaWNvbi1kb3dubG9hZCB7XG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAkaWNvbi1kb3dubG9hZDtcblx0fVxufVxuLmljb24tY29tbWVudCB7XG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAkaWNvbi1jb21tZW50O1xuXHR9XG59XG4uaWNvbi1yZXB1Ymxpc2gtdG9wIHtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICRpY29uLXJlcHVibGlzaC10b3A7XG5cdH1cbn1cbi5pY29uLXJlcHVibGlzaC1ib3R0b20ge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tcmVwdWJsaXNoLWJvdHRvbTtcblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gSGVhZGVyc1xuICogMDIuIEJ1dHRvbnNcbiAqIDAzLiBIZWxwZXJzXG4gKiAwNC4gUHVsbCBRdW90ZXMgKE5vdyBJbmxpbmUgUHVsbCBRdW90ZXMpXG4gKiAwNS4gQ2hhcHRlciBCcmVha3NcbiAqL1xuXG5wIHtcblx0Zm9udC1zaXplOiAxLjEyNXJlbTtcblx0bGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLy8gMDEuIEhlYWRlcnNcblxuaDEge1xuXHRmb250LXdlaWdodDogNjAwO1xufVxuXG5oMiwgaDMsIGg0LCBoNSwgaDYge1xuXHRmb250LXdlaWdodDogNDAwO1xufVxuXG5oNSB7XG5cdGxpbmUtaGVpZ2h0OiAxLjE4NzVyZW07XG59XG5cbmg1LCBoNiB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xufVxuXG4uZGlzcGxheS1oZWFkaW5nIHtcblx0QGluY2x1ZGUgZGlzcGxheS1oZWFkaW5nO1xufVxuXG5cbi8vIDAyLiBCdXR0b25zXG5cbi5idXR0b24ge1xuXHQmLndoaXRlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0Y29sb3I6ICRibGFjaztcblx0fVxufVxuXG5cbi8vIDAzLiBIZWxwZXJzXG5cbi5mb250LXNhbnMge1xuXHRmb250LWZhbWlseTogJGZvbnQtc2Fucztcbn1cblxuLmZvbnQtbWVkaXVtIHtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmZvbnQtYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi50ZXh0LXVuZGVybGluZSB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZm9udC1pdGFsaWMge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5mb250LXNtYWxsIHtcblx0Zm9udC1zaXplOiAxM3B4O1xufVxuXG4uZHJvcGNhcCxcbi5kcm9wLWNhcCB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRmb250LXNpemU6IDMuNXJlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1hcmdpbi1sZWZ0OiAtNHJlbTtcblx0bGluZS1oZWlnaHQ6IDIuNXJlbTtcblx0bWFyZ2luLXRvcDogLjVyZW07XG5cdHdpZHRoOiA1NnB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGdvbGQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0aGVpZ2h0OiAxMTVweDtcblx0XHR3aWR0aDogMTE1cHg7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCBpcGFkIGRvd24gKSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Zm9udC1zaXplOiAxLjc1cmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdHBhZGRpbmc6IDFyZW0gMXJlbSAxcmVtIDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiA2OHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGhlaWdodDogNjVweDtcblx0XHRcdHdpZHRoOiA2NXB4O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogMDtcblx0XHRcdHRyYW5zZm9ybTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLmJvbGRlZCB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRmb250LXNpemU6IC44NzVyZW07XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cblxuLy8gMDQuIFB1bGwgcXVvdGVzXG5cbi51bmRhcmstcHVsbC1xdW90ZSwgLnVuZGFyay1pbmxpbmUtcXVvdGUge1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRtYXJnaW46IDJyZW0gMDtcblx0Zm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG5cdGNsZWFyOiBib3RoO1xuXG5cdC51bmRhcmstcXVvdGUge1xuXHRcdG1hcmdpbjogMXJlbSAwO1xuXHR9XG59XG5cbi5oci1zZXBhcmF0b3Ige1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2Fzc2V0cy9pbWcvbnVkb3RzLnBuZycpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDhweDtcblx0Ym9yZGVyOiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy8gMDUuIENoYXB0ZXIgQnJlYWtzXG4uY2hhcHRlci1icmVhayB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRtYXJnaW46IDRyZW0gMDtcblxuXHRzdHJvbmcge1xuXHRcdGZvbnQtZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Y29sb3I6ICRib2R5LWJhY2tncm91bmQ7XG5cdFx0dGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICRnb2xkLCAxcHggLTFweCAwICRnb2xkLCAtMXB4IDFweCAwICRnb2xkLCAxcHggMXB4IDAgJGdvbGQ7XG5cdFx0cGFkZGluZzogMCAwIDEwcHggMDtcblx0XHRmb250LXNpemU6IDIwMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxNjBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHRzcGFuIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRib3JkZXItZ3JheTtcblx0XHRtYXJnaW4tdG9wOiAxcmVtO1xuXHRcdHBhZGRpbmctdG9wOiAuNzVyZW07XG5cdFx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cdH1cbn1cbiIsIi8qKlxuICogMDAuIEdsb2JhbCBHcmF2aXR5XG4gKiAwMS4gQWpheCBGb3JtIFNwaW5uZXJcbiAqIDAyLiBEZXNrIE92ZXJsYXkgTmV3c2xldHRlclxuICogMDMuIEJhc2ljIEZvcm1cbiAqIDA0LiBTdWJtaXNzaW9uXG4gKi9cblxuLy8gMDAuIEdsb2JhbCBHcmF2aXR5XG4uZ2Zvcm1fd3JhcHBlciB7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHR1bC5nZm9ybV9maWVsZHMge1xuXHRcdFx0bGkuaGFsZi13aWR0aCwgbGkuaGFsZl93aWR0aCB7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRjbGVhcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHQuZ2ZpZWxkOm5vdCguaGFsZi13aWR0aCkge1xuXHRcdFx0XHRjbGVhcjogYm90aDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR1bCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0fVxuXG5cdHRleHRhcmVhIHtcblx0XHRoZWlnaHQ6IDEyMHB4O1xuXG5cdFx0Ji5zbWFsbCB7XG5cdFx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0fVxuXHR9XG5cblx0dWwuZ2Zvcm1fZmllbGRzIHtcblx0XHRsaSB7XG5cdFx0XHRtYXJnaW46IDAgMCAxcmVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGFiZWwge1xuXHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHR9XG5cblx0XHRzZWxlY3QsIGlucHV0LCB0ZXh0YXJlYSB7XG5cdFx0XHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xMjVyZW07XG5cdFx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblxuXHRcdFx0QGluY2x1ZGUgcGxhY2Vob2xkZXItc3R5bGUge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHVsLmdmaWVsZF9yYWRpbyB7XG5cdFx0XHRpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdFx0bWFyZ2luLXRvcDogNHB4O1xuXG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdFx0KyBsYWJlbCB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMnJlbTtcblxuXHRcdFx0XHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAkZ2xvYmFsLWJvcmRlcjtcblx0XHRcdFx0XHRcdGJvcmRlci13aWR0aDogM3B4O1xuXHRcdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGhlaWdodDogMTBweDtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHR0b3A6IDVweDtcblx0XHRcdFx0XHRcdGxlZnQ6IDVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmNoZWNrZWQge1xuXHRcdFx0XHRcdCsgbGFiZWw6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXG5cdFx0XHRsYWJlbCB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZ2Zvcm1fZm9vdGVyIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMXJlbTtcblx0XHR9XG5cblx0XHRpbnB1dCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0bWFyZ2luLXRvcDogLjVyZW07XG5cdFx0fVxuXG5cdFx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXVtkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogJGRhcmstZ3JheTtcblx0XHRcdGJvcmRlci1jb2xvcjogJGRhcmstZ3JheTtcblx0XHR9XG5cdH1cblxuXHQmLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3Ige1xuXHRcdC52YWxpZGF0aW9uX2Vycm9yIHtcblx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdGZvbnQtc2l6ZTogMC44MTI1cmVtOyAvLzAuODc1cmVtIDE0cHggQCA2MDAgYnJlYWtzIG51bWJlcnMsIG1pZ2h0IGFmZmVjdCBzdWdnZXN0ZWQgZW1haWxzO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdGxpLmdmaWVsZC5nZmllbGRfZXJyb3Ige1xuXG5cdFx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cblx0XHRcdC5naW5wdXRfY29udGFpbmVyIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHRsYWJlbCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0aW5wdXQsIHRleHRhcmVhIHtcblx0XHRcdFx0Ym9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICRyZWQgIWltcG9ydGFudDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHRcdC5nZmllbGRfZGVzY3JpcHRpb24udmFsaWRhdGlvbl9tZXNzYWdlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHJlZDtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRwYWRkaW5nOiAuMjVyZW0gLjVyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMXJlbSAwO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gQW50aSBTcGFtIFN0eWxlc1xuXG4uZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIsXG4uZ2Zvcm1fd3JhcHBlciAuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIsXG5ib2R5IC5nZm9ybV93cmFwcGVyIC5nZm9ybV9ib2R5IHVsLmdmb3JtX2ZpZWxkcyBsaS5nZmllbGQuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIsXG5ib2R5IC5nZm9ybV93cmFwcGVyIGxpLmdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyLFxuYm9keSAuZ2Zvcm1fd3JhcHBlciB1bC5nZm9ybV9maWVsZHMgbGkuZ2ZpZWxkLmdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0bGVmdDogLTkwMDBweCAhaW1wb3J0YW50O1xufVxuXG5cblxuLy8gMDEuIEFqYXggRm9ybSBTcGlubmVyXG5cbkBrZXlmcmFtZXMgcm90YXRpbmdTcGlubmVyIHtcblx0MCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHRyYW5zbGF0ZSgwLCAtNTAlKTtcblx0fVxuXHQxMDAlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIHRyYW5zbGF0ZSgwLCAtNTAlKTtcblx0fVxufVxuXG4vLy5nZm9ybV9hamF4X3NwaW5uZXIge1xuLy9cdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuLy9cdGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoICR3aGl0ZSwgMC41KTtcbi8vXHRhbmltYXRpb246IHJvdGF0aW5nU3Bpbm5lciAxLjJzIGluZmluaXRlIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpO1xuLy9cdGJhY2tncm91bmQ6IG5vbmU7XG4vL1x0Ym9yZGVyLXRvcC1jb2xvcjogJHdoaXRlO1xuLy9cdGhlaWdodDogMDtcbi8vXHR3aWR0aDogMDtcbi8vXHRwYWRkaW5nOiAxOHB4O1xuLy9cdG1hcmdpbi10b3A6IDJweDtcbi8vXHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuLy9cbi8vXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4vL1x0bGVmdDogNTAlO1xuLy9cdHRvcDogNTAlO1xuLy9cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuLy9cbi8vXHQvL2hlaWdodDogNjBweDtcbi8vXHQvL21hcmdpbi1sZWZ0OiAtMzhweDtcbi8vXG4vL1x0bWFyZ2luLWxlZnQ6IC0zNHB4OyAvLyAtMXJlbSBmb3IgY29udGFpbmVyIHBhZGRpbmcsIC0xOHB4IGZvciBzcGlubmVyIHBhZGRpbmdcbi8vfVxuXG5cbi8vIDAyLiBEZXNrIE92ZXJsYXkgTmV3c2xldHRlclxuXG4ubmV3c2xldHRlci1zaWdudXAge1xuXG5cdC5uZXdzbGV0dGVyLWNvbnRlbnQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXHQubmV3c2xldHRlci1zaWdudXAtdGl0bGUge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuXHR9XG5cdC5uZXdzbGV0dGVyLXRhZ2xpbmUge1xuXHRcdGNvbG9yOiAkZ29sZDtcblx0XHRmb250LWZhbWlseTogJGZvbnQtc2Fucztcblx0XHRmb250LXNpemU6IC43NXJlbTtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdHdpZHRoOiA2MHB4O1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogLTEuNXJlbTtcblx0XHRyaWdodDogLS4yNXJlbTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0aGVpZ2h0OiA4MHB4O1xuXHRcdFx0d2lkdGg6IDgwcHg7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG5cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRnb2xkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbGFyZ2UgKSB7XG5cdFx0XHR0b3A6IC0zLjI1cmVtO1xuXHRcdFx0cmlnaHQ6IC0xcmVtO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGhlaWdodDogMTAwcHg7XG5cdFx0XHRcdHdpZHRoOiAxMDBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQjZGVza3RvcC1tZW51LW92ZXJsYXkgJiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCNmb290ZXIgJiB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luLXRvcDogLThyZW07XG5cblx0XHRcdC5uZXdzbGV0dGVyLXNpZ251cC10aXRsZSB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDZyZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5uZXdzbGV0dGVyLXNpZ251cC1mb3JtIHtcblx0I2Rlc2t0b3AtbWVudS1vdmVybGF5ICYsXG5cdCNmb290ZXIgJixcblx0Lm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlICYge1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQ7XG5cdFx0QGluY2x1ZGUgZmxleC1hbGlnbigkeTogYm90dG9tKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkYmxhY2s7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXG5cdFx0dWwuZ2Zvcm1fZmllbGRzIHtcblx0XHRcdGxpLmdmaWVsZCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZ2Zvcm1fYm9keSxcblx0XHQuZ2Zvcm1fZm9vdGVyIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwtYmFzZTtcblxuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXG5cdFx0Lmdmb3JtX2JvZHkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGZvbnQ6IHtcblx0XHRcdFx0XHRzaXplOiAyMnB4O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMzJweDtcblx0XHRcdFx0bWluLWhlaWdodDogMzJweDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cblx0XHRcdFx0QGluY2x1ZGUgcGxhY2Vob2xkZXItc3R5bGUge1xuXHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1pbi13aWR0aDogODUwcHggKSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAzNnB4O1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA0NnB4O1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IDQ2cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZ2Zvcm1fZm9vdGVyIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuXG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdC5idXR0b24ge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogLjVyZW07XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lmdmb3JtX3ZhbGlkYXRpb25fZXJyb3IgJiB7XG5cdFx0LmdmaWVsZC5nZmllbGRfZXJyb3IgaW5wdXQge1xuXHRcdFx0bWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdD4gLnZhbGlkYXRpb25fZXJyb3Ige1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQudmFsaWRhdGlvbl9tZXNzYWdlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLm5ld3NsZXR0ZXItYmxvY2stc2hvcnRjb2RlIHtcblx0Lm5ld3NsZXR0ZXItc2lnbnVwIHtcblx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRpbWFnZTogdXJsKCcuLi9pbWFnZXMvdS1vdXRsaW5lQDJ4LnBuZycpO1xuXHRcdFx0cG9zaXRpb246IC0zNXB4IDMwcHg7XG5cdFx0XHRyZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdHNpemU6IGNvbnRhaW47XG5cdFx0fTtcblx0XHRtYXJnaW46IHtcblx0XHRcdHRvcDogNHJlbTtcblx0XHRcdGJvdHRvbTogNHJlbTtcblx0XHR9O1xuXHRcdHBhZGRpbmctbGVmdDogMjIlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHggNDBweDtcblx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRsZWZ0OiAtOHJlbTtcblx0XHRcdFx0cmlnaHQ6IC04cmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwMy4gQmFzaWMgRm9ybVxuXG5mb3JtLmJhc2ljLWZvcm0ge1xuXHQvLyBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbn1cblxuLmJhc2ljLWZvcm1fd3JhcHBlci5nZm9ybV93cmFwcGVyIHtcblx0Zm9ybTpub3QoW2NsYXNzKj1cImJhY2tncm91bmQtXCJdKSB7XG5cdFx0Lmdmb3JtX2ZpZWxkcyB7XG5cdFx0XHRtYXJnaW46IDAgLS41cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdGZvcm1bY2xhc3MqPVwiYmFja2dyb3VuZC1cIl0ge1xuXHRcdC5nZm9ybV9oZWFkaW5nIHtcblx0XHRcdHBhZGRpbmc6IDFyZW0gMXJlbSAwO1xuXHRcdH1cblxuXHRcdC5nZm9ybV9mb290ZXIge1xuXHRcdFx0cGFkZGluZzogMCAxcmVtIDFyZW07XG5cdFx0fVxuXHR9XG5cblx0Lmdmb3JtX2hlYWRpbmcge1xuXHRcdC5nZm9ybV90aXRsZSB7XG5cdFx0XHRmb250LWZhbWlseTogJGZvbnQtc2Fucztcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0Lmdmb3JtX2ZpZWxkcyB7XG5cdFx0cGFkZGluZzogMCAuNXJlbTtcblxuXHRcdC5nZmllbGQge1xuXHRcdFx0cGFkZGluZzogMCAuNXJlbTtcblxuXHRcdFx0Jjpub3QoLmZ1bGwtd2lkdGgpOm5vdCgubmV3c2xldHRlci1zaWdudXApIHtcblx0XHRcdFx0Y2xlYXI6IG5vbmU7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0fVxuXG5cdFx0XHQuZ2lucHV0X2NvbnRhaW5lciB7XG5cdFx0XHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDA0LiBTdWJtaXNzaW9uXG5cbmJvZHkge1xuXHQuZ2Zvcm1fd3JhcHBlciAuZm9ybV9zYXZlZF9tZXNzYWdlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcblx0XHRjb2xvcjogJGJsYWNrO1xuXG5cdFx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBibGFjayAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0LmZvcm1fc2F2ZWRfbWVzc2FnZV9zZW50IHtcblx0XHRiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblx0XHRjb2xvcjogJGJsYWNrO1xuXHR9XG59XG4iLCIvKlxuICogMDEuIEZvcm0gU3R5bGVzXG4gKiAwMi4gRmlsdGVyIEJ1YmJsZSBTdHlsZXNcbiAqIDAzLiBSZXN1bHRzIENvbnRhaW5lciBTdHlsZXNcbiAqL1xuXG4ucmVzb3J0bWVudC1jb250YWluZXIge1xuXG5cdC5oaWRkZW4ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQvLyAwMS4gRm9ybSBTdHlsZXNcblx0Zm9ybSB7XG5cdFx0c2VsZWN0LCAuc2VsZWN0Mi1zZWxlY3Rpb24uc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSwgLmZpbHRlci1zZWFyY2gge1xuXHRcdFx0Ym9yZGVyOiAkZ2xvYmFsLWJvcmRlcjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItd2lkdGg6IDNweDtcblx0XHRcdGhlaWdodDogNDZweDtcblx0XHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRmb250LXNpemU6IC44NzVyZW07XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuc2VsZWN0Mi1jb250YWluZXIsIC5zZWFyY2gtYm94IHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0fVxuXG5cdFx0c2VsZWN0IHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDMxcHg7XG5cdFx0fVxuXG5cdFx0LmZpbHRlci1zZWFyY2g6YWN0aXZlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0fVxuXG5cdFx0LnNlYXJjaC1jb250YWluZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQuc2VhcmNoLWJ1dHRvbiB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAzcHg7XG5cdFx0XHRcdHJpZ2h0OiAzcHg7XG5cdFx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdFx0d2lkdGg6IDQwcHg7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRmb250LXNpemU6IDEuMTI1cmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cblx0XHQuc2VsZWN0Mi1jb250YWluZXIge1xuXHRcdFx0b3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQuc2VsZWN0Mi1zZWxlY3Rpb24uc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG5cdFx0XHQuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcblx0XHRcdFx0aGVpZ2h0OiA0MHB4OyAvLyA0NnB4IGhlaWdodCAtIDNweCBib3JkZXIgKHgyKVxuXHRcdFx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRcdH1cblx0XHRcdC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuXHRcdFx0XHR0b3A6IDNweDtcblx0XHRcdFx0cmlnaHQ6IDNweDtcblx0XHRcdFx0d2lkdGg6IDQwcHg7XG5cdFx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZmlsdGVyaW5nLWNvbnRhaW5lciB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtIHVwICkge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWluLWhlaWdodDogNDJweDtcblxuXHRcdFx0LmZvdW5kLXBvc3RzIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5hY3RpdmUtZmlsdGVycyB7XG5cblx0XHR1bCB7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdEBleHRlbmQgLmJ1dHRvbjtcblx0XHRcdFx0XHQvL0BleHRlbmQgLmJ1dHRvbi5ncmF5O1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMXJlbTtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IC41cmVtO1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogLjVyZW07XG5cblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGljb24tZm9udCgpO1xuXHRcdFx0XHRcdFx0Y29udGVudDogJGljb24tY2xvc2U7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IC43NXJlbTtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IC0xcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lm5vLXJlc3VsdHMge1xuXHRcdG1hcmdpbjogMXJlbSBhdXRvO1xuXHRcdGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuXHR9XG5cbn1cblxuYm9keS5hZG1pbi1iYXIgPiAuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xuXHRtYXJnaW4tdG9wOiAzMnB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQgKDc4MnB4IGRvd24pIHtcblx0XHRtYXJnaW4tdG9wOiA0NnB4O1xuXHR9XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1kcm9wZG93biB7XG5cdGJvcmRlcjogJGdsb2JhbC1ib3JkZXI7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cdGJvcmRlci13aWR0aDogM3B4O1xuXG5cdC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7XG5cdH1cbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuXHQmOmJlZm9yZSB7XG5cdFx0QGluY2x1ZGUgaWNvbl9mb250KCk7XG5cdFx0Y29udGVudDogJGljb24tYXJyb3ctZG93bjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG5cdFx0Zm9udC1zaXplOiAuNXJlbTtcblx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdH1cblxuXHRiIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59IiwiLyoqXG4gKiAwMS4gSmV0cGFja1xuICovXG5cblxuLy8gMDEuIEpldHBhY2tcblxuLnNoYXJlZGFkZHkgLnNkLXNvY2lhbCAuc2QtY29udGVudCB7XG5cdG1hcmdpbjogMzBweCAwO1xuXG5cdGxpW2NsYXNzKj1cInNoYXJlLVwiXSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC5zaGFyZS1pY29uLnNkLWJ1dHRvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBibGFjayAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgd2hpdGU7XG5cdFx0XHRjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0bWFyZ2luOiAwIDZweCA1cHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6IDAgIWltcG9ydGFudDtcblxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdEBpbmNsdWRlIGljb24tZm9udDtcblxuXHRcdFx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdHdpZHRoOiA0MHB4O1xuXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGxpW2NsYXNzKj1cInNoYXJlLWN1c3RvbS1cIl0ge1xuXHRcdHNwYW5bc3R5bGUqPVwiYmFja2dyb3VuZC1pbWFnZVwiXSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4kbmV0d29ya3M6IChmYWNlYm9vaywgJGljb24tZmFjZWJvb2spLCAodHdpdHRlciwgJGljb24tdHdpdHRlciksIChyZWRkaXQsICRpY29uLXJlZGRpdCksIChjdXN0b20tZmxpcGJvYXJkLCAkaWNvbi1mbGlwYm9hcmQpLCAocG9ja2V0LCAkaWNvbi1wb2NrZXQpO1xuXG4uc2hhcmVkYWRkeSAuc2Qtc29jaWFsIC5zZC1jb250ZW50IHtcblx0QGVhY2ggJG5ldHdvcmssICRpY29uIGluICRuZXR3b3JrcyB7XG5cdFx0LnNoYXJlLSN7JG5ldHdvcmt9IHtcblx0XHRcdC5zaGFyZS1pY29uOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJGljb247XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIud3BnbXphX21hcmtlcmJveCBwIHtcblx0Zm9udC1zaXplOiAuN3JlbTtcblx0bGluZS1oZWlnaHQ6IDFyZW07XG59XG4ud3BnbXphX21hcCB7XG5cdG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbn1cbiIsIi8qKlxuICogMDAuIERpc3BsYXkgJiBNZWRpYSBRdWVyaWVzXG4gKiAwMS4gQ29sb3JzXG4gKiAwMi4gU3BhY2luZ1xuICogMDMuIENvbnRhaW5lclxuICogMDQuIE1pbiBhbmQgTWF4XG4gKiAwNS4gVmVydGljYWwgTGFiZWxcbiAqIDA2LiBIb3Jpem9udGFsIExhYmVsXG4gKiAwNy4gSGVhZGxpbmUgTGFiZWxcbiAqIDA4LiBCYWNrZ3JvdW5kIEltYWdlXG4gKiAwOS4gTG9nbyBCYWNrZ3JvdW5kXG4gKi9cblxuXG5cbi8vIDAwLiBEaXNwbGF5IGFuZCBNZWRpYSBRdWVyaWVzXG5ib2R5IHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRwYWRkaW5nLXRvcDogJHRvcGJhci1pdGVtLWhlaWdodDtcblx0fVxuXG5cdCY6bm90KC5ob21lKSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHBhZGRpbmctdG9wOiA3Ljc1cmVtO1xuXHRcdH1cblx0fVxufVxuXG4uaW5saW5lIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uaW5saW5lLWJsb2NrIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc2hvdy1mb3ItbW9iaWxlIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnNob3ctZm9yLWRlc2t0b3Age1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhICN7JG1vYmlsZS1kb3dufSB7XG5cdC5zaG93LWZvci1tb2JpbGUge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblx0LnNob3ctZm9yLWRlc2t0b3Age1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKCBtaW4td2lkdGg6IDc2OXB4ICkge1xuXHQuc2hvdy1mb3ItaXBhZC11cCB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0LmhpZGUtZm9yLWlwYWQtdXAge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDogNzY4cHggKSB7XG5cdC5oaWRlLWZvci1pcGFkLWRvd24ge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uZ3JpZC14IHtcblx0QG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IG1hcC1nZXQoICRicmVha3BvaW50cywgbGFyZ2UgKSApIGFuZCAoIG1pbi13aWR0aDogNzY4cHggKSB7XG5cdFx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG5cdFx0XHQ+IC5pcGFkLW1lZGl1bS0jeyRpfSB7XG5cdFx0XHRcdHdpZHRoOiAkaS8xMiAqIDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5mbG9hdC1sZWZ0IHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi5mbG9hdC1yaWdodCB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLmZsb2F0LWNlbnRlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IHtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9O1xufVxuXG4uY2xlYXJmaXgge1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLmJhY2tncm91bmQtY292ZXIge1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG5cbi8vIDAxLiBDb2xvcnNcbkBlYWNoICRsYWJlbCwgJGhleCBpbiAkY29sb3ItbWFwIHtcblx0LmJhY2tncm91bmQtI3skbGFiZWx9IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaGV4O1xuXHR9XG5cblx0LmNvbG9yLSN7JGxhYmVsfSwgLmNvbG9yLSN7JGxhYmVsfTpmb2N1cyB7XG5cdFx0Y29sb3I6ICRoZXg7XG5cdH1cblxuXHQubGlua3MtI3skbGFiZWx9IGEsIC5saW5rcy0jeyRsYWJlbH0gYTpmb2N1cyB7XG5cdFx0Y29sb3I6ICRoZXggIWltcG9ydGFudDtcblx0fVxuXHQuYnVsbGV0LWNvbG9yLSN7JGxhYmVsfSBsaTpiZWZvcmUge1xuXHRcdGNvbG9yOiAkaGV4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuYS5kaXNwbGF5LWhlYWRpbmcge1xuXHQubGlua3MtZ29sZCAmLFxuXHQuY29sb3ItZ29sZCAmIHtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkYmxhY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmLmxpbmtzLWdvbGQsXG5cdCYuY29sb3ItZ29sZCB7XG5cdFx0YTpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cbmEuZGlzcGxheS1oZWFkaW5nIHtcblx0LmxpbmtzLWdvbGQgJixcblx0LmNvbG9yLWdvbGQgJiB7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5saW5rcy1nb2xkLFxuXHQmLmNvbG9yLWdvbGQge1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRibGFjayAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAyLiBTcGFjaW5nXG5AaW5jbHVkZSBzcGFjaW5nLWxheW91dCggJ3BhZGRpbmcnICk7XG5AaW5jbHVkZSBzcGFjaW5nLWxheW91dCggJ21hcmdpbicgKTtcblxuLnBhZGRpbmctdmVydGljYWwge1xuXHRwYWRkaW5nOiB7XG5cdFx0Ym90dG9tOiAycmVtO1xuXHRcdHRvcDogMnJlbTtcblx0fTtcblxuXHQmLXNtYWxsIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRib3R0b206IDFyZW07XG5cdFx0XHR0b3A6IDFyZW07XG5cdFx0fTtcblx0fVxuXG5cdCYtbGFyZ2Uge1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGJvdHRvbTogNHJlbTtcblx0XHRcdHRvcDogNHJlbTtcblx0XHR9O1xuXHR9XG59XG5cbi5wYWRkaW5nLWhvcml6b250YWwge1xuXHRwYWRkaW5nOiB7XG5cdFx0bGVmdDogMnJlbTtcblx0XHRyaWdodDogMnJlbTtcblx0fTtcblxuXHQmLXNtYWxsIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRsZWZ0OiAxcmVtO1xuXHRcdFx0cmlnaHQ6IDFyZW07XG5cdFx0fTtcblx0fVxuXG5cdCYtbGFyZ2Uge1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGxlZnQ6IDRyZW07XG5cdFx0XHRyaWdodDogNHJlbTtcblx0XHR9O1xuXHR9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoaXBhZCkge1xuXHRAaW5jbHVkZSBzcGFjaW5nLWxheW91dCggJ3BhZGRpbmcnLCAnaXBhZCcgKTtcblx0QGluY2x1ZGUgc3BhY2luZy1sYXlvdXQoICdtYXJnaW4nLCAnaXBhZCcgKTtcblxuXHQuaXBhZC1wYWRkaW5nLXZlcnRpY2FsIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRib3R0b206IDJyZW07XG5cdFx0XHR0b3A6IDJyZW07XG5cdFx0fTtcblxuXHRcdCYtc21hbGwge1xuXHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRib3R0b206IDFyZW07XG5cdFx0XHRcdHRvcDogMXJlbTtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ji1sYXJnZSB7XG5cdFx0XHRwYWRkaW5nOiB7XG5cdFx0XHRcdGJvdHRvbTogNHJlbTtcblx0XHRcdFx0dG9wOiA0cmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHQuaXBhZC1wYWRkaW5nLWhvcml6b250YWwge1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGxlZnQ6IDJyZW07XG5cdFx0XHRyaWdodDogMnJlbTtcblx0XHR9O1xuXG5cdFx0Ji1zbWFsbCB7XG5cdFx0XHRwYWRkaW5nOiB7XG5cdFx0XHRcdGxlZnQ6IDFyZW07XG5cdFx0XHRcdHJpZ2h0OiAxcmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cblx0XHQmLWxhcmdlIHtcblx0XHRcdHBhZGRpbmc6IHtcblx0XHRcdFx0bGVmdDogNHJlbTtcblx0XHRcdFx0cmlnaHQ6IDRyZW07XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuXG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG5cdEBpbmNsdWRlIHNwYWNpbmctbGF5b3V0KCAncGFkZGluZycsICdtZWRpdW0nICk7XG5cdEBpbmNsdWRlIHNwYWNpbmctbGF5b3V0KCAnbWFyZ2luJywgJ21lZGl1bScgKTtcblxuXHQubWVkaXVtLXBhZGRpbmctdmVydGljYWwge1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGJvdHRvbTogMnJlbTtcblx0XHRcdHRvcDogMnJlbTtcblx0XHR9O1xuXG5cdFx0Ji1zbWFsbCB7XG5cdFx0XHRwYWRkaW5nOiB7XG5cdFx0XHRcdGJvdHRvbTogMXJlbTtcblx0XHRcdFx0dG9wOiAxcmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cblx0XHQmLWxhcmdlIHtcblx0XHRcdHBhZGRpbmc6IHtcblx0XHRcdFx0Ym90dG9tOiA0cmVtO1xuXHRcdFx0XHR0b3A6IDRyZW07XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdC5tZWRpdW0tcGFkZGluZy1ob3Jpem9udGFsIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRsZWZ0OiAycmVtO1xuXHRcdFx0cmlnaHQ6IDJyZW07XG5cdFx0fTtcblxuXHRcdCYtc21hbGwge1xuXHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRsZWZ0OiAxcmVtO1xuXHRcdFx0XHRyaWdodDogMXJlbTtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ji1sYXJnZSB7XG5cdFx0XHRwYWRkaW5nOiB7XG5cdFx0XHRcdGxlZnQ6IDRyZW07XG5cdFx0XHRcdHJpZ2h0OiA0cmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRAaW5jbHVkZSBzcGFjaW5nLWxheW91dCggJ3BhZGRpbmcnLCAnbGFyZ2UnICk7XG5cdEBpbmNsdWRlIHNwYWNpbmctbGF5b3V0KCAnbWFyZ2luJywgJ2xhcmdlJyApO1xuXG5cdC5sYXJnZS1wYWRkaW5nLXZlcnRpY2FsIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRib3R0b206IDJyZW07XG5cdFx0XHR0b3A6IDJyZW07XG5cdFx0fTtcblxuXHRcdCYtc21hbGwge1xuXHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRib3R0b206IDFyZW07XG5cdFx0XHRcdHRvcDogMXJlbTtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ji1sYXJnZSB7XG5cdFx0XHRwYWRkaW5nOiB7XG5cdFx0XHRcdGJvdHRvbTogNHJlbTtcblx0XHRcdFx0dG9wOiA0cmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHQubGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRsZWZ0OiAycmVtO1xuXHRcdFx0cmlnaHQ6IDJyZW07XG5cdFx0fTtcblxuXHRcdCYtc21hbGwge1xuXHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRsZWZ0OiAxcmVtO1xuXHRcdFx0XHRyaWdodDogMXJlbTtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ji1sYXJnZSB7XG5cdFx0XHRwYWRkaW5nOiB7XG5cdFx0XHRcdGxlZnQ6IDRyZW07XG5cdFx0XHRcdHJpZ2h0OiA0cmVtO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cblxuLy8gMDMuIENvbnRhaW5lclxuLmNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IHtcblx0XHRib3R0b206IG1hcC1nZXQoJHNwYWNpbmctc2l6ZXMsIHNtYWxsKTtcblx0XHR0b3A6IG1hcC1nZXQoJHNwYWNpbmctc2l6ZXMsIHNtYWxsKTtcblx0fTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHRcdCY6bm90KC5zbWFsbCkge1xuXHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRib3R0b206IG1hcC1nZXQoJHNwYWNpbmctc2l6ZXMsIG1lZGl1bSk7XG5cdFx0XHRcdHRvcDogbWFwLWdldCgkc3BhY2luZy1zaXplcywgbWVkaXVtKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdCYubGFyZ2Uge1xuXHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRib3R0b206IG1hcC1nZXQoJHNwYWNpbmctc2l6ZXMsIGxhcmdlKTtcblx0XHRcdFx0dG9wOiBtYXAtZ2V0KCRzcGFjaW5nLXNpemVzLCBsYXJnZSk7XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdCY6ZW1wdHkge1xuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0fVxufVxuXG4uZ3JpZC1vZmZzZXQge1xuXHRtYXJnaW4tbGVmdDogLTAuNzVyZW07IC8vIFVzaW5nIGEgLjc1cmVtIHNwYWNpbmcgb24gdGhlIGxvb3AgcG9zdHNcblx0bWFyZ2luLXJpZ2h0OiAtMC43NXJlbTtcblxuXHQub2Zmc2V0LXBhZGRpbmcge1xuXHRcdHBhZGRpbmctbGVmdDogLjc1cmVtO1xuXHRcdHBhZGRpbmctcmlnaHQ6IC43NXJlbTtcblx0fVxufVxuXG4ubW9iaWxlLWdyaWQtb2Zmc2V0IHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0bWFyZ2luLWxlZnQ6IC0wLjc1cmVtICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAtMC43NXJlbSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi5vdmVyZmxvdy1jb250YWluZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5cbi8vIDA0LiBNaW4gYW5kIE1heFxuQGZvciAkaSBmcm9tIDEgdG8gMTMge1xuXHQubWluLWhlaWdodC0jeyRpICogNTB9IHtcblx0XHRtaW4taGVpZ2h0OiAkaSAqIDUwcHg7XG5cdH1cblxuXHQubWF4LWhlaWdodC0jeyRpICogNTB9IHtcblx0XHRtYXgtaGVpZ2h0OiAkaSAqIDUwcHg7XG5cdH1cblxuXHQubWluLXdpZHRoLSN7JGkgKiA1MH0ge1xuXHRcdG1pbi13aWR0aDogJGkgKiA1MHB4O1xuXHR9XG5cblx0Lm1heC13aWR0aC0jeyRpICogNTB9IHtcblx0XHRtYXgtd2lkdGg6ICRpICogNTBweDtcblx0fVxufVxuXG5cbi8vIDA1LiBWZXJ0aWNhbCBMYWJlbFxuXG4udmVydGljYWwtbGFiZWwge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBhZGRpbmctdG9wOiAxLjVyZW07XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblx0XHR3cml0aW5nLW1vZGU6IHRiLXJsO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDFweDtcblxuXHRcdFx0bGVmdDogNnB4O1xuXHRcdFx0dG9wOiAwO1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0cGFkZGluZy10b3A6IDZweDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRoZWlnaHQ6IDFweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiA2cHg7XG5cdFx0fVxuXG5cdFx0c3BhbiB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDZweDtcblx0XHR9XG5cdH1cblxuXHRmb250OiB7XG5cdFx0ZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRcdHNpemU6IDE0cHg7XG5cdFx0d2VpZ2h0OiA2MDA7XG5cdH07XG5cdGxldHRlci1zcGFjaW5nOiAxcHg7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHR0ZXh0OiB7XG5cdFx0YWxpZ246IHJpZ2h0O1xuXHRcdHRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR9O1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMTtcblxuXHRcdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0c3BhbiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDM7XG5cdH1cbn1cblxuXG4vLyAwNi4gSG9yaXpvbnRhbCBMYWJlbFxuXG4uaG9yaXpvbnRhbC1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0YmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuXHQubGFiZWwtdGV4dCB7XG5cdFx0cGFkZGluZy1yaWdodDogOHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0LmJhY2tncm91bmQtYmxhY2sgJiB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0YmFja2dyb3VuZDogJGJsYWNrLXNlcDtcblx0XHR9XG5cblx0XHQubGFiZWwtdGV4dCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYmxhY2s7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDcuIEhlYWRsaW5lIExhYmVsXG5cbi5oZWFkbGluZS1sYWJlbCB7XG5cdGZvbnQtc2l6ZTogNjBweDtcblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0Lmhvcml6b250YWwtbGFiZWwge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdC5sYWJlbC10ZXh0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDA4LiBCYWNrZ3JvdW5kIEltYWdlXG5cbi5sYXJnZS1iYWNrZ3JvdW5kLWltYWdlIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGxhcmdlICkge1xuXHRcdGJhY2tncm91bmQ6IHtcblx0XHRcdGJsZW5kLW1vZGU6IHVuc2V0O1xuXHRcdFx0Y29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcblx0XHRcdHBvc2l0aW9uOiA1MCU7XG5cdFx0XHRzaXplOiBjb3Zlcjtcblx0XHR9O1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgJGdsb2JhbC10aW1pbmcgJGdsb2JhbC1lYXNpbmc7XG5cblx0XHQubGFyZ2UtZmVhdHVyZWQ6aG92ZXIgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjtcblx0XHR9XG5cdH1cbn1cblxuLm1lZGl1bS1iYWNrZ3JvdW5kLWltYWdlIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xuXHRcdGJhY2tncm91bmQ6IHtcblx0XHRcdGJsZW5kLW1vZGU6IHVuc2V0O1xuXHRcdFx0Y29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcblx0XHRcdHBvc2l0aW9uOiA1MCU7XG5cdFx0XHRzaXplOiBjb3Zlcjtcblx0XHR9O1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgJGdsb2JhbC10aW1pbmcgJGdsb2JhbC1lYXNpbmc7XG5cblx0XHQubGFyZ2UtZmVhdHVyZWQ6aG92ZXIgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwOS4gTG9nbyBCYWNrZ3JvdW5kXG5cbi5sb2dvLWJhY2tncm91bmQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0LmxvZ28tYmFja2dyb3VuZC1pbWFnZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNXB4O1xuXHRcdGxlZnQ6IC0xMjBweDtcblx0XHR3aWR0aDogMjQwcHg7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdG9wYWNpdHk6IC40O1xuXHRcdHotaW5kZXg6IC0xO1xuXHR9XG5cblx0LmJvdHRvbS1mb290ZXIgJiB7XG5cdFx0d2lkdGg6IDIyMHB4O1xuXHRcdGhlaWdodDogMjIwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogLTQwcHg7XG5cdFx0bGVmdDogLTQwcHg7XG5cdFx0ei1pbmRleDogMTtcblx0XHRvcGFjaXR5OiAuNTtcblxuXHRcdC5sb2dvLWJhY2tncm91bmQtaW1hZ2Uge1xuXHRcdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XG59XG5cbmJvZHkucG9zdC10ZW1wbGF0ZS10ZW1wbGF0ZS1tYXBib3gge1xuXHRwYWRkaW5nOiAwO1xufVxuIiwiLyoqXG4gKiAwMC4gR2xvYmFsIEhlYWRlclxuICogMDEuIFRvcCBiYXJcbiAqIDAyLiBQcmltYXJ5IE1lbnVcbiAqIDAzLiBEZXNrdG9wIE1lbnUgT3ZlcmxheVxuICogMDQuIFV0aWxpdHlcbiAqIDA1LiBNb2JpbGVcbiAqL1xuXG4vLyAwMC4gR2xvYmFsIEhlYWRlclxuI21haW4tbWVudSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMDtcblx0XHR6LWluZGV4OiAxMDtcblx0fVxuXG5cdD4gZGl2IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQuYWRtaW4tYmFyICYge1xuXHRcdHRvcDogMzJweDtcblx0fVxufVxuXG4uaGVhZGVyLXNwYWNlciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHkubGFuZGluZy1oZWFkZXIge1xuXHQjbWFpbi1tZW51LCAudG9wLWJhciB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi10b3A6IDFyZW07XG5cdH1cblxuXHQjbWFpbi1tZW51IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuQG1lZGlhICN7JGRlc2t0b3AtdXB9IHtcblxuXHQjbWFpbi1tZW51IHtcblx0XHRib3gtc2hhZG93OiAwIDAgMTBweCAycHggcmdiYSgkYmxhY2ssIDApO1xuXHRcdHRyYW5zaXRpb246IGJveC1zaGFkb3cgJGdsb2JhbC10aW1pbmc7XG5cblx0XHQuY29sbGFwc2VkLWhlYWRlciAmIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAxMHB4IDJweCByZ2JhKCRibGFjaywgLjE1KTtcblx0XHR9XG5cblx0XHQuaGVhZGVyLWZpeGVkICYsIC5oZWFkZXItY2xpY2tlZCAmIHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdH1cblxuXHRcdC53aXRoLXV0aWxpdHkgJiB7XG5cdFx0XHR0b3A6ICR1dGlsaXR5LWl0ZW0taGVpZ2h0O1xuXHRcdH1cblxuXHRcdC5hZG1pbi1iYXIuaGVhZGVyLWNsaWNrZWQgJiB7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMnB4O1xuXHRcdH1cblx0fVxuXG5cdC5oZWFkZXItc3BhY2VyIHtcblx0XHQuaGVhZGVyLWZpeGVkICYsIC5oZWFkZXItY2xpY2tlZCAmIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZy10b3A6ICR0b3BiYXItaXRlbS1oZWlnaHQ7XG5cdFx0fVxuXG5cdFx0LndpdGgtdXRpbGl0eSAmIHtcblx0XHRcdHBhZGRpbmctdG9wOiAkdG9wYmFyLWl0ZW0taGVpZ2h0ICsgJHV0aWxpdHktaXRlbS1oZWlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0LmFkbWluLWJhci5oZWFkZXItZml4ZWQge1xuXHRcdCNtYWluLW1lbnUsICN1dGlsaXR5IHtcblx0XHRcdG1hcmdpbi10b3A6IDMycHg7XG5cdFx0fVxuXHR9XG59XG5cbi5oZWFkZXItbG9nbyB7XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWF4LWhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMXJlbSAwO1xuXHR0cmFuc2l0aW9uOiBwYWRkaW5nIDE1MG1zO1xuXG5cdC5oYXMtdXRpbGl0eSAmIHtcblx0XHRwYWRkaW5nOiAuMzc1cmVtIDAgMS42MjVyZW07XG5cblx0XHQuaGVhZGVyLWNsaWNrZWQgJiB7XG5cdFx0XHRwYWRkaW5nOiAuODc1cmVtIDAgMS4xMjVyZW07XG5cdFx0fVxuXHR9XG59XG5cbmJvZHkgLm1lbnUge1xuXHQuYWN0aXZlID4gYSB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuLy8gMDEuIFRvcCBiYXJcblxuI3N0b3J5LW1lbnUge1xuXHQuY3VycmVudC1tZW51LWl0ZW0ge1xuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdH1cblx0fVxufVxuXG4udG9wLWJhciB7XG5cdC5jb2xsYXBzZWQtaGVhZGVyICYge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG5cdFx0XHRwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmctbWVkaXVtLXNjcm9sbGVkO1xuXHRcdH1cblxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuXHRcdC50b3AtYmFyLXRpdGxlIHtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogJHRvcGJhci1oZWlnaHQ7XG5cdFx0XHRoZWlnaHQ6ICR0b3BiYXItaXRlbS1oZWlnaHQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdH1cblxuXHRcdFx0LmxvZ28ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0XHRcdCYuYWx0LWxvZ28ge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHRwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmctbWVkaXVtO1xuXHR9XG5cblx0dHJhbnNpdGlvbjogcGFkZGluZyAxNTBtcyAkZ2xvYmFsLWVhc2luZywgYmFja2dyb3VuZC1jb2xvciAxNTBtcyAkZ2xvYmFsLWVhc2luZztcblxuXHR1bCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQudG9wLWJhci10aXRsZSxcblx0LnRvcC1iYXItbGVmdCxcblx0LnRvcC1iYXItcmlnaHQge1xuXHRcdGhlaWdodDogJHRvcGJhci1pdGVtLWhlaWdodDtcblx0XHRsaW5lLWhlaWdodDogJHRvcGJhci1pdGVtLWhlaWdodDtcblx0XHR3aWR0aDogYXV0bztcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQudG9wLWJhci1yaWdodCB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87IC8vIElFIDExXG5cdH1cblxuXHQudG9wLWJhci10aXRsZSB7XG5cdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0aW1hZ2U6IHVybCgnLi4vYXNzZXRzL2ltZy91LW91dGxpbmUtZ3JlZW5AMngucG5nJyk7XG5cdFx0XHRwb3NpdGlvbjogNTAlO1xuXHRcdFx0cmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRzaXplOiA4MCU7XG5cdFx0fTtcblx0XHRoZWlnaHQ6IDUuNzVyZW07XG5cdFx0cGFkZGluZy10b3A6IDFyZW07XG5cdFx0dHJhbnNpdGlvbjogcGFkZGluZyA0MDBtcyAkZ2xvYmFsLWVhc2luZywgaGVpZ2h0IDQwMG1zICRnbG9iYWwtZWFzaW5nLCBiYWNrZ3JvdW5kLXNpemUgNDAwbXMgJGdsb2JhbC1lYXNpbmc7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0Ym9keTpub3QoLmhvbWUpOm5vdCguY29sbGFwc2VkLWhlYWRlcikgJiB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogNTAlIC0xcmVtO1xuXHRcdFx0XHRcdHNpemU6IDcuNzVyZW07XG5cdFx0XHRcdH07XG5cdFx0XHRcdGhlaWdodDogNy43NXJlbTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDguNzVyZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAkdG9wYmFyLWl0ZW0taGVpZ2h0O1xuXHRcdFx0cGFkZGluZzogLjc1cmVtIDA7XG5cblx0XHRcdHRyYW5zaXRpb246IHBhZGRpbmcgMTAwbXMgJGxvZ28tZWFzaW5nLCBoZWlnaHQgMTAwbXMgJGxvZ28tZWFzaW5nLCBiYWNrZ3JvdW5kLXNpemUgMjAwbXMgJGxvZ28tZWFzaW5nO1xuXHRcdH1cblxuXHRcdC5sb2dvIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdFx0Lypcblx0XHRcdGhlaWdodDogMzJweDtcblx0XHRcdHdpZHRoOiAxODZweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdCovXG5cblx0XHRcdCYuYWx0LWxvZ28ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA5MiU7XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0cGFkZGluZzogLjYyNXJlbSAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lm1lbnUtb3ZlcmxheS10cmlnZ2VyIHtcblx0XHRhIHtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiAkaWNvbi1oYW1idXJnZXI7XG5cdFx0XHRcdEBpbmNsdWRlIGljb24tZm9udDtcblxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAuNXJlbTtcblxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdHRvcDogNHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQudG9wLWJhci10aXRsZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwJSAxMDAlO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdGhlaWdodDogMi4yNXJlbTtcblx0XHRcdFx0cGFkZGluZzogMXJlbSAwIDAgMS41cmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAyLiBQcmltYXJ5IE1lbnVcbiNwcmltYXJ5LW1lbnUge1xuXHQubWVudS1vdmVybGF5LXRyaWdnZXIge1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM1NTU7XG5cdH1cblxuXHQvKiBUcmFkaXRpb25hbCBNZW51IEhvdmVyIFN0eWxlcyAqL1xuXHQmLmlzLXRyYWRpdGlvbmFsLW1lbnUge1xuXHRcdC5oYXMtZHJvcGRvd24ge1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdD4gLnN1Yi1tZW51IHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAzLiBEZXNrdG9wIE1lbnUgT3ZlcmxheVxuXG5ib2R5LmRlc2t0b3Atb3ZlcmxheS1vcGVuIHtcblx0Ly8gb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuI2Rlc2t0b3AtbWVudS1vdmVybGF5IHtcblx0YmFja2dyb3VuZDogJGJsYWNrO1xuXHRvcGFjaXR5OiAwO1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cblx0cG9zaXRpb246IGZpeGVkO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdHotaW5kZXg6IC0xO1xuXG5cdCY6bm90KC5vcGVuKSB7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAkZ2xvYmFsLXRpbWluZyAkZ2xvYmFsLWVhc2luZywgei1pbmRleCAkZ2xvYmFsLXRpbWluZyAkZ2xvYmFsLWVhc2luZztcblx0fVxuXG5cdC5kZXNrdG9wLW92ZXJsYXktb3BlbiAmIHtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5ICRnbG9iYWwtdGltaW5nICRnbG9iYWwtZWFzaW5nIDE1MG1zLCB6LWluZGV4IDE1MG1zICRnbG9iYWwtZWFzaW5nO1xuXG5cdFx0b3BhY2l0eTogMTtcblx0XHR6LWluZGV4OiAxMjAwO1xuXHR9XG5cblx0LmxvZ28ge1xuXHRcdGhlaWdodDogMnJlbTtcblx0fVxuXG5cdC5tZW51LWNsb3NlLWJ1dHRvbiB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdHBhZGRpbmc6IDEuNXJlbTtcblx0fVxuXG5cdC5tZW51LW92ZXJsYXkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRoZWlnaHQ6IDExNSU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGxlZnQ6IC0zcmVtO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0XHRpbWFnZTogdXJsKCcuLi9hc3NldHMvaW1nL3JhZGl1bS5wbmcnKTtcblx0XHRcdFx0cG9zaXRpb246IDUwJTtcblx0XHRcdFx0cmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRcdHNpemU6IGNvbnRhaW47XG5cdFx0XHR9O1xuXHRcdFx0b3BhY2l0eTogLjM7XG5cdFx0fVxuXG5cdFx0Lm1lbnUtaXRlbSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdGJvdHRvbTogMXJlbTtcblx0XHRcdFx0dG9wOiAxcmVtO1xuXHRcdFx0fTtcblxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAzcmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0QGluY2x1ZGUgeHktZ3JpZDtcblx0XHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IGJvdHRvbSk7XG5cblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRmb250OiB7XG5cdFx0XHRcdGZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblx0XHRcdFx0c2l6ZTogMjRweDtcblx0XHRcdFx0d2VpZ2h0OiA3MDA7XG5cdFx0XHR9O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XG5cdFx0XHR9XG5cblx0XHRcdD4gLmNlbGwge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdH1cblxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKCBtaW4td2lkdGg6IDEyODFweCApIHtcblx0XHRcdFx0Zm9udC1zaXplOiA2NnB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRcdH1cblxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKCBtaW4td2lkdGg6IDg2MHB4ICkgYW5kICggbWF4LXdpZHRoOiAxMjgwcHggKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNTBweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDQ2cHg7XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiA2MDBweCApIGFuZCAoIG1heC13aWR0aDogODU5cHggKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDJweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiA0MjFweCApIGFuZCAoIG1heC13aWR0aDogNTk5cHggKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzRweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lm1lbnUtb3ZlcmxheS1pdGVtLXN1YnRpdGxlIHtcblx0XHRcdGNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cdFx0XHRmb250OiB7XG5cdFx0XHRcdGZhbWlseTogJGZvbnQtc2Fucztcblx0XHRcdFx0c2l6ZTogMTJweDtcblx0XHRcdFx0d2VpZ2h0OiA3MDA7XG5cdFx0XHR9O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiA2MDBweCApIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5tZW51LW92ZXJsYXktc2lkZWJhciB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggaXBhZCApIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXHRcdH1cblx0fVxuXG5cdC5jYXRlZ29yeS1tZW51IHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblx0XHRwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC51c2VyLW1lbnUge1xuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRtZWRpdW0tZ3JheTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAkZ29sZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwNC4gVXRpbGl0eVxuXG4udXRpbGl0eS1tZW51LWNvbnRhaW5lciB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTA2NTtcblxuXHQud2l0aC11dGlsaXR5ICYge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR0b3A6IDA7XG5cdH1cblxuXHQudXRpbGl0eS1tZW51IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOiAwIDFyZW07XG5cdFx0XHRcdGhlaWdodDogJHV0aWxpdHktaXRlbS1oZWlnaHQ7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAkdXRpbGl0eS1pdGVtLWhlaWdodCArIC4yNXJlbTtcblx0XHRcdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cblx0XHRcdFx0Jjpmb2N1cywgJjphY3RpdmUge1xuXHRcdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwNS4gTW9iaWxlXG4udG9wLWJhci5tb2JpbGUtaGVhZGVyIHtcblx0cGFkZGluZzogLjVyZW07XG5cdD4gc2VjdGlvbiB7XG5cdFx0cGFkZGluZzogLjVyZW07XG5cdH1cblxuXHQubW9iaWxlLWxvZ28ge1xuXHRcdGltZyB7XG5cdFx0XHRtYXgtaGVpZ2h0OiA0NnB4O1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC5oYW1idXJnZXIge1xuXHRcdGEubWVudS1pY29ue1xuXHRcdFx0d2lkdGg6IDMwcHg7XG5cdFx0XHRoZWlnaHQ6IDI1cHg7XG5cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0aGVpZ2h0OiA0cHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgMTBweCAwICRwcmltYXJ5LWNvbG9yLCAwIDIwcHggMCAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLypcbi5vZmYtY2FudmFzIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuXHQqIHtcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Lm9mZi1jYW52YXMtbGlzdCB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMXJlbTtcblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG5cdH1cblxuXHRhIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAxLjI1cmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0cGFkZGluZzogLjVyZW0gMDtcblx0fVxuXG5cdC51dGlsaXR5LWl0ZW0ge1xuXHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcblx0XHRtYXJnaW4tdG9wOiAxLjVyZW07XG5cdFx0cGFkZGluZy10b3A6IDEuNXJlbTtcblxuXHRcdH4gLnV0aWxpdHktaXRlbSB7XG5cdFx0XHRib3JkZXItdG9wOiBub25lO1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5kcm9wZG93biB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMCAxLjI1cmVtO1xuXHR9XG5cblx0LmlzLWRyaWxsZG93biB7XG5cdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cblx0XHRhLCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuXHRcdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0fVxuXG5cdFx0LmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCB7XG5cdFx0XHQ+IGE6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHRcdHJpZ2h0OiAuNzVyZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmpzLWRyaWxsZG93bi1iYWNrIHtcblx0XHRcdHBhZGRpbmc6IDFyZW0gMDtcblx0XHRcdD4gYTpiZWZvcmUge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRzZWNvbmRhcnktY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmRyaWxsZG93biB7XG5cdFx0XHRwYWRkaW5nOiAuNXJlbSAwO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmc6IC41cmVtIDEuNXJlbSAuNXJlbSAxcmVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmRyb3Bkb3duIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG5cblx0c3Bhbi5kZXNjcmlwdGlvbiB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IC44NzVyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRtYXJnaW4tdG9wOiAuMjVyZW07XG5cdH1cblxuXHRsaVtjbGFzcyo9XCJtZW51LWljb24tXCJdLCBsaVtjbGFzcyo9XCIgbWVudS1pY29uXCJdIHtcblx0XHQ+IGE6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIGljb24tZm9udCgpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAuNXJlbTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0dG9wOiAuMjVyZW07XG5cdFx0XHRmb250LXNpemU6IDEuNXJlbTtcblx0XHR9XG5cblx0XHQuZGVzY3JpcHRpb24ge1xuXHRcdFx0bWFyZ2luLXRvcDogLjVyZW07XG5cdFx0fVxuXHR9XG59XG4qL1xuXG4uY2FudmFzLXdyYXBwZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRwbzogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRoZWlnaHQ6IDEwMHZoO1xuXG5cdGNhbnZhcyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHR9XG59XG5cbi5wb3N0LXRlbXBsYXRlLXRlbXBsYXRlLW1hcGJveCB7XG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXHRtcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcblxufVxuXG4ucG9zdC10ZW1wbGF0ZS10ZW1wbGF0ZS1tYXBib3g6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0d2lkdGg6IDA7XG5cdGhlaWdodDogMDtcbn1cbiIsIi8qXG4gKiAwMS4gQ2F0ZWdvcnkgLyBJc290b3BlIEJ1dHRvbnNcbiAqIDAyLiBJbmZpbml0ZSBMb2FkaW5nIFBvc3RzXG4gKiAwMy4gUGFnaW5hdGlvblxuICovXG5cblxuLy8gMDEuIENhdGVnb3J5IC8gSXNvdG9wZSBCdXR0b25zXG4uY2F0ZWdvcmllcy1saXN0LCAuaXNvdG9wZS1saXN0IHtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRtYXJnaW46IDAgMCAycmVtO1xuXHRmb250LXNpemU6IDA7XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IC43NXJlbTtcblx0XHRhLCBzcGFuIHtcblx0XHRcdGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRcdG1hcmdpbi1ib3R0b206IC41cmVtO1xuXHRcdFx0cGFkZGluZzogLjVyZW0gMS43NXJlbTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5hY3RpdmUge1xuXHRcdFx0YSwgc3BhbiB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIDAyLiBJbmZpbml0ZSBMb2FkaW5nIC8gU2Nyb2xsaW5nIFBvc3RzXG5cbi5pbmZpbml0ZS1zY3JvbGwgLmluZmluaXRlLWNvbnRhaW5lciB7XG5cdC5wYWdpbmF0aW9uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0I2luZmluaXRlLWhhbmRsZSwgLmluZmluaXRlLWxvYWRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMXJlbSAwIDJyZW07XG5cblx0XHRzcGFuIHtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRAZXh0ZW5kIC5idXR0b247XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnNwaW5uZXIge1xuXHRcdFx0dG9wOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRsZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR9XG5cdH1cbn1cblxuLnBhZ2luYXRpb24tY29udGFpbmVyIHtcblx0Ym9yZGVyLXRvcDogNHB4IHNvbGlkICNmZmY7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNTU1O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0bWFyZ2luLXRvcDogNS4yNXJlbTtcblx0d2lkdGg6IDEwMCU7XG5cblx0LnBhZ2luYXRpb24ge1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBhZGRpbmc6IDIwcHggMzBweDtcblx0XHRtYXJnaW46IDA7XG5cblx0XHQuY3VycmVudCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdHBhZGRpbmc6IDAgMC42MjVyZW07XG5cdFx0fVxuXG5cdFx0dWwge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0cGFkZGluZzogMCAwLjYyNXJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRhLFxuXHRcdHNwYW4ge1xuXHRcdFx0Y29sb3I6IGRhcmtlbiggJGxpZ2h0LWdyYXksIDMwJSApO1xuXHRcdFx0cGFkZGluZzogMCAwLjYyNXJlbTtcblxuXHRcdFx0Ji5jdXJyZW50IHtcblx0XHRcdFx0Y29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmLm5leHQge1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGE6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0Ji5uZXh0LFxuXHRcdFx0Ji5wcmV2IHtcblx0XHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdFx0XHRjb2xvcjogZGFya2VuKCAkZGFya19ncmF5LCAxMCUgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQucGFnZS1uZXh0LFxuXHQucGFnZS1wcmV2IHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdFx0YSxcblx0XHRzcGFuIHtcblx0XHRcdGNvbG9yOiBkYXJrZW4oICRsaWdodC1ncmF5LCAzMCUgKTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZzogMjBweCAzMHB4O1xuXHRcdH1cblxuXHRcdGE6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHR9XG5cblx0XHQuZGlzYWJsZWQge1xuXHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0fVxuXHR9XG5cblx0LnBhZ2UtbmV4dCB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNTU1O1xuXHR9XG5cblx0LnBhZ2UtcHJldiB7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzU1NTtcblx0fVxufVxuXG5ib2R5LmxpZ2h0LWJhY2tncm91bmQsXG5ib2R5LnNlYXJjaCB7XG5cdC5wYWdpbmF0aW9uLWNvbnRhaW5lciB7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogIzBhMGEwYTtcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cblx0XHRhLFxuXHRcdHNwYW4ge1xuXHRcdFx0Y29sb3I6ICMwYTBhMGE7XG5cblx0XHRcdCYuY3VycmVudCB7XG5cdFx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGE6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0fVxuXG5cdFx0LnBhZ2UtbmV4dCxcblx0XHQucGFnZS1wcmV2IHtcblx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cdFx0XHRib3JkZXItcmlnaHQtY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAjMGEwYTBhO1xuXHRcdFx0fVxuXG5cdFx0XHQuZGlzYWJsZWQge1xuXHRcdFx0XHRjb2xvcjogJG1lZGl1bS1ncmF5O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gQ29tbWVudCBMaXN0XG4gKiAwMi4gUG9zdCBTaGFyaW5nXG4gKiAwMy4gQXJ0aWNsZSBTaWRlYmFyIEFjdGlvbnNcbiAqIDA0LiBWaWRlbyBUZW1wbGF0ZVxuICovXG5cbi8vIDAxLiBQb3N0IEFjdGlvbnNcblxuLnBvc3QtYWN0aW9ucyB7XG5cdGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG59XG5cblxuLy8gMDIuIFBvc3QgU2hhcmluZ1xuXG4ucG9zdC1zaGFyaW5nIHtcblxuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBsYXJnZSB1cCApIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDMuIEFydGljbGUgU2lkZWJhciBBY3Rpb25zXG5cbiNhcnRpY2xlLXNpZGViYXIge1xuXHR6LWluZGV4OiAzO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG59XG5cbi5hcnRpY2xlLXNpZGViYXItYWN0aW9ucyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQuYXJ0aWNsZS1zaWRlYmFyIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgJGdsb2JhbC10aW1pbmc7XG5cdH1cblxuXHQuaXMtc3R1Y2ssXG5cdC5pcy1hbmNob3JlZCB7XG5cdFx0LmFydGljbGUtc2lkZWJhciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0LmFydGljbGUtc2lkZWJhciB7XG5cdFx0XHRoZWlnaHQ6IDc5dmg7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoODB2aCAtIDg0cHgpO1xuXHRcdH1cblxuXHRcdC5hcnRpY2xlLXNpZGViYXItYWN0aW9uIHtcblx0XHRcdCYuc2lkZWJhci1hY3Rpb24tc2hhcmUge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLXNlcDtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay1zZXA7XG5cblx0XHRcdFx0cGFkZGluZzoge1xuXHRcdFx0XHRcdHRvcDogMTBweDtcblx0XHRcdFx0XHRib3R0b206IDEwcHg7XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0W2RhdGEtb3Blbj1cInNoYXJlTW9kYWxcIl0ge1xuXHRcdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQrIC5hcnRpY2xlLXNpZGViYXItYWN0aW9uIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0ei1pbmRleDogOTtcblxuXHRcdC5hcnRpY2xlLXNpZGViYXIge1xuXHRcdFx0QGluY2x1ZGUgeHktZ3JpZDtcblx0XHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24ocmlnaHQsIG1pZGRsZSk7XG5cdFx0fVxuXG5cdFx0LmFydGljbGUtc2lkZWJhci1hY3Rpb24ge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbChzaHJpbmspO1xuXG5cdFx0XHRwYWRkaW5nOiAxcmVtO1xuXG5cdFx0XHQrIC5hcnRpY2xlLXNpZGViYXItYWN0aW9uIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2stc2VwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDA0LiBWaWRlbyBUZW1wbGF0ZVxuXG4ucG9zdC10ZW1wbGF0ZS1zaW5nbGUtdmlkZW8ge1xuXHQuYXJ0aWNsZS1zaWRlYmFyLWFjdGlvbnMge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stc2VwO1xuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gR2xvYmFsXG4gKiAwMi4gTWFpbiBGb290ZXJcbiAqIDAzLiBTb2NpYWwgRm9vdGVyXG4gKiAwNC4gQ29weXJpZ2h0IEZvb3RlclxuICogMDUuIEJvdHRvbSBmb290ZXJcbiAqL1xuXG5cbi8vIDAxLiBHbG9iYWxcblxuI2Zvb3RlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogOTtcbn1cblxuLy8gMDIuIE1haW4gRm9vdGVyXG5cbi5tYWluLWZvb3RlciB7XG5cdC5zaXRlLXRhZ2xpbmUge1xuXHRcdGZvbnQ6IHtcblx0XHRcdHNpemU6IDQuNXJlbTtcblx0XHRcdHdlaWdodDogNzAwO1xuXHRcdH07XG5cdFx0bGluZS1oZWlnaHQ6IDRyZW07XG5cdH1cblxuXHRhIHtcblx0XHRjb2xvcjogJGZvb3Rlci1saW5rLWNvbG9yO1xuXHRcdGZvbnQtc2l6ZTogLjg3NXJlbTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRmb290ZXItbGluay1ob3Zlcjtcblx0XHR9XG5cdH1cblxuXHQubWVudSxcblx0LnN1Yi1tZW51IHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHR9XG5cblx0LnN1Yi1tZW51IHtcblx0XHRtYXJnaW46IC41cmVtIDAgMDtcblxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdFx0cGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuXHRcdH1cblx0fVxuXG5cdC5mb290ZXItbWVudSB7XG5cdFx0bWFyZ2luOiAxcmVtIC0xcmVtO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAzLiBTb2NpYWwgRm9vdGVyXG5cbi5mb290ZXItc29jaWFsLWxvZ28ge1xuXHRtYXJnaW46IDMwcHggMCAwO1xuXHRtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG5cbi8vIDA0LiBDb3B5cmlnaHQgRm9vdGVyXG5cbi5jb3B5cmlnaHQtZm9vdGVyIHtcblx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdGNvbG9yOiAkbGlnaHQtcHJpbWFyeTtcblx0Zm9udC1zaXplOiAuNzVyZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRwYWRkaW5nOiAuNXJlbSAwIDEuNXJlbTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQuY29weXJpZ2h0LW1lbnUtY29udGFpbmVyIHtcblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkbGlnaHQtcHJpbWFyeTtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJGFjY2VudC1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBzbWFsbCBvbmx5ICkge1xuXHRcdFx0dWwsIGxpIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHR1bCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC41cmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdHVsLCBsaSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblxuXHRcdFx0bGkge1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMCAycmVtO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cbi8vIDA1LiBCb3R0b20gZm9vdGVyXG5cbi5ib3R0b20tZm9vdGVyIHtcblx0LmdyaWQtY29udGFpbmVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMjtcblx0fVxufVxuXG4jbWVudS1mb290ZXIubWVudSB7XG5cdC5oYXMtYnV0dG9uIHtcblx0XHRhIHtcblx0XHRcdEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXHRcdFx0QGluY2x1ZGUgYnV0dG9uLXN0eWxlO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkZ29sZDtcblx0XHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gV1AgQ29yZSBBbGlnbm1lbnRzXG4gKi9cblxuXG4vLyAwMS4gV1AgQ29yZSBBbGlnbm1lbnRzXG5cbi5hbGlnbm5vbmUge1xuXHRtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbn1cblxuLmFsaWduY2VudGVyLFxuZGl2LmFsaWduY2VudGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogNXB4IGF1dG8gNXB4IGF1dG87XG59XG5cbi5hbGlnbnJpZ2h0IHtcblx0ZmxvYXQ6cmlnaHQ7XG5cdG1hcmdpbjogNXB4IDAgMjBweCAyMHB4O1xufVxuXG4uYWxpZ25sZWZ0IHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbjogNXB4IDIwcHggMjBweCAwO1xufVxuXG5hIGltZy5hbGlnbnJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW46IDVweCAwIDIwcHggMjBweDtcbn1cblxuYSBpbWcuYWxpZ25ub25lIHtcblx0bWFyZ2luOiA1cHggMjBweCAyMHB4IDA7XG59XG5cbmEgaW1nLmFsaWdubGVmdCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbn1cblxuYSBpbWcuYWxpZ25jZW50ZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLndwLWNhcHRpb24ge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRtYXgtd2lkdGg6IDk2JTsgLyogSW1hZ2UgZG9lcyBub3Qgb3ZlcmZsb3cgdGhlIGNvbnRlbnQgYXJlYSAqL1xuXHRwYWRkaW5nOiA1cHggM3B4IDEwcHg7XG5cblx0QGZvciAkbiBmcm9tIDEgdG8gMTMge1xuXHRcdCYuc21hbGwtI3skbn0ge1xuXHRcdFx0d2lkdGg6ICRuIC8gMTIgKiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdEBmb3IgJG4gZnJvbSAxIHRvIDEzIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0pIHtcblx0XHRcdCYubWVkaXVtLSN7JG59IHtcblx0XHRcdFx0d2lkdGg6ICRuIC8gMTIgKiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBmb3IgJG4gZnJvbSAxIHRvIDEzIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSkge1xuXHRcdFx0Ji5sYXJnZS0jeyRufSB7XG5cdFx0XHRcdHdpZHRoOiAkbiAvIDEyICogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudW5kYXJrLWNhcHRpb24ge1xuXHRcdG1hcmdpbi10b3A6IC41cmVtO1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1zaXplOiAuODc1cmVtICFpbXBvcnRhbnQ7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjUgIWltcG9ydGFudDtcblx0fVxufVxuXG4ud3AtY2FwdGlvbi5hbGlnbm5vbmUge1xuXHRtYXJnaW46IDVweCAyMHB4IDIwcHggMDtcbn1cblxuLndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcblx0bWFyZ2luOiA1cHggMjBweCAyMHB4IDA7XG59XG5cbi53cC1jYXB0aW9uLmFsaWducmlnaHQge1xuXHRtYXJnaW46IDVweCAwIDIwcHggMjBweDtcbn1cblxuLndwLWNhcHRpb24gaW1nIHtcblx0Ym9yZGVyOiAwIG5vbmU7XG5cdGhlaWdodDogYXV0bztcblx0bWFyZ2luOiAwO1xuXHRtYXgtd2lkdGg6IDk4LjUlO1xuXHRwYWRkaW5nOiAwO1xuXHR3aWR0aDogYXV0bztcbn1cblxuLndwLWNhcHRpb24gcC53cC1jYXB0aW9uLXRleHQge1xuXHRmb250LXNpemU6IDExcHg7XG5cdGxpbmUtaGVpZ2h0OiAxN3B4O1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDAgNHB4IDVweDtcbn1cblxuLyogVGV4dCBtZWFudCBvbmx5IGZvciBzY3JlZW4gcmVhZGVycy4gKi9cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuXHRjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuXHRjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiAjMjE3NTliO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRmb250LXNpemU6IDAuODc1cmVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRsZWZ0OiA1cHg7XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHRvcDogNXB4O1xuXHR3aWR0aDogYXV0bztcblx0ei1pbmRleDogMTAwMDAwOyAvKiBBYm92ZSBXUCB0b29sYmFyLiAqL1xufSIsIkBpbXBvcnRcblx0J3N0cnVjdHVyZScsXG5cdCdoZWFkZXInLFxuXHQnYXJjaGl2ZScsXG5cdCdzaW5nbGUnLFxuXHQnZm9vdGVyJyxcblx0J3dwY29yZSdcbjtcblxuLypcbiAqIDAwLiBHbG9iYWwgSXRlbXNcbiAqIDAxLiBCdXR0b25zXG4gKiAwMi4gQmFubmVyc1xuICogMDMuIFN1YnNjcmlwdGlvbiBCYXJcbiAqIDA0LiBEZWZhdWx0IExvb3AgQmxvY2tcbiAqIDA1LiBBbmNob3IgQmFyXG4gKiAwNi4gSWNvbnNcbiAqIDA3LiBTaGFyZWRhZGR5XG4gKiAwOC4gRXh0ZW5kIEVtYmVkXG4gKi9cblxuXG5cbi8vIDAwLiBHbG9iYWxcbi5yZXZlYWwtb3ZlcmxheSB7XG5cdHotaW5kZXg6IDIwMDA7XG5cblx0LmNsb3NlLWJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHRoZWlnaHQ6IDMzcHg7XG5cdFx0d2lkdGg6IDMzcHg7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTEzcHg7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNsaWNrYWJsZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gMDEuIEJ1dHRvbnNcbi5idXR0b24sIGJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXHQmLnRyYW5zcGFyZW50IHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdH1cblxuXHQmLmNvbGxhcHNlZCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9O1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkZ29sZDtcblx0XHRjb2xvcjogJGdvbGQ7XG5cdH1cblxuXHQubWVudSAmIHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRnb2xkO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0Y29sb3I6ICRnb2xkICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDIuIEJhbm5lcnNcbi50aXRsZS1iYW5uZXIsIC5jb250ZW50LWJhbm5lciB7XG5cdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRjb2xvcjogJHdoaXRlO1xuXHRwYWRkaW5nOiAxLjc1cmVtIDAgMS4yNXJlbTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdGJhY2tncm91bmQ6ICRncmFkaWVudC1kYXJrOyAvKiBPbGQgYnJvd3NlcnMgKi9cblx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgJGdyYWRpZW50LWRhcmsgMCUsICRncmFkaWVudC1saWdodCAxMDAlKTsgLyogRkYzLjYtMTUgKi9cblx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJGdyYWRpZW50LWRhcmsgMCUsJGdyYWRpZW50LWxpZ2h0IDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRncmFkaWVudC1kYXJrIDAlLCRncmFkaWVudC1saWdodCAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG5cdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPSckZ3JhZGllbnQtZGFyaycsIGVuZENvbG9yc3RyPSckZ3JhZGllbnQtbGlnaHQnLEdyYWRpZW50VHlwZT0xICk7IC8qIElFNi05ICovXG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0Ly9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJcIik7XG5cdFx0aGVpZ2h0OiAkZ2xvYmFsLXBhdHRlcm4taGVpZ2h0O1xuXHRcdHdpZHRoOiA3NSU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRvcGFjaXR5OiAwLjY1O1xuXG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHR9XG5cblx0PiAqIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQmLmJhbm5lci1vdmVybGF5IHtcblx0XHRwYWRkaW5nOiAycmVtIDA7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRncmFkaWVudC1kYXJrIDAlLCAkZ3JhZGllbnQtbGlnaHQgMTAwJSk7XG5cdFx0XHRvcGFjaXR5OiAuNjI1O1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0cGFkZGluZzogMy41cmVtIDA7XG5cdFx0fVxuXHR9XG5cblx0Ji5jb250ZW50LWJhbm5lciB7XG5cdFx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHR9XG59XG5cblxuXG4vLyAwMy4gU3Vic2NyaXB0aW9uIEJhclxuLnN1YnNjcmlwdGlvbi1iYXIge1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0Y29sb3I6ICR3aGl0ZTtcblx0cGFkZGluZzogMXJlbSAuNXJlbSAxLjVyZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQ+IGRpdiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0aDMge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDQ4cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdGlucHV0LmVtYWlsIHtcblx0XHRib3JkZXI6ICRnbG9iYWwtYm9yZGVyO1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdHBhZGRpbmc6IC41cmVtIC43NXJlbTtcblx0XHRoZWlnaHQ6IDIuNjg3NXJlbTtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXHRcdH1cblx0fVxuXG5cdGJ1dHRvbiwgLmJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0cGFkZGluZzogLjYyNXJlbSAyLjI1cmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQmLmhvcml6b250YWwge1xuXHRcdGlucHV0IHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cblx0XHRidXR0b24sIC5idXR0b24sIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdFx0cGFkZGluZzogLjc1cmVtIDIuNzVyZW07XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGlucHV0LmVtYWlsIHtcblx0XHRcdFx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxODBweCk7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0XHQuY2xlYXIge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLnZlcnRpY2FsIHtcblx0XHRoMyB7XG5cdFx0XHRsaW5lLWhlaWdodDogMS41cmVtO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXHRcdFx0Zm9udC1zaXplOiAxLjI1cmVtO1xuXHRcdH1cblx0XHRidXR0b24sIC5idXR0b24sIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW4tdG9wOiAxLjVyZW07XG5cdFx0fVxuXHR9XG5cblx0Zm9ybSB7XG5cdFx0Ly8gSW4gcGx1Z2lucy9ncmF2aXR5LWZvcm1zXG5cdH1cbn1cblxuXG4vLyAwNC4gRGVmYXVsdCBMb29wIEJsb2NrXG4uYmxvY2sge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdGJvcmRlcjogJGdsb2JhbC1ib3JkZXI7XG5cdHBhZGRpbmc6IDFyZW0gMXJlbSAuNzVyZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dHJhbnNpdGlvbjogYm9yZGVyICRnbG9iYWwtdGltaW5nO1xufVxuXG4uYmxvY2std3JhcHBlciB7XG5cdG1hcmdpbjogMCAtMC41cmVtO1xuXHQ+IGJyLCBwOmVtcHR5IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5ibG9jay1jb250YWluZXIge1xuXHRwYWRkaW5nOiAwcmVtIC41cmVtIDFyZW07XG59XG5cbi5sb29wLWJsb2NrIHtcblx0cGFkZGluZzogMHJlbSAkZ2xvYmFsLXBhZGRpbmcvMiAkZ2xvYmFsLXBhZGRpbmc7XG5cblx0LmNvbnRlbnQtY29udGFpbmVyIHtcblx0XHRAZXh0ZW5kIC5ibG9jaztcblx0XHR3b3JkLWJyZWFrOiBicmVhay13b3JkOyAvLyBIZWxwcyB1cmxzXG5cblx0XHQuY2F0ZWdvcnktYmxvY2sge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAtMTJweDtcblxuXHRcdFx0YSwgc3BhbiB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogLjc1cmVtO1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRwYWRkaW5nOiAuMzc1cmVtIC42MjVyZW07XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIDA1LiBBbmNob3IgQmFyXG4uYW5jaG9yLWJhci1jb250YWluZXIge1xuXHRtYXJnaW46IC0yNXB4IDAgMnJlbTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRoZWlnaHQ6IDJyZW07XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0PiBkaXYge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuYW5jaG9yLWJhci13cmFwcGVyIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiA1O1xuXHR9XG5cblx0LmFuY2hvci1iYXIge1xuXHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0cGFkZGluZzogMDtcblx0XHQvL2JvcmRlci1yYWRpdXM6IDI0cHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDU7XG5cdFx0bWFyZ2luOiAwIC0wLjVyZW07XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBzdHJldGNoOyAvKiBEZWZhdWx0ICovXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLy9zcGFjZS1iZXR3ZWVuO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ei1pbmRleDogNztcblx0XHR9XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZsZXg6IDAgMSBhdXRvOyAvKiBEZWZhdWx0ICovXG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRtYXJnaW46IC41cmVtO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBweDtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkZ2xvYmFsLXRpbWluZyAkZ2xvYmFsLWVhc2luZztcblxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdHBhZGRpbmc6IC4yNXJlbSAycmVtO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0Ji5sb2FkLWFjdGl2ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwgLjMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5hbmNob3ItYmcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0XHR6LWluZGV4OiA2O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBweDtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAkZ2xvYmFsLXRpbWluZyAkZ2xvYmFsLWVhc2luZztcblx0XHR9XG5cdH1cblxuXHQuYW5jaG9yLWJhci1zcGFjZXIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmLmFuY2hvci1iYXItZml4ZWQge1xuXHRcdC5hbmNob3ItYmFyLXNwYWNlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQuYW5jaG9yLWJhci13cmFwcGVyIHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0dG9wOiByZW0tY2FsYygyNSk7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHR6LWluZGV4OiAzMDA7XG5cdFx0XHRib3gtc2hhZG93OiAwcHggNHB4IDEwcHggcmdiYSggJHByaW1hcnktY29sb3IsIC4xNSk7XG5cblx0XHRcdC5hbmNob3ItYmFyIHtcblx0XHRcdFx0Ly8gYm94LXNoYWRvdzogMHB4IDRweCAxMHB4IHJnYmEoICRwcmltYXJ5LWNvbG9yLCAuMTUpO1xuXHRcdFx0fVxuXG5cdFx0XHQuaGVhZGVyLWZpeGVkICYsIC5oZWFkZXItY2xpY2tlZCAmIHtcblx0XHRcdFx0dG9wOiAkdG9wYmFyLWl0ZW0taGVpZ2h0OyAvLyArIHJlbS1jYWxjKDI1KTtcblx0XHRcdH1cblxuXHRcdFx0LndpdGgtdXRpbGl0eSAmIHtcblx0XHRcdFx0dG9wOiAkdG9wYmFyLWl0ZW0taGVpZ2h0ICsgJHV0aWxpdHktaXRlbS1oZWlnaHQ7IC8vICsgcmVtLWNhbGMoMjUpO1xuXHRcdFx0fVxuXG5cdFx0XHQuYWRtaW4tYmFyICYge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAzMnB4O1xuXHRcdFx0fVxuXG5cdFx0XHRAbWVkaWEgI3skbW9iaWxlLWRvd259IHtcblx0XHRcdFx0dG9wOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cbn1cblxuLmFuY2hvci1qdW1wIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRtYXJnaW4tdG9wOiAtMSAqICggJHRvcGJhci1pdGVtLWhlaWdodCArIDFyZW0gKTtcblxuXHRib2R5LmFkbWluLWJhciAmIHtcblx0XHRtYXJnaW4tdG9wOiAtMSAqICggJHRvcGJhci1pdGVtLWhlaWdodCArIDFyZW0gKyAycmVtICk7XG5cdH1cbn1cblxuXG4vLyAwNi4gSWNvbnNcbi5ibG9jay1pY29uIHtcblx0bWF4LWhlaWdodDogMTUwcHg7XG5cdHBhZGRpbmctdG9wOiAycmVtO1xuXHRwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuXG4vLyAwNy4gU2hhcmVkYWRkeVxuLnNoYXJlZGFkZHkge1xuXHRsaSB7XG5cdFx0YSB7XG5cdFx0XHRmb250LXNpemU6IDAgIWltcG9ydGFudDtcblx0XHRcdHBhZGRpbmc6IDAuNjI1cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweCAhaW1wb3J0YW50O1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogLjkzNzVyZW07XG5cdFx0XHRcdEBpbmNsdWRlIGljb24tZm9udCgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDA4LiBFeHRlbmQgRW1iZWRcblxuLmVtYmVkLXdyYXBwZXIge1xuXHRAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKHdpZGVzY3JlZW4pXG59XG4iLCIvKipcbiAqIDAxLiBUb3AgYXJ0aWNsZXNcbiAqIDAyLiBGZWF0dXJlZCBhcnRpY2xlXG4gKiAwMy4gTGFyZ2UgRmVhdHVyZWRcbiAqIDA0LiBQb2RjYXN0XG4gKiAwNS4gTGF0ZXN0IFBvc3RzXG4gKiAwNi4gRG9jdW1lbnRhcmllc1xuICovXG5cblxuLy8gMDEuIFRvcCBhcnRpY2xlc1xuXG4jdG9wLWFydGljbGVzIHtcblx0Ym9yZGVyLXRvcDogMi4yNXJlbSBzb2xpZCAkYmxhY2s7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGJvcmRlci10b3A6IDYuMjVyZW0gc29saWQgJGJsYWNrO1xuXHR9XG59XG5cblxuLy8gMDIuIEZlYXR1cmVkIGFydGljbGVcblxuLmZlYXR1cmVkLWFydGljbGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi10b3A6IC0zLjc1cmVtO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tdG9wOiAtNS43NXJlbTtcblx0fVxuXG5cdC5iYWNrZ3JvdW5kLWxpZ2h0LWdyYXkge1xuXHRcdHRyYW5zaXRpb246XG5cdFx0XHRjb2xvciAkZ2xvYmFsLXRpbWluZyAqIDEuMjUgJGdsb2JhbC1lYXNpbmcsXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yICRnbG9iYWwtdGltaW5nICogMS4yNSAkZ2xvYmFsLWVhc2luZyxcblx0XHRcdGJhY2tncm91bmQtYmxlbmQtbW9kZSAkZ2xvYmFsLXRpbWluZyAqIDEuMjUgJGdsb2JhbC1lYXNpbmdcblx0XHQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cblx0XHRcdC5mZWF0dXJlZC1hcnRpY2xlLXRvcCB7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1ibGVuZC1tb2RlOiBzY3JlZW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHR9XG5cblx0XHRcdC5wb3N0LWNhdGVnb3J5IHtcblx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiBnZXQtY29sb3IocHJpbWFyeSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZmVhdHVyZWQtYXJ0aWNsZS10b3Age1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAuMyk7XG5cblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR9XG5cblx0XHRcdC5hcnRpY2xlLWNvbnRlbnQge1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXHRcdFx0XHR6LWluZGV4OiAzO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYXJ0aWNsZS10aXRsZSB7XG5cdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1pbi13aWR0aDogNjQxcHggKSBhbmQgKCBtYXgtd2lkdGg6IDExODBweCApIHtcblx0XHRcdFx0Zm9udC1zaXplOiAyLjg3NXJlbTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwMy4gTGFyZ2UgRmVhdHVyZWRcblxuI2xhcmdlLWZlYXR1cmVkIHtcblx0Ym9yZGVyLXRvcDogNHJlbSBzb2xpZCAkYmxhY2s7XG5cblx0LmxhcmdlLWZlYXR1cmVkIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLXRvcDogLTRyZW07XG5cdH1cbn1cblxuLmxhcmdlLWZlYXR1cmVkLmJhY2tncm91bmQtbGlnaHQtZ3JheSB7XG5cdHRyYW5zaXRpb246IGNvbG9yICRnbG9iYWwtdGltaW5nICRnbG9iYWwtZWFzaW5nLCBiYWNrZ3JvdW5kLWNvbG9yICRnbG9iYWwtdGltaW5nICRnbG9iYWwtZWFzaW5nO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXG5cdFx0YSxcblx0XHQuYnlsaW5lLWF1dGhvciB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblxuXHRcdC5ieWxpbmUtZGF0ZSxcblx0XHQucG9zdC1jYXRlZ29yeSBhIHtcblx0XHRcdGNvbG9yOiAkbWVkaXVtLWdyYXkgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwNC4gUG9kY2FzdFxuXG4uYXJ0aWNsZS1wb2RjYXN0LWZlYXR1cmVkIHtcblx0Lmxvb3AtcG9zdC1pbWFnZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0Lmljb24tcG9kY2FzdCB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgd2hpdGU7XG5cdFx0Ym9yZGVyLXJhZGl1czogNDBweDtcblx0XHRmb250LXNpemU6IDYwcHg7XG5cdFx0aGVpZ2h0OiA4MHB4O1xuXHRcdHdpZHRoOiA4MHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA4MHB4O1xuXHRcdG1hcmdpbjoge1xuXHRcdFx0bGVmdDogLTQwcHg7XG5cdFx0XHR0b3A6IC00MHB4O1xuXHRcdH07XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDUwJTtcblx0XHR6LWluZGV4OiAxMDtcblx0fVxufVxuXG4ucG9kY2FzdC10aXRsZSB7XG5cdC5sb29wLXBvc3QtdGl0bGUge1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHR9XG5cblx0KyAuYXJ0aWNsZSB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcblx0XHRwYWRkaW5nLXRvcDogNTFweDtcblx0fVxuXG5cdH4gLmFydGljbGUge1xuXHRcdG1hcmdpbi1ib3R0b206IDJyZW07XG5cdH1cbn1cblxuXG4vLyAwNS4gTGF0ZXN0IFBvc3RzXG5cbiNsYXRlc3QtcG9zdHMge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHQuY2VsbCB+IC5jZWxsIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDJyZW07XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDYuIERvY3VtZW50YXJpZXNcblxuI2RvY3VtZW50YXJpZXMtc2VjdGlvbiB7XG5cdC5sb29wLXBvc3QtdGl0bGUge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblxuXHQuZmVhdHVyZWQtYXJ0aWNsZS1jb250ZW50IHtcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHR9XG5cblx0LnRydXNzLXNyY3NldC1pbWFnZS1jb250YWluZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKipcbiAqIDAxLiBBcnRpY2xlIENvbnRlbnQgQ29udGFpbmVyXG4gKiAwMi4gU2hhcmUgVVJMIEZvcm1cbiAqIDAzLiBSZXB1Ymxpc2ggUGFuZWxcbiAqIDA0LiBMYXN0ZXN0IFBvc3RzIFNjcm9sbGVyXG4gKiAwNS4gQ29tbWVudHMgQ1RBXG4gKiAwNi4gSW1hZ2UgSGVhZGVyXG4gKiAwNy4gT3BpbmlvblxuICogMDguIFZpZGVvXG4gKiAwOS4gQXJ0aWNsZSBGb290ZXJcbiAqIDEwLiBQcm9ncmVzc1xuICogMTEuIEZ1bGx3aWR0aCBpbWFnZS92aWRlb1xuICogMTIuIEZvb3RlciBTaGFyaW5nXG4gKi9cblxuXG4vLyAwMS4gQXJ0aWNsZSBDb250ZW50IENvbnRhaW5lclxuXG4uc2luZ2xlLmRhcmstYmFja2dyb3VuZCBbcm9sZT1cIm1haW5cIl0ge1xuXHRiYWNrZ3JvdW5kOiBtaXgoJGJsYWNrLCAkZGFyay1ncmF5LCA5MCUpO1xuXHRjb2xvcjogJHdoaXRlO1xuXG5cdCNhcnRpY2xlLWZvb3RlciB7XG5cdFx0YmFja2dyb3VuZDogbWl4KCRibGFjaywgJGRhcmstZ3JheSwgOTAlKTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0LmVudHJ5LXRpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cblx0LmFydGljbGUtY29udGVudC1jb250YWluZXIge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHR9XG5cblx0XHQuZW50cnktY29udGVudCB7XG5cdFx0XHRhIHtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjogJGdvbGQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubmV3c2xldHRlci1ibG9jay1zaG9ydGNvZGUge1xuXHRcdC5uZXdzbGV0dGVyLXNpZ251cCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYmxhY2s7XG5cdFx0fVxuXG5cdFx0Lm5ld3NsZXR0ZXItc2lnbnVwLWZvcm0ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHdoaXRlO1xuXG5cdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZ2Zvcm1fYm9keSB7XG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdEBpbmNsdWRlIHBsYWNlaG9sZGVyLXN0eWxlIHtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LndwLWNhcHRpb24ge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbi5hcnRpY2xlLWNvbnRlbnQtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblxuXHRcdGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuXHRcdGhlaWdodDogMTUwcHg7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogLTFyZW07XG5cdFx0cmlnaHQ6IC0xcmVtO1xuXHRcdHRvcDogLTFyZW07XG5cdFx0ei1pbmRleDogMTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRsZWZ0OiAtMnJlbTtcblx0XHRcdHJpZ2h0OiAtMnJlbTtcblx0XHRcdHRvcDogLTJyZW07XG5cdFx0fVxuXG5cdFx0I3NpbmdsZS1pbWFnZS1oZWFkZXItdGVtcGxhdGUgJiB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cdFx0fVxuXG5cdFx0LnBvc3QtdGVtcGxhdGUtc2luZ2xlLWJyZWF0aHRha2luZyAmIHtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHR9XG5cdH1cblxuXHQucG9zdC10ZW1wbGF0ZS1zaW5nbGUtdmlkZW8gJixcblx0LnBvc3QtdGVtcGxhdGUtc2luZ2xlLXBvZGNhc3QgJntcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBpbml0aWFsO1xuXHRcdH1cblx0fVxuXG5cdD4gaGVhZGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdC5wb3N0LWhlYWRlci1zdWJ0aXRsZSB7XG5cdFx0QGluY2x1ZGUgcG9zdC1oZWFkZXItc3VidGl0bGU7XG5cdH1cblxuXHQuZW50cnktY29udGVudCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDI7XG5cdFx0Zm9udC1zaXplOiAxLjEyNXJlbTtcblx0XHRsaW5lLWhlaWdodDogMS42O1xuXHR9XG5cblx0LmZlYXR1cmVkLWltYWdlLWNhcHRpb24ge1xuXHRcdG1hcmdpbi10b3A6IDEuMTI1cmVtO1xuXHR9XG59XG5cbi5zaW5nbGUsIC5wYWdlIHtcblx0LmVudHJ5LWNvbnRlbnQge1xuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuZGFyay1iYWNrZ3JvdW5kLFxuXHQmLnBhZ2UtdGVtcGxhdGUtcGFnZS1zcGVjaWFsLXByb2plY3RzLXBocCxcblx0Ji5wYWdlLXRlbXBsYXRlLXBhZ2UtYnJlYXRodGFraW5nIHtcblx0XHQuZW50cnktY29udGVudCB7XG5cdFx0XHRhIHtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjogJGdvbGQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwMi4gU2hhcmUgVVJMIEZvcm1cblxuI3NoYXJlLXVybC1mb3JtIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdGlucHV0IHtcblx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Zm9udDoge1xuXHRcdFx0ZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuXHRcdH07XG5cdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRcdHBhZGRpbmc6IDVweCAxNXB4O1xuXHR9XG5cblx0YnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRcdGNvbG9yOiAkZ29sZDtcblx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRwYWRkaW5nOiA1cHggMTVweDtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHdoaXRlKTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDYwcHg7XG5cblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHJpZ2h0OiAxMDAlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAzLiBSZXB1Ymxpc2ggUGFuZWxcblxuW2RhdGEtdG9nZ2xlPVwicmVwdWJsaXNoLXBhbmVsXCJdIHtcblx0Y29sb3I6ICRnb2xkO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDc2OHB4ICkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbTogOHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDhweDtcblxuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0bGVmdDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRnb2xkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0aGVpZ2h0OiA5MHB4O1xuXHRcdHdpZHRoOiA5MHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA5MHB4O1xuXG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlciB7XG5cdFx0XHRmb250LXNpemU6IDM1cHg7XG5cblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHR0b3A6IDVweDtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGJvdHRvbTogNXB4O1xuXHRcdH1cblx0fVxuXHQqL1xuXG5cdEBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiA3NjlweCApIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ29sZDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGhlaWdodDogMTIwcHg7XG5cdFx0d2lkdGg6IDEyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxMjBweDtcblxuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0QGluY2x1ZGUgaWNvbi1mb250O1xuXG5cdFx0XHRmb250OiB7XG5cdFx0XHRcdHNpemU6IDUwcHg7XG5cdFx0XHRcdHdlaWdodDogMTAwO1xuXHRcdFx0fTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJGljb24tcmVwdWJsaXNoLXRvcDtcblx0XHRcdHRvcDogMTBweDtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICRpY29uLXJlcHVibGlzaC1ib3R0b207XG5cdFx0XHRib3R0b206IDEwcHg7XG5cdFx0fVxuXHR9XG5cblx0I2FydGljbGUtZm9vdGVyICYge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG5cblx0LnBvc3QtdGVtcGxhdGUtc2luZ2xlLW9waW5pb24gLm9waW5pb24taGVhZGVyLWNvbnRhaW5lciAmIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0d2lkdGg6IGF1dG87XG5cblx0XHQmOmJlZm9yZSxcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHRjb250ZW50OiBpbml0aWFsO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDA0LiBMYXN0ZXN0IFBvc3RzIFNjcm9sbGVyXG5cbi5sYXRlc3QtcG9zdHMtY29udGFpbmVyIHtcblx0cGFkZGluZy1ib3R0b206IC41cmVtO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdHBhZGRpbmctbGVmdDogMXJlbTtcblx0fVxufVxuXG4ubGF0ZXN0LXBvc3RzLXNsaWRlciB7XG5cdG9wYWNpdHk6IDA7XG5cdHBhZGRpbmc6IDEwcHggMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdHRyYW5zaXRpb246IG9wYWNpdHkgJGdsb2JhbC10aW1pbmc7XG5cblx0LnNsaWNrLWxpc3Qge1xuXHRcdG1hcmdpbi1yaWdodDogODBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDgwcHg7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblxuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgJGJsYWNrKTtcblx0XHRcdHdpZHRoOiA4MHB4O1xuXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdHotaW5kZXg6IDQ7XG5cdFx0fVxuXHR9XG5cblx0LnNsaWNrLWFycm93IHtcblx0XHRmb250LXNpemU6IDA7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bWFyZ2luLXRvcDogLTdweDtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIGljb24tZm9udDtcblxuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5ICRnbG9iYWwtdGltaW5nO1xuXHRcdH1cblxuXHRcdCYuc2xpY2stcHJldiB7XG5cdFx0XHRyaWdodDogNDRweDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAkaWNvbi1hcnJvdy1sZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuc2xpY2stbmV4dCB7XG5cdFx0XHRyaWdodDogMTZweDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAkaWNvbi1hcnJvdy1yaWdodDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLnNsaWNrLWRpc2FibGVkIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdFx0XHRvcGFjaXR5OiAuMztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubGF0ZXN0LXBvc3Qge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxcmVtO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cblx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHQ+IHtcblx0XHRcdFx0KiB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0PiB7XG5cdFx0XHQqIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5lbnRyeS10aXRsZSB7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdFx0d2lkdGg6IDQwcHg7XG5cdFx0fVxuXHR9XG5cblx0Ji5zbGljay1pbml0aWFsaXplZCB7XG5cdFx0b3BhY2l0eTogMTtcblxuXHRcdC5sYXRlc3QtcG9zdCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwNS4gQ29tbWVudHMgQ1RBXG5cbi5jb21tZW50cy1jdGEge1xuXHRjb2xvcjogJGdvbGQ7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Zm9udDoge1xuXHRcdGZhbWlseTogJGZvbnQtc2Fucztcblx0XHRzaXplOiAxNHB4O1xuXHRcdHdlaWdodDogNzAwO1xuXHR9O1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdC5jb21tZW50cy1udW1iZXIge1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHQuY29tbWVudHMtbnVtYmVyIHtcblx0XHRcdGNvbG9yOiAkZ29sZDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdC5jb21tZW50cy1udW1iZXIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRmb250LXNpemU6IDUwcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDYuIEltYWdlIEhlYWRlclxuXG4jc2luZ2xlLWltYWdlLWhlYWRlci10ZW1wbGF0ZSB7XG5cdGFydGljbGUucG9zdCB7XG5cdFx0Ym9keTpub3QoLmRhcmstYmFja2dyb3VuZCkgJiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHR9XG5cblx0XHRwYWRkaW5nLXRvcDogMnJlbTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdGxlZnQ6IDIuNXJlbTtcblx0XHRcdFx0dG9wOiAtMTAwcHg7XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRsZWZ0OiA1cmVtO1xuXHRcdFx0XHR0b3A6IC0xNTBweDtcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDcuIE9waW5pb25cblxuLm9waW5pb24taGVhZGVyLWNvbnRlbnQge1xuXHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDogMTAyM3B4ICkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdFx0XHRoZWlnaHQ6IDE1MHB4O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0ei1pbmRleDogLTE7XG5cdFx0fVxuXG5cdFx0PiAuYmFja2dyb3VuZC1saWdodC1ncmF5IHtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0LnBvc3QtaGVhZGVyLXN1YnRpdGxlIHtcblx0XHRAaW5jbHVkZSBwb3N0LWhlYWRlci1zdWJ0aXRsZTtcblx0fVxuXG5cdC5ieWxpbmUuYnlsaW5lLWVudHJ5LW1ldGEgLmJ5bGluZS1pdGVtIHtcblx0XHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDogNzY3cHggKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cblxuLmJhY2tncm91bmQtaW1hZ2UtY29udGFpbmVyIHtcblx0YmFja2dyb3VuZDoge1xuXHRcdHBvc2l0aW9uOiA1MCU7XG5cdFx0c2l6ZTogY292ZXI7XG5cdH07XG5cdGhlaWdodDogMTAwJTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxufVxuXG4ub3Bpbmlvbi1hdXRob3Ige1xuXHRtYXJnaW46IC00MHB4IGF1dG8gMjBweDtcblx0bWF4LXdpZHRoOiAzODBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdGltZyB7XG5cdFx0Ym9yZGVyOiAxMHB4IHNvbGlkIHdoaXRlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwcHg7XG5cdFx0aGVpZ2h0OiAxMDBweDtcblx0XHR3aWR0aDogMTAwcHg7XG5cdH1cbn1cblxuXG4vLyAwOC4gVmlkZW9cblxuLnZpZGVvLWVtYmVkLWNvbnRhaW5lciB7XG5cdG1hcmdpbi1ib3R0b206IDE1MHB4O1xuXG5cdC5yZXNwb25zaXZlLWVtYmVkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAtMTAwcHg7XG5cdH1cbn1cblxuXG4vLyAwOS4gQXJ0aWNsZSBGb290ZXJcblxuLnBvc3QtYXJ0aWNsZS1zaGFyZSB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdG1hcmdpbi10b3A6IDJyZW07XG5cdHBhZGRpbmctdG9wOiAycmVtO1xufVxuXG5cbi8vIDEwLiBQcm9ncmVzc1xuXG4uYXJ0aWNsZS1wcm9ncmVzcyB7XG5cdC5hcnRpY2xlLXByb2dyZXNzLXBlcmNlbnQge1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAuNSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTNweDtcblx0XHRoZWlnaHQ6IDEzcHg7XG5cdFx0d2lkdGg6IDEzcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gMjRweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHR0cmFuc2l0aW9uOiB7XG5cdFx0XHRkdXJhdGlvbjogJGdsb2JhbC10aW1pbmc7XG5cdFx0XHRwcm9wZXJ0eTogYmFja2dyb3VuZDtcblx0XHRcdHRpbWluZy1mdW5jdGlvbjogJGdsb2JhbC1lYXNpbmc7XG5cdFx0fTtcblxuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAuNSk7XG5cdFx0XHRoZWlnaHQ6IDEycHg7XG5cdFx0XHR3aWR0aDogMXB4O1xuXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiA2cHg7XG5cblx0XHRcdHRyYW5zaXRpb246IHtcblx0XHRcdFx0ZHVyYXRpb246ICRnbG9iYWwtdGltaW5nO1xuXHRcdFx0XHRwcm9wZXJ0eTogYmFja2dyb3VuZDtcblx0XHRcdFx0dGltaW5nLWZ1bmN0aW9uOiAkZ2xvYmFsLWVhc2luZztcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdH1cblxuXHRcdCY6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogaW5pdGlhbDtcblx0XHR9XG5cblx0XHQmOmxhc3Qtb2YtdHlwZTphZnRlciB7XG5cdFx0XHRjb250ZW50OiBpbml0aWFsO1xuXHRcdH1cblxuXHRcdCYuYWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuXHRcdFx0JjpiZWZvcmUsXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDEyLiBGb290ZXIgU2hhcmluZ1xuXG4uc2hhcmluZy1jb250YWluZXIge1xuXHRib2R5Om5vdCgucG9zdC10ZW1wbGF0ZS1zaW5nbGUtb3BpbmlvbikgJiB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAyLjVyZW07XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDVyZW07XG5cdFx0fVxuXHR9XG59XG4iLCIvKipcbiAqIDAxLiBHbG9iYWxcbiAqIDAyLiBBcnRpY2xlIFRvcCAoSW5kZXgpXG4gKiAwMy4gRG9jdW1lbnRhcmllc1xuICogMDQuIFBvZGNhc3RcbiAqL1xuXG5cbi8vIDAxLiBHbG9iYWxcblxuYm9keSB7XG5cdCYuYmxvZyB7XG5cdFx0YmFja2dyb3VuZDogJGJsYWNrO1xuXHR9XG5cblxufVxuXG4ucG9zdC1hcmNoaXZlLWNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IHtcblx0XHRib3R0b206IDJyZW07XG5cdFx0dG9wOiAycmVtO1xuXHR9O1xufVxuXG5cbi8vIDAyLiBBcnRpY2xlIFRvcCAoSW5kZXgpXG5cbmJvZHk6bm90KC50ZXJtLWZpZ3VyZXMpIHtcblx0LmFydGljbGUtdGVhc2UudG9wIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQubG9vcC1wb3N0LWNvbnRlbnQge1xuXHRcdFx0YmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cdFx0XHRwYWRkaW5nOiAycmVtO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0XHRwYWRkaW5nOiA0cmVtO1xuXHRcdFx0XHR3aWR0aDogNTAlO1xuXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5sb29wLXBvc3QtaW1hZ2Uge1xuXHRcdFx0aW1nIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lmxvb3AtcG9zdC10aXRsZSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAycmVtO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAzLiBEb2N1bWVudGFyaWVzXG5cbmJvZHkudGVybS1maWd1cmVzIHtcblx0LmFydGljbGUtdGVhc2UudG9wIHtcblx0XHQubG9vcC1wb3N0LWNvbnRlbnQge1xuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0cGFkZGluZzogMnJlbTtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwNC4gUG9kY2FzdFxuXG4ubG9vcC1wb3N0LXBvZGNhc3Qge1xuXHQubG9vcC1wb3N0LWltYWdlIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBpY29uLWZvbnQ7XG5cblx0XHRcdGNvbnRlbnQ6ICRpY29uLXBvZGNhc3Q7XG5cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDQwcHg7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Zm9udC1zaXplOiA2MHB4O1xuXHRcdFx0aGVpZ2h0OiA4MHB4O1xuXHRcdFx0d2lkdGg6IDgwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogODBweDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtNDBweDtcblx0XHRcdG1hcmdpbi10b3A6IC00MHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR6LWluZGV4OiAxMDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIExhbmRpbmcgUGFnZVxuICogMDIuIFBhZ2UgTmF2aWdhdGlvblxuICovXG5cblxuLy8gMDEuIExhbmRpbmcgUGFnZVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWJyZWF0aHRha2luZy1waHAsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXNwZWNpYWwtcHJvamVjdHMtcGhwIHtcblx0YmFja2dyb3VuZDogJGJsYWNrO1xuXHRjb2xvcjogJHdoaXRlO1xufVxuXG4jYnJlYXRodGFraW5nLWxhbmRpbmctcGFnZS1oZWFkZXIge1xuXHRiYWNrZ3JvdW5kOiB7XG5cdFx0cG9zaXRpb246IDUwJTtcblx0XHRzaXplOiBjb3Zlcjtcblx0fTtcblx0Y29sb3I6ICR3aGl0ZTtcblx0cGFkZGluZzogMTUwcHggMDtcblxuXHQudmVydGljYWwtc3BsaXQge1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0d2lkdGg6IDFweDtcblx0XHRtYXJnaW46IDJyZW0gYXV0bztcblx0fVxufVxuXG4uc2VyaWVzLWNoYXB0ZXJzIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRtYXJnaW46IHtcblx0XHRcdGJvdHRvbTogNnJlbTtcblx0XHRcdHRvcDogLTZyZW07XG5cdFx0fTtcblx0fVxuXG5cdC5zZXJpZXMtY2hhcHRlcnMtbGlzdCB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQuc2VyaWVzLWNoYXB0ZXIge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiAwIDhweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdHBhZGRpbmc6IDAgMTZweDtcblx0XHR9XG5cblx0XHQrIC5zZXJpZXMtY2hhcHRlciB7XG5cdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICRib3JkZXItZ3JheTtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXktaGVhZGluZztcblxuXHRcdFx0LmNoYXB0ZXItbnVtYmVyIHtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0Zm9udC1zaXplOiAzOHB4O1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDUwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnB1bGwtb3V0LWdyaWQge1xuXHRtYXJnaW4tbGVmdDogLTIuOTM3NXJlbTtcblx0bWFyZ2luLXJpZ2h0Oi0yLjkzNzVyZW07XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRtYXJnaW4tbGVmdDogLTQuOTM3NXJlbTtcblx0XHRtYXJnaW4tcmlnaHQ6LTQuOTM3NXJlbTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tbGVmdDogY2FsYygtMTYuNjY2N3Z3ICsgLTQuOTM3NXJlbSk7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xNi42NjY3dncgKyAtNC45Mzc1cmVtKTtcblx0fVxufVxuXG4ucHVsbC1vdXQtZ3JpZC1oYWxmIHtcblx0bWFyZ2luLWxlZnQ6IC0xLjVyZW07XG5cdG1hcmdpbi1yaWdodDotMS41cmVtO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IC0yLjVyZW07XG5cdFx0bWFyZ2luLXJpZ2h0Oi0yLjVyZW07XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTguMzMzM3Z3ICsgLTIuNXJlbSk7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC04LjMzMzN2dyArIC0yLjVyZW0pO1xuXHR9XG59XG4iLCIvKipcbiAqIDAxLiBHbG9iYWwgcGFnZSBVSVxuICovXG5cblxuLy8gMDEuIEdsb2JhbCBwYWdlIFVJXG5cbi5wYWdlLWNvbnRlbnQtY29udGFpbmVyIHtcblx0cGFkZGluZy10b3A6IDJyZW07XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblxuXHRcdGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuXHRcdGhlaWdodDogMTIwcHg7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0ei1pbmRleDogLTE7XG5cdH1cbn1cblxuLnBhZ2Utc2lkZWJhciB7XG5cdHBhZGRpbmc6IDFyZW07XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHRwYWRkaW5nOiAxcmVtIDMuNzVyZW07XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0cGFkZGluZzogY2FsYygxMjBweCAtIDJyZW0pIDJyZW0gMnJlbTtcblx0fVxuXG5cdC5zaWRlYmFyLWl0ZW0ge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdFx0cGFkZGluZzogMXJlbSAwIDEuNXJlbTtcblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gQWJvdXQgTGF5b3V0XG4gKiAwMi4gU3RhZmZcbiAqL1xuXG5cbi8vIDAxLiBBYm91dCBMYXlvdXRcblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1hYm91dCB7XG5cdC5hYm91dC1zaWRlYmFyIHtcblx0XHRwYWRkaW5nOiAxcmVtO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHRcdHBhZGRpbmc6IDFyZW0gMy43NXJlbTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRwYWRkaW5nOiBjYWxjKDEyMHB4IC0gMnJlbSkgMnJlbSAycmVtO1xuXHRcdH1cblx0fVxufVxuXG4ucGFydG5lci1sb2dvcy1jb250YWluZXIge1xuXHRwYWRkaW5nOiAxcmVtIDJyZW0gMDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzogMXJlbSA1cmVtIDA7XG5cdH1cblxuXHQucGFydG5lci1sb2dvcy1ncmlkIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0fVxuXG5cdC5wYXJ0bmVyLWxvZ28ge1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRib3JkZXI6IHtcblx0XHRcdHJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRcdFx0dG9wOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRcdH07XG5cdFx0cGFkZGluZzogMnJlbTtcblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWF4LXdpZHRoOiAxMDQwcHggKSB7XG5cdFx0XHR3aWR0aDogeHktY2VsbC1zaXplKDEgb2YgMyk7XG5cblx0XHRcdCY6bnRoLW9mLXR5cGUoM24pIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiAxMDQxcHggKSB7XG5cdFx0XHR3aWR0aDogeHktY2VsbC1zaXplKDEgb2YgNik7XG5cblx0XHRcdCY6bnRoLW9mLXR5cGUoNm4pIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAyLiBTdGFmZlxuXG4udW5kYXJrLXN0YWZmLWxpc3Qge1xuXHQudW5kYXJrLXN0YWZmLWl0ZW0ge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LXNhbnM7XG5cdFx0cGFkZGluZzoge1xuXHRcdFx0dG9wOiAxcmVtO1xuXHRcdFx0Ym90dG9tOiAxLjVyZW07XG5cdFx0fTtcblxuXHRcdC5kaXNwbGF5LWhlYWRpbmcge1xuXHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gSW4gVmlldyBBbmltYXRpb25zXG4gKi9cbkBtaXhpbiBpbi12aWV3KCAkcHJvcCwgJGRlZmF1bHQsICRpbnZpZXcgKSB7XG5cdCN7JHByb3B9OiAkZGVmYXVsdDtcblxuXHQmOm5vdCguYWx3YXlzLXZpc2libGUpIHtcblx0XHR3aWxsLWNoYW5nZTogb3BhY2l0eSwgJHByb3A7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAkZ2xvYmFsLXRpbWluZyAqIDIgJGdsb2JhbC1lYXNpbmcsICRwcm9wICRnbG9iYWwtdGltaW5nICogMiAkZ2xvYmFsLWVhc2luZztcblx0fVxuXG5cdCYuYWx3YXlzLXZpc2libGUge1xuXHRcdHdpbGwtY2hhbmdlOiAkcHJvcDtcblx0XHR0cmFuc2l0aW9uOiAkcHJvcCAkZ2xvYmFsLXRpbWluZyAqIDIgJGdsb2JhbC1lYXNpbmc7XG5cdH1cblxuXHQmLmluLXZpZXcge1xuXHRcdCN7JHByb3B9OiAkaW52aWV3O1xuXHR9XG59XG5cbiRkZWxheXM6ICgxMDAsIDIwMCwgMzAwLCA0MDAsIDUwMCwgNjAwLCA3MDAsIDgwMCk7XG5cbi50cmlnZ2VyLWluLXZpZXcge1xuXHQmOm5vdCguYWx3YXlzLXZpc2libGUpIHtcblx0XHRAaW5jbHVkZSBpbi12aWV3KCBvcGFjaXR5LCAwLCAxICk7XG5cdH1cblxuXHQmLmluLXZpZXctc2xpZGUtZnJvbS1sZWZ0IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0QGluY2x1ZGUgaW4tdmlldyggbGVmdCwgLTRyZW0sIDAgKTtcblx0fVxuXG5cdCYuaW4tdmlldy1zbGlkZS1mcm9tLXJpZ2h0IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0QGluY2x1ZGUgaW4tdmlldyggcmlnaHQsIC00cmVtLCAwICk7XG5cdH1cblxuXHQmLmluLXZpZXctc2xpZGUtZnJvbS10b3Age1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRAaW5jbHVkZSBpbi12aWV3KCB0b3AsIC00cmVtLCAwICk7XG5cdH1cblxuXHQmLmluLXZpZXctc2xpZGUtZnJvbS1ib3R0b20ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRAaW5jbHVkZSBpbi12aWV3KCBib3R0b20sIC00cmVtLCAwICk7XG5cdH1cblx0Ji5pbi12aWV3LWZhZGUtaW4ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRAaW5jbHVkZSBpbi12aWV3KCBvcGFjaXR5LCAwLCAxICk7XG5cdH1cblxuXHRAZWFjaCAkZGVsYXkgaW4gJGRlbGF5cyB7XG5cdFx0Ji5pbi12aWV3LWRlbGF5LSN7JGRlbGF5fSB7XG5cdFx0XHR0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXkgKiAxbXMgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIEZvcm1cbiAqIDAyLiBDb21tZW50cyBMaXN0XG4gKi9cblxuXG4vLyAwMS4gRm9ybVxuXG4jY29tbWVudGZvcm0ge1xuXHRtYXJnaW4tYm90dG9tOiAycmVtO1xuXG5cdGxhYmVsIHtcblx0XHRAaW5jbHVkZSBkaXNwbGF5LWhlYWRpbmcoc21hbGwpO1xuXG5cdFx0Y29sb3I6ICRsaWdodGVzdC1ncmF5O1xuXG5cdFx0Jltmb3I9XCJ3cC1jb21tZW50LWNvb2tpZXMtY29uc2VudFwiXSB7XG5cdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0fVxuXHR9XG5cblx0I2NvbW1lbnQge1xuXHRcdG1heC1oZWlnaHQ6IDEwMHB4O1xuXHR9XG5cblx0LmNvbW1lbnQtZm9ybS1jb21tZW50IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQuY29tbWVudC1mb3JtLWF1dGhvcixcblx0LmNvbW1lbnQtZm9ybS1lbWFpbCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxuXG5cdC5jb21tZW50LWZvcm0tYXV0aG9yIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcblx0fVxuXG5cdC5jb21tZW50LWZvcm0tZW1haWwge1xuXHRcdHBhZGRpbmctbGVmdDogLjVyZW07XG5cdH1cblxuXHQuZm9ybS1zdWJtaXQgYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuXHRcdGNvbG9yOiAkYmxhY2s7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRnb2xkO1xuXHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdH1cblx0fVxuXG5cdC5jaGFyYWN0ZXItY291bnRlciB7XG5cdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogLTVweDtcblx0fVxufVxuXG5cbi8vIDAyLiBDb21tZW50cyBMaXN0XG5cbi5jb21tZW50LWxpc3QtdGl0bGUge1xuXHRib3JkZXItYm90dG9tOiAxeHAgc29saWQgIzQ0NDtcblx0bWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uY29tbWVudC1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwIDAgMjBweDtcbn1cblxuLmNvbW1lbnQtYm9keSB7XG5cdC5jb21tZW50LWF1dGhvciB7XG5cdFx0LmF2YXRhciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdGNpdGU6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IGluaXRpYWw7XG5cdFx0fVxuXG5cdFx0LnNheXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQub2ZmLWNhbnZhcyAmIHtcblx0XHRhIHtcblx0XHRcdGZvbnQtc2l6ZTogLjc1cmVtO1xuXHRcdFx0cGFkZGluZy10b3A6IC4xMjVyZW07XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmNvbW1lbnQtZWRpdC1saW5rIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cblxuXHQrIG9sLmNoaWxkcmVuIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjoge1xuXHRcdFx0dG9wOiAxLjVyZW07XG5cdFx0XHRsZWZ0OiAxLjVyZW07XG5cdFx0fTtcblx0fVxufVxuXG4ucG9zdC1jb21tZW50LWhlYWRlciB7XG5cdHBhZGRpbmctbGVmdDogNTBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBpY29uLWZvbnQ7XG5cblx0XHRjb250ZW50OiAkaWNvbi1jb21tZW50O1xuXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgd2hpdGU7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdGhlaWdodDogNDBweDtcblx0XHR3aWR0aDogNDBweDtcblx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHR0b3A6IDA7XG5cdH1cbn1cblxuLmNvbW1lbnQgKyAuY29tbWVudCB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDQ0O1xuXHRtYXJnaW4tdG9wOiAycmVtO1xuXHRwYWRkaW5nLXRvcDogMnJlbTtcbn1cblxuLmNvbW1lbnQtZm9ybS1jb29raWVzLWNvbnNlbnQge1xuXHRpbnB1dCxcblx0bGFiZWwge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG5cblx0aW5wdXQge1xuXHRcdG1hcmdpbi1yaWdodDogNnB4O1xuXHRcdHdpZHRoOiAxNHB4O1xuXHR9XG5cblx0bGFiZWwge1xuXHRcdG1hcmdpbjogMDtcblx0fVxufVxuXG4uZm9ybS1zdWJtaXQge1xuXHRjbGVhcjogYm90aDtcbn1cbiIsIi8qKlxuICogMDEuIEFyY2hpdmUgRmlsdGVyXG4gKi9cblxuLy8gMDEuIEFyY2hpdmUgRmlsdGVyXG4uYXJjaGl2ZS1maWx0ZXIge1xuXHRmb250LXNpemU6IDA7XG5cdG1hcmdpbi1ib3R0b206IDRyZW07XG5cdHdpZHRoOiAxMDAlO1xuXG5cdC5hcmNoaXZlLWZpbHRlci1pbm5lciB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0bWF4LXdpZHRoOiA4MDBweDtcblx0fVxuXG5cdC5pbnB1dC13cmFwIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRwYWRkaW5nOiAxcmVtO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRsaWdodGVyLWdyYXk7XG5cdFx0Ym9yZGVyLWxlZnQ6IDA7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAwO1xuXHRcdH1cblxuXHRcdGxhYmVsIHtcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXktaGVhZGluZztcblx0XHRcdGNvbG9yOiAkZ29sZDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0fVxuXG5cdFx0c2VsZWN0IHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cdH1cblxuXHQmLnRoZS1sYXRlc3Qge1xuXHRcdC5pbnB1dC13cmFwIHtcblx0XHRcdHdpZHRoOiAzMy4zMzMzJTtcblx0XHRcdGJvcmRlci1jb2xvcjogJGRhcmstZ3JheTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIEdsb2JhbCBGb3JtIFN0eWxlc1xuICovXG5cblxuLy8gMDEuIEdsb2JhbCBGb3JtIFN0eWxlc1xuaW5wdXQ6Oi1tcy1jbGVhciB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLy8gUHJldmVudCBJRSBjbGVhcmluZyBcInhcIlxufVxuXG5pbnB1dCB7XG5cdEBpbmNsdWRlIHBsYWNlaG9sZGVyLXN0eWxlIHtcblx0XHRjb2xvcjogJG1lZGl1bS1ncmF5O1xuXHR9O1xufSIsIi5ncmlkLWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGxlZnQ6IC43NXJlbTtcblx0XHRcdHJpZ2h0OiAuNzVyZW07XG5cdFx0fTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHRsZWZ0OiA1cmVtO1xuXHRcdFx0cmlnaHQ6IDVyZW07XG5cdFx0fTtcblx0fVxufVxuIiwiLyoqXG4gKiBNYW5hZ2UgdGhlIHZpZGVvLiBUaGlzIHNob3VsZCBtYXliZSBiZSBtb3JlIGdlbmVyaWMgc28gaXQgY2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgcGxhY2VzXG4gKlxuICogMDEuIEhlcm9cbiAqL1xuXG4vLyAwMS4gSGVyb1xuI2hvbWVwYWdlLWhlcm8ge1xuICBiYWNrZ3JvdW5kOiB7XG5cdGNvbG9yOiBnZXQtY29sb3Ioc2Vjb25kYXJ5KTtcblx0cG9zaXRpb246IDUwJTtcblx0c2l6ZTogY292ZXI7XG4gIH07XG4gIHBhZGRpbmc6IDUwcHggMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy9AbWVkaWEgI3skZGVza3RvcC11cH0ge1xuLy9cdGhlaWdodDogOTB2aDtcbi8vXHRwYWRkaW5nOiAwO1xuLy8gIH1cblxuICAmOmJlZm9yZSB7XG5cdGNvbnRlbnQ6ICcnO1xuXG5cdGJhY2tncm91bmQ6IGdldC1jb2xvcihwcmltYXJ5KTtcblx0aGVpZ2h0OiAuNjI1cmVtO1xuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMTAwJTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuXHRjb250ZW50OiAnJztcblxuXHRib3JkZXI6IHtcblx0ICB0b3A6IDFyZW0gc29saWQgZ2V0LWNvbG9yKHByaW1hcnkpO1xuXHQgIGxlZnQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG5cdCAgcmlnaHQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG5cdH07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDA7XG5cdHdpZHRoOiAwO1xuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogNTAlO1xuXHR0b3A6IDEwMCU7XG5cblx0bWFyZ2luOiB7XG5cdCAgbGVmdDogLTFyZW07XG5cdCAgdG9wOiAuNjI1cmVtO1xuXHR9O1xuICB9XG59XG5cbi5oZXJvLWNvbnRlbnQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNDtcblxuLyogIEBtZWRpYSAjeyRkZXNrdG9wLXVwfSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH0gKi9cblxuICAuaGVyby10aXRsZSB7XG5cdHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gNnJlbTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHQgIHBhZGRpbmctbGVmdDogMXJlbTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0ICBwYWRkaW5nOiAwO1xuXHR9XG5cblx0LmxhcmdlIHtcblx0ICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHRcdGZvbnQtc2l6ZTogMTE1JTtcblx0ICB9XG5cdH1cbiAgfVxuXG4gIC5oZXJvLXZpZGVvLWN0YSB7XG5cdGJhY2tncm91bmQ6IGdldC1jb2xvcihwcmltYXJ5KTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMS41cmVtO1xuXHRsaW5lLWhlaWdodDogMS43NXJlbTtcblx0bWFyZ2luOiB7XG5cdCAgbGVmdDogLShtYXAtZ2V0KCAkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBzbWFsbCApLzIpO1xuXHQgIHRvcDogMXJlbTtcblx0fTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiAxcmVtIDJyZW07XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdCAgYm94LXNpemluZzogY29udGVudC1ib3g7XG5cdCAgbWFyZ2luLXJpZ2h0OiAtKG1hcC1nZXQoICRncmlkLWNvbHVtbi1ndXR0ZXIsIHNtYWxsICkvMik7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHQgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0ICBtYXJnaW4tbGVmdDogLShtYXAtZ2V0KCAkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBtZWRpdW0gKS8yKTtcblx0ICBtYXgtd2lkdGg6IDc1JTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0ICBtYXJnaW4tbGVmdDogLSRncmlkLXJvdy13aWR0aC8yO1xuXHQgIG1heC13aWR0aDogNTAlO1xuXHQgIHBhZGRpbmc6IDJyZW0gMnJlbSAycmVtICRncmlkLXJvdy13aWR0aC8yICsgMnJlbSAhaW1wb3J0YW50O1xuXHR9XG5cblx0YSB7XG5cdCAgY29sb3I6ICR3aGl0ZTtcblx0ICBkaXNwbGF5OiB0YWJsZTtcblx0ICBtaW4taGVpZ2h0OiA3MHB4O1xuXHQgIHdpZHRoOiAxMDAlO1xuXG5cdCAgPiBzcGFuIHtcblx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdCAgfVxuXHR9XG5cblx0W2NsYXNzKj1cImljb25cIl0ge1xuXHQgIGZvbnQtc2l6ZTogNzBweDtcblx0ICB3aWR0aDogNzBweDtcblx0fVxuXG5cdC5jdGEtZGVzY3JpcHRpb24ge1xuXHQgIHBhZGRpbmctbGVmdDogMXJlbTtcblx0fVxuICB9XG59XG5cblxuI2hlcm8tYmFja2dyb3VuZC12aWRlbyB7XG4gIGhlaWdodDogaW5oZXJpdDtcblxuICA+IGRpdixcbiAgPiBkaXYgPiB2aWRlbyB7XG5cdHotaW5kZXg6IDIgIWltcG9ydGFudDtcbiAgfVxufVxuXG4jaGVyby12aWRlbyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcblxuICBpZnJhbWUge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmhlcm8tdmlkZW8tcGxheWluZyAmIHtcblx0ei1pbmRleDogNTtcbiAgfVxufVxuXG4jaGVyby1iYWNrZ3JvdW5kLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xuICB6LWluZGV4OiAzO1xuICB0cmFuc2l0aW9uOiAkZ2xvYmFsLXRpbWluZyBvcGFjaXR5ICRnbG9iYWwtZWFzaW5nO1xufVxuXG4jaGVyby12aWRlby1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogcmdiYShnZXQtY29sb3Ioc2Vjb25kYXJ5KSwgLjgpO1xuICBvcGFjaXR5OiAxO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAzO1xuXG4gIHRyYW5zaXRpb246ICRnbG9iYWwtdGltaW5nIG9wYWNpdHkgJGdsb2JhbC1lYXNpbmc7XG59XG5cbi5oZXJvLXZpZGVvLXBsYXlpbmcge1xuICAjaG9tZXBhZ2UtaGVybyAuaGVyby1jb250ZW50LFxuICAjbWFpbi1tZW51LWhvbWUge1xuXHR6LWluZGV4OiAtMTtcbiAgfVxuXG4gICNoZXJvLXZpZGVvLW92ZXJsYXkge1xuXHRvcGFjaXR5OiAwO1xuICB9XG5cbiAgI2hlcm8tYmFja2dyb3VuZC12aWRlbzpiZWZvcmUge1xuXHRvcGFjaXR5OiAxO1xuICB9XG5cbiAgI2hvbWVwYWdlLWhlcm8ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuIiwiLyoqXG4gKiAwMS4gTWVudXNcbiAqIDAyLiBTb2NpYWwgTWVudVxuICovXG5cblxuLy8gMDEuIE1lbnVzXG5cbi5tZW51IHtcblx0cG9zaXRpb246IHN0YXRpYztcblxuXHQubWVudS1pdGVtIHtcblx0XHRhIHtcblx0XHRcdGZvbnQ6IHtcblx0XHRcdFx0ZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRcdFx0XHRzaXplOiAxNHB4O1xuXHRcdFx0XHR3ZWlnaHQ6IDYwMDtcblx0XHRcdH07XG5cdFx0XHRoZWlnaHQ6IGluaGVyaXQ7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHR0cmFuc2l0aW9uOiBjb2xvciAkZ2xvYmFsLXRpbWluZyAkZ2xvYmFsLWVhc2luZztcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAkYWNjZW50LWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuYXMtYnV0dG9uIHtcblx0XHRcdGEge1xuXHRcdFx0XHRoZWlnaHQ6ICR0b3BiYXItaXRlbS1oZWlnaHQgLSAzcmVtO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogJHRvcGJhci1pdGVtLWhlaWdodCAtIDNyZW07XG5cdFx0XHRcdG1hcmdpbjogMS41cmVtIDFyZW07XG5cblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAkZ2xvYmFsLXRpbWluZyBlYXNlLW91dDtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuYWN0aXZlIHtcblx0XHRcdGEge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC50b3AtYmFyICYge1xuXHRcdGhlaWdodDogJHByaW1hcnktbWVudS1oZWlnaHQ7XG5cdFx0bGluZS1oZWlnaHQ6ICRwcmltYXJ5LW1lbnUtbGluZS1oZWlnaHQ7XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0XHR9XG5cdH1cblxuXHQuY29sbGFwc2VkLWhlYWRlciAudG9wLWJhciAmIHtcblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJGFjY2VudC1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmNhdGVnb3J5LW1lbnUsXG5cdCYudXNlci1tZW51IHtcblx0XHRsaW5lLWhlaWdodDogMS42cmVtO1xuXG5cdFx0YSB7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0XHR9XG5cdH1cblxuXHQmI21lbnUtZm9vdGVyIHtcblx0XHQubWVudS1pdGVtIHtcblx0XHRcdCsgLm1lbnUtaXRlbSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC41cmVtO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmhhcy1idXR0b24ge1xuXHRcdFx0XHRtYXJnaW46IHtcblx0XHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdFx0dG9wOiAycmVtO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6aG92ZXIgYSB7XG5cdFx0XHRcdFx0Ly8gYmFja2dyb3VuZDogd2hpdGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAkZ29sZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwMi4gU29jaWFsIE1lbnVcblxudWwuc29jaWFsLm1lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAwO1xuXHRtYXJnaW4tdG9wOiAuNXJlbTtcblxuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cblx0XHRhIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0Zm9udC1zaXplOiAwO1xuXHRcdFx0cGFkZGluZzogLjc1cmVtO1xuXHRcdFx0bWFyZ2luOiAuMjVyZW07XG5cblx0XHRcdHRyYW5zaXRpb246IGNvbG9yICRnbG9iYWwtdGltaW5nLCBiYWNrZ3JvdW5kLWNvbG9yICRnbG9iYWwtdGltaW5nO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdEBpbmNsdWRlIGljb24tZm9udDtcblxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Zm9udC1zaXplOiAyOHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdFx0XHRjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGVhY2ggJHNvY2lhbCwgJGljb24gaW4gJHNvY2lhbC1saXN0IHtcblx0XHRsaS4jeyRzb2NpYWx9IHtcblx0XHRcdGE6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJGljb247XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0I2Rlc2t0b3AtbWVudS1vdmVybGF5ICYge1xuXHRcdHBhZGRpbmc6IHtcblx0XHRcdGxlZnQ6IC43NXJlbTtcblx0XHRcdHJpZ2h0OiAuNzVyZW07XG5cdFx0fTtcblx0fVxufVxuIiwiLnJldmVhbC1vdmVybGF5IHtcblx0LmNsb3NlLWJ1dHRvbiB7XG5cdFx0Zm9udC1zaXplOiAuNzVyZW07XG5cdFx0bWFyZ2luOiB7XG5cdFx0XHRyaWdodDogLTdweDtcblx0XHRcdHRvcDogMnB4O1xuXHRcdH07XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIEhvbWVwYWdlIFNpZGViYXJzXG4gKi9cblxuXG4vLyAwMS4gSG9tZXBhZ2UgU2lkZWJhcnNcblxuLndpZGdldHRpdGxlIHtcblx0LmhvbWUtbGVmdC1zaWRlYmFyICYsXG5cdC5ob21lLXJpZ2h0LXNpZGViYXIgJiB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxufVxuIiwiLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyXG57XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRkaXNwbGF5OiBibG9jaztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcblx0dG91Y2gtYWN0aW9uOiBwYW4teTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWxpc3Rcbntcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cbi5zbGljay1saXN0OmZvY3VzXG57XG5cdG91dGxpbmU6IG5vbmU7XG59XG4uc2xpY2stbGlzdC5kcmFnZ2luZ1xue1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGN1cnNvcjogaGFuZDtcbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0XG57XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrXG57XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcblx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnNsaWNrLXRyYWNrOmJlZm9yZSxcbi5zbGljay10cmFjazphZnRlclxue1xuXHRkaXNwbGF5OiB0YWJsZTtcblxuXHRjb250ZW50OiAnJztcbn1cbi5zbGljay10cmFjazphZnRlclxue1xuXHRjbGVhcjogYm90aDtcbn1cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xue1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGljay1zbGlkZVxue1xuXHRkaXNwbGF5OiBub25lO1xuXHRmbG9hdDogbGVmdDtcblxuXHRoZWlnaHQ6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDFweDtcbn1cbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxue1xuXHRmbG9hdDogcmlnaHQ7XG59XG4uc2xpY2stc2xpZGUgaW1nXG57XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nXG57XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXG57XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxue1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZVxue1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXG57XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdGhlaWdodDogYXV0bztcblxuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vLyBDdXN0b21cbi5zbGljay1zbGlkZSB7XG5cdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNsaWNrLWRvdHMge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0bWFyZ2luOiAwO1xuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAwO1xuXG5cdFx0YnV0dG9uIHtcblx0XHRcdGhlaWdodDogLjc1cmVtO1xuXHRcdFx0d2lkdGg6IC43NXJlbTtcblx0XHRcdGJhY2tncm91bmQ6ICRhY2NlbnQtY29sb3I7XG5cdFx0XHRib3JkZXI6IDNweCBzb2xpZCAkd2hpdGU7XG5cdFx0XHRtYXJnaW46IDNweDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0XHR9XG5cblx0XHQmLnNsaWNrLWFjdGl2ZSB7XG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiLyoqXG4gKiAwMS4gTGVhZFxuICogMDIuIFNhbnMgTGlua1xuICovXG5cblxuLy8gMDEuIExlYWRcblxuLmxlYWQge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRmb250LXNpemU6IDEuMXJlbTtcblx0fVxufVxuXG4ubWVkaXVtLWxlYWQge1xuXHRmb250LXNpemU6IDEuMjVyZW07XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0Zm9udC1zaXplOiAxLjFyZW07XG5cdH1cbn1cblxuXG4vLyAwMi4gU2FucyBMaW5rXG5cbi5zYW5zLWxpbmsge1xuXHRmb250OiB7XG5cdFx0ZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRcdHNpemU6IDE0cHg7XG5cdFx0d2VpZ2h0OiA3MDA7XG5cdH07XG59XG4iLCIvKipcbiAqIDAxLiBGdWxsd2lkdGggQ29udGFpbmVyXG4gKiAwMi4gSW1hZ2UgU2xpZGVyXG4gKiAwMy4gTGFyZ2UgUG9zdCBJbWFnZVxuICogMDQuIEJhY2tncm91bmQgVmlkZW9cbiAqIDA1LiBDYXB0aW9uXG4gKi9cblxuXG4kbWVkaXVtLXB1bGw6IGNhbGMoKCgoMTAvMTIgKiAxMDApICogLTF2dykvMikgLSAxLjM0Mzc1cmVtKTtcbiRsYXJnZS1wdWxsOiBjYWxjKCgoKDExLzEyICogMTAwKSAqICgoNC8xMikvMikpICogLTF2dykgLSAxLjM0Mzc1cmVtKTtcblxuJGltYWdlX3RlbXBsYXRlX2xhcmdlLXB1bGw6IGNhbGMoKCgtMTAwdncgKiAoMTEvMTIpKSAqICgyLzEyKSkgLSA1LjVyZW0pO1xuXG5AbWl4aW4gbGF5b3Zlci1jYXB0aW9uIHtcblx0YmFja2dyb3VuZDogcmdiYSg1MCw1MCw1MCwuNzUpO1xuXHRjb2xvcjogJHdoaXRlO1xuXHRtYXgtd2lkdGg6IDUwJTtcblx0cGFkZGluZzogMS41cmVtO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGJvdHRvbTogMjVweDtcblxuXHRwIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG5cblx0JjpiZWZvcmUge1xuXHRcdGxlZnQ6IDEuNXJlbTtcblx0fVxufVxuXG4vLyAwMS4gRnVsbHdpZHRoIENvbnRhaW5lclxuXG4uZnVsbHdpZHRoLWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW46IHtcblx0XHRcdGxlZnQ6ICRsYXJnZS1wdWxsO1xuXHRcdFx0cmlnaHQ6ICRsYXJnZS1wdWxsO1xuXHRcdH07XG5cdH1cblxuXHQucG9zdC10ZW1wbGF0ZS1zaW5nbGUtaW1hZ2UtaGVhZGVyICYsXG5cdC5wb3N0LXRlbXBsYXRlLWRlZmF1bHQgJiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0zLjVyZW07XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAkaW1hZ2VfdGVtcGxhdGVfbGFyZ2UtcHVsbDtcblx0XHRcdHdpZHRoOiBjYWxjKDEwMHZ3ICogMTEvMTIpO1xuXG5cdFx0XHQudW5kYXJrLWNhcHRpb24ge1xuXHRcdFx0XHRAaW5jbHVkZSBsYXlvdmVyLWNhcHRpb247XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDIuIEltYWdlIFNsaWRlclxuXG4udW5kYXJrLWltYWdlLXNsaWRlciB7XG5cdCY6bm90KC5mdWxsLXdpZHRoKSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdGxlZnQ6IGNhbGMoKCgoMTEvMTIpICogMS8xMikgKiAtMTAwdncpICogMS41KTtcblx0XHRcdFx0cmlnaHQ6IGNhbGMoKCgoMTEvMTIpICogMS8xMikgKiAtMTAwdncpICogMS41KTtcblx0XHRcdH07XG5cdFx0XHRwYWRkaW5nLXRvcDogMnJlbTtcblx0XHR9XG5cdH1cblxuXHQmLmZ1bGwtd2lkdGgge1xuXHRcdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0XHRtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cblx0XHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDogMTE5OXB4ICkge1xuXHRcdFx0LnVuZGFyay1pbWFnZS1zbGlkZSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0XHQudW5kYXJrLWNhcHRpb24ge1xuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGxlZnQ6IDIwcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JltkYXRhLWxpZ2h0Ym94XTpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IGluaXRpYWw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRAbWVkaWEgc2NyZWVuIGFuZCAoIG1pbi13aWR0aDogMTIwMHB4ICkge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdGxlZnQ6ICRsYXJnZS1wdWxsO1xuXHRcdFx0XHRyaWdodDogJGxhcmdlLXB1bGw7XG5cdFx0XHR9O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQudW5kYXJrLWltYWdlLXNsaWRlIHtcblx0XHRcdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0XHRcdHNpemU6IGNvdmVyO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiA1MCU7XG5cdFx0XHRcdH07XG5cdFx0XHRcdGhlaWdodDogNzB2aDtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdC51bmRhcmstY2FwdGlvbiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgbGF5b3Zlci1jYXB0aW9uO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5zbGljay1hcnJvdyB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246ICRnbG9iYWwtdGltaW5nIG9wYWNpdHkgJGdsb2JhbC1lYXNpbmc7XG5cblx0XHRcdFx0Ji5zbGljay1wcmV2IHtcblx0XHRcdFx0XHRsZWZ0OiAyNXB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5zbGljay1uZXh0IHtcblx0XHRcdFx0XHRyaWdodDogMjVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0LnNsaWNrLWFycm93IHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0bWFyZ2luOiB7XG5cdFx0Ym90dG9tOiAxLjI1JTtcblx0XHR0b3A6IDEuMjUlO1xuXHR9O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0cGFkZGluZzoge1xuXHRcdFx0Ym90dG9tOiAxLjI1JTtcblx0XHRcdHRvcDogMS4yNSU7XG5cdFx0fTtcblx0fVxuXG5cdC5zbGljay1saXN0IHtcblx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0fVxuXG5cdCY6bm90KC5mdWxsLXdpZHRoKSAudW5kYXJrLWltYWdlLXNsaWRlIHtcblx0XHRwYWRkaW5nOiAxcmVtO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHR0cmFuc2l0aW9uOiAkZ2xvYmFsLXRpbWluZyBhbGwgJGdsb2JhbC1lYXNpbmc7XG5cblx0XHRcdCYuc2xpY2stY2VudGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR6LWluZGV4OiA1O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdHBhZGRpbmc6IDEuNXJlbTtcblxuXHRcdFx0Ji5zbGljay1jZW50ZXIge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5zbGljay1hcnJvdyB7XG5cdFx0YmFja2dyb3VuZDogYmxhY2s7XG5cdFx0YmFja2dyb3VuZDogcmdiYShibGFjaywgLjc1KTtcblx0XHRib3JkZXI6IDNweCBzb2xpZCB3aGl0ZTtcblx0XHRib3JkZXItcmFkaXVzOiA1MDBweDtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdHdpZHRoOiA0MHB4O1xuXG5cdFx0ei1pbmRleDogOTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRvcGFjaXR5OiAxO1xuXG5cdFx0XHRib3JkZXI6IHtcblx0XHRcdFx0dG9wOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3R0b206IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHR9O1xuXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBkb3duKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAtMjBweDtcblxuXHRcdFx0Ji5zbGljay1wcmV2IHtcblx0XHRcdFx0bGVmdDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0Ji5zbGljay1uZXh0IHtcblx0XHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5zbGljay1uZXh0OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItbGVmdDogMTRweCBzb2xpZCB3aGl0ZTtcblx0XHRcdGxlZnQ6IDJweDtcblx0XHR9XG5cblx0XHQmLnNsaWNrLXByZXY6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB3aGl0ZTtcblx0XHRcdHJpZ2h0OiAycHg7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBibGFjaztcblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoYmxhY2ssIC41KTtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQ6IGJsYWNrO1xuXHRcdFx0YmFja2dyb3VuZDogcmdiYShibGFjaywgLjc1KTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdFx0d2lkdGg6IDYwcHg7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyOiB7XG5cdFx0XHRcdFx0dG9wLXdpZHRoOiAxN3B4O1xuXHRcdFx0XHRcdGJvdHRvbS13aWR0aDogMTdweDtcblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Ji5zbGljay1uZXh0OmJlZm9yZSB7XG5cdFx0XHRcdGJvcmRlci1sZWZ0LXdpZHRoOiAyMHB4O1xuXHRcdFx0XHRsZWZ0OiA0cHg7XG5cdFx0XHR9XG5cblx0XHRcdCYuc2xpY2stcHJldjpiZWZvcmUge1xuXHRcdFx0XHRib3JkZXItcmlnaHQtd2lkdGg6IDIwcHggc29saWQgd2hpdGU7XG5cdFx0XHRcdHJpZ2h0OiA0cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDMuIExhcmdlIFBvc3QgSW1hZ2VcblxuLnVuZGFyay1sYXJnZS1wb3N0LWltYWdlIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBkb3duKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRzaXplOiBjb3Zlcjtcblx0XHRcdHBvc2l0aW9uOiA1MCU7XG5cdFx0fTtcblx0XHRoZWlnaHQ6IDcwdmg7XG5cdFx0bWFyZ2luOiB7XG5cdFx0XHRsZWZ0OiAkbGFyZ2UtcHVsbDtcblx0XHRcdHJpZ2h0OiAkbGFyZ2UtcHVsbDtcblx0XHR9O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5pbWFnZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC5sYXJnZS1pbWFnZS1jYXB0aW9uIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMi8xMiAqIDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAxcmVtO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDA0LiBCYWNrZ3JvdW5kIFZpZGVvXG5cbi51bmRhcmstYmFja2dyb3VuZC12aWRlby1jb250YWluZXIge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0aGVpZ2h0OiA3MHZoO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cblxuXG4vLyAwNS4gQ2FwdGlvblxuXG4udW5kYXJrLWNhcHRpb24sXG4udW5kYXJrLWNhcHRpb24gcCB7XG5cdGZvbnQtc2l6ZTogLjg3NXJlbTtcblx0bWFyZ2luLXRvcDogLjVyZW07XG59XG5cbi53cC1ibG9jay1pbWFnZSB7XG5cdC5hbGlnbnJpZ2h0IHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0ZmlnY2FwdGlvbiB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxufVxuXG4ud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0bWFyZ2luOiB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0fTtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHRcdG1heC13aWR0aDogMzMuMzMzMzMzJTtcblx0fVxuXG5cdC53cC1jYXB0aW9uLXRleHQge1xuXHRcdG1hcmdpbi10b3A6IDFyZW07XG5cdH1cbn1cbiIsIi8qKlxuICogMDEgR2xvYmFsXG4gKiAwMi4gU3BsaXRcbiAqIDAzLiBTdGFja2VkXG4gKiAwNC4gRW50cnkgTWV0YVxuICovXG5cblxuLy8gMDEuIEdsb2JhbFxuXG4uYnlsaW5lIHtcblx0LmJ5bGluZS1hdXRob3Ige1xuXHRcdC5oaWRlLWxvb3AtcG9zdC1ieWxpbmUgJiB7XG5cdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0LmJ5bGluZS1kYXRlIHtcblxuXHR9XG5cblx0LmJ5bGluZS12aXN1YWxzIHtcblx0XHQuaGlkZS1sb29wLXBvc3QtYnlsaW5lICYge1xuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdC5ieWxpbmUtbGFiZWwge1xuXHRcdGNvbG9yOiAkZ29sZDtcblx0fVxufVxuXG5cbi8vIDAyLiBTcGxpdFxuXG4uYnlsaW5lLmJ5bGluZS1zcGxpdCB7XG5cdC5sb29wLXBvc3QtYnlsaW5lIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdCYuZnVsbC13aWR0aCB7XG5cdFx0bWluLXdpZHRoOiA2MCU7XG5cblx0XHQubG9vcC1wb3N0LWJ5bGluZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblxuXHRcdC5ieWxpbmUtaXRlbSB7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuYnlsaW5lLWF1dGhvcixcblx0LmJ5bGluZS1kYXRlLFxuXHQuYnlsaW5lLWl0ZW0sXG5cdC5ieWxpbmUtdmlzdWFscyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IDE1cHg7XG5cdH1cblxuXHQuYnlsaW5lLWF1dGhvciB7XG5cdFx0Y29sb3I6ICRkYXJrLWdyYXk7XG5cdH1cblxuXHQuYnlsaW5lLWRhdGUsXG5cdC5ib3JkZXItaXRlbSB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cdFx0Y29sb3I6ICRnb2xkO1xuXHR9XG5cblx0LmZlYXR1cmVkLWFydGljbGUgJiB7XG5cdFx0LmJ5bGluZS1kYXRlIHtcblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kICggbWF4LXdpZHRoOiA3NjdweCApIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwMy4gU3RhY2tlZFxuXG4uYnlsaW5lLmJ5bGluZS1zdGFja2VkIHtcblx0LmJ5bGluZS1hdXRob3Ige1xuXHRcdGNvbG9yOiAkZ29sZDtcblx0fVxuXG5cdC5ieWxpbmUtZGF0ZSB7XG5cdFx0Y29sb3I6ICRtZWRpdW0tZ3JheTtcblx0fVxufVxuXG5cbi8vIDA0LiBFbnRyeSBNZXRhXG5cbi5ieWxpbmUuYnlsaW5lLWVudHJ5LW1ldGEge1xuXHQuYnlsaW5lLWl0ZW0ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IDFyZW07XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIExvb3AgUG9zdCBJbm5lclxuICovXG5cblxuLy8gMDEuIExvb3AgUG9zdCBJbm5lclxuXG4ubG9vcC1wb3N0LWlubmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5iYWNrZ3JvdW5kLWJsYWNrICYsXG5cdC5ibG9nICYge1xuXHRcdGNvbG9yOiAkZ29sZDtcblx0fVxuXG5cdC5sb29wLXBvc3QtdGl0bGUge1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0bWFyZ2luOiB7XG5cdFx0XHR0b3A6IC43NXJlbTtcblx0XHRcdGJvdHRvbTogLjM3NXJlbTtcblx0XHR9O1xuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdH1cblx0fVxuXG5cblx0Jjpob3ZlciB7XG5cdFx0Lmxvb3AtcG9zdC10aXRsZSBhIHtcblx0XHRcdGNvbG9yOiAkZ29sZDtcblxuXHRcdFx0LmJhY2tncm91bmQtYmxhY2sgJiB7XG5cdFx0XHRcdGNvbG9yOiAkZ29sZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIFBvc3QgQ2F0ZWdvcnkgRGVmYXVsdFxuICogMDIuIEZlYXR1cmVkIEFydGljbGVcbiAqIDAzLiBUZWFzZXIgQXJ0aWNsZVxuICogMDQuIEludGVyaW9yIFBhZ2VcbiAqIDA1LiBTaW5nbGUgUmVsYXRlZFxuICogMDYuIEJsb2cgQXJjaGl2ZVxuICogMDcuIEJsb2cgQXJjaGl2ZSBUb3BcbiAqL1xuXG5cbi8vIDAxLiBQb3N0IENhdGVnb3J5IERlZmF1bHRcblxuLnBvc3QtY2F0ZWdvcnkge1xuXHRiYWNrZ3JvdW5kOiAkYmxhY2s7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udDoge1xuXHRcdGZhbWlseTogJGZvbnQtc2Fucztcblx0XHRzaXplOiAxMXB4O1xuXHRcdHdlaWdodDogNzAwO1xuXHR9O1xuXHRsaW5lLWhlaWdodDogMTtcblx0cGFkZGluZzogNXB4IDhweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXHR6LWluZGV4OiAxO1xuXG5cdGEge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdH1cblxuXHQmLnVuc3R5bGVkIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXG5cdC8vIDAyLiBGZWF0dXJlZCBBcnRpY2xlXG5cblx0LmZlYXR1cmVkLWFydGljbGUgJiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0dG9wOiAwO1xuXHRcdH1cblx0fVxuXG5cblx0Ly8gMDMuIFRlYXNlciBBcnRpY2xlXG5cblx0LmFydGljbGUtdGVhc2UgJiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cblxuXHQvLyAwNC4gSW50ZXJpb3IgUGFnZVxuXG5cdGJvZHk6bm90KC5mcm9udHBhZ2UpICYge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC41cHg7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cblx0Ly8gMDUuIFNpbmdsZSBSZWxhdGVkXG5cblx0LnNpbmdsZS1yZWxhdGVkICYge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXG5cdC8vIDA2LiBCbG9nIEFyY2hpdmVcblxuXHRib2R5LmJsb2cgLmFydGljbGU6bm90KC50b3ApICYsXG5cdGJvZHkuYXJjaGl2ZSAuYXJ0aWNsZTpub3QoLnRvcCkgJixcblx0Ym9keS5zZWFyY2ggJiB7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0cGFkZGluZzogNXB4IDhweDtcblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdH1cblxuXG5cdC8vIDA3LiBCbG9nIEFyY2hpdmUgVG9wXG5cblx0LmFydGljbGUtdGVhc2UudG9wICYge1xuXHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHRwYWRkaW5nOiA1cHggOHB4O1xuXG5cdFx0Ym90dG9tOiBhdXRvO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gQXJ0aWNsZVxuICogMDIuIFRlYXNlXG4gKiAwMy4gVGVhc2UgSG9yaXpvbnRhbFxuICogMDQuIEJsb2cgQXJ0aWNsZXNcbiAqL1xuXG5cbi8vIDAxLiBBcnRpY2xlXG5cbi5hcnRpY2xlIHtcblx0Lmxvb3AtcG9zdC1pbWFnZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0aW1nIHtcblx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgwKSBjb250cmFzdCgxKTtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdHRyYW5zaXRpb246IGZpbHRlciAkZ2xvYmFsLXRpbWluZyAkZ2xvYmFsLWVhc2luZztcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSguNSkgY29udHJhc3QoMS4yKTtcblx0XHR9XG5cdH1cblxuXHQuYmFja2dyb3VuZC1ibGFjayAmIHtcblx0XHQubG9vcC1wb3N0LWNvbnRlbnQge1xuXHRcdFx0Y29sb3I6ICRnb2xkO1xuXHRcdH1cblxuXHRcdC5sb29wLXBvc3QtdGl0bGUge1xuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4yNXJlbTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyAwMi4gVGVhc2VcblxuLmFydGljbGUtdGVhc2Uge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cblx0Lmxvb3AtcG9zdC10aXRsZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fVxuXG5cdCNmb290ZXIgJiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG5cbi8vIDAzLiBUZWFzZSBIb3Jpem9udGFsXG5cbi5hcnRpY2xlLXRlYXNlLWhvcml6b250YWwge1xuXHQubG9vcC1wb3N0LWlubmVyIHtcblx0XHRAaW5jbHVkZSB4eS1ncmlkO1xuXHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IHRvcCk7XG5cdH1cblxuXHQubG9vcC1wb3N0LWltYWdlLFxuXHQubG9vcC1wb3N0LWNvbnRlbnQge1xuXHRcdC8vIEBpbmNsdWRlIHh5LWNlbGwoNiwgZmFsc2UpO1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cblxuXHQubG9vcC1wb3N0LWNvbnRlbnQge1xuXHRcdGZvbnQtc2l6ZTogLjkzNzVyZW07XG5cdFx0cGFkZGluZzogMCAuNzVyZW07XG5cdH1cblxuXHQubG9vcC1wb3N0LXRpdGxlIHtcblx0XHRmb250LXNpemU6IC45Mzc1cmVtO1xuXHRcdG1hcmdpbjogMCAwIC4yNXJlbTtcblx0fVxufVxuXG5cbi8vIDA0LiBCbG9nIEFydGljbGVzXG5cbmJvZHkuYmxvZyB7XG5cdC5hcnRpY2xlIHtcblx0XHQmOm5vdCgudG9wKSB7XG5cdFx0XHQubG9vcC1wb3N0LWlubmVyIC5sb29wLXBvc3QtdGl0bGUge1xuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIjbGF0ZXN0LWNhdGVnb3JpZXMge1xuXHQuY2F0ZWdvcnktcG9zdCB7XG5cdFx0JltjbGFzcyo9XCJwb3N0LTFcIl0ge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMXJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQrIC5jYXRlZ29yeS1wb3N0IHtcblx0XHRcdG1hcmdpbi10b3A6IDJyZW07XG5cdFx0fVxuXG5cdFx0LmFydGljbGUge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC5jYXRlZ29yeS1oZWFkbGluZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHRcdHBhZGRpbmctYm90dG9tOiAuNXJlbTtcblxuXHRcdD4gKiB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0LmNhdGVnb3J5LWxpbmsge1xuXHRcdGNvbG9yOiAkZ29sZDtcblx0XHRmb250OiB7XG5cdFx0XHRmYW1pbHk6ICRmb250LXNhbnM7XG5cdFx0XHRzaXplOiAuODc1cmVtO1xuXHRcdH07XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxufVxuIiwiLyoqXG4gKiAwMS4gR2xvYmFsXG4gKi9cblxuXG4vLyAwMS4gR2xvYmFsXG5cbi51bmRhcmstaW1hZ2UtY2FwdGlvbiB7XG5cdG1hcmdpbjogMnJlbSAwIDFyZW07XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdCY6bm90KC5zaW5nbGUtaW1hZ2UpIHtcblx0XHRcdG1hcmdpbjogMnJlbSAtNy41cmVtIDFyZW0gIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQudW5kYXJrLWltYWdlLWJsb2NrIHtcblx0XHQ+IC5jZWxsIHtcblx0XHRcdHBhZGRpbmc6IC41cmVtO1xuXHRcdH1cblx0fVxuXG5cdC51bmRhcmstY2FwdGlvbiB7XG5cdFx0Zm9udC1zaXplOiAuODc1cmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdG1hcmdpbi10b3A6IC41cmVtO1xuXHR9XG5cblx0Ji5pbWFnZXMtMSxcblx0Ji5pbWFnZXMtMixcblx0Ji5pbWFnZXMtMyxcblx0Ji5pbWFnZXMtNCB7XG5cdFx0bWFyZ2luOiB7XG5cdFx0XHRsZWZ0OiAtLjVyZW07XG5cdFx0XHRyaWdodDogLS41cmVtO1xuXHRcdH07XG5cdH1cbn1cblxuLmltYWdlLWNhcHRpb24ge1xuXHRjb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG5cdGZvbnQ6IHtcblx0XHRzaXplOiAuODc1cmVtO1xuXHRcdHdlaWdodDogMzAwO1xuXHR9O1xuXHRtYXJnaW46IC41cmVtIDAgMDtcbn1cblxuLnVuZGFyay1pbWFnZS1ibG9jayB7XG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIFN0cnVjdHVyZVxuICogMDIuIFNpbmdsZSBQb3N0IFNwbGl0XG4gKi9cblxuXG4vLyAwMS4gU3RydWN0dXJlXG5cbiNlbnRyeS1tZXRhLWNvbnRhaW5lciB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdHBhZGRpbmc6IDEwcHggMDtcblxuXHQuY29tbWVudHMtdHJpZ2dlciB7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdHBhZGRpbmc6IDAgMTBweCAwIDIwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cblx0XHRcdGJhY2tncm91bmQ6ICRib3JkZXItZ3JheTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDFweDtcblxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogLTEwcHg7XG5cdFx0XHRib3R0b206IC0xMHB4O1xuXHRcdH1cblx0fVxuXG5cdEBtZWRpYSAjeyRtb2JpbGUtZG93bn0ge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cblx0XHQqOm5vdCguc3BsaXQtZW50cnktbWV0YSkgJiB7XG5cdFx0XHRib3JkZXItdG9wOiBub25lO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cblx0XHRcdC5tZXRhLWNvbnRhaW5lci1ieWxpbmUge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cGFkZGluZzogMTBweCAwIDIwcHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cblx0XHRcdC5tZXRhLWNvbnRhaW5lci1jb21tZW50cy1udW1iZXIge1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQuY29tbWVudHMtdHJpZ2dlciB7XG5cdFx0XHRcdHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gMDIuIFNpbmdsZSBQb3N0IFNwbGl0XG5cbi5zcGxpdC1lbnRyeS1tZXRhIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRib3JkZXItZ3JheTtcblx0cGFkZGluZzogMXJlbSAwO1xuXG5cdCNlbnRyeS1tZXRhLWNvbnRhaW5lciB7XG5cdFx0Lm1ldGEtY29udGFpbmVyLWJ5bGluZSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXHRcdH1cblxuXHRcdC5jb21tZW50cy10cmlnZ2VyIHtcblx0XHRcdHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRwYWRkaW5nOiAxLjVyZW0gMS41cmVtIC41cmVtO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdFx0Ym9yZGVyOiB7XG5cdFx0XHRcdGxlZnQ6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdFx0XHRcdHRvcDogbm9uZTtcblx0XHRcdH07XG5cdFx0XHRtYXJnaW4tdG9wOiAtMXJlbTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG5cblx0LmJ5bGluZS5ieWxpbmUtZW50cnktbWV0YSB7XG5cdFx0LmJ5bGluZS1pdGVtIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHQrIC5ieWxpbmUtaXRlbSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC4zNzVyZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKipcbiAqIDAxLiBTdHVjdHVyZVxuICovXG5cblxuLy8gMDEuIFN0dWN0dXJlXG5cbiNjb21tZW50cy1wYW5lbCB7XG5cdGJ1dHRvbjpob3ZlciB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHR9XG59XG4iLCIvKipcbiAqIDAxLiBSZXB1Ymxpc2ggQ29udGFpbmVyXG4gKiAwMi4gUmVwdWJsaXNoIE1hcmt1cFxuICogMDMuIFJlcHVibGlzaCBMb2FkZXJcbiAqL1xuXG5cbi8vIDAxLiBSZXB1Ymxpc2ggQ29udGFpbmVyXG5cbiNyZXB1Ymxpc2gtbW9kYWwtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi8vIDAyLiBSZXB1Ymxpc2ggTWFya3VwXG5cbi5yZXB1Ymxpc2gtbW9kYWwtbWFya3VwIHtcblx0Zm9udDoge1xuXHRcdGZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcblx0XHRzaXplOiAxNHB4O1xuXHR9O1xuXHRwYWRkaW5nOiAxcmVtO1xufVxuXG5cbi8vIDAzLiBSZXB1Ymxpc2ggTG9hZGVyXG5cbkBrZXlmcmFtZXMgcmVwdWJsaXNoLWxvYWRlciB7XG5cdDAlICAgeyBvcGFjaXR5OiAwOyB9XG5cdDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbiNyZXB1Ymxpc2gtbG9hZGVyIHtcblx0cGFkZGluZy10b3A6IDEwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDEwMDtcblxuXHQubG9hZGVyLWRvdCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0aGVpZ2h0OiA2cHg7XG5cdFx0d2lkdGg6IDZweDtcblx0XHRtYXJnaW4tbGVmdDogM3B4O1xuXHRcdG1hcmdpbi1yaWdodDogM3B4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDA7XG5cblx0XHQmLmxvYWRlci1kb3QtMSB7XG5cdFx0XHRhbmltYXRpb246IHJlcHVibGlzaC1sb2FkZXIgNzUwbXMgY3ViaWMtYmV6aWVyKDAuNDUsIDAuMDUsIDAuNTUsIDAuOTUpIDc1bXMgaW5maW5pdGU7XG5cdFx0fVxuXHRcdCYubG9hZGVyLWRvdC0yIHtcblx0XHRcdGFuaW1hdGlvbjogcmVwdWJsaXNoLWxvYWRlciA3NTBtcyBjdWJpYy1iZXppZXIoMC40NSwgMC4wNSwgMC41NSwgMC45NSkgMTUwbXMgaW5maW5pdGU7XG5cdFx0fVxuXHRcdCYubG9hZGVyLWRvdC0zIHtcblx0XHRcdGFuaW1hdGlvbjogcmVwdWJsaXNoLWxvYWRlciA3NTBtcyBjdWJpYy1iZXppZXIoMC40NSwgMC4wNSwgMC41NSwgMC45NSkgMjI1bXMgaW5maW5pdGU7XG5cdFx0fVxuXHRcdCYubG9hZGVyLWRvdC00IHtcblx0XHRcdGFuaW1hdGlvbjogcmVwdWJsaXNoLWxvYWRlciA3NTBtcyBjdWJpYy1iZXppZXIoMC40NSwgMC4wNSwgMC41NSwgMC45NSkgMzAwbXMgaW5maW5pdGU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKipcbiAqIDAxLiBQb2RjYXN0IE1lbnUgKFZlcnRpY2FsKVxuICogMDIuIFBvZGNhc3QgTWVudSAoSG9yaXpvbnRhbClcbiAqL1xuXG5cbi8vIDAxLiBQb2RjYXN0IE1lbnUgKFZlcnRpY2FsKVxuXG5baWRePVwibWVudS1wb2RjYXN0LXN0YXRpb25zXCJdIHtcblx0bGkge1xuXHRcdHBhZGRpbmc6IDE1cHggMCA0cHg7XG5cdH1cblxuXHQubWVudS1pdGVtIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ncmF5O1xuXG5cdFx0YSB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIDAyLiBQb2RjYXN0IE1lbnUgKEhvcml6b250YWwpXG5cbi5wb2RjYXN0LW1lbnUucG9kY2FzdC1tZW51LXRvcCB7XG5cdGJvcmRlcjoge1xuXHRcdHRvcDogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG5cdFx0Ym90dG9tOiAxcHggc29saWQgJGRhcmstZ3JheTtcblx0fTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IC41cmVtIDAgMDtcblx0cGFkZGluZzogMS4yNXJlbSAwO1xuXG5cdD4gKiB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5tZW51LWl0ZW0ge1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0bWFyZ2luLWxlZnQ6IC43NXJlbTtcblxuXHRcdGEge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogMDEuIEdsb2JhbFxuICogMDIuIFNtYWxsIFJlbGF0ZWRcbiAqIDAzLiBMYXJnZSBSZWxhdGVkXG4gKi9cblxuXG4vLyAwMS4gR2xvYmFsXG5cbi5yZWxhdGVkLXBvc3Qge1xuXHQubG9vcC1wb3N0LXRpdGxlIHtcblx0XHRmb250OiB7XG5cdFx0XHR3ZWlnaHQ6IDcwMDtcblx0XHR9O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxufVxuXG5cbi8vIDAyLiBTbWFsbCBSZWxhdGVkXG5cbi5yZWxhdGVkLXBvc3QucmVsYXRlZC1wb3N0LXNtYWxsIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYm9yZGVyLWdyYXk7XG5cdGZsb2F0OiByaWdodDtcblx0bWFyZ2luOiAwIDAgMXJlbSAxcmVtO1xuXHRwYWRkaW5nLWxlZnQ6IDFyZW07XG5cdHdpZHRoOiAzMyU7XG5cblx0Lmxvb3AtcG9zdC10aXRsZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udDoge1xuXHRcdFx0ZmFtaWx5OiAkZm9udC1zYW5zO1xuXHRcdFx0c2l6ZTogMTZweDtcblx0XHR9O1xuXHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHR9XG59XG5cblxuLy8gMDMuIExhcmdlIFJlbGF0ZWRcblxuLnJlbGF0ZWQtcG9zdC5yZWxhdGVkLXBvc3QtbGFyZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiA0cmVtIDA7XG5cdG1pbi13aWR0aDogMTAwJTtcblxuXHQubG9vcC1wb3N0LWltYWdlLWNvbnRhaW5lciB7XG5cdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0cG9zaXRpb246IDUwJTtcblx0XHRcdHNpemU6IGNvdmVyO1xuXHRcdH07XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW46IHtcblx0XHRcdGxlZnQ6IC04cmVtO1xuXHRcdFx0cmlnaHQ6IC04cmVtO1xuXHRcdH07XG5cdH1cbn1cbiJdfQ== */
